Skip to content

REF-002: make storage v3 the only supported layout - #314

Merged
jmjava merged 10 commits into
mainfrom
cursor/milestone-3-ref-002-purge-ebca
Sep 14, 2026
Merged

jmjava merged 10 commits into
mainfrom
cursor/milestone-3-ref-002-purge-ebca

Conversation

@jmjava

@jmjava jmjava commented Sep 14, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • Delete pre-v3 consolidation, migration modules/verbs/parsers, TSV registry fallback, and duplicate-canvas synchronization.
  • Make Python, shell, installed dogfood scripts, installer configs, and runtime state resolve only through storage v3 (SDLC_HOME or <root>/sdlc-spdd).
  • Update unit, integration, E2E, research, live-consumer, and shell CI fixtures to create storage-v3 projects; remove CI calls to deleted consolidation tests.
  • Rewrite operator docs and the REASONS canvas to describe only the v3 flow.

REASONS Canvas

  • Work ID: REF-002-purge-pre-v3-compat
  • Canvas path: sdlc-spdd/spdd/canvas/REF-002-purge-pre-v3-compat.md

Checklist

  • Canvas updated or synced
  • One operation per coding session respected
  • Tests added or updated
  • Review completed
  • Safeguards respected
  • CI gates pass (validate-command-adapters, test-adapter-install, validate-canvas, validate-diagrams)
  • If command/prompt adapter files changed, ran adapter parity validation

Manual Smoke (Required for high-risk changes)

  • Manual chat smoke executed in Cursor, Copilot, or Claude Code (plan -> architect -> code -> review)
  • verify-agent-command-effects.sh passed for plan, architect, code, review, and capture
  • Milestone/session-notes sync verified for tested Work ID (and roadmap when expected)

Test Plan

All 26 PR checks pass on ed93d9f, including Playwright, live Guide + Neo4j, live consumers, GitHub issue sync, unit, integration, shellcheck, adapters, and diagrams.

Passing locally on the latest revision:

  • python -m pytest engine/tests_unit -q — 284 passed
  • python -m pytest engine/tests_integration -q — 128 passed
  • python -m pytest tests/research -q — 87 passed
  • exact Vue3 Playwright CI flow (npm ci, npm run build, test module) — 29 passed, 1 skipped
  • Guide/playground focused regressions — 19 passed
  • shell workflow, adapter, archive, readiness, integration-merge, receipt, shim, gate, and indexing harnesses — passed
  • complexity, command generation, adapter parity, shellcheck, docs boundary, install verification, and all 14 PlantUML validations — passed
Open in Web Open in Cursor 

cursoragent and others added 10 commits September 14, 2026 02:52
…im REF-002.

