owflow 0.5.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/README.md +448 -261
- package/dist/agents/bottleneck-analyzer.md +332 -329
- package/dist/agents/code-quality-pragmatist.md +353 -354
- package/dist/agents/code-reviewer.md +238 -239
- package/dist/agents/codebase-analysis-reporter.md +245 -246
- package/dist/agents/docs-operator.md +22 -23
- package/dist/agents/e2e-test-verifier.md +447 -448
- package/dist/agents/gap-analyzer.md +501 -502
- package/dist/agents/implementation-completeness-checker.md +219 -220
- package/dist/agents/implementation-planner.md +308 -309
- package/dist/agents/information-gatherer.md +690 -691
- package/dist/agents/production-readiness-checker.md +278 -279
- package/dist/agents/project-analyzer.md +403 -403
- package/dist/agents/reality-assessor.md +365 -366
- package/dist/agents/research-planner.md +449 -450
- package/dist/agents/research-synthesizer.md +402 -403
- package/dist/agents/solution-brainstormer.md +256 -257
- package/dist/agents/solution-designer.md +371 -372
- package/dist/agents/spec-auditor.md +297 -298
- package/dist/agents/specification-creator.md +333 -334
- package/dist/agents/task-classifier.md +449 -450
- package/dist/agents/task-group-implementer.md +283 -284
- package/dist/agents/test-suite-runner.md +194 -195
- package/dist/agents/user-docs-generator.md +508 -509
- package/dist/commands/reviews-code.md +90 -90
- package/dist/commands/reviews-pragmatic.md +99 -99
- package/dist/commands/reviews-production-readiness.md +113 -113
- package/dist/commands/reviews-reality-check.md +110 -110
- package/dist/commands/reviews-spec-audit.md +114 -114
- package/dist/commands/work.md +280 -280
- package/dist/configuration/agents-config.d.ts +2 -0
- package/dist/configuration/agents-config.js +8 -44
- package/dist/configuration/commands-config.d.ts +23 -0
- package/dist/configuration/commands-config.js +17 -17
- package/dist/configuration/skills-config.d.ts +2 -0
- package/dist/configuration/skills-config.js +3 -3
- package/dist/hooks/hooks-diagnostics.d.ts +3 -0
- package/dist/hooks/hooks-diagnostics.js +21 -0
- package/dist/hooks/hooks-persistence.d.ts +17 -0
- package/dist/hooks/hooks-persistence.js +207 -0
- package/dist/hooks/hooks-registry.d.ts +6 -0
- package/dist/hooks/hooks-registry.js +104 -0
- package/dist/hooks/hooks-wrapper.d.ts +25 -0
- package/dist/hooks/hooks-wrapper.js +318 -0
- package/dist/hooks/internal/before-tool.d.ts +6 -0
- package/dist/hooks/internal/before-tool.js +13 -0
- package/dist/hooks/internal/session-compaction.d.ts +9 -0
- package/dist/hooks/{session-compaction.js → internal/session-compaction.js} +9 -7
- package/dist/hooks/runtime/circuit-breaker.d.ts +23 -0
- package/dist/hooks/runtime/circuit-breaker.js +39 -0
- package/dist/hooks/runtime/failure-policy.d.ts +15 -0
- package/dist/hooks/runtime/failure-policy.js +49 -0
- package/dist/hooks/runtime/process-executor.d.ts +33 -0
- package/dist/hooks/runtime/process-executor.js +147 -0
- package/dist/hooks/runtime/status-recorder.d.ts +27 -0
- package/dist/hooks/runtime/status-recorder.js +111 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +111 -40
- package/dist/skills/agents-md-generator/SKILL.md +223 -223
- package/dist/skills/codebase-analyzer/SKILL.md +162 -162
- package/dist/skills/codebase-analyzer/references/code-analysis.md +63 -63
- package/dist/skills/codebase-analyzer/references/combined.md +31 -31
- package/dist/skills/codebase-analyzer/references/context-discovery.md +63 -63
- package/dist/skills/codebase-analyzer/references/file-discovery.md +51 -51
- package/dist/skills/codebase-analyzer/references/migration-target.md +23 -23
- package/dist/skills/codebase-analyzer/references/pattern-mining.md +22 -22
- package/dist/skills/dev-analyze/SKILL.md +115 -115
- package/dist/skills/dev-bugfix/SKILL.md +452 -452
- package/dist/skills/dev-finalize/SKILL.md +118 -118
- package/dist/skills/dev-implement/SKILL.md +167 -167
- package/dist/skills/dev-plan/SKILL.md +147 -147
- package/dist/skills/dev-spec/SKILL.md +182 -182
- package/dist/skills/dev-tdd-red/SKILL.md +94 -94
- package/dist/skills/dev-verify/SKILL.md +153 -153
- package/dist/skills/development/SKILL.md +260 -260
- package/dist/skills/diagrams-mermaid/SKILL.md +183 -159
- package/dist/skills/diagrams-mermaid/references/reference.md +220 -148
- package/dist/skills/docs-manager/SKILL.md +379 -379
- package/dist/skills/docs-manager/docs/INDEX.md +199 -199
- package/dist/skills/docs-manager/docs/standards/backend/api.md +25 -25
- package/dist/skills/docs-manager/docs/standards/backend/migrations.md +22 -22
- package/dist/skills/docs-manager/docs/standards/backend/models.md +25 -25
- package/dist/skills/docs-manager/docs/standards/backend/queries.md +22 -22
- package/dist/skills/docs-manager/docs/standards/frontend/accessibility.md +25 -25
- package/dist/skills/docs-manager/docs/standards/frontend/components.md +28 -28
- package/dist/skills/docs-manager/docs/standards/frontend/css.md +16 -16
- package/dist/skills/docs-manager/docs/standards/frontend/responsive.md +28 -28
- package/dist/skills/docs-manager/docs/standards/global/coding-style.md +25 -25
- package/dist/skills/docs-manager/docs/standards/global/commenting.md +10 -10
- package/dist/skills/docs-manager/docs/standards/global/conventions.md +31 -31
- package/dist/skills/docs-manager/docs/standards/global/error-handling.md +22 -22
- package/dist/skills/docs-manager/docs/standards/global/minimal-implementation.md +22 -22
- package/dist/skills/docs-manager/docs/standards/global/validation.md +28 -28
- package/dist/skills/docs-manager/docs/standards/testing/test-writing.md +25 -25
- package/dist/skills/docs-manager/references/agents-md-template.md +29 -29
- package/dist/skills/docs-manager/references/index-md-template.md +73 -73
- package/dist/skills/flow-init/SKILL.md +234 -234
- package/dist/skills/flow-init/references/architecture-template.md +45 -45
- package/dist/skills/flow-init/references/roadmap-templates.md +93 -93
- package/dist/skills/flow-init/references/tech-stack-template.md +70 -70
- package/dist/skills/flow-init/references/vision-templates.md +75 -75
- package/dist/skills/goal-development/SKILL.md +96 -96
- package/dist/skills/goal-migration/SKILL.md +114 -114
- package/dist/skills/goal-performance/SKILL.md +126 -0
- package/dist/skills/goal-research/SKILL.md +118 -118
- package/dist/skills/html-renderer/SKILL.md +173 -173
- package/dist/skills/html-renderer/references/index.html +318 -318
- package/dist/skills/html-renderer/references/styles.css +388 -388
- package/dist/skills/html-renderer/references/tokens.json +104 -104
- package/dist/skills/implementation-plan-executor/SKILL.md +378 -378
- package/dist/skills/implementation-verifier/SKILL.md +307 -307
- package/dist/skills/migration/SKILL.md +268 -268
- package/dist/skills/migration-analyze/SKILL.md +126 -126
- package/dist/skills/migration-finalize/SKILL.md +161 -161
- package/dist/skills/migration-fix/SKILL.md +155 -155
- package/dist/skills/migration-implement/SKILL.md +131 -131
- package/dist/skills/migration-plan/SKILL.md +131 -131
- package/dist/skills/migration-spec/SKILL.md +135 -135
- package/dist/skills/migration-spec/references/migration-strategies.md +430 -430
- package/dist/skills/migration-target/SKILL.md +134 -134
- package/dist/skills/migration-target/references/migration-types.md +489 -489
- package/dist/skills/migration-verify/SKILL.md +184 -184
- package/dist/skills/orchestrator-framework/SKILL.md +65 -65
- package/dist/skills/orchestrator-framework/references/command-namespacing.md +7 -7
- package/dist/skills/orchestrator-framework/references/confirm-or-revise-exception.md +20 -20
- package/dist/skills/orchestrator-framework/references/delegation-rules.md +54 -54
- package/dist/skills/orchestrator-framework/references/dispatcher-handoff.md +27 -27
- package/dist/skills/orchestrator-framework/references/fix-loop-contract.md +65 -65
- package/dist/skills/orchestrator-framework/references/gate-contract.md +122 -117
- package/dist/skills/orchestrator-framework/references/orchestrator-creation-checklist.md +51 -51
- package/dist/skills/orchestrator-framework/references/orchestrator-patterns.md +235 -235
- package/dist/skills/performance/SKILL.md +267 -437
- package/dist/skills/performance-analyze/SKILL.md +129 -0
- package/dist/skills/{performance → performance-analyze}/references/performance-optimization-guide.md +271 -365
- package/dist/skills/performance-finalize/SKILL.md +117 -0
- package/dist/skills/performance-implement/SKILL.md +114 -0
- package/dist/skills/performance-plan/SKILL.md +112 -0
- package/dist/skills/performance-spec/SKILL.md +145 -0
- package/dist/skills/performance-verify/SKILL.md +164 -0
- package/dist/skills/research/SKILL.md +249 -249
- package/dist/skills/research-brainstorm/SKILL.md +120 -120
- package/dist/skills/research-brainstorm/references/brainstorming-techniques.md +84 -84
- package/dist/skills/research-converge/SKILL.md +130 -130
- package/dist/skills/research-design/SKILL.md +146 -146
- package/dist/skills/research-design/references/design-techniques.md +40 -40
- package/dist/skills/research-finalize/SKILL.md +125 -125
- package/dist/skills/research-fork/SKILL.md +190 -190
- package/dist/skills/research-gather/SKILL.md +133 -133
- package/dist/skills/research-plan/SKILL.md +141 -141
- package/dist/skills/research-plan/references/research-methodologies.md +710 -710
- package/dist/skills/research-quick/SKILL.md +139 -139
- package/dist/skills/research-synthesize/SKILL.md +127 -127
- package/dist/skills/rule-reviewer/SKILL.md +334 -334
- package/dist/skills/standards-discover/SKILL.md +260 -260
- package/dist/skills/standards-discover/references/aggregation-strategy.md +76 -76
- package/dist/skills/standards-discover/references/code-pattern-prompt.md +68 -68
- package/dist/skills/standards-discover/references/config-analyzer-prompt.md +67 -67
- package/dist/skills/standards-discover/references/docs-extractor-prompt.md +65 -65
- package/dist/skills/standards-discover/references/external-analyzer-prompt.md +75 -75
- package/dist/skills/standards-update/SKILL.md +207 -207
- package/dist/templates/orchestrator-state-base.yml +17 -17
- package/dist/templates/orchestrator-state-development.yml +95 -95
- package/dist/templates/orchestrator-state-migration.yml +95 -95
- package/dist/templates/orchestrator-state-performance.yml +64 -53
- package/dist/templates/orchestrator-state-research.yml +67 -67
- package/dist/tools/fork_task.d.ts +17 -0
- package/dist/tools/fork_task.js +21 -11
- package/dist/tools/verify_template.d.ts +11 -0
- package/dist/tools/verify_template.js +32 -17
- package/dist/tui/hooks-dialogs.d.ts +20 -0
- package/dist/tui/hooks-dialogs.js +181 -0
- package/dist/tui/hooks-presenter.d.ts +15 -0
- package/dist/tui/hooks-presenter.js +70 -0
- package/dist/tui/hooks-sidebar.d.ts +10 -0
- package/dist/tui/hooks-sidebar.js +104 -0
- package/dist/tui/primitives.d.ts +21 -0
- package/dist/tui/primitives.js +47 -0
- package/dist/tui.d.ts +12 -0
- package/dist/tui.js +129 -0
- package/dist/types/hook-types.d.ts +125 -0
- package/dist/types/hook-types.js +76 -0
- package/dist/types/opencode-types.d.ts +13 -0
- package/dist/utils/file-util.d.ts +2 -0
- package/dist/utils/file-util.js +6 -6
- package/dist/utils/fork-task.d.ts +27 -0
- package/dist/utils/fork-task.js +18 -23
- package/dist/utils/plugin-info.d.ts +3 -0
- package/dist/utils/plugin-info.js +8 -10
- package/dist/utils/workflow-paths.d.ts +17 -0
- package/dist/utils/workflow-paths.js +18 -0
- package/dist/utils/yaml-structure.d.ts +7 -0
- package/dist/utils/yaml-structure.js +7 -11
- package/package.json +68 -48
- package/dist/hooks/before-tool.js +0 -19
|
@@ -1,131 +1,131 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: owflow:migration-plan
|
|
3
|
-
description: Migration — delegates implementation planning with a rollback/checkpoint step mandated in every task group, then refines the plan with a diagram (plan-created).
|
|
4
|
-
argument-hint: "[task-path-or-identifier]"
|
|
5
|
-
user-invocable: true
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Migration Plan — Rollback-Guarded Implementation Plan (plan-created)
|
|
9
|
-
|
|
10
|
-
Work phase of the migration workflow. Delegates planning to the reused `implementation-planner` agent with the migration requirement that **every task group carries a rollback/checkpoint step**, then refines the plan with an execution diagram.
|
|
11
|
-
|
|
12
|
-
## Entry Gate
|
|
13
|
-
|
|
14
|
-
### 1. Argument resolution
|
|
15
|
-
|
|
16
|
-
Resolve the `task-path-or-identifier` argument BEFORE anything else (see [Gate Contract](../orchestrator-framework/references/gate-contract.md)):
|
|
17
|
-
|
|
18
|
-
- **Path** (absolute or project-relative) to the task directory — use as-is.
|
|
19
|
-
- **Identifier** — exact directory name inside `.owflow/tasks/migrations/` (e.g., `2026-01-12-framework-upgrade`); resolve to its path.
|
|
20
|
-
- Missing argument, a path that does **not exist**, or no identifier match → print the blocked block (part 3), then STOP. Never guess or auto-pick a task.
|
|
21
|
-
|
|
22
|
-
### 2. Prerequisites
|
|
23
|
-
|
|
24
|
-
| Required for this skill | Where verified | Produced by |
|
|
25
|
-
| ----------------------- | -------------------------------------------------------------------- | ------------------------------------ |
|
|
26
|
-
| State file exists | `<task-path>/orchestrator-state.yml` | `/owflow:migration <description>` (dispatcher init) or mid-pipeline bootstrap |
|
|
27
|
-
| Strategy specified | `strategy-specified` in `completed_phases` **and** `implementation/spec.md` exists | `/owflow:migration-spec <task-path>` |
|
|
28
|
-
| Rollback plan consumed | `analysis/rollback-plan.md` exists (source of per-group rollback content) | `/owflow:migration-spec <task-path>` |
|
|
29
|
-
|
|
30
|
-
### 3. Blocked output
|
|
31
|
-
|
|
32
|
-
1. Steps that must be completed first (in order), each with its command:
|
|
33
|
-
- Requirements, specification & rollback/dual-run plans (`strategy-specified`) → `/owflow:migration-spec <task-path>`
|
|
34
|
-
- Target state planning (`target-planned`) → `/owflow:migration-target <task-path>` (if also missing)
|
|
35
|
-
- Current-state analysis (`state-analysed`) → `/owflow:migration-analyze <task-path>` (if also missing)
|
|
36
|
-
- State initialization → `/owflow:migration <description>` (new task)
|
|
37
|
-
2. List available migration-task identifiers (directories under `.owflow/tasks/migrations/`) to resume from, if any.
|
|
38
|
-
3. Hint: `Run /owflow:migration <description> to start a migration task from scratch, or pass a task path/identifier to resume.`
|
|
39
|
-
|
|
40
|
-
Then STOP — never guess or auto-pick a task.
|
|
41
|
-
|
|
42
|
-
### 4. Missing-state bootstrap
|
|
43
|
-
|
|
44
|
-
When the only unmet prerequisite is the state file, use `question` — "No task exists at this path. Create a fresh standard migration task and start at `plan-created`?" with **Create task** / **Decline**.
|
|
45
|
-
|
|
46
|
-
- **On confirm**: create `.owflow/tasks/migrations/YYYY-MM-DD-task-name/` + `orchestrator-state.yml` from the migration template with `orchestrator.entry_point: "migration-plan (mid-pipeline bootstrap)"`, `orchestrator.started_phase: plan-created`, `completed_phases: []`, `task.title`/`task.description` from the argument. Run `verify_template` (`orchestrator-state-migration.yml`) immediately. Creates state ONLY — `implementation/spec.md` and the rollback plan still block, so bootstrapping never skips upstream work.
|
|
47
|
-
- **On decline**: print `No migration task found at <path>. Run /owflow:migration <description> to start a migration task from scratch.` and STOP.
|
|
48
|
-
|
|
49
|
-
### 5. Skip/resume — artifacts before state
|
|
50
|
-
|
|
51
|
-
- `implementation/implementation-plan.md` exists but `plan-created` is missing ⇒ **adopt**: append `plan-created`, backfill `phase_summaries.plan.summary` and `migration_outputs.implementation_plan` where still null.
|
|
52
|
-
- `plan-created` is present but `implementation/implementation-plan.md` is missing ⇒ **drop** `plan-created` from `completed_phases` and re-run.
|
|
53
|
-
- Both artifact and slug exist ⇒ report the existing plan summary and route to the Exit Gate.
|
|
54
|
-
- `analysis/rollback-plan.md` is missing while `strategy-specified` holds ⇒ route back to `/owflow:migration-spec <task-path>` to regenerate the extraction — never re-author it here.
|
|
55
|
-
|
|
56
|
-
### 6. Conditional activation
|
|
57
|
-
|
|
58
|
-
Not applicable — `migration-plan` has no activation condition; it runs whenever its prerequisites are met.
|
|
59
|
-
|
|
60
|
-
### 7. Recovery
|
|
61
|
-
|
|
62
|
-
| Step | Max Attempts | Strategy |
|
|
63
|
-
| -------------------------- | ------------ | ------------------------------------------------------------------------------------------------ |
|
|
64
|
-
| Implementation planning (`plan-created`) | 2 | Regenerate with the migration constraints restated: a rollback/checkpoint step in every task group and rollback content read from the strategies reference |
|
|
65
|
-
|
|
66
|
-
## Execute
|
|
67
|
-
|
|
68
|
-
**Read first**: the [Delegation Rules](../orchestrator-framework/references/delegation-rules.md), then read `../migration-spec/references/migration-strategies.md` for the rollback-step content (the rollback-plan structure and strategy patterns).
|
|
69
|
-
|
|
70
|
-
| Direction | Artifact | Producer |
|
|
71
|
-
| --------- | ----------------------------------- | --------------------------------------------------------------- |
|
|
72
|
-
| Consumed | `implementation/spec.md` | `migration-spec` (approved specification) |
|
|
73
|
-
| Consumed | `analysis/rollback-plan.md` | `migration-spec` (per-group rollback content) |
|
|
74
|
-
| Produced | `implementation/implementation-plan.md` | `implementation-planner` (**Task**, frozen contract) |
|
|
75
|
-
|
|
76
|
-
### Delegated Planning with Per-Group Rollback (`plan-created`)
|
|
77
|
-
|
|
78
|
-
> **ANTI-PATTERN — never write `implementation-plan.md` yourself. "The groups are straightforward" is NOT a reason to skip delegation.**
|
|
79
|
-
|
|
80
|
-
1. **Task tool — `implementation-planner`** (frozen contract). Pass: `task_path`, `task_description`, `migration_context.*` (type, strategy, risk level, breaking changes), `phase_summaries` (spec plus upstream), `implementation/spec.md`, and `analysis/rollback-plan.md` as the rollback source.
|
|
81
|
-
2. **Injected requirement**: the delegation prompt **mandates** that every task group carries a rollback/checkpoint step, with rollback-step content read from `../migration-spec/references/migration-strategies.md`. Pass that path and the `analysis/rollback-plan.md` structures explicitly.
|
|
82
|
-
3. **SELF-CHECK before the state write**: read `implementation/implementation-plan.md` and confirm every task group ends with a rollback/checkpoint step. If any group is missing one, re-invoke the planner with the requirement restated — do not append the rollback steps yourself.
|
|
83
|
-
4. **Skill tool — `diagrams-mermaid`** (content-preserving) on `implementation/implementation-plan.md`: add one migration execution/state flow with rollback checkpoints. The written steps and rollback details remain authoritative; diagrams are explanatory. A skipped or failed refinement is not a failure — note it in `phase_summaries.plan.summary` and continue.
|
|
84
|
-
5. **State write**: append `plan-created` to `completed_phases`; set `phase_summaries.plan.summary`, `migration_outputs.implementation_plan`; bump `orchestrator.updated`. On failure: append `plan-created` to `failed_phases`, increment `auto_fix_attempts["plan-created"]`. Then re-read state + run `verify_template`.
|
|
85
|
-
|
|
86
|
-
## State Update Convention (per step)
|
|
87
|
-
|
|
88
|
-
1. **Write immediately** — update `orchestrator-state.yml` as soon as the step completes, appending ONLY the step slug actually performed (`plan-created`) plus that step's fields. Never batch multiple steps into one end-of-skill write.
|
|
89
|
-
2. **Timestamp** — set `orchestrator.updated` to the current UTC timestamp on every write.
|
|
90
|
-
3. **Failures** — a failed or abandoned step is NOT appended to `completed_phases`; append its slug to `orchestrator.failed_phases` and increment `auto_fix_attempts["<slug>"]`.
|
|
91
|
-
4. **Validate** — after every write, re-read the file to confirm values, then run the `verify_template` tool with `filePath: <task-path>/orchestrator-state.yml`, `templateName: orchestrator-state-migration.yml`. Fix any reported issue immediately.
|
|
92
|
-
5. **Final check** — before the Exit Gate, one consolidated re-read + `verify_template` run.
|
|
93
|
-
|
|
94
|
-
## Exit Gate
|
|
95
|
-
|
|
96
|
-
Present results, get user confirmation, then hand off (see [Gate Contract](../orchestrator-framework/references/gate-contract.md)). Never auto-invoke the next skill.
|
|
97
|
-
|
|
98
|
-
### Results box
|
|
99
|
-
|
|
100
|
-
```markdown
|
|
101
|
-
## ✅ MIGRATION PLAN COMPLETE — <task name>
|
|
102
|
-
|
|
103
|
-
**Task groups** — [N]
|
|
104
|
-
**Total steps** — [M]
|
|
105
|
-
**Rollback coverage** — ✅ every task group carries a rollback/checkpoint step
|
|
106
|
-
**Execution order** — [key dependencies, 1-2 lines]
|
|
107
|
-
**Diagram** — [added / skipped (optional)]
|
|
108
|
-
|
|
109
|
-
**Artifacts**
|
|
110
|
-
|
|
111
|
-
- `implementation/implementation-plan.md`
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
### Results-acceptance question
|
|
115
|
-
|
|
116
|
-
Use `question` — "Are these results correct?" with options:
|
|
117
|
-
|
|
118
|
-
- **Accept** — the plan is good; continue.
|
|
119
|
-
- **Adjust** — regenerate the plan with the user's corrections (grouping, ordering, rollback steps), update state, re-present the results box.
|
|
120
|
-
- **Discuss** — walk through the task groups, dependencies, or rollback/checkpoint design in more depth; then re-ask.
|
|
121
|
-
- **Stop here** — print the resume command (`/owflow:migration-plan <task-path>`) and end.
|
|
122
|
-
|
|
123
|
-
### Next steps (after Accept)
|
|
124
|
-
|
|
125
|
-
- `→ /owflow:migration-implement <task-path>` — `required` next: executes the plan task group by task group with the per-group rollback/checkpoint steps and writes the work log. Remaining after: verify (→ fix when needed) → finalize.
|
|
126
|
-
|
|
127
|
-
**Other options**:
|
|
128
|
-
|
|
129
|
-
- `/owflow:goal-migration <task-path>` — `optional` shortcut: runs all remaining phases in one loop (implement → verify → fix when needed → finalize)
|
|
130
|
-
|
|
131
|
-
Then STOP.
|
|
1
|
+
---
|
|
2
|
+
name: owflow:migration-plan
|
|
3
|
+
description: Migration — delegates implementation planning with a rollback/checkpoint step mandated in every task group, then refines the plan with a diagram (plan-created).
|
|
4
|
+
argument-hint: "[task-path-or-identifier]"
|
|
5
|
+
user-invocable: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Migration Plan — Rollback-Guarded Implementation Plan (plan-created)
|
|
9
|
+
|
|
10
|
+
Work phase of the migration workflow. Delegates planning to the reused `implementation-planner` agent with the migration requirement that **every task group carries a rollback/checkpoint step**, then refines the plan with an execution diagram.
|
|
11
|
+
|
|
12
|
+
## Entry Gate
|
|
13
|
+
|
|
14
|
+
### 1. Argument resolution
|
|
15
|
+
|
|
16
|
+
Resolve the `task-path-or-identifier` argument BEFORE anything else (see [Gate Contract](../orchestrator-framework/references/gate-contract.md)):
|
|
17
|
+
|
|
18
|
+
- **Path** (absolute or project-relative) to the task directory — use as-is.
|
|
19
|
+
- **Identifier** — exact directory name inside `.owflow/tasks/migrations/` (e.g., `2026-01-12-framework-upgrade`); resolve to its path.
|
|
20
|
+
- Missing argument, a path that does **not exist**, or no identifier match → print the blocked block (part 3), then STOP. Never guess or auto-pick a task.
|
|
21
|
+
|
|
22
|
+
### 2. Prerequisites
|
|
23
|
+
|
|
24
|
+
| Required for this skill | Where verified | Produced by |
|
|
25
|
+
| ----------------------- | -------------------------------------------------------------------- | ------------------------------------ |
|
|
26
|
+
| State file exists | `<task-path>/orchestrator-state.yml` | `/owflow:migration <description>` (dispatcher init) or mid-pipeline bootstrap |
|
|
27
|
+
| Strategy specified | `strategy-specified` in `completed_phases` **and** `implementation/spec.md` exists | `/owflow:migration-spec <task-path>` |
|
|
28
|
+
| Rollback plan consumed | `analysis/rollback-plan.md` exists (source of per-group rollback content) | `/owflow:migration-spec <task-path>` |
|
|
29
|
+
|
|
30
|
+
### 3. Blocked output
|
|
31
|
+
|
|
32
|
+
1. Steps that must be completed first (in order), each with its command:
|
|
33
|
+
- Requirements, specification & rollback/dual-run plans (`strategy-specified`) → `/owflow:migration-spec <task-path>`
|
|
34
|
+
- Target state planning (`target-planned`) → `/owflow:migration-target <task-path>` (if also missing)
|
|
35
|
+
- Current-state analysis (`state-analysed`) → `/owflow:migration-analyze <task-path>` (if also missing)
|
|
36
|
+
- State initialization → `/owflow:migration <description>` (new task)
|
|
37
|
+
2. List available migration-task identifiers (directories under `.owflow/tasks/migrations/`) to resume from, if any.
|
|
38
|
+
3. Hint: `Run /owflow:migration <description> to start a migration task from scratch, or pass a task path/identifier to resume.`
|
|
39
|
+
|
|
40
|
+
Then STOP — never guess or auto-pick a task.
|
|
41
|
+
|
|
42
|
+
### 4. Missing-state bootstrap
|
|
43
|
+
|
|
44
|
+
When the only unmet prerequisite is the state file, use `question` — "No task exists at this path. Create a fresh standard migration task and start at `plan-created`?" with **Create task** / **Decline**.
|
|
45
|
+
|
|
46
|
+
- **On confirm**: create `.owflow/tasks/migrations/YYYY-MM-DD-task-name/` + `orchestrator-state.yml` from the migration template with `orchestrator.entry_point: "migration-plan (mid-pipeline bootstrap)"`, `orchestrator.started_phase: plan-created`, `completed_phases: []`, `task.title`/`task.description` from the argument. Run `verify_template` (`orchestrator-state-migration.yml`) immediately. Creates state ONLY — `implementation/spec.md` and the rollback plan still block, so bootstrapping never skips upstream work.
|
|
47
|
+
- **On decline**: print `No migration task found at <path>. Run /owflow:migration <description> to start a migration task from scratch.` and STOP.
|
|
48
|
+
|
|
49
|
+
### 5. Skip/resume — artifacts before state
|
|
50
|
+
|
|
51
|
+
- `implementation/implementation-plan.md` exists but `plan-created` is missing ⇒ **adopt**: append `plan-created`, backfill `phase_summaries.plan.summary` and `migration_outputs.implementation_plan` where still null.
|
|
52
|
+
- `plan-created` is present but `implementation/implementation-plan.md` is missing ⇒ **drop** `plan-created` from `completed_phases` and re-run.
|
|
53
|
+
- Both artifact and slug exist ⇒ report the existing plan summary and route to the Exit Gate.
|
|
54
|
+
- `analysis/rollback-plan.md` is missing while `strategy-specified` holds ⇒ route back to `/owflow:migration-spec <task-path>` to regenerate the extraction — never re-author it here.
|
|
55
|
+
|
|
56
|
+
### 6. Conditional activation
|
|
57
|
+
|
|
58
|
+
Not applicable — `migration-plan` has no activation condition; it runs whenever its prerequisites are met.
|
|
59
|
+
|
|
60
|
+
### 7. Recovery
|
|
61
|
+
|
|
62
|
+
| Step | Max Attempts | Strategy |
|
|
63
|
+
| -------------------------- | ------------ | ------------------------------------------------------------------------------------------------ |
|
|
64
|
+
| Implementation planning (`plan-created`) | 2 | Regenerate with the migration constraints restated: a rollback/checkpoint step in every task group and rollback content read from the strategies reference |
|
|
65
|
+
|
|
66
|
+
## Execute
|
|
67
|
+
|
|
68
|
+
**Read first**: the [Delegation Rules](../orchestrator-framework/references/delegation-rules.md), then read `../migration-spec/references/migration-strategies.md` for the rollback-step content (the rollback-plan structure and strategy patterns).
|
|
69
|
+
|
|
70
|
+
| Direction | Artifact | Producer |
|
|
71
|
+
| --------- | ----------------------------------- | --------------------------------------------------------------- |
|
|
72
|
+
| Consumed | `implementation/spec.md` | `migration-spec` (approved specification) |
|
|
73
|
+
| Consumed | `analysis/rollback-plan.md` | `migration-spec` (per-group rollback content) |
|
|
74
|
+
| Produced | `implementation/implementation-plan.md` | `implementation-planner` (**Task**, frozen contract) |
|
|
75
|
+
|
|
76
|
+
### Delegated Planning with Per-Group Rollback (`plan-created`)
|
|
77
|
+
|
|
78
|
+
> **ANTI-PATTERN — never write `implementation-plan.md` yourself. "The groups are straightforward" is NOT a reason to skip delegation.**
|
|
79
|
+
|
|
80
|
+
1. **Task tool — `implementation-planner`** (frozen contract). Pass: `task_path`, `task_description`, `migration_context.*` (type, strategy, risk level, breaking changes), `phase_summaries` (spec plus upstream), `implementation/spec.md`, and `analysis/rollback-plan.md` as the rollback source.
|
|
81
|
+
2. **Injected requirement**: the delegation prompt **mandates** that every task group carries a rollback/checkpoint step, with rollback-step content read from `../migration-spec/references/migration-strategies.md`. Pass that path and the `analysis/rollback-plan.md` structures explicitly.
|
|
82
|
+
3. **SELF-CHECK before the state write**: read `implementation/implementation-plan.md` and confirm every task group ends with a rollback/checkpoint step. If any group is missing one, re-invoke the planner with the requirement restated — do not append the rollback steps yourself.
|
|
83
|
+
4. **Skill tool — `diagrams-mermaid`** (content-preserving) on `implementation/implementation-plan.md`: add one migration execution/state flow with rollback checkpoints. The written steps and rollback details remain authoritative; diagrams are explanatory. A skipped or failed refinement is not a failure — note it in `phase_summaries.plan.summary` and continue.
|
|
84
|
+
5. **State write**: append `plan-created` to `completed_phases`; set `phase_summaries.plan.summary`, `migration_outputs.implementation_plan`; bump `orchestrator.updated`. On failure: append `plan-created` to `failed_phases`, increment `auto_fix_attempts["plan-created"]`. Then re-read state + run `verify_template`.
|
|
85
|
+
|
|
86
|
+
## State Update Convention (per step)
|
|
87
|
+
|
|
88
|
+
1. **Write immediately** — update `orchestrator-state.yml` as soon as the step completes, appending ONLY the step slug actually performed (`plan-created`) plus that step's fields. Never batch multiple steps into one end-of-skill write.
|
|
89
|
+
2. **Timestamp** — set `orchestrator.updated` to the current UTC timestamp on every write.
|
|
90
|
+
3. **Failures** — a failed or abandoned step is NOT appended to `completed_phases`; append its slug to `orchestrator.failed_phases` and increment `auto_fix_attempts["<slug>"]`.
|
|
91
|
+
4. **Validate** — after every write, re-read the file to confirm values, then run the `verify_template` tool with `filePath: <task-path>/orchestrator-state.yml`, `templateName: orchestrator-state-migration.yml`. Fix any reported issue immediately.
|
|
92
|
+
5. **Final check** — before the Exit Gate, one consolidated re-read + `verify_template` run.
|
|
93
|
+
|
|
94
|
+
## Exit Gate
|
|
95
|
+
|
|
96
|
+
Present results, get user confirmation, then hand off (see [Gate Contract](../orchestrator-framework/references/gate-contract.md)). Never auto-invoke the next skill.
|
|
97
|
+
|
|
98
|
+
### Results box
|
|
99
|
+
|
|
100
|
+
```markdown
|
|
101
|
+
## ✅ MIGRATION PLAN COMPLETE — <task name>
|
|
102
|
+
|
|
103
|
+
**Task groups** — [N]
|
|
104
|
+
**Total steps** — [M]
|
|
105
|
+
**Rollback coverage** — ✅ every task group carries a rollback/checkpoint step
|
|
106
|
+
**Execution order** — [key dependencies, 1-2 lines]
|
|
107
|
+
**Diagram** — [added / skipped (optional)]
|
|
108
|
+
|
|
109
|
+
**Artifacts**
|
|
110
|
+
|
|
111
|
+
- `implementation/implementation-plan.md`
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### Results-acceptance question
|
|
115
|
+
|
|
116
|
+
Use `question` — "Are these results correct?" with options:
|
|
117
|
+
|
|
118
|
+
- **Accept** — the plan is good; continue.
|
|
119
|
+
- **Adjust** — regenerate the plan with the user's corrections (grouping, ordering, rollback steps), update state, re-present the results box.
|
|
120
|
+
- **Discuss** — walk through the task groups, dependencies, or rollback/checkpoint design in more depth; then re-ask.
|
|
121
|
+
- **Stop here** — print the resume command (`/owflow:migration-plan <task-path>`) and end.
|
|
122
|
+
|
|
123
|
+
### Next steps (after Accept)
|
|
124
|
+
|
|
125
|
+
- `→ /owflow:migration-implement <task-path>` — `required` next: executes the plan task group by task group with the per-group rollback/checkpoint steps and writes the work log. Remaining after: verify (→ fix when needed) → finalize.
|
|
126
|
+
|
|
127
|
+
**Other options**:
|
|
128
|
+
|
|
129
|
+
- `/owflow:goal-migration <task-path>` — `optional` shortcut: runs all remaining phases in one loop (implement → verify → fix when needed → finalize)
|
|
130
|
+
|
|
131
|
+
Then STOP.
|
|
@@ -1,135 +1,135 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: owflow:migration-spec
|
|
3
|
-
description: Migration — gathers requirements, delegates the specification with mandated rollback/dual-run sections, extracts the standalone plans, then refines diagrams (strategy-specified).
|
|
4
|
-
argument-hint: "[task-path-or-identifier]"
|
|
5
|
-
user-invocable: true
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Migration Spec — Requirements, Specification & Rollback/Dual-Run Plans (strategy-specified)
|
|
9
|
-
|
|
10
|
-
Work phase of the migration workflow. Gathers migration requirements inline, delegates specification creation to the reused `specification-creator` agent with **mandated** rollback/dual-run sections, extracts those sections into standalone authoritative artifacts, then refines the spec with diagrams.
|
|
11
|
-
|
|
12
|
-
## Entry Gate
|
|
13
|
-
|
|
14
|
-
### 1. Argument resolution
|
|
15
|
-
|
|
16
|
-
Resolve the `task-path-or-identifier` argument BEFORE anything else (see [Gate Contract](../orchestrator-framework/references/gate-contract.md)):
|
|
17
|
-
|
|
18
|
-
- **Path** (absolute or project-relative) to the task directory — use as-is.
|
|
19
|
-
- **Identifier** — exact directory name inside `.owflow/tasks/migrations/` (e.g., `2026-01-12-framework-upgrade`); resolve to its path.
|
|
20
|
-
- Missing argument, a path that does **not exist**, or no identifier match → print the blocked block (part 3), then STOP. Never guess or auto-pick a task.
|
|
21
|
-
|
|
22
|
-
### 2. Prerequisites
|
|
23
|
-
|
|
24
|
-
| Required for this skill | Where verified | Produced by |
|
|
25
|
-
| ----------------------- | ------------------------------------------------------------------------- | ---------------------------------- |
|
|
26
|
-
| State file exists | `<task-path>/orchestrator-state.yml` | `/owflow:migration <description>` (dispatcher init) or mid-pipeline bootstrap |
|
|
27
|
-
| Target state locked | `target-planned` in `completed_phases` **and** `analysis/target-state-plan.md` exists | `/owflow:migration-target <task-path>` |
|
|
28
|
-
|
|
29
|
-
### 3. Blocked output
|
|
30
|
-
|
|
31
|
-
1. Steps that must be completed first (in order), each with its command:
|
|
32
|
-
- Target state planning (`target-planned`) → `/owflow:migration-target <task-path>`
|
|
33
|
-
- Current-state analysis (`state-analysed`) → `/owflow:migration-analyze <task-path>` (if also missing)
|
|
34
|
-
- State initialization → `/owflow:migration <description>` (new task)
|
|
35
|
-
2. List available migration-task identifiers (directories under `.owflow/tasks/migrations/`) to resume from, if any.
|
|
36
|
-
3. Hint: `Run /owflow:migration <description> to start a migration task from scratch, or pass a task path/identifier to resume.`
|
|
37
|
-
|
|
38
|
-
Then STOP — never guess or auto-pick a task.
|
|
39
|
-
|
|
40
|
-
### 4. Missing-state bootstrap
|
|
41
|
-
|
|
42
|
-
When the only unmet prerequisite is the state file, use `question` — "No task exists at this path. Create a fresh standard migration task and start at `strategy-specified`?" with **Create task** / **Decline**.
|
|
43
|
-
|
|
44
|
-
- **On confirm**: create `.owflow/tasks/migrations/YYYY-MM-DD-task-name/` + `orchestrator-state.yml` from the migration template with `orchestrator.entry_point: "migration-spec (mid-pipeline bootstrap)"`, `orchestrator.started_phase: strategy-specified`, `completed_phases: []`, `task.title`/`task.description` from the argument. Run `verify_template` (`orchestrator-state-migration.yml`) immediately. Creates state ONLY — `analysis/target-state-plan.md` still blocks, so bootstrapping never skips upstream work.
|
|
45
|
-
- **On decline**: print `No migration task found at <path>. Run /owflow:migration <description> to start a migration task from scratch.` and STOP.
|
|
46
|
-
|
|
47
|
-
### 5. Skip/resume — artifacts before state
|
|
48
|
-
|
|
49
|
-
- `implementation/spec.md` **and** `analysis/rollback-plan.md` exist but `strategy-specified` is missing ⇒ **adopt**: append `strategy-specified`, backfill `migration_context.{rollback_plan_created, dual_run_configured}`, `phase_summaries.spec.summary`, and the `migration_outputs` paths where still null; run only the missing parts.
|
|
50
|
-
- `strategy-specified` is present but `implementation/spec.md` is missing ⇒ **drop** `strategy-specified` from `completed_phases` and re-run.
|
|
51
|
-
- `analysis/requirements.md` exists ⇒ adopt it and skip the requirement-questions part when it already covers the topics; `analysis/dual-run-plan.md` exists ⇒ `dual_run_configured: true`.
|
|
52
|
-
- Settled `rollback_plan_created` / `dual_run_configured` values are reported, not re-asked.
|
|
53
|
-
|
|
54
|
-
### 6. Conditional activation
|
|
55
|
-
|
|
56
|
-
Not applicable — `migration-spec` has no activation condition; the dual-run plan's presence is content-dependent (decided in the requirement questions), not an activation gate.
|
|
57
|
-
|
|
58
|
-
### 7. Recovery
|
|
59
|
-
|
|
60
|
-
| Step | Max Attempts | Strategy |
|
|
61
|
-
| ----------------------------------- | ------------ | -------------------------------------------------------------------------------------------- |
|
|
62
|
-
| Requirements | 2 | Re-gather in one consolidated question round |
|
|
63
|
-
| Specification (`strategy-specified`) | 2 | Re-invoke `specification-creator` with the missing mandated section explicitly demanded |
|
|
64
|
-
| Rollback/dual-run extraction | 2 | Re-extract verbatim from `implementation/spec.md`; if a mandated section is absent, re-run the delegation step |
|
|
65
|
-
|
|
66
|
-
## Execute
|
|
67
|
-
|
|
68
|
-
**Read first**: the [Delegation Rules](../orchestrator-framework/references/delegation-rules.md), then **read `references/migration-strategies.md`** (rollback-plan and dual-run-plan structures, strategy selection).
|
|
69
|
-
|
|
70
|
-
| Direction | Artifact | Producer |
|
|
71
|
-
| --------- | ------------------------------- | --------------------------------------------------------------- |
|
|
72
|
-
| Consumed | `analysis/target-state-plan.md` | `migration-target` (locked target, type, strategy) |
|
|
73
|
-
| Produced | `analysis/requirements.md` | inline `question` round (3–5 questions) |
|
|
74
|
-
| Produced | `implementation/spec.md` | `specification-creator` (**Task**, frozen contract) |
|
|
75
|
-
| Produced | `analysis/rollback-plan.md` | post-delegation verbatim extraction (always) |
|
|
76
|
-
| Produced | `analysis/dual-run-plan.md` | post-delegation verbatim extraction (when dual-run applies) |
|
|
77
|
-
|
|
78
|
-
### Requirements, Specification & Extraction (`strategy-specified`)
|
|
79
|
-
|
|
80
|
-
1. **Requirements gathering (inline)** — use `question` for 3–5 migration-specific questions: scope boundaries, rollback expectations and downtime tolerance, data-migration specifics, dual-run requirements, existing code/config to preserve. Frame as confirmable assumptions. Save to `analysis/requirements.md`.
|
|
81
|
-
2. **Project-doc discovery (nothing persisted)** — read `.owflow/docs/INDEX.md` if present, collect the Project Documentation paths as `project_context_paths`, and pass them directly to the delegate. There is no `project_context` state key; do not write one (assumption 8).
|
|
82
|
-
3. **Task tool — `specification-creator`** (frozen contract). Pass: `task_path`, `task_description`, `requirements_path` (`analysis/requirements.md`), `project_context_paths`, `migration_context.*` (type, current/target system, risk level, breaking changes), and relevant `phase_summaries`. The prompt **mandates** a `## Rollback Plan` section (always) and a `## Dual-Run Configuration` section (when dual-run applies) inside `implementation/spec.md`.
|
|
83
|
-
4. **Post-delegation extraction — before the diagrams step**: as soon as the delegation returns, extract those sections **verbatim** from `implementation/spec.md` into `analysis/rollback-plan.md` (always) and `analysis/dual-run-plan.md` (when present). The standalone artifact is authoritative; the spec section becomes its summary. Never let the diagrams step run first.
|
|
84
|
-
5. **Skill tool — `diagrams-mermaid`** (content-preserving) on `implementation/spec.md`: add a target-architecture and transition/compatibility visual as a supplement, never a replacement for strategy prose. Missing context → record open gaps instead of inventing systems.
|
|
85
|
-
6. **State write**: append `strategy-specified` to `completed_phases`; set `migration_context.rollback_plan_created: true`, `migration_context.dual_run_configured: true/false`, `phase_summaries.spec.summary`, `migration_outputs.requirements`, `migration_outputs.spec`, `migration_outputs.rollback_plan` (+ `migration_outputs.dual_run_plan` when produced); bump `orchestrator.updated`. On failure: append `strategy-specified` to `failed_phases`, increment `auto_fix_attempts["strategy-specified"]`. Then re-read state + run `verify_template`.
|
|
86
|
-
|
|
87
|
-
## State Update Convention (per step)
|
|
88
|
-
|
|
89
|
-
1. **Write immediately** — update `orchestrator-state.yml` as soon as the step completes, appending ONLY the step slug actually performed (`strategy-specified`) plus that step's fields. Never batch multiple steps into one end-of-skill write.
|
|
90
|
-
2. **Timestamp** — set `orchestrator.updated` to the current UTC timestamp on every write.
|
|
91
|
-
3. **Failures** — a failed or abandoned step is NOT appended to `completed_phases`; append its slug to `orchestrator.failed_phases` and increment `auto_fix_attempts["<slug>"]`.
|
|
92
|
-
4. **Validate** — after every write, re-read the file to confirm values, then run the `verify_template` tool with `filePath: <task-path>/orchestrator-state.yml`, `templateName: orchestrator-state-migration.yml`. Fix any reported issue immediately.
|
|
93
|
-
5. **Final check** — before the Exit Gate, one consolidated re-read + `verify_template` run.
|
|
94
|
-
|
|
95
|
-
## Exit Gate
|
|
96
|
-
|
|
97
|
-
Present results, get user confirmation, then hand off (see [Gate Contract](../orchestrator-framework/references/gate-contract.md)). Never auto-invoke the next skill.
|
|
98
|
-
|
|
99
|
-
### Results box
|
|
100
|
-
|
|
101
|
-
```markdown
|
|
102
|
-
## ✅ MIGRATION SPEC COMPLETE — <task name>
|
|
103
|
-
|
|
104
|
-
**Strategy** — [strategy from the locked target / spec]
|
|
105
|
-
**Scope** — [N included / M excluded]
|
|
106
|
-
**Rollback plan** — ✅ `analysis/rollback-plan.md` (standalone, authoritative)
|
|
107
|
-
**Dual-run** — [configured → `analysis/dual-run-plan.md` / not applicable]
|
|
108
|
-
**Diagrams** — [added / skipped (optional)]
|
|
109
|
-
|
|
110
|
-
**Artifacts**
|
|
111
|
-
|
|
112
|
-
- `analysis/requirements.md`
|
|
113
|
-
- `implementation/spec.md` (mandates the Rollback Plan / Dual-Run Configuration sections)
|
|
114
|
-
- `analysis/rollback-plan.md`
|
|
115
|
-
- `analysis/dual-run-plan.md` [conditional]
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
### Results-acceptance question
|
|
119
|
-
|
|
120
|
-
Use `question` — "Are these results correct?" with options:
|
|
121
|
-
|
|
122
|
-
- **Accept** — the specification and extracted plans are correct; continue.
|
|
123
|
-
- **Adjust** — re-run only the affected part (requirements, spec delegation, extraction, diagrams), update state and artifacts, re-present the results box.
|
|
124
|
-
- **Discuss** — walk through scope boundaries, the rollback approach, or the dual-run decision in more depth; then re-ask.
|
|
125
|
-
- **Stop here** — print the resume command (`/owflow:migration-spec <task-path>`) and end.
|
|
126
|
-
|
|
127
|
-
### Next steps (after Accept)
|
|
128
|
-
|
|
129
|
-
- `→ /owflow:migration-plan <task-path>` — `required` next: breaks the approved spec into task groups, mandating a rollback/checkpoint step in every group. Remaining after: implement → verify (→ fix when needed) → finalize.
|
|
130
|
-
|
|
131
|
-
**Other options**:
|
|
132
|
-
|
|
133
|
-
- `/owflow:goal-migration <task-path>` — `optional` shortcut: runs all remaining phases in one loop (plan → implement → verify → fix when needed → finalize)
|
|
134
|
-
|
|
135
|
-
Then STOP.
|
|
1
|
+
---
|
|
2
|
+
name: owflow:migration-spec
|
|
3
|
+
description: Migration — gathers requirements, delegates the specification with mandated rollback/dual-run sections, extracts the standalone plans, then refines diagrams (strategy-specified).
|
|
4
|
+
argument-hint: "[task-path-or-identifier]"
|
|
5
|
+
user-invocable: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Migration Spec — Requirements, Specification & Rollback/Dual-Run Plans (strategy-specified)
|
|
9
|
+
|
|
10
|
+
Work phase of the migration workflow. Gathers migration requirements inline, delegates specification creation to the reused `specification-creator` agent with **mandated** rollback/dual-run sections, extracts those sections into standalone authoritative artifacts, then refines the spec with diagrams.
|
|
11
|
+
|
|
12
|
+
## Entry Gate
|
|
13
|
+
|
|
14
|
+
### 1. Argument resolution
|
|
15
|
+
|
|
16
|
+
Resolve the `task-path-or-identifier` argument BEFORE anything else (see [Gate Contract](../orchestrator-framework/references/gate-contract.md)):
|
|
17
|
+
|
|
18
|
+
- **Path** (absolute or project-relative) to the task directory — use as-is.
|
|
19
|
+
- **Identifier** — exact directory name inside `.owflow/tasks/migrations/` (e.g., `2026-01-12-framework-upgrade`); resolve to its path.
|
|
20
|
+
- Missing argument, a path that does **not exist**, or no identifier match → print the blocked block (part 3), then STOP. Never guess or auto-pick a task.
|
|
21
|
+
|
|
22
|
+
### 2. Prerequisites
|
|
23
|
+
|
|
24
|
+
| Required for this skill | Where verified | Produced by |
|
|
25
|
+
| ----------------------- | ------------------------------------------------------------------------- | ---------------------------------- |
|
|
26
|
+
| State file exists | `<task-path>/orchestrator-state.yml` | `/owflow:migration <description>` (dispatcher init) or mid-pipeline bootstrap |
|
|
27
|
+
| Target state locked | `target-planned` in `completed_phases` **and** `analysis/target-state-plan.md` exists | `/owflow:migration-target <task-path>` |
|
|
28
|
+
|
|
29
|
+
### 3. Blocked output
|
|
30
|
+
|
|
31
|
+
1. Steps that must be completed first (in order), each with its command:
|
|
32
|
+
- Target state planning (`target-planned`) → `/owflow:migration-target <task-path>`
|
|
33
|
+
- Current-state analysis (`state-analysed`) → `/owflow:migration-analyze <task-path>` (if also missing)
|
|
34
|
+
- State initialization → `/owflow:migration <description>` (new task)
|
|
35
|
+
2. List available migration-task identifiers (directories under `.owflow/tasks/migrations/`) to resume from, if any.
|
|
36
|
+
3. Hint: `Run /owflow:migration <description> to start a migration task from scratch, or pass a task path/identifier to resume.`
|
|
37
|
+
|
|
38
|
+
Then STOP — never guess or auto-pick a task.
|
|
39
|
+
|
|
40
|
+
### 4. Missing-state bootstrap
|
|
41
|
+
|
|
42
|
+
When the only unmet prerequisite is the state file, use `question` — "No task exists at this path. Create a fresh standard migration task and start at `strategy-specified`?" with **Create task** / **Decline**.
|
|
43
|
+
|
|
44
|
+
- **On confirm**: create `.owflow/tasks/migrations/YYYY-MM-DD-task-name/` + `orchestrator-state.yml` from the migration template with `orchestrator.entry_point: "migration-spec (mid-pipeline bootstrap)"`, `orchestrator.started_phase: strategy-specified`, `completed_phases: []`, `task.title`/`task.description` from the argument. Run `verify_template` (`orchestrator-state-migration.yml`) immediately. Creates state ONLY — `analysis/target-state-plan.md` still blocks, so bootstrapping never skips upstream work.
|
|
45
|
+
- **On decline**: print `No migration task found at <path>. Run /owflow:migration <description> to start a migration task from scratch.` and STOP.
|
|
46
|
+
|
|
47
|
+
### 5. Skip/resume — artifacts before state
|
|
48
|
+
|
|
49
|
+
- `implementation/spec.md` **and** `analysis/rollback-plan.md` exist but `strategy-specified` is missing ⇒ **adopt**: append `strategy-specified`, backfill `migration_context.{rollback_plan_created, dual_run_configured}`, `phase_summaries.spec.summary`, and the `migration_outputs` paths where still null; run only the missing parts.
|
|
50
|
+
- `strategy-specified` is present but `implementation/spec.md` is missing ⇒ **drop** `strategy-specified` from `completed_phases` and re-run.
|
|
51
|
+
- `analysis/requirements.md` exists ⇒ adopt it and skip the requirement-questions part when it already covers the topics; `analysis/dual-run-plan.md` exists ⇒ `dual_run_configured: true`.
|
|
52
|
+
- Settled `rollback_plan_created` / `dual_run_configured` values are reported, not re-asked.
|
|
53
|
+
|
|
54
|
+
### 6. Conditional activation
|
|
55
|
+
|
|
56
|
+
Not applicable — `migration-spec` has no activation condition; the dual-run plan's presence is content-dependent (decided in the requirement questions), not an activation gate.
|
|
57
|
+
|
|
58
|
+
### 7. Recovery
|
|
59
|
+
|
|
60
|
+
| Step | Max Attempts | Strategy |
|
|
61
|
+
| ----------------------------------- | ------------ | -------------------------------------------------------------------------------------------- |
|
|
62
|
+
| Requirements | 2 | Re-gather in one consolidated question round |
|
|
63
|
+
| Specification (`strategy-specified`) | 2 | Re-invoke `specification-creator` with the missing mandated section explicitly demanded |
|
|
64
|
+
| Rollback/dual-run extraction | 2 | Re-extract verbatim from `implementation/spec.md`; if a mandated section is absent, re-run the delegation step |
|
|
65
|
+
|
|
66
|
+
## Execute
|
|
67
|
+
|
|
68
|
+
**Read first**: the [Delegation Rules](../orchestrator-framework/references/delegation-rules.md), then **read `references/migration-strategies.md`** (rollback-plan and dual-run-plan structures, strategy selection).
|
|
69
|
+
|
|
70
|
+
| Direction | Artifact | Producer |
|
|
71
|
+
| --------- | ------------------------------- | --------------------------------------------------------------- |
|
|
72
|
+
| Consumed | `analysis/target-state-plan.md` | `migration-target` (locked target, type, strategy) |
|
|
73
|
+
| Produced | `analysis/requirements.md` | inline `question` round (3–5 questions) |
|
|
74
|
+
| Produced | `implementation/spec.md` | `specification-creator` (**Task**, frozen contract) |
|
|
75
|
+
| Produced | `analysis/rollback-plan.md` | post-delegation verbatim extraction (always) |
|
|
76
|
+
| Produced | `analysis/dual-run-plan.md` | post-delegation verbatim extraction (when dual-run applies) |
|
|
77
|
+
|
|
78
|
+
### Requirements, Specification & Extraction (`strategy-specified`)
|
|
79
|
+
|
|
80
|
+
1. **Requirements gathering (inline)** — use `question` for 3–5 migration-specific questions: scope boundaries, rollback expectations and downtime tolerance, data-migration specifics, dual-run requirements, existing code/config to preserve. Frame as confirmable assumptions. Save to `analysis/requirements.md`.
|
|
81
|
+
2. **Project-doc discovery (nothing persisted)** — read `.owflow/docs/INDEX.md` if present, collect the Project Documentation paths as `project_context_paths`, and pass them directly to the delegate. There is no `project_context` state key; do not write one (assumption 8).
|
|
82
|
+
3. **Task tool — `specification-creator`** (frozen contract). Pass: `task_path`, `task_description`, `requirements_path` (`analysis/requirements.md`), `project_context_paths`, `migration_context.*` (type, current/target system, risk level, breaking changes), and relevant `phase_summaries`. The prompt **mandates** a `## Rollback Plan` section (always) and a `## Dual-Run Configuration` section (when dual-run applies) inside `implementation/spec.md`.
|
|
83
|
+
4. **Post-delegation extraction — before the diagrams step**: as soon as the delegation returns, extract those sections **verbatim** from `implementation/spec.md` into `analysis/rollback-plan.md` (always) and `analysis/dual-run-plan.md` (when present). The standalone artifact is authoritative; the spec section becomes its summary. Never let the diagrams step run first.
|
|
84
|
+
5. **Skill tool — `diagrams-mermaid`** (content-preserving) on `implementation/spec.md`: add a target-architecture and transition/compatibility visual as a supplement, never a replacement for strategy prose. Missing context → record open gaps instead of inventing systems.
|
|
85
|
+
6. **State write**: append `strategy-specified` to `completed_phases`; set `migration_context.rollback_plan_created: true`, `migration_context.dual_run_configured: true/false`, `phase_summaries.spec.summary`, `migration_outputs.requirements`, `migration_outputs.spec`, `migration_outputs.rollback_plan` (+ `migration_outputs.dual_run_plan` when produced); bump `orchestrator.updated`. On failure: append `strategy-specified` to `failed_phases`, increment `auto_fix_attempts["strategy-specified"]`. Then re-read state + run `verify_template`.
|
|
86
|
+
|
|
87
|
+
## State Update Convention (per step)
|
|
88
|
+
|
|
89
|
+
1. **Write immediately** — update `orchestrator-state.yml` as soon as the step completes, appending ONLY the step slug actually performed (`strategy-specified`) plus that step's fields. Never batch multiple steps into one end-of-skill write.
|
|
90
|
+
2. **Timestamp** — set `orchestrator.updated` to the current UTC timestamp on every write.
|
|
91
|
+
3. **Failures** — a failed or abandoned step is NOT appended to `completed_phases`; append its slug to `orchestrator.failed_phases` and increment `auto_fix_attempts["<slug>"]`.
|
|
92
|
+
4. **Validate** — after every write, re-read the file to confirm values, then run the `verify_template` tool with `filePath: <task-path>/orchestrator-state.yml`, `templateName: orchestrator-state-migration.yml`. Fix any reported issue immediately.
|
|
93
|
+
5. **Final check** — before the Exit Gate, one consolidated re-read + `verify_template` run.
|
|
94
|
+
|
|
95
|
+
## Exit Gate
|
|
96
|
+
|
|
97
|
+
Present results, get user confirmation, then hand off (see [Gate Contract](../orchestrator-framework/references/gate-contract.md)). Never auto-invoke the next skill.
|
|
98
|
+
|
|
99
|
+
### Results box
|
|
100
|
+
|
|
101
|
+
```markdown
|
|
102
|
+
## ✅ MIGRATION SPEC COMPLETE — <task name>
|
|
103
|
+
|
|
104
|
+
**Strategy** — [strategy from the locked target / spec]
|
|
105
|
+
**Scope** — [N included / M excluded]
|
|
106
|
+
**Rollback plan** — ✅ `analysis/rollback-plan.md` (standalone, authoritative)
|
|
107
|
+
**Dual-run** — [configured → `analysis/dual-run-plan.md` / not applicable]
|
|
108
|
+
**Diagrams** — [added / skipped (optional)]
|
|
109
|
+
|
|
110
|
+
**Artifacts**
|
|
111
|
+
|
|
112
|
+
- `analysis/requirements.md`
|
|
113
|
+
- `implementation/spec.md` (mandates the Rollback Plan / Dual-Run Configuration sections)
|
|
114
|
+
- `analysis/rollback-plan.md`
|
|
115
|
+
- `analysis/dual-run-plan.md` [conditional]
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### Results-acceptance question
|
|
119
|
+
|
|
120
|
+
Use `question` — "Are these results correct?" with options:
|
|
121
|
+
|
|
122
|
+
- **Accept** — the specification and extracted plans are correct; continue.
|
|
123
|
+
- **Adjust** — re-run only the affected part (requirements, spec delegation, extraction, diagrams), update state and artifacts, re-present the results box.
|
|
124
|
+
- **Discuss** — walk through scope boundaries, the rollback approach, or the dual-run decision in more depth; then re-ask.
|
|
125
|
+
- **Stop here** — print the resume command (`/owflow:migration-spec <task-path>`) and end.
|
|
126
|
+
|
|
127
|
+
### Next steps (after Accept)
|
|
128
|
+
|
|
129
|
+
- `→ /owflow:migration-plan <task-path>` — `required` next: breaks the approved spec into task groups, mandating a rollback/checkpoint step in every group. Remaining after: implement → verify (→ fix when needed) → finalize.
|
|
130
|
+
|
|
131
|
+
**Other options**:
|
|
132
|
+
|
|
133
|
+
- `/owflow:goal-migration <task-path>` — `optional` shortcut: runs all remaining phases in one loop (plan → implement → verify → fix when needed → finalize)
|
|
134
|
+
|
|
135
|
+
Then STOP.
|