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,84 +1,98 @@
1
1
  ---
2
2
  name: ultra-change
3
- description: Open or resume a bounded continuous change and connect its intent, delta, decisions, context, and executable tasks. Use when maintaining or extending an Ultra project after its baseline exists.
3
+ description: Open or resume one bounded post-baseline change and connect its intent, delta, task plan, fresh context, and convergence evidence. Use when handling daily feature work, fixes, redesigns, or incidents after an Ultra baseline exists.
4
4
  ---
5
5
 
6
- # Open or resume a continuous change
7
-
8
- Keep post-delivery work aligned through a delta, implementation, learning, and
9
- convergence loop.
10
-
11
- ## Authority boundary
12
-
13
- Use Ultra MCP tools for change and task lifecycle writes. Do not write raw SQLite or
14
- mutate generated task and context projections. External memory or code-graph systems
15
- own their payloads; Ultra stores only provider references supplied by the user or host.
16
-
17
- ## Workflow
18
-
19
- 1. Call `baseline.get`. State integrity failure routes to `ultra-doctor`.
20
- - Create ordinary work only when the baseline is healthy and `ready`.
21
- - Resume a change that was already active when baseline drift appears; record the
22
- condition as a warning and restore baseline readiness before ordinary convergence.
23
- - Create an `incident` on an unhealthy baseline only with an explicit
24
- `baseline_bypass` containing the reason and approver.
25
- - Route every other missing, migrated, incomplete, or stale baseline to `ultra-init`.
26
- 2. Call `change.list` and `change.breadcrumb`.
27
- - Resume the single change that matches the requested outcome.
28
- - Require an explicit id when several changes could match.
29
- - Create a new change only when no existing packet represents the same outcome.
30
- 3. Capture the observable outcome, acceptance, non-goals, affected public seam,
31
- documentation impact, and unresolved decisions.
32
- 4. Classify the change as `quick`, `standard`, `major`, or `incident`. Ask only for a
33
- material product, risk, or recovery decision that repository evidence cannot answer.
34
- 5. Call `change.create` with a stable kebab-case id, or `change.update` when resuming.
35
- For incident break-glass, persist the approved reason in `baseline_bypass`; never
36
- infer approval from urgency.
37
- 6. Write the minimum artifact set required by the classification:
38
-
39
- ```text
40
- .ultra/changes/active/<change-id>/
41
- intent.md
42
- delta/ # standard and major
43
- plan.md # standard and major
44
- diagnosis.md # incident
45
- context-manifest.json # generated projection
46
- spec-learning.json # generated projection
47
- verification.md # generated projection
48
- ```
49
-
50
- Delta files describe differences from the baseline, not a second copy of it.
51
- Incident diagnosis records the symptom, earliest bad state, falsifiable
52
- hypotheses, evidence, root cause, and recovery boundary.
53
- 7. Create the smallest executable vertical slice with `task.create`. Each task needs
54
- one outcome, bounded ownership, dependencies, a live public seam, an exact
55
- verification command, and documentation impact.
56
- 8. Compile `change.context` for the next role and gate. Include only required
57
- references and the task execution contract. Missing required references, digest or
58
- HEAD drift, an absent public seam or verification command, and unknown
59
- documentation impact are blockers. File count, token estimate, and context-share
60
- thresholds are advisory warnings: narrow reads or split the slice when useful, but
61
- never raise a threshold merely to make the warning disappear or refuse necessary
62
- incident context.
63
- 9. Call `change.breadcrumb` and return its single next action.
64
-
65
- ## Specification learning
66
-
67
- When implementation uncovers a stable requirement, invariant, or public behavior
68
- missing from the baseline, call `change.learning_propose` with evidence and a target
69
- document. The proposal does not edit the baseline. It must be approved or rejected,
70
- and an approved item is marked applied only after the target document is updated and
71
- verified.
72
-
73
- ## Completion gate
74
-
75
- Do not claim alignment while a material decision is unresolved, documentation impact
76
- is unknown, context is stale, or the next task is not executable. Ordinary change
77
- convergence requires a non-migrated `ready` baseline. Normal HEAD or tracked-spec drift
78
- caused by the active change is reconciled at archive.
79
-
80
- An approved break-glass incident may converge and archive while baseline adoption is
81
- incomplete. Its archive must add an open `baseline_blocker` reconciliation gap owned by
82
- the recorded approver. Report the incident as closed and the project baseline as not
83
- ready until that gap is resolved. Every archive declares baseline updates or an exact
84
- no-change reason; failed ordinary reconciliation rolls back state and artifacts.
6
+ # Align, route, and maintain one continuous change
7
+
8
+ Use Ultra MCP for lifecycle writes. Keep external memory and code-graph content in
9
+ their providers; Ultra stores references only. Read
10
+ `../ultra-think/references/decision-dialogue.md` before forming a Change Contract.
11
+
12
+ ## Capture and align the outcome
13
+
14
+ 1. Read `system.doctor`, `baseline.get`, `change.list`, `change.breadcrumb`, and active
15
+ decision threads. Resume the matching change or alignment thread; do not duplicate
16
+ either authority.
17
+ 2. New ordinary work requires a ready baseline. An incident on unhealthy authority
18
+ requires an explicit `baseline_bypass` reason and approver. Never infer approval
19
+ from urgency.
20
+ 3. Inspect the current checkout before questioning the owner. Convert the request into
21
+ a working outcome, constraints, accepted facts, unknowns, and likely risk profile.
22
+ Resolve repository facts yourself.
23
+ 4. Start a baseline-bound decision thread when the Change Contract contains a material
24
+ owner choice. Normalize explicit decisions already present in the user's request
25
+ without asking them to repeat themselves. Otherwise open one earliest decision,
26
+ present it with a recommendation and durable effect, and STOP.
27
+ 5. Read `references/change-contract.md`. After all blocking decisions are resolved,
28
+ prepare one compact Change Contract checkpoint containing the outcome, executable
29
+ acceptance, non-goals, public seams, recovery contract, unresolved decisions,
30
+ documentation impact, profile rationale, material risk flags, and research
31
+ disposition. The owner approves the contract once; do not ask for a second equivalent
32
+ confirmation.
33
+ 6. Select `quick`, `standard`, `major`, or `incident` from current scope and risk.
34
+ Escalate a proposed quick change when its contract carries material risk or research.
35
+ Write the compact approved alignment projection to
36
+ `.ultra/docs/alignment/<thread-id>.md`, confirm the decision checkpoint with that
37
+ artifact digest, then call `change.create` with `alignment_thread_id`. The create
38
+ operation materializes the authoritative Change Contract projections. Read the
39
+ normalized change and linked workflow back.
40
+
41
+ Do not create a decision thread for a fact the agent can inspect or a reversible
42
+ implementation detail already delegated by the accepted contract.
43
+
44
+ ## Record the change workflow
45
+
46
+ Use `workflow.step` as evidence becomes durable:
47
+
48
+ - `bind-baseline`: current baseline id, revision, branch, and worktree evidence;
49
+ - `classify-change`: kind and rationale;
50
+ - `record-intent`: intent artifact, acceptance, scope, and resolved docs impact;
51
+ - `plan-change`: completed plan workflow and authoritative task ids;
52
+ - `compile-context`: current task-bound `change.context` manifest and digest;
53
+ - `verify-readiness`: ready breadcrumb with one executable next action.
54
+
55
+ Standard and major changes keep deltas under
56
+ `.ultra/changes/active/<id>/delta/` and an evidence-linked `plan.md`. Deltas describe
57
+ differences from the baseline; they are not a second baseline. Incidents maintain the
58
+ structured diagnosis artifact and recovery evidence.
59
+
60
+ When `research_disposition.status` is `bounded` or `required`, run `ultra-research`
61
+ with the exact recorded mode and selected steps before planning. Planning is blocked
62
+ until that change-bound research run is complete, current, and selection-equivalent.
63
+ Use `none` only when the Change Contract already has sufficient evidence.
64
+
65
+ Use `ultra-plan` to create complete DB-backed task contracts. Recompile
66
+ `change.context` after any task, HEAD, specification, or decision change. The task's DB
67
+ contract is authoritative; Prompt input may not override its seam or verification.
68
+ Required missing or stale refs block. Budget warnings guide narrower context but never
69
+ justify dropping necessary evidence or refusing legitimate work.
70
+
71
+ An ordinary active change remains executable only while its durable `bind-baseline`
72
+ evidence still names the current approved-ready baseline. HEAD, worktree, specification,
73
+ or source-evidence drift created after that binding is advisory until delivery
74
+ reconciliation. Adoption/migration state, missing approval or evidence, blocking gaps,
75
+ and any other structural baseline failure block tasks, context, and later stages. Only
76
+ the recorded incident break-glass authority can bypass that gate.
77
+
78
+ Call `workflow.complete` only after all change workflow steps are current. Return the
79
+ change id, kind, task set, context digest, blockers or warnings, workflow state, and the
80
+ breadcrumb's one route.
81
+
82
+ When implementation reveals a stable missing invariant, use
83
+ `change.learning_propose` and the approval/reject/apply transition. Unresolved learning
84
+ blocks delivery. An approved application must bind the declared target anchor, its
85
+ before and after digests, and current evidence before the proposal becomes `applied`.
86
+
87
+ ## Automatic routing contract
88
+
89
+ Automatic means route, inspect, and recover automatically; it never means silently
90
+ choose an owner decision. The normal route is:
91
+
92
+ `capture → align → Change Contract checkpoint → change authority → bounded research when
93
+ needed → plan candidate → plan decision review → plan approval → ultra-dev → test →
94
+ review → deliver → baseline reconciliation`.
95
+
96
+ A quick change may omit research and use one task only when evidence proves the request
97
+ has no material unresolved decision or risk. An incident routes through reproduction,
98
+ hypothesis discrimination, recovery choice, fix, and verification before convergence.
@@ -0,0 +1,36 @@
1
+ # Change Contract and profile
2
+
3
+ Create one contract before planning. Keep every field specific enough to verify and
4
+ stable enough to survive a fresh session.
5
+
6
+ ## Contract
7
+
8
+ - `outcome`: one externally observable result.
9
+ - `acceptance`: stable ids with a criterion and exact verification for each accepted
10
+ behavior.
11
+ - `non_goals`: explicit boundaries that prevent accidental scope growth.
12
+ - `public_seams`: entry points or outputs through which acceptance is observed.
13
+ - `recovery`: a bounded reversal or recovery strategy and its verification.
14
+ - `unresolved_decisions`: stable ids, summary, blocking state, and owner when known.
15
+
16
+ Resolve every blocking decision before planning. Keep non-blocking uncertainty visible
17
+ in the task and verification contracts.
18
+
19
+ ## Profile
20
+
21
+ - `quick`: one low-risk task, no material risk flags, and no research dependency.
22
+ - `standard`: a bounded change with multiple tasks or ordinary integration risk.
23
+ - `major`: a broad or consequential change with material contract, migration,
24
+ authorization, security, multi-module, external-integration, or release impact.
25
+ - `incident`: urgent diagnosis and recovery with a reproducible symptom. Baseline
26
+ break-glass still requires a recorded approver and recovery contract.
27
+
28
+ Record a profile rationale and every applicable risk flag. Select the smallest profile
29
+ whose guarantees cover the real blast radius; never use profile labels as estimates.
30
+
31
+ ## Research disposition
32
+
33
+ Use `none` with a rationale when accepted evidence is sufficient. Use `bounded` or
34
+ `required` with a supported mode and the exact selected semantic steps when product,
35
+ behavior, architecture, deployment, or risk facts remain load-bearing. The recorded
36
+ selection is the planning gate.
@@ -1,87 +1,84 @@
1
1
  ---
2
2
  name: ultra-deliver
3
- description: Converge verified implementation, specification learning, review evidence, and release artifacts into a recoverable baseline. Use when an initial baseline or active change has current passing evidence and is ready to archive or release.
3
+ description: Converge one verified Ultra change, reconcile specification learning and baseline authority, archive recoverably, and optionally release when explicitly authorized. Use when current test and independent review evidence are ready for delivery.
4
4
  ---
5
5
 
6
- # Converge and deliver
6
+ # Converge and deliver one change
7
7
 
8
- Deliver one baseline or continuous change. Change lifecycle writes use MCP; test,
9
- review, and delivery reports are evidence artifacts.
8
+ Use host judgment for release scope and authorization. Use Ultra MCP for evidence
9
+ binding, workflow state, convergence, baseline reconciliation, archive recovery, and
10
+ output digests.
10
11
 
11
12
  ## Bind current evidence
12
13
 
13
- 1. Call `baseline.get`, then `change.list`. Bind exactly one relevant change, or the
14
- current draft/adopting baseline when this is the initial delivery.
15
- 2. Call `change.breadcrumb`. Context-size warnings are advisory. Ordinary delivery
16
- blocks on incomplete baseline adoption, stale execution context, incomplete linked
17
- tasks, or unresolved readiness. An explicitly approved break-glass incident may
18
- continue while baseline adoption is incomplete.
19
- 3. Require a passing test report for the current full HEAD and at least one declared
20
- public seam.
21
- 4. Require current independent `spec_fidelity` and `engineering_standards` review
22
- verdicts. Evidence from another checkout, commit, task set, or change is invalid.
23
-
24
- ## Reconcile the baseline
25
-
26
- Call `change.get` for authoritative learning candidates.
27
-
28
- - Resolve every proposed item as approved or rejected.
29
- - Apply each approved item to its declared baseline target, verify the edit, then mark
30
- it applied.
31
- - Preserve rejection reasons as decision evidence.
32
- - Confirm previously applied items remain represented in the target document.
33
-
34
- Reconcile accepted delta content and documentation impact into baseline documents.
35
- Record updated paths or a specific no-change reason. Unknown documentation impact,
36
- unresolved placeholders, and behavior that exists only in the delta block convergence.
37
-
38
- For an initial baseline without a change, call `baseline.record`, obtain explicit owner
39
- approval, and call `baseline.converge`. Do not simulate initial delivery through a null
40
- change record.
41
-
42
- ## Verify the release candidate
43
-
44
- Use a clean, reviewed release commit. Show any remaining diff and obtain explicit
45
- authorization before staging or committing. Never stage unrelated user changes.
46
-
47
- Run the exact repository commands needed for focused regression, relevant full tests,
48
- static checks, production build, package/install/doctor smoke when distributed, the
49
- public seam, and rollback or recovery sanity. Any post-verification edit invalidates
50
- the affected evidence.
51
-
52
- Compile final change context at the release commit with the convergence gate. It must
53
- be ready before calling `change.converge`.
54
-
55
- ## Converge and archive
56
-
57
- Submit structured evidence for the reviewed diff and seam, test signals, baseline and
58
- delta, documentation, both independent review axes, and incident diagnosis when
59
- applicable. Do not collapse review axes or replace exact signal fields with prose.
60
-
61
- Resolve named blockers, rerun invalidated gates, then call `change.archive` with the
62
- summary and baseline updates or an exact no-change reason. Ordinary archive
63
- reconciliation refreshes the authoritative baseline revision and digests, rechecks
64
- health, and rolls back state and artifacts when any tracked digest or revision remains
65
- stale.
66
-
67
- For a break-glass incident, verify that archive returned `baseline_bypass: true` and
68
- created the open reconciliation gap on the current baseline. Report incident delivery
69
- separately from project baseline readiness. Resolve that gap through `ultra-init`
70
- before starting ordinary work.
71
-
72
- ## Optional release
73
-
74
- Only when release authorization is in scope:
75
-
76
- 1. determine the semantic version from compatibility impact;
77
- 2. update version and changelog;
78
- 3. rerun checks invalidated by version changes;
79
- 4. create a non-force commit and tag;
80
- 5. push and publish through the repository's authenticated workflow;
81
- 6. independently verify the remote commit, tag, release, and registry version.
82
-
83
- Write the delivery report with the change id, archive status, commit, version, exact
84
- commands, release identifiers, baseline updates, rollback notes, and timestamp.
85
-
86
- Delivery is complete only when local and remote evidence agree and the worktree has no
87
- unexplained scope. A local version bump is not publication evidence.
14
+ 1. Read `system.doctor`, `baseline.get`, `change.get`, `change.breadcrumb`, active
15
+ decision state, linked tasks, and current test/review workflows and artifacts. An
16
+ open decision, blocking deferral, or unconfirmed checkpoint prevents delivery.
17
+ 2. Resume or start a `deliver` workflow linked to the change and baseline.
18
+ 3. Require completed tasks, current context, a passing test report at full HEAD with a
19
+ verified public seam, and current independent `spec_fidelity` and
20
+ `engineering_standards` verdicts. Record `bind-evidence`.
21
+
22
+ Evidence from another revision, task set, change, or stale output is invalid. An
23
+ approved break-glass incident follows only its recorded recovery contract.
24
+
25
+ ## Reconcile and verify
26
+
27
+ Resolve every specification-learning proposal. Apply an approved item to its declared
28
+ target and verify it before marking it applied; preserve rejection reasons. Reconcile
29
+ accepted delta and documentation impact into baseline documents, or record an exact
30
+ no-change reason. Record `reconcile-specifications`.
31
+
32
+ Read `references/baseline-reconciliation.md` and write the bound reconciliation
33
+ manifest inside the active change directory. It must record every baseline update as a
34
+ semantic add or update with a real source anchor, before/after digests, verification,
35
+ resolved gap ids, and resolved unknowns. A no-update delivery records one evidenced
36
+ semantic no-change reason.
37
+
38
+ Verify the release candidate with repository-native focused/regression checks,
39
+ type/lint/build where applicable, install/doctor smoke for distributed packages,
40
+ public seams, and rollback or recovery sanity. Compile final convergence context and
41
+ record its immutable manifest as the `verify-candidate` output. Any edit invalidates
42
+ affected evidence.
43
+
44
+ Call `change.converge` with only the change id. Do not submit verdicts or evidence
45
+ summaries: MCP derives development, test report, public seam, specification,
46
+ documentation, both review axes, and incident diagnosis evidence from DB-backed
47
+ workflows and current artifacts. Resolve named blockers and rerun invalidated gates. Record
48
+ `converge-authority` only when the change is ready.
49
+
50
+ Call `change.archive` with the summary, `reconciliation_path`, and baseline updates or
51
+ exact no-change reason.
52
+ Ordinary archive refreshes baseline revision and digests atomically and rolls back on
53
+ incomplete reconciliation. Record `archive-change`. For break-glass delivery, verify
54
+ the returned bypass and blocking reconciliation gap.
55
+
56
+ ## Release only with authority
57
+
58
+ The `release-if-authorized` step is not permission. When publication is outside the
59
+ user's request, complete it with exactly one `release_authorization` decision containing
60
+ `authorized: false` and the reason. When explicitly authorized, record
61
+ `authorized: true`, `approved_by`, the exact release `scope`, and the reason; then
62
+ determine compatibility impact, update version and
63
+ changelog, rerun invalidated checks, create a non-force commit/tag, push, publish, and
64
+ verify remote commit, tag, release, and registry version independently.
65
+ If release authority is not already explicit, present that authorization as one compact
66
+ question and stop. Do not bundle release permission with unrelated delivery choices or
67
+ ask again when the current user request already grants the exact scope.
68
+
69
+ Write `.ultra/reports/delivery/<workflow-id>.json` atomically using
70
+ `ultra-delivery-report-v1`, with change/archive state, baseline id/status, full HEAD,
71
+ worktree digest, convergence-context digest, exact passing
72
+ checks, the explicit release authorization/performed decision, release identifiers
73
+ when applicable, structured evidence for every performed commit/push/tag/registry/
74
+ deployment action, rollback notes, and timestamp. The report authorization must match
75
+ the DB-recorded decision. Record `verify-delivery` with that
76
+ output and call `workflow.complete` only after the change is archived and local and
77
+ remote evidence agree for every authorized action. MCP derives the delivery summary
78
+ from this report rather than a Prompt claim.
79
+
80
+ Return workflow id, archive and baseline state, evidence digests, commit/release facts,
81
+ recovery notes, residual risks, and one next route. Successful delivery routes to
82
+ `ultra-status` for the final authoritative view or `ultra-change` for the next accepted
83
+ outcome. Stale gates return to their owning workflow; a new owner choice routes to
84
+ `ultra-think`; broken authority routes to `ultra-doctor`.
@@ -0,0 +1,20 @@
1
+ # Baseline reconciliation manifest
2
+
3
+ Write a JSON file inside `.ultra/changes/active/<change-id>/` with
4
+ `$schema: "ultra-baseline-reconciliation-v1"`.
5
+
6
+ Bind `change_id`, `baseline_id`, and `baseline_updates` exactly to the archive request.
7
+ Include:
8
+
9
+ - `semantic_changes`: stable id, `add` or `update`, project-relative `source_ref` using
10
+ `path#anchor`, the prior baseline digest or `null`, and the current file digest;
11
+ - `resolved_gap_ids`: existing baseline gaps closed by this delivery;
12
+ - `resolved_unknowns`: exact existing unknown summaries closed by this delivery;
13
+ - `verification`: named checks with exact commands, `pass`, and bounded evidence;
14
+ - `semantic_no_change_reason`: an evidence-backed reason when `baseline_updates` is
15
+ empty.
16
+
17
+ Every updated file needs a semantic change record and current anchor. The before digest
18
+ must match baseline authority and the after digest must match the file. Keep the
19
+ manifest with the change so archive recovery can replay the same transaction after an
20
+ interrupted filesystem move.
@@ -1,63 +1,66 @@
1
1
  ---