BUG-001 and CHORE-004 are Complete on main, CHORE-006 is In Progress (packs
regenerated; quick spec outstanding), and REF-002 T01 (archive deletes, no
spdd/*/archive/) landed ahead of its canvas, but MILESTONE-3.md, the
requirement files, ROADMAP, and CHANGELOG still said To Do. Sync them,
release the stale SPIKE-005 claim, and claim REF-002 on this branch.

Co-authored-by: John Menke <jmjava@gmail.com>
Scope lock: delete storage migrate / agent-context upgrade, the registry TSV
fallback, legacy detect/adf/quiet paths, the Project.home root fallback, and
the shell consolidation (merge/prune/legacy-layout-archive) in favor of a
refusal that points to a fresh init. Defers template grounding text to
DOC-005 and the sdlc.sh lookup branch to REF-003; keeps installer/rollback.py
(v3 upgrade backups). Measured: strict home fails 72 unit tests in 22 files,
so that is its own operation (T06) with an explicit-home fixture. Operations
T02-T07 ordered shell-first so no commit calls a deleted subcommand.

Co-authored-by: John Menke <jmjava@gmail.com>
upgrade-project.sh loses Phase 1 (legacy memory -> storage migrate), Phase 2
(merge root trees into sdlc-spdd/, prune shells, archive leftovers under
.sdlc/legacy-layout-archive/), the --consolidate no-op, and the Consolidated
summary. framework-install.sh loses framework_merge_dir_into,
framework_consolidate_path, framework_prune_legacy_layout_shells,
framework_archive_legacy_path, framework_archive_remaining_legacy_layout.
skills.sh loses migrate_playbooks_extensions_to_skills and its meta helpers;
init/upgrade no longer call it. paths.sh harness/skills resolvers no longer
probe agent-context/. start-agent-session, capture-session-memory, and
resolve-context-backend read <home>/scripts and <home>/harness only;
resolve-context-backend now resolves the v3 home instead of hard-coding
root-relative agent-context/ and .sdlc/ paths.

No detection or refusal logic replaces this: storage v3 is the only layout and
older trees are unsupported (owner, 2026-09-14; breaking change accepted).

Tests: test-upgrade-consolidate.sh, test-framework-install-consolidate.sh and
their workflow are deleted; the two playbook-migration cases leave
test-resolve-agent-context.sh; test-scripts-lib.sh asserts the helpers are
gone; test-sdlc-workflow.sh seeds the bash twin at <home>/scripts/ instead of
agent-context/.

Co-authored-by: John Menke <jmjava@gmail.com>
…parsers.

Removes storage_migrate.py (StorageMigration), agent_context_upgrade.py
(AgentContextUpgrade), the 'storage status|migrate' and 'agent-context
detect|upgrade|quiet-status' subparsers with cmd_storage/cmd_agent_context,
and the legacy markdown parsers block in context_model.py that only served the
migration. quiet-status survives as a top-level verb (cmd_quiet_status);
quiet.py resolves the marker at <home>/harness/quiet-mode.md via Project.harness_dir
instead of <root>/agent-context/harness/.

Tests: test_storage_migrate.py deleted; the legacy-seeding tests in
test_remaining_cleanup_slices.py and test_hard_review_gaps.py keep only their
v3 assertions, plus a case asserting the removed verbs exit 2.

Docs: engine-v2, framework-upgrade, storage-v3, installing, maintaining,
agent-session-scripts, quiet-mode (and shipped copies), README, and the C4
container/component diagrams no longer describe storage migrate.

Co-authored-by: John Menke <jmjava@gmail.com>
TeamRegistry drops legacy_tsv_path and the read-only agent-context/
work-registry.tsv parse in _read_events; a missing registry.jsonl means no
events. The bash twin (templates/agent-context/sdlc-team-registry.sh) drops
SDLC_TEAM_REGISTRY_LEGACY, the TSV branches in _team_registry_read_events and
_team_registry_rows, and the agent-context/ candidate in
_team_workflow_script; its hook hint points at sdlc-spdd/scripts/hooks/.

Adds test_registry_ignores_pre_v3_tsv. Component diagram and TESTING.md
describe registry.jsonl as the only store; engine-v2 module tree loses
storage_migrate.py.

Co-authored-by: John Menke <jmjava@gmail.com>
installer/detect.py drops LEGACY_MARKERS (agent-context/sdlc-workflow.sh,
agent-context/work-registry.tsv) and the two root-layout entries in MARKERS
(spdd/memory/lessons.jsonl, scripts/sdlc-spdd/sdlc.sh); a pre-v3 root now
detects as 'fresh'/'install'. adf_work._next_number scans project.spdd_dir
and project.requirements_dir instead of root/agent-context/features and
root-relative paths. db/db_query/db_schema docstrings stop calling ledger
records 'agent-context' rows.

Tests: test_adf_work and test_db no longer seed agent-context/; adds
test_detect_target_recognises_only_v3_markers.

Co-authored-by: John Menke <jmjava@gmail.com>
Co-authored-by: John Menke <jmjava@gmail.com>
Co-authored-by: John Menke <jmjava@gmail.com>
Co-authored-by: John Menke <jmjava@gmail.com>
Co-authored-by: John Menke <jmjava@gmail.com>
@jmjava
jmjava marked this pull request as ready for review September 14, 2026 04:08
@jmjava
jmjava merged commit 06ddb23 into main Sep 14, 2026
26 checks passed
@jmjava jmjava mentioned this pull request Sep 14, 2026
7 tasks done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants