ultra-builder-pro-cli 0.14.0 → 0.16.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.
Files changed (163) hide show
  1. package/.ultra-template/docs/research/README.md +11 -7
  2. package/.ultra-template/specs/architecture.md +36 -36
  3. package/.ultra-template/specs/discovery.md +46 -33
  4. package/.ultra-template/specs/product.md +38 -29
  5. package/.ultra-template/specs/research-distillate.md +48 -0
  6. package/.ultra-template/tasks/contexts/TEMPLATE.md +11 -28
  7. package/CHANGELOG.md +77 -1
  8. package/README.md +46 -24
  9. package/adapters/_shared/codex-assets.cjs +6 -2
  10. package/adapters/_shared/file-ops.cjs +6 -2
  11. package/adapters/_shared/handbook.cjs +2 -1
  12. package/adapters/claude.js +3 -2
  13. package/adapters/codex.js +1 -0
  14. package/adapters/kimi.js +3 -2
  15. package/adapters/opencode.js +3 -2
  16. package/agents/review-coordinator.md +9 -6
  17. package/commands/ultra-change.md +1 -1
  18. package/commands/ultra-plan.md +1 -1
  19. package/commands/ultra-research.md +1 -1
  20. package/commands/ultra-think.md +2 -2
  21. package/docs/AGENT-CONTEXT.md +43 -19
  22. package/docs/ARCHITECTURE.md +54 -13
  23. package/docs/PLAN.zh-CN.md +4 -2
  24. package/docs/ROADMAP.md +10 -4
  25. package/docs/RUNTIME-COMPAT-MATRIX.md +4 -4
  26. package/docs/STATE-DB-ACCESS-POLICY.md +33 -29
  27. package/docs/USER-HANDBOOK-CONTRACT.md +8 -2
  28. package/docs/WORKFLOW-LIFECYCLE.md +342 -0
  29. package/hooks/README.md +6 -1
  30. package/hooks/health_check.py +12 -3
  31. package/hooks/subagent_tracker.py +52 -77
  32. package/mcp-server/hook-event.cjs +34 -0
  33. package/mcp-server/lib/archive-journal.cjs +17 -5
  34. package/mcp-server/lib/baseline-workflow.cjs +158 -18
  35. package/mcp-server/lib/change-workflow.cjs +598 -85
  36. package/mcp-server/lib/context-spine.cjs +305 -25
  37. package/mcp-server/lib/decision-dialogue.cjs +713 -0
  38. package/mcp-server/lib/doctor.cjs +42 -3
  39. package/mcp-server/lib/init-project.cjs +210 -16
  40. package/mcp-server/lib/plan-store.cjs +4 -1
  41. package/mcp-server/lib/pricing.cjs +7 -10
  42. package/mcp-server/lib/project-breadcrumb.cjs +15 -0
  43. package/mcp-server/lib/projector.cjs +57 -3
  44. package/mcp-server/lib/spec-learning.cjs +79 -2
  45. package/mcp-server/lib/state-db.cjs +168 -8
  46. package/mcp-server/lib/state-ops.cjs +160 -9
  47. package/mcp-server/lib/workflow-state.cjs +2305 -0
  48. package/mcp-server/server.cjs +215 -15
  49. package/orchestrator/daemon.cjs +1 -2
  50. package/orchestrator/dispatch-rules.cjs +5 -31
  51. package/orchestrator/planner/plan-builder.cjs +21 -12
  52. package/package.json +13 -3
  53. package/skills/ultra-change/SKILL.md +94 -80
  54. package/skills/ultra-change/references/change-contract.md +36 -0
  55. package/skills/ultra-deliver/SKILL.md +76 -79
  56. package/skills/ultra-deliver/references/baseline-reconciliation.md +20 -0
  57. package/skills/ultra-dev/SKILL.md +62 -59
  58. package/skills/ultra-doctor/SKILL.md +61 -82
  59. package/skills/ultra-init/SKILL.md +101 -103
  60. package/skills/ultra-init/references/brownfield-adoption.md +2 -2
  61. package/skills/ultra-plan/SKILL.md +99 -85
  62. package/skills/ultra-plan/references/semantic-preflight.md +18 -0
  63. package/skills/ultra-research/SKILL.md +102 -60
  64. package/skills/ultra-research/references/00-problem-validation.md +36 -0
  65. package/skills/ultra-research/references/01-opportunity-discovery.md +33 -0
  66. package/skills/ultra-research/references/02-market-assessment.md +30 -0
  67. package/skills/ultra-research/references/03-competitive-landscape.md +31 -0
  68. package/skills/ultra-research/references/04-product-strategy.md +32 -0
  69. package/skills/ultra-research/references/05-assumptions-validation.md +31 -0
  70. package/skills/ultra-research/references/10-user-personas.md +29 -0
  71. package/skills/ultra-research/references/11-user-scenarios.md +28 -0
  72. package/skills/ultra-research/references/20-user-stories.md +30 -0
  73. package/skills/ultra-research/references/21-features-scope.md +29 -0
  74. package/skills/ultra-research/references/22-success-metrics.md +28 -0
  75. package/skills/ultra-research/references/30-architecture-context.md +30 -0
  76. package/skills/ultra-research/references/31-solution-strategy.md +28 -0
  77. package/skills/ultra-research/references/32-building-blocks.md +28 -0
  78. package/skills/ultra-research/references/40-deployment.md +29 -0
  79. package/skills/ultra-research/references/41-quality-risks.md +28 -0
  80. package/skills/ultra-research/references/99-synthesis.md +35 -0
  81. package/skills/ultra-review/SKILL.md +63 -73
  82. package/skills/ultra-review/references/review-modes.md +27 -0
  83. package/skills/ultra-review/references/unified-schema.md +25 -0
  84. package/skills/ultra-review/scripts/review_wait.py +40 -3
  85. package/skills/ultra-status/SKILL.md +41 -41
  86. package/skills/ultra-test/SKILL.md +54 -55
  87. package/skills/ultra-think/SKILL.md +26 -12
  88. package/skills/ultra-think/references/decision-dialogue.md +130 -0
  89. package/skills/ultra-verify/SKILL.md +1 -1
  90. package/skills/ultra-verify/references/{confidence-system.md → evidence-status.md} +3 -3
  91. package/spec/cli-protocol.md +17 -3
  92. package/spec/mcp-tools.yaml +683 -64
  93. package/spec/schemas/baseline-reconciliation.v1.schema.json +73 -0
  94. package/spec/schemas/delivery-report.v1.schema.json +111 -0
  95. package/spec/schemas/mcp-tools.schema.json +1 -1
  96. package/spec/schemas/state-db.sql +140 -1
  97. package/spec/schemas/tasks.v4.5.schema.json +8 -1
  98. package/spec/schemas/test-report.v1.schema.json +194 -0
  99. package/ultra-tools/cli.cjs +1 -1
  100. package/ultra-tools/commands/migrate.cjs +3 -3
  101. package/ultra-tools/commands/status.cjs +228 -12
  102. package/.ultra-template/delivery-report.json +0 -9
  103. package/.ultra-template/test-report.json +0 -8
  104. package/adapters/_shared/tests/file-ops.test.cjs +0 -54
  105. package/adapters/_shared/tests/frontmatter.test.cjs +0 -47
  106. package/adapters/_shared/tests/handbook.test.cjs +0 -101
  107. package/adapters/_shared/tests/path-rewrite.test.cjs +0 -60
  108. package/adapters/_shared/tests/provenance.test.cjs +0 -133
  109. package/adapters/_shared/tests/resolve-target.test.cjs +0 -75
  110. package/adapters/_shared/tests/runtime-assets.test.cjs +0 -149
  111. package/adapters/_shared/tests/settings-merge.test.cjs +0 -85
  112. package/adapters/_shared/tests/validate.test.cjs +0 -30
  113. package/adapters/tests/claude.test.cjs +0 -138
  114. package/adapters/tests/codex-hook.test.cjs +0 -142
  115. package/adapters/tests/codex.test.cjs +0 -430
  116. package/adapters/tests/kimi-hook.test.cjs +0 -149
  117. package/adapters/tests/kimi.test.cjs +0 -259
  118. package/adapters/tests/opencode.test.cjs +0 -357
  119. package/mcp-server/lib/archive-journal.test.cjs +0 -35
  120. package/mcp-server/lib/baseline-workflow.test.cjs +0 -477
  121. package/mcp-server/lib/change-workflow.test.cjs +0 -971
  122. package/mcp-server/lib/context-spine.test.cjs +0 -93
  123. package/mcp-server/lib/doctor.test.cjs +0 -148
  124. package/mcp-server/lib/plan-store.test.cjs +0 -132
  125. package/mcp-server/lib/prd-parser.test.cjs +0 -82
  126. package/mcp-server/lib/project-breadcrumb.test.cjs +0 -112
  127. package/mcp-server/lib/runtime-state.test.cjs +0 -92
  128. package/mcp-server/lib/spec-learning.test.cjs +0 -67
  129. package/mcp-server/lib/state-db.test.cjs +0 -314
  130. package/mcp-server/lib/task-expander.test.cjs +0 -169
  131. package/mcp-server/lib/topo.test.cjs +0 -158
  132. package/mcp-server/tests/circuit-breaker.test.cjs +0 -125
  133. package/mcp-server/tests/commit-hash-flow.test.cjs +0 -117
  134. package/mcp-server/tests/concurrency-update.test.cjs +0 -96
  135. package/mcp-server/tests/concurrency.test.cjs +0 -112
  136. package/mcp-server/tests/db-ops.test.cjs +0 -121
  137. package/mcp-server/tests/init-project.test.cjs +0 -393
  138. package/mcp-server/tests/migrate.test.cjs +0 -232
  139. package/mcp-server/tests/projector.test.cjs +0 -162
  140. package/mcp-server/tests/server-contract.test.cjs +0 -1467
  141. package/mcp-server/tests/staleness.test.cjs +0 -190
  142. package/mcp-server/tests/state-db.test.cjs +0 -106
  143. package/mcp-server/tests/state-ops.test.cjs +0 -449
  144. package/mcp-server/tests/tagged-tasks.test.cjs +0 -163
  145. package/mcp-server/tests/telemetry.test.cjs +0 -219
  146. package/orchestrator/planner/plan-builder.test.cjs +0 -165
  147. package/orchestrator/tests/auto-merge.test.cjs +0 -216
  148. package/orchestrator/tests/daemon.test.cjs +0 -311
  149. package/orchestrator/tests/dispatch-rules.test.cjs +0 -124
  150. package/orchestrator/tests/parallel-orchestrator.test.cjs +0 -233
  151. package/orchestrator/tests/phase-8b-gate.test.cjs +0 -183
  152. package/orchestrator/tests/recovery.test.cjs +0 -190
  153. package/orchestrator/tests/session-runner.test.cjs +0 -314
  154. package/orchestrator/tests/skill-miner.test.cjs +0 -147
  155. package/orchestrator/tests/worktree-manager.test.cjs +0 -148
  156. package/skills/ultra-research/references/architecture.md +0 -38
  157. package/skills/ultra-research/references/problem-product.md +0 -39
  158. package/skills/ultra-research/references/quality-delivery.md +0 -34
  159. package/skills/ultra-research/references/synthesis.md +0 -38
  160. package/skills/ultra-research/references/users-scope.md +0 -40
  161. package/ultra-tools/legacy-memory.test.cjs +0 -80
  162. package/ultra-tools/status-command.test.cjs +0 -181
  163. package/ultra-tools/system-command.test.cjs +0 -309
@@ -1,18 +1,18 @@
1
1
  ---
2
2
  name: ultra-think
3
- description: Produce an evidence-bounded recommendation or diagnosis for a consequential technical or product question. Use when the decision has material tradeoffs, uncertainty, or failure risk that benefits from explicit stress testing.
3
+ description: Resolve a consequential product or technical question through evidence-first analysis or a resumable one-decision-at-a-time owner dialogue. Use when tradeoffs, ambiguity, diagnosis, or failure risk require shared understanding before research, planning, or implementation proceeds.
4
4
  ---
5
5
 
6
- # Analyze a consequential question
6
+ # Align on a consequential question
7
7
 
8
- Use the smallest reasoning structure that resolves the user's actual decision. Answer
9
- simple questions directly; do not turn every request into a framework exercise.
8
+ Use the smallest reasoning structure that resolves the user's actual decision. Answer a
9
+ simple self-contained question directly. For a project-bound or multi-turn decision,
10
+ read `references/decision-dialogue.md` and use its durable protocol.
10
11
 
11
- ## Workflow
12
+ ## Establish evidence
12
13
 
13
14
  1. State the decision, observed symptom, or disputed claim and the constraints that
14
- could change the answer. Ask only for missing information that materially affects
15
- the result.
15
+ could change the answer.
16
16
  2. Gather evidence from the most authoritative available source:
17
17
  - current checkout and runtime for repository claims;
18
18
  - official primary documentation for product or API behavior;
@@ -31,8 +31,19 @@ simple questions directly; do not turn every request into a framework exercise.
31
31
  - likely failure scenario and recovery;
32
32
  - load-bearing assumption;
33
33
  - meaningful second-order effect.
34
- 7. Return the recommendation or diagnosis, evidence, uncertainty, what would change
35
- the conclusion, and the smallest verification step.
34
+ 7. Decide whether the question is now answerable or still requires owner authority.
35
+
36
+ ## Route the result
37
+
38
+ - For an answerable read-only question, return the recommendation or diagnosis,
39
+ decisive evidence, uncertainty, what would change the conclusion, and one smallest
40
+ verification step.
41
+ - For a load-bearing owner decision, bind or resume a decision thread, open the one
42
+ earliest decision, present it using the shared protocol, and STOP.
43
+ - After an answer, normalize it through `decision.resolve`, `decision.delegate`, or
44
+ `decision.defer`; never store the conversation transcript.
45
+ - At a phase boundary, prepare the checkpoint, obtain approval, bind current artifact
46
+ digests when project-bound, and only then return control to the invoking workflow.
36
47
 
37
48
  ## Output
38
49
 
@@ -46,6 +57,9 @@ Adapt the response to the question. Include:
46
57
  Use a comparison table only when several alternatives share the same decision
