3.0 KiB
3.0 KiB
Migrate Legacy Workspace State To .omo
Goal
Move project-scoped OMO state from .sisyphus to .omo, while preserving existing legacy state by copying .sisyphus into .omo on plugin startup when .sisyphus is detected.
Task Graph
-
Add shared legacy workspace migration helper.
- Depends on: none.
- Acceptance: copies nested files from
.sisyphusinto.omo, creates missing directories, does not overwrite existing.omofiles, and returns whether anything migrated.
-
Invoke migration at plugin startup.
- Depends on: task 1.
- Acceptance: startup calls the helper before managers/tools/hooks are created.
-
Switch runtime state constants to
.omo.- Depends on: task 1.
- Acceptance: Boulder and run-continuation writes land under
.omo.
-
Switch guardrails and prompt-facing workspace paths to
.omo.- Depends on: task 3.
- Acceptance: Prometheus, Atlas, notepad, write-existing guard, and plan extraction surfaces point at
.omo.
-
Update docs, ignore rules, and generated schema.
- Depends on: tasks 3-4.
- Acceptance: user-facing storage docs and schema examples no longer advertise
.sisyphusfor active workspace state.
-
Verify and ship.
- Depends on: tasks 1-5.
- Acceptance: focused tests, typecheck, full test suite, build, manual QA, CI, GPT-5.2 review, and Cubic all pass before merge.
Dependency Matrix
| Task | Blocks | Verification |
|---|---|---|
| Migration helper | Startup invocation, path switch | bun test src/shared/legacy-workspace-migration.test.ts |
| Startup invocation | Manual QA | bun test src/testing/create-plugin-module.test.ts or equivalent startup test |
| Runtime constants | Hook and CLI behavior | Boulder/run-continuation focused tests |
| Guardrails/prompts | Agent workflow behavior | Prometheus/Atlas/write guard focused tests |
| Docs/schema | PR review and release docs | bun run build:schema, rg "\\.sisyphus" audit |
| Verification | Merge | local gates, PR CI, reviews |
QA Scenarios
- Happy path: project has
.sisyphus/plans/a.mdand no.omo; startup creates.omo/plans/a.mdwith same content. - Existing target: project has
.sisyphus/plans/a.mdand.omo/plans/a.md; migration leaves.omo/plans/a.mdunchanged. - Mixed tree: project has
.sisyphus/plans/a.mdand.omo/notepads/note.md; migration copies only missing legacy files. - Runtime write:
writeBoulderState()creates.omo/boulder.json. - Continuation marker:
setContinuationMarkerSource()writes.omo/run-continuation/<session>.json. - Guardrail: Prometheus may write
.omo/plans/*.mdand is blocked outside.omo. - Adjacent compatibility: rules injector still discovers legacy
.sisyphus/rulesalongside.omo/rulesif kept for transition.
Commit Strategy
-
feat(workspace): migrate legacy sisyphus state to omo- Migration helper, startup invocation, runtime constants, and direct tests.
-
docs(workspace): document omo workspace paths- Docs,
.gitignore, schema output, and prompt/docs wording updates if separated cleanly.
- Docs,