2
2
  name: ultra-dev
3
- description: Execute one authoritative Ultra task through a bounded fresh context, a red-green feedback loop, live-path verification, and review. Use when a dependency-ready planned slice is ready for implementation.
3
+ description: Execute one authoritative Ultra task through a fresh-context, test-driven, review-backed live-path slice with resumable DB state. Use when a planned task is ready to implement, resume, or recover after a blocker or interrupted session.
4
4
  ---
5
5
 
6
- # Execute one vertical slice
7
-
8
- Drive one task from `pending` to `completed` without widening its contract silently.
9
-
10
- ## Authority and recovery
11
-
12
- Task state changes use `task.update`. Never write raw SQLite, generated task JSON, or
13
- projected status fields. If task MCP access fails, stop and route state health to
14
- `ultra-doctor`.
15
-
16
- Read `change.breadcrumb` when a change is active. Stale context, blocked readiness,
17
- unknown documentation impact, or a HEAD mismatch blocks implementation.
18
- Baseline-adoption and context-size warnings do not block an active slice. Address
19
- them when practical without dropping required evidence or arbitrarily changing a
20
- threshold. Ordinary convergence requires approved baseline availability; revision
21
- and tracked-spec health are reconciled and verified at archive. An approved
22
- break-glass incident may finish recovery first and must leave a blocking baseline
23
- reconciliation gap.
24
-
25
- ## Workflow
26
-
27
- 1. Select the requested task, otherwise the first dependency-ready pending task.
28
- 2. Call `task.get` and verify acceptance, dependencies, ownership, public seam, and
29
- exact verification command.
30
- 3. For a linked change, call `change.get`, then compile `change.context` for the
31
- implementation role and gate with the smallest required references.
32
- 4. Mark the task `in_progress` only after the context is ready.
33
- 5. Establish the feedback-loop baseline before changing production logic:
34
- - reproduce the smallest observable symptom at the declared seam;
35
- - add or identify the contract or regression test;
36
- - record the exact command, expected signal, and observed result.
37
-
38
- A feature starts with an assertion for missing behavior. A refactor starts from a
39
- green characterization baseline. Documentation or configuration work may use a
40
- structural validator when no logic test applies.
41
- 6. Implement the minimum complete path from entry point to public seam. Reuse existing
42
- utilities, keep IO at boundaries, include required errors and recovery, and preserve
43
- unrelated worktree changes.
44
- 7. If the work reveals a stable requirement or public behavior absent from the
45
- baseline, call `change.learning_propose`. Do not edit the baseline silently or keep
46
- the discovery only in transient conversation context.
47
- 8. Verify in this order:
48
- - the original feedback-loop command;
49
- - adjacent focused tests;
50
- - proportionate static checks and build;
51
- - the live public-seam acceptance path;
52
- - final diff and worktree scope.
53
- 9. Run `ultra-review` against the current diff. Fix blocking findings, rerun invalidated
54
- checks, and require independent specification-fidelity and engineering verdicts.
55
- 10. Call `task.update` with `status=completed` and exact evidence. For a linked change,
56
- recompile the verification context at the final HEAD, then call
57
- `change.breadcrumb`.
58
-
59
- ## Completion evidence
60
-
61
- Report the task and change ids, changed paths, baseline signal, passing commands,
62
- public-seam result, review session, specification-learning candidates, and one next
63
- action. Leave the task in progress or blocked when required evidence is missing.
6
+ # Implement one executable task
7
+
8
+ Bind exactly one task and change. Use the host for code reasoning and edits; use Ultra
9
+ MCP for workflow state, context authority, task/session transitions, evidence, and
10
+ recovery.
11
+
12
+ ## Start or resume
13
+
14
+ 1. Read `system.doctor`, `change.breadcrumb`, active decision state, `task.get`, workflow
15
+ state, dependencies, active sessions, Git HEAD, and worktree scope. If the
16
+ breadcrumb names an open decision or unconfirmed checkpoint, return to
17
+ `ultra-think` and do not edit code.
18
+ 2. Resume an existing `dev` workflow or call `workflow.start` with `change_id` and
19
+ `task_id`. Startup fails when the DB-backed task execution contract is incomplete or
20
+ owned by another change.
21
+ 3. Record `bind-task` with task, dependency, branch, and worktree evidence.
22
+ 4. Compile `change.context` for `implement`. It derives public seam, verification, and
23
+ required refs from the task row. Record its immutable manifest as the
24
+ `compile-context` output only when ready. That starting snapshot remains historical
25
+ task evidence; later task commits do not invalidate it when its commit stays on the
26
+ current ancestry and the task contract is unchanged.
27
+ 5. Run session admission before spawning an isolated session. Do not open a second
28
+ active lease without the documented resume, takeover, or abandon decision.
29
+
30
+ ## Red, green, verify
31
+
32
+ 1. Reproduce the behavior or establish a characterization signal before logic edits.
33
+ Record `establish-feedback-loop` with the exact failing command and observed result.
34
+ 2. Set the task `in_progress`; implement the smallest complete vertical slice through
35
+ the declared public seam. Preserve unrelated worktree changes.
36
+ 3. Keep application judgment and edits in the host. Do not write projections, raw DB,
37
+ workflow output digests, or evidence state by hand.
38
+ 4. Refactor only inside the accepted slice while the focused signal stays green.
39
+ When implementation exposes a product, compatibility, security, cost, or recovery
40
+ choice outside the accepted task contract, preserve the evidence, open one decision
41
+ through the shared dialogue protocol, and stop. Do not convert implementation
42
+ convenience into an owner decision.
43
+ 5. Record `implement-slice`, then run focused, adjacent, static/build, public-seam,
44
+ error, and recovery checks proportional to risk. Record exact evidence under
45
+ `verify-slice`.
46
+ 6. Run `ultra-review` at the current diff. Record both independent verdict axes under
47
+ `review-slice`; unresolved blocking findings return to implementation.
48
+
49
+ ## Complete or recover
50
+
51
+ Close the admitted session with `session.close` after its final heartbeat and verify
52
+ that no running lease remains for the task. Then update the task to `completed` only
53
+ after acceptance, verification, documentation, and review are current. Record
54
+ `record-completion` with commands, results, changed paths, commit when authorized, and
55
+ context/review references; then call `workflow.complete`. The MCP refuses dev
56
+ convergence while the task is incomplete or a session is still running.
57
+
58
+ On interruption or an external blocker, record the current step as `blocked`, update
59
+ the task consistently, and preserve the session and evidence. Resume the same run;
60
+ completed steps remain durable. Any code or contract change invalidates affected test,
61
+ review, or context evidence.
62
+
63
+ Return the task outcome, public seam, changed paths, exact checks, review results,
64
+ workflow id, session state, residual risks, and one next route. Route another ready
65
+ task to `ultra-dev`; route a fully implemented change to aggregate `ultra-test`;
66
+ route a new owner choice to `ultra-think`; route broken authority to `ultra-doctor`.