47
58
  criteria. Comparisons are an analysis tool, not a required output section.
48
59
 
49
- This skill is read-only unless the user separately authorizes writing an analysis
50
- artifact. It does not update Ultra state, implement the recommendation, or replace an
51
- independent review.
60
+ Unbound analysis is read-only. A project-bound dialogue may write only decision state
61
+ and explicitly approved checkpoint artifacts. It does not implement the decision or
62
+ replace research, planning, testing, or independent review. After a confirmed
63
+ checkpoint, return to the exact invoking `ultra-init`, `ultra-research`, `ultra-change`,
64
+ `ultra-plan`, `ultra-dev`, `ultra-test`, `ultra-review`, or `ultra-deliver` run and
65
+ current step; never choose a new route from conversation history.
@@ -0,0 +1,130 @@
1
+ # Decision dialogue protocol
2
+
3
+ Use this protocol when an Ultra workflow reaches a load-bearing owner decision. Keep
4
+ fact acquisition autonomous and decision authority explicit. Do not use it for facts
5
+ that repository, runtime, tests, or primary sources can answer.
6
+
7
+ ## Select the interaction depth
8
+
9
+ - `guided`: ask every unresolved decision that changes accepted product intent, scope,
10
+ public behavior, security, material cost, compatibility, delivery semantics, or
11
+ recovery. Use for initial research and major changes.
12
+ - `fast`: ask only unresolved one-way-door or materially expensive decisions. Decide
13
+ reversible implementation detail inside accepted constraints. Use for bounded daily
14
+ work.
15
+ - `autonomous`: use only after the owner explicitly delegates reversible decisions.
16
+ Preserve the delegation, selected result, rationale, and guardrails.
17
+ - `diagnostic`: acquire evidence and distinguish falsifiable hypotheses before asking
18
+ for a recovery or product decision.
19
+
20
+ Do not ask a meta-question about mode when the user's request or current change profile
21
+ already determines the appropriate depth.
22
+
23
+ ## Separate evidence from decisions
24
+
25
+ Before asking:
26
+
27
+ 1. Inspect current authority, repository, runtime, tests, and relevant primary sources.
28
+ 2. Resolve factual unknowns yourself when evidence is obtainable.
29
+ 3. Separate `Observed`, `Verified`, `Decided`, and `Unknown`.
30
+ 4. Identify the earliest unresolved decision on which later decisions depend.
31
+ 5. Form a private candidate queue, but expose only its current item. Do not dump the
32
+ backlog, a questionnaire, or every research step.
33
+
34
+ If more evidence can resolve the current uncertainty, perform that research first. If
35
+ the user says they do not know, convert the gap into a bounded validation action rather
36
+ than pressuring them to guess.
37
+
38
+ ## Bind durable authority
39
+
40
+ For a project-bound dialogue:
41
+
42
+ 1. Call `decision.list` and resume the matching `active` or `checkpoint_ready` thread.
43
+ 2. Otherwise call `decision.thread_start` with one baseline, change, or workflow
44
+ binding, a concise purpose, and the selected mode. Never store raw prompts or
45
+ transcripts.
46
+ 3. Call `decision.open` for exactly one decision. Include:
47
+ - why it must be decided now;
48
+ - the evidence-backed recommendation;
49
+ - zero to three credible alternatives with their net tradeoff;
50
+ - evidence references;
51
+ - the contract, artifact, gate, or task effects;
52
+ - whether deferral blocks progress.
53
+
54
+ Do not encode future questions as open decisions. Re-evaluate the next candidate after
55
+ each answer so the dialogue adapts instead of following a static questionnaire.
56
+
57
+ ## Present one decision and stop
58
+
59
+ Use a compact shape adapted to the user's language:
60
+
61
+ ```text
62
+ Decision <position when known>: <question>
63
+ Why now: <one sentence>
64
+ Recommendation: <choice or next validation> — <reason>
65
+ Options: <only credible alternatives and their net tradeoff>
66
+ Effect: <what this answer changes>
67
+ ```
68
+
69
+ Ask one question only. Do not combine dependent questions, append a second request, or
70
+ continue into analysis, planning, edits, or another workflow step. End the turn and
71
+ wait. This STOP is mandatory even when the likely answer seems obvious.
72
+
73
+ ## Normalize the answer
74
+
75
+ On the next turn:
76
+
77
+ - When the answer is unambiguous, briefly reflect the normalized decision and its
78
+ durable effect, then call `decision.resolve` with the decision, rationale, and owner.
79
+ - When the user says "you decide", select the reversible result within stated bounds
80
+ and call `decision.delegate` with the explicit delegation, result, rationale, and
81
+ guardrails. Never represent delegation as a direct owner decision.
82
+ - When the user defers, call `decision.defer` with the reason, consequence, and revisit
83
+ condition. A blocking deferral remains a gate.
84
+ - When the answer is ambiguous, ask one clarification for the same decision; do not
85
+ infer a product choice from tone or partial wording.
86
+ - When evidence or owner intent changes a resolved decision, call
87
+ `decision.supersede`. Preserve the prior record and open one replacement question.
88
+
89
+ Do not require a redundant confirmation after a clear answer. The owner can correct
90
+ the compact reflection; phase checkpoint approval is the durable confirmation.
91
+
92
+ ## Checkpoint before projection
93
+
94
+ After a coherent cluster of decisions or a phase boundary:
95
+
96
+ 1. Call `decision.checkpoint` with `action: "prepare"` and a compact shared
97
+ understanding. Open or blocking-deferred decisions must prevent preparation.
98
+ 2. Present only accepted decisions, unresolved consequences, and the artifacts that
99
+ will change. Ask for one checkpoint approval and STOP.
100
+ 3. After approval, update the target specification, Change Contract, delta, or plan
101
+ from normalized decisions. Do not write conversation transcripts.
102
+ 4. Call `decision.checkpoint` with `action: "confirm"`, owner approval, and the current
103
+ artifact paths. MCP binds their digests. A change- or workflow-bound thread must
104
+ bind at least one artifact. When a shared specification will continue evolving,
105
+ bind a stable decision projection under `.ultra/docs/decisions/<thread-id>.md`
106
+ instead of a mutable draft that would immediately become stale. Only a standalone
107
+ baseline thinking thread may use an explicit no-artifact reason.
108
+ 5. Re-read the confirmed thread. Only then may the linked workflow complete the gated
109
+ step or move to another phase.
110
+
111
+ If a bound artifact changes while the normalized decisions remain valid, prepare the
112
+ same thread again, show the changed effect, obtain one new checkpoint approval, and
113
+ confirm the current digest. Do not invent a replacement decision merely to refresh an
114
+ artifact. If the decision itself changed, use supersession instead.
115
+
116
+ Start a new thread for a new decision cluster. Supersede an old item only when the old
117
+ decision itself changed.
118
+
119
+ ## Keep the user surface small
120
+
121
+ At each turn show only:
122
+
123
+ - the current decision or checkpoint;
124
+ - the decisive evidence and recommendation;
125
+ - the effect of the answer;
126
+ - optionally the number of already resolved decisions.
127
+
128
+ Provide the hidden evidence inventory, all semantic steps, or full report paths only
129
+ when requested. Context and token budgets are advisory; they never justify omitting
130
+ load-bearing evidence or refusing legitimate work.
@@ -36,7 +36,7 @@ never recurse into the current host or treat advisor output as authority.
36
36
  7. Write `metadata.json` and `synthesis.md`, then return one host-owned conclusion.
37
37
 
38
38
  Read `references/cross-verify-modes.md` for mode-specific evidence and
39
- `references/confidence-system.md` when confidence language is useful. Model agreement
39
+ `references/evidence-status.md` when the synthesis needs an evidence status. Model agreement
40
40
  never overrides failing tests or authoritative runtime evidence.
41
41
 
42
42
  Advisor failure degrades to the primary analysis with a single-source warning. It
@@ -1,7 +1,7 @@
1
- # Evidence-Based Confidence
1
+ # Evidence Status
2
2
 
3
- Cross-model agreement is a signal, not an authority. Assign confidence only after checking claims
4
- against source code, tests, runtime output, or primary documentation.
3
+ Cross-model agreement is a signal, not an authority. Classify the synthesis only after checking
4
+ consequential claims against source code, tests, runtime output, or primary documentation.
5
5
 
6
6
  ## Levels
7
7
 
@@ -91,7 +91,7 @@ as a fallback unless `ultra-tools <family> --help` lists it.
91
91
  | `task.expand` | `task expand` | 8a | mcp |
92
92
  | `task.parse_prd` | `task parse-prd` | 8a | mcp |
93
93
  | `task.dependency_topo` | `task topo` | 8a | mcp |
94
- | `task.append_event` | `task append-event` | 2 | any |
94
+ | `task.append_event` | `task append-event` | 2 | any (allowlisted observations only) |
95
95
  | `task.subscribe_events` | `task subscribe` | 2 | any |
96
96
  | `session.spawn` | `session spawn` | 4.5 | mcp |
97
97
  | `session.close` | `session close` | 4.5 | mcp |
@@ -114,6 +114,20 @@ as a fallback unless `ultra-tools <family> --help` lists it.
114
114
  | `change.learning_resolve` | `change learning-resolve` | 10 | mcp |
115
115
  | `change.converge` | `change converge` | 9 | mcp |
116
116
  | `change.archive` | `change archive` | 9 | mcp |
117
+ | `decision.thread_start` | `decision thread-start` | 16 | mcp |
118
+ | `decision.get` | `decision get` | 16 | any |
119
+ | `decision.list` | `decision list` | 16 | any |
120
+ | `decision.open` | `decision open` | 16 | mcp |
121
+ | `decision.resolve` | `decision resolve` | 16 | mcp |
122
+ | `decision.delegate` | `decision delegate` | 16 | mcp |
123
+ | `decision.defer` | `decision defer` | 16 | mcp |
124
+ | `decision.supersede` | `decision supersede` | 16 | mcp |
125
+ | `decision.checkpoint` | `decision checkpoint` | 16 | mcp |
126
+ | `workflow.start` | `workflow start` | 13 | mcp |
127
+ | `workflow.get` | `workflow get` | 13 | any |
128
+ | `workflow.list` | `workflow list` | 13 | any |
129
+ | `workflow.step` | `workflow step` | 13 | mcp |
130
+ | `workflow.complete` | `workflow complete` | 13 | mcp |
117
131
  | `system.doctor` | `system doctor` | 9 | mcp |
118
132
  | `plan.export` | `plan export` | 8a | mcp |
119
133
  | `plan.get` | `plan get` | 8a | any |
@@ -121,12 +135,12 @@ as a fallback unless `ultra-tools <family> --help` lists it.
121
135
  Current executable maintenance surfaces are `task init-project`,
122
136
  `session close|get|list|admission|heartbeat|subscribe|reap`, `status`, `db`,
123
137
  `migrate`, `system doctor|restore|rebaseline`, and `legacy-memory`. In particular, `task create|update|list|get`
124
- and all `change` lifecycle verbs are not CLI fallbacks. Change state must use
138
+ and all `change` and `decision` lifecycle verbs are not CLI fallbacks. Change and decision state must use
125
139
  the live MCP server; `system doctor` may additionally be exposed by the
126
140
  maintenance CLI because it is the recovery path when MCP startup is degraded.
127
141
  `task init-project --resume` preserves existing `.ultra` files and installs only
128
142
  missing current scaffold assets. Projection-only state uses the supported
129
- `migrate --from=4.4 --to=4.5` or `--from=4.5 --to=12.0` transition before resume.
143
+ `migrate --from=4.4 --to=4.5` or the current supported state-schema transition before resume.
130
144
  `system doctor --repair` applies supported schema upgrades with a pre-migration
131
145
  backup before mechanical recovery.
132
146
  `system restore` requires the exact `REPLACE_CORRUPT_ULTRA_STATE` confirmation and a