ultra-builder-pro-cli 0.14.0 → 0.15.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 (154) 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 +44 -1
  8. package/README.md +34 -19
  9. package/adapters/_shared/codex-assets.cjs +6 -2
  10. package/adapters/_shared/file-ops.cjs +6 -2
  11. package/adapters/claude.js +3 -2
  12. package/adapters/codex.js +1 -0
  13. package/adapters/kimi.js +3 -2
  14. package/adapters/opencode.js +3 -2
  15. package/agents/review-coordinator.md +9 -6
  16. package/docs/AGENT-CONTEXT.md +15 -8
  17. package/docs/ARCHITECTURE.md +33 -12
  18. package/docs/PLAN.zh-CN.md +3 -2
  19. package/docs/ROADMAP.md +8 -4
  20. package/docs/RUNTIME-COMPAT-MATRIX.md +4 -4
  21. package/docs/STATE-DB-ACCESS-POLICY.md +27 -25
  22. package/docs/WORKFLOW-LIFECYCLE.md +266 -0
  23. package/hooks/README.md +6 -1
  24. package/hooks/health_check.py +12 -3
  25. package/hooks/subagent_tracker.py +52 -77
  26. package/mcp-server/hook-event.cjs +34 -0
  27. package/mcp-server/lib/archive-journal.cjs +17 -5
  28. package/mcp-server/lib/baseline-workflow.cjs +158 -18
  29. package/mcp-server/lib/change-workflow.cjs +550 -85
  30. package/mcp-server/lib/context-spine.cjs +242 -24
  31. package/mcp-server/lib/doctor.cjs +33 -3
  32. package/mcp-server/lib/init-project.cjs +210 -16
  33. package/mcp-server/lib/plan-store.cjs +4 -1
  34. package/mcp-server/lib/pricing.cjs +7 -10
  35. package/mcp-server/lib/project-breadcrumb.cjs +6 -0
  36. package/mcp-server/lib/projector.cjs +57 -3
  37. package/mcp-server/lib/spec-learning.cjs +79 -2
  38. package/mcp-server/lib/state-db.cjs +145 -8
  39. package/mcp-server/lib/state-ops.cjs +160 -9
  40. package/mcp-server/lib/workflow-state.cjs +2292 -0
  41. package/mcp-server/server.cjs +161 -15
  42. package/orchestrator/daemon.cjs +1 -2
  43. package/orchestrator/dispatch-rules.cjs +5 -31
  44. package/orchestrator/planner/plan-builder.cjs +21 -12
  45. package/package.json +13 -3
  46. package/skills/ultra-change/SKILL.md +53 -68
  47. package/skills/ultra-change/references/change-contract.md +36 -0
  48. package/skills/ultra-deliver/SKILL.md +69 -79
  49. package/skills/ultra-deliver/references/baseline-reconciliation.md +20 -0
  50. package/skills/ultra-dev/SKILL.md +54 -59
  51. package/skills/ultra-doctor/SKILL.md +40 -71
  52. package/skills/ultra-init/SKILL.md +96 -103
  53. package/skills/ultra-init/references/brownfield-adoption.md +2 -2
  54. package/skills/ultra-plan/SKILL.md +79 -85
  55. package/skills/ultra-plan/references/semantic-preflight.md +18 -0
  56. package/skills/ultra-research/SKILL.md +87 -60
  57. package/skills/ultra-research/references/00-problem-validation.md +36 -0
  58. package/skills/ultra-research/references/01-opportunity-discovery.md +33 -0
  59. package/skills/ultra-research/references/02-market-assessment.md +30 -0
  60. package/skills/ultra-research/references/03-competitive-landscape.md +31 -0
  61. package/skills/ultra-research/references/04-product-strategy.md +32 -0
  62. package/skills/ultra-research/references/05-assumptions-validation.md +31 -0
  63. package/skills/ultra-research/references/10-user-personas.md +29 -0
  64. package/skills/ultra-research/references/11-user-scenarios.md +28 -0
  65. package/skills/ultra-research/references/20-user-stories.md +30 -0
  66. package/skills/ultra-research/references/21-features-scope.md +29 -0
  67. package/skills/ultra-research/references/22-success-metrics.md +28 -0
  68. package/skills/ultra-research/references/30-architecture-context.md +30 -0
  69. package/skills/ultra-research/references/31-solution-strategy.md +28 -0
  70. package/skills/ultra-research/references/32-building-blocks.md +28 -0
  71. package/skills/ultra-research/references/40-deployment.md +29 -0
  72. package/skills/ultra-research/references/41-quality-risks.md +28 -0
  73. package/skills/ultra-research/references/99-synthesis.md +35 -0
  74. package/skills/ultra-review/SKILL.md +57 -73
  75. package/skills/ultra-review/references/review-modes.md +27 -0
  76. package/skills/ultra-review/references/unified-schema.md +25 -0
  77. package/skills/ultra-review/scripts/review_wait.py +40 -3
  78. package/skills/ultra-status/SKILL.md +41 -45
  79. package/skills/ultra-test/SKILL.md +48 -55
  80. package/skills/ultra-verify/SKILL.md +1 -1
  81. package/skills/ultra-verify/references/{confidence-system.md → evidence-status.md} +3 -3
  82. package/spec/cli-protocol.md +7 -2
  83. package/spec/mcp-tools.yaml +384 -63
  84. package/spec/schemas/baseline-reconciliation.v1.schema.json +73 -0
  85. package/spec/schemas/delivery-report.v1.schema.json +111 -0
  86. package/spec/schemas/mcp-tools.schema.json +1 -1
  87. package/spec/schemas/state-db.sql +82 -1
  88. package/spec/schemas/tasks.v4.5.schema.json +8 -1
  89. package/spec/schemas/test-report.v1.schema.json +194 -0
  90. package/ultra-tools/cli.cjs +1 -1
  91. package/ultra-tools/commands/migrate.cjs +3 -3
  92. package/ultra-tools/commands/status.cjs +213 -12
  93. package/.ultra-template/delivery-report.json +0 -9
  94. package/.ultra-template/test-report.json +0 -8
  95. package/adapters/_shared/tests/file-ops.test.cjs +0 -54
  96. package/adapters/_shared/tests/frontmatter.test.cjs +0 -47
  97. package/adapters/_shared/tests/handbook.test.cjs +0 -101
  98. package/adapters/_shared/tests/path-rewrite.test.cjs +0 -60
  99. package/adapters/_shared/tests/provenance.test.cjs +0 -133
  100. package/adapters/_shared/tests/resolve-target.test.cjs +0 -75
  101. package/adapters/_shared/tests/runtime-assets.test.cjs +0 -149
  102. package/adapters/_shared/tests/settings-merge.test.cjs +0 -85
  103. package/adapters/_shared/tests/validate.test.cjs +0 -30
  104. package/adapters/tests/claude.test.cjs +0 -138
  105. package/adapters/tests/codex-hook.test.cjs +0 -142
  106. package/adapters/tests/codex.test.cjs +0 -430
  107. package/adapters/tests/kimi-hook.test.cjs +0 -149
  108. package/adapters/tests/kimi.test.cjs +0 -259
  109. package/adapters/tests/opencode.test.cjs +0 -357
  110. package/mcp-server/lib/archive-journal.test.cjs +0 -35
  111. package/mcp-server/lib/baseline-workflow.test.cjs +0 -477
  112. package/mcp-server/lib/change-workflow.test.cjs +0 -971
  113. package/mcp-server/lib/context-spine.test.cjs +0 -93
  114. package/mcp-server/lib/doctor.test.cjs +0 -148
  115. package/mcp-server/lib/plan-store.test.cjs +0 -132
  116. package/mcp-server/lib/prd-parser.test.cjs +0 -82
  117. package/mcp-server/lib/project-breadcrumb.test.cjs +0 -112
  118. package/mcp-server/lib/runtime-state.test.cjs +0 -92
  119. package/mcp-server/lib/spec-learning.test.cjs +0 -67
  120. package/mcp-server/lib/state-db.test.cjs +0 -314
  121. package/mcp-server/lib/task-expander.test.cjs +0 -169
  122. package/mcp-server/lib/topo.test.cjs +0 -158
  123. package/mcp-server/tests/circuit-breaker.test.cjs +0 -125
  124. package/mcp-server/tests/commit-hash-flow.test.cjs +0 -117
  125. package/mcp-server/tests/concurrency-update.test.cjs +0 -96
  126. package/mcp-server/tests/concurrency.test.cjs +0 -112
  127. package/mcp-server/tests/db-ops.test.cjs +0 -121
  128. package/mcp-server/tests/init-project.test.cjs +0 -393
  129. package/mcp-server/tests/migrate.test.cjs +0 -232
  130. package/mcp-server/tests/projector.test.cjs +0 -162
  131. package/mcp-server/tests/server-contract.test.cjs +0 -1467
  132. package/mcp-server/tests/staleness.test.cjs +0 -190
  133. package/mcp-server/tests/state-db.test.cjs +0 -106
  134. package/mcp-server/tests/state-ops.test.cjs +0 -449
  135. package/mcp-server/tests/tagged-tasks.test.cjs +0 -163
  136. package/mcp-server/tests/telemetry.test.cjs +0 -219
  137. package/orchestrator/planner/plan-builder.test.cjs +0 -165
  138. package/orchestrator/tests/auto-merge.test.cjs +0 -216
  139. package/orchestrator/tests/daemon.test.cjs +0 -311
  140. package/orchestrator/tests/dispatch-rules.test.cjs +0 -124
  141. package/orchestrator/tests/parallel-orchestrator.test.cjs +0 -233
  142. package/orchestrator/tests/phase-8b-gate.test.cjs +0 -183
  143. package/orchestrator/tests/recovery.test.cjs +0 -190
  144. package/orchestrator/tests/session-runner.test.cjs +0 -314
  145. package/orchestrator/tests/skill-miner.test.cjs +0 -147
  146. package/orchestrator/tests/worktree-manager.test.cjs +0 -148
  147. package/skills/ultra-research/references/architecture.md +0 -38
  148. package/skills/ultra-research/references/problem-product.md +0 -39
  149. package/skills/ultra-research/references/quality-delivery.md +0 -34
  150. package/skills/ultra-research/references/synthesis.md +0 -38
  151. package/skills/ultra-research/references/users-scope.md +0 -40
  152. package/ultra-tools/legacy-memory.test.cjs +0 -80
  153. package/ultra-tools/status-command.test.cjs +0 -181
  154. package/ultra-tools/system-command.test.cjs +0 -309
@@ -3,16 +3,19 @@
3
3
  Store durable research evidence here only when it is too detailed for the baseline
4
4
  specification. Baseline decisions and accepted behavior remain in `.ultra/specs/`.
5
5
 
6
- ## When to create a report
6
+ ## Required step reports
7
7
 
8
- Create a report for external facts, repository investigations, experiments, runtime
9
- observations, or decision evidence that must remain inspectable. Use a descriptive
10
- file name and include the observation date when freshness matters.
8
+ Every selected `ultra-research` step writes one immutable report at
9
+ `.ultra/docs/research/<workflow-id>/<step-id>.md`. Full and adoption research therefore
10
+ produce seventeen reports. The shared specifications are updated during research but
11
+ do not replace these per-step evidence records.
11
12
 
12
13
  ## Report contract
13
14
 
14
15
  Record:
15
16
 
17
+ - a Markdown title and the exact sections `Evidence`, `Specification updates`, and
18
+ `Decisions and unknowns`;
16
19
  - scope and the decision the evidence informs;
17
20
  - observed facts with source references and dates;
18
21
  - verification commands or runtime evidence;
@@ -25,6 +28,7 @@ copying memory, code-graph payloads, or large source material into Ultra.
25
28
 
26
29
  ## Completion
27
30
 
28
- Update the affected baseline specification, include the report in `baseline.record`
29
- evidence when material, and record unresolved work in the authoritative gap ledger.
30
- Do not create a condensed duplicate of the baseline.
31
+ Update the affected baseline specification, record the report through `workflow.step`,
32
+ include it in `baseline.record` evidence when material, and record unresolved work in
33
+ the authoritative gap ledger. The final synthesis also binds the three specifications
34
+ and research distillate. Do not create a condensed duplicate of the baseline.
@@ -1,51 +1,54 @@
1
1
  # Architecture Specification
2
2
 
3
- This document defines the accepted system boundaries and implementation constraints.
4
- Describe the architecture that evidence requires; do not impose a framework or module
5
- shape that the project does not use.
3
+ Define accepted system boundaries, authority, runtime paths, operational behavior, and
4
+ implementation constraints. Describe observed architecture before proposed changes.
6
5
 
7
6
  ## Scope
8
7
 
9
8
  - Repository or system boundary:
10
9
  - Product contracts supported:
11
- - Revision or environment inspected:
10
+ - Revision and environments inspected:
12
11
 
13
12
  ## Observed
14
13
 
15
- Record current components, dependencies, data paths, runtime behavior, and operational
16
- constraints confirmed by source or runtime evidence.
17
-
18
- | Architectural fact | Evidence reference | Consumer or impact |
14
+ | Architectural fact | Source or runtime evidence | Consumer or impact |
19
15
  |---|---|---|
20
16
  | | | |
21
17
 
22
18
  ## Decisions
23
19
 
24
- Record an architecture decision only when it has been accepted. Describe alternatives
25
- only when a real choice was evaluated and the tradeoff matters for maintenance.
26
-
27
- | Decision | Constraint or evidence | Consequence | Owner |
20
+ | Decision | Driver and evidence | Consequence and recovery | Owner |
28
21
  |---|---|---|---|
29
22
  | | | | |
30
23
 
31
24
  ## Unknowns
32
25
 
33
- | Unknown | Risk if unresolved | Blocking | Owner or next check |
26
+ | Unknown | Consequence | Blocking | Owner or next check |
34
27
  |---|---|---|---|
35
28
  | | | | |
36
29
 
37
- ## System Boundaries
30
+ ## 30 Architecture Context
38
31
 
39
- | Boundary | Responsibility | Inputs and outputs | Authority | Consumers |
32
+ | Boundary or external system | Responsibility | Inputs and outputs | Trust or authority | Consumers |
40
33
  |---|---|---|---|---|
41
34
  | | | | | |
42
35
 
43
- ## Runtime Paths
36
+ Record material quality goals, technical and organizational constraints, data
37
+ sensitivity, permissions, and compliance boundaries with evidence.
38
+
39
+ ## 31 Solution Strategy
40
+
41
+ | Accepted direction | Existing pattern or constraint | Consequence | Compatibility or recovery |
42
+ |---|---|---|---|
43
+ | | | | |
44
+
45
+ ## 32 Building Blocks and Runtime Paths
44
46
 
45
- Trace the important behavior from a live entry point through state and side effects.
46
- Include failure and recovery paths when they are part of the contract.
47
+ | Building block | Responsibility | Authority and contract | Dependencies | Consumers |
48
+ |---|---|---|---|---|
49
+ | | | | | |
47
50
 
48
- | Path | Entry point | State or dependency | Observable result | Recovery |
51
+ | Runtime path | Entry point | State and side effects | Observable result | Failure and recovery |
49
52
  |---|---|---|---|---|
50
53
  | | | | | |
51
54
 
@@ -55,27 +58,24 @@ Include failure and recovery paths when they are part of the contract.
55
58
  |---|---|---|---|---|
56
59
  | | | | | |
57
60
 
58
- ## Quality and Operational Constraints
61
+ ## 40 Deployment and Operations
59
62
 
60
- Include only constraints that are evidenced or explicitly accepted. Give each one a
61
- verification method rather than an arbitrary score.
62
-
63
- | Constraint | Source | Verification | Failure response |
64
- |---|---|---|---|
65
- | | | | |
66
-
67
- ## Security and Permissions
63
+ | Environment or operation | Entry point | Configuration or migration | Observation | Rollback or recovery |
64
+ |---|---|---|---|---|
65
+ | | | | | |
68
66
 
69
- Document trust boundaries, authorization sources, sensitive data handling, and audit
70
- requirements that apply to this scope.
67
+ ## 41 Quality Scenarios and Risks
71
68
 
72
- ## Deployment and Recovery
69
+ | Trigger and condition | Expected response | Measurement | Failure response | Owner |
70
+ |---|---|---|---|---|
71
+ | | | | | |
73
72
 
74
- Record the environments and release or rollback paths that are actually used. Link to
75
- external operational sources instead of duplicating their live contents.
73
+ | Risk or debt | Evidence | Consequence | Mitigation and verification | Status |
74
+ |---|---|---|---|---|
75
+ | | | | | |
76
76
 
77
77
  ## Product Traceability
78
78
 
79
- | Product behavior | Architecture path | Verification evidence |
80
- |---|---|---|
81
- | | | |
79
+ | Product requirement | Architecture path | Public seam | Verification evidence |
80
+ |---|---|---|---|
81
+ | | | | |
@@ -1,61 +1,74 @@
1
- # Discovery Record
1
+ # Discovery Evidence
2
2
 
3
- Use this document for evidence that affects product scope or a baseline decision.
4
- Leave unsupported sections empty. Link to durable sources instead of copying large
5
- external payloads.
3
+ Record product evidence and accepted decisions. Link to durable sources instead of
4
+ copying provider payloads or research transcripts.
6
5
 
7
6
  ## Scope
8
7
 
9
- - Repository or product area:
10
- - Decision this research must unlock:
11
- - Evidence freshness boundary:
8
+ - Repository or product boundary:
9
+ - Baseline id and revision:
10
+ - Decision this evidence must unlock:
11
+ - Freshness boundary:
12
12
 
13
13
  ## Observed
14
14
 
15
- Record directly observed behavior, user input, repository facts, and sourced external
16
- facts. Identify the source and observation date.
17
-
18
- | Evidence | Source or reference | Finding | Freshness |
15
+ | Fact or current behavior | Evidence reference | Observed at | Affected section |
19
16
  |---|---|---|---|
20
17
  | | | | |
21
18
 
22
19
  ## Decisions
23
20
 
24
- Record only accepted decisions. Include the reason, evidence, owner, and the contract
25
- or specification affected.
26
-
27
- | Decision | Reason and evidence | Owner | Affected contract |
21
+ | Decision | Evidence and rationale | Owner | Affected contract |
28
22
  |---|---|---|---|
29
23
  | | | | |
30
24
 
31
25
  ## Unknowns
32
26
 
33
- Separate blocking unknowns from questions that are outside the accepted scope.
27
+ | Unknown | Consequence | Blocking | Owner or next evidence |
28
+ |---|---|---|---|
29
+ | | | | |
30
+
31
+ ## 00 Problem Validation
34
32
 
35
- | Unknown | Why it matters | Blocking | Owner or next evidence |
33
+ - Problem and affected actor:
34
+ - Current workaround and consequence:
35
+ - Demand or usage evidence:
36
+ - Accepted problem boundary:
37
+
38
+ ## 01 Opportunity Discovery
39
+
40
+ | Desired outcome | Opportunity | Evidence | Constraint or dependency |
36
41
  |---|---|---|---|
37
42
  | | | | |
38
43
 
39
- ## Baseline Gaps
44
+ ## 02 Market Assessment
40
45
 
41
- Reference the authoritative gap ids recorded in `.ultra/state.db`. Use one of
42
- `baseline_blocker`, `documentation_drift`, `known_defect`, `technical_debt`,
43
- `unknown`, or `future_change`.
46
+ Record only market, regulatory, commercial, or operational facts that affect a
47
+ decision. Include source date, segment, geography, and assumptions when applicable.
44
48
 
45
- | Gap id | Category | Status | Evidence reference | Owner |
46
- |---|---|---|---|---|
47
- | | | | | |
49
+ ## 03 Alternatives
48
50
 
49
- ## Current Behavior Notes
51
+ | Current alternative | Evidence | Meaningful difference | Strategy implication |
52
+ |---|---|---|---|
53
+ | | | | |
54
+
55
+ ## 04 Product Strategy
56
+
57
+ - Intended actors and outcome:
58
+ - Value delivered through observable behavior:
59
+ - Accepted tradeoffs:
60
+ - Explicit constraints or exclusions:
61
+
62
+ ## 05 Assumptions and Validation
50
63
 
51
- For an existing project, describe only behavior confirmed from source, tests, runtime,
52
- or maintained documentation. For a new project, record the accepted problem and
53
- constraints without inventing current behavior.
64
+ | Assumption | Current evidence | Validation signal | Decision rule | Owner |
65
+ |---|---|---|---|---|
66
+ | | | | | |
54
67
 
55
- ## Traceability
68
+ ## Baseline Gaps
56
69
 
57
- Link each consequential finding to the product or architecture section it informs.
70
+ Reference authoritative gap ids from `.ultra/state.db`.
58
71
 
59
- | Finding | Target specification | Status |
60
- |---|---|---|
61
- | | | |
72
+ | Gap id | Category | Status | Evidence | Owner |
73
+ |---|---|---|---|---|
74
+ | | | | | |
@@ -1,27 +1,22 @@
1
1
  # Product Specification
2
2
 
3
- This document defines accepted product behavior and scope. It is a durable contract,
4
- not a research transcript or a task list.
3
+ Define accepted product behavior and scope. Keep current behavior distinct from
4
+ proposed behavior; this is not a transcript or task list.
5
5
 
6
6
  ## Scope
7
7
 
8
8
  - Product or repository boundary:
9
9
  - Intended outcome:
10
- - Explicit non-goals:
10
+ - Explicit non-goals or constraints:
11
11
 
12
12
  ## Observed
13
13
 
14
- Record confirmed current behavior and externally visible constraints. For an existing
15
- project, cite source, test, runtime, or maintained documentation evidence.
16
-
17
- | Behavior or constraint | Evidence reference | Status |
18
- |---|---|---|
19
- | | | |
14
+ | Current behavior or constraint | Evidence reference | Status | Affected requirement |
15
+ |---|---|---|---|
16
+ | | | | |
20
17
 
21
18
  ## Decisions
22
19
 
23
- Record accepted product decisions and the evidence or owner decision behind them.
24
-
25
20
  | Decision | Rationale | Acceptance impact | Owner |
26
21
  |---|---|---|---|
27
22
  | | | | |
@@ -32,36 +27,50 @@ Record accepted product decisions and the evidence or owner decision behind them
32
27
  |---|---|---|---|
33
28
  | | | | |
34
29
 
35
- ## Actors and Entry Points
30
+ ## 10 Actors and Jobs
36
31
 
37
- Include actors only when they are supported by evidence. Describe the public entry
38
- point through which each actor reaches the behavior.
32
+ | Actor or system | Job and context | Entry point | Constraints | Evidence |
33
+ |---|---|---|---|---|
34
+ | | | | | |
39
35
 
40
- | Actor or system | Need | Entry point | Evidence |
41
- |---|---|---|---|
42
- | | | | |
36
+ ## 11 User Scenarios
43
37
 
44
- ## Behavior Contracts
38
+ | Scenario id | Actor and trigger | Flow | Observable outcome | Failure and recovery | Evidence |
39
+ |---|---|---|---|---|---|
40
+ | | | | | | |
45
41
 
46
- Give each required behavior a stable identifier. State preconditions, observable
47
- result, failure behavior, and recovery where relevant.
42
+ ## 20 Behavioral Requirements and Acceptance
48
43
 
49
- ### Behavior: pending
44
+ ### Requirement: pending
50
45
 
51
- - Trigger:
46
+ - Source scenario or constraint:
52
47
  - Preconditions:
48
+ - Action:
53
49
  - Observable result:
54
- - Failure behavior:
55
- - Recovery:
56
- - Evidence or decision:
50
+ - Error behavior and recovery:
51
+ - Verification:
57
52
 
58
- ## Acceptance
53
+ ## 21 Capability and Scope Boundary
59
54
 
60
- | Behavior | Acceptance evidence | Public seam | Verification |
55
+ | Capability | Included requirements | Dependencies | Status and rationale |
61
56
  |---|---|---|---|
62
57
  | | | | |
63
58
 
59
+ Scope status must reflect an explicit decision. Do not infer a reduced product posture.
60
+
61
+ ## 22 Outcomes and Measurements
62
+
63
+ | Outcome or guardrail | Definition | Evidence source | Decision use | Owner |
64
+ |---|---|---|---|---|
65
+ | | | | | |
66
+
64
67
  ## Documentation Impact
65
68
 
66
- List maintained documents that must stay consistent with this contract, or record a
67
- specific reason why no documentation change is required.
69
+ List maintained documents that must stay consistent, or record a specific no-change
70
+ rationale.
71
+
72
+ ## Architecture Traceability
73
+
74
+ | Requirement | Public seam | Architecture path | Verification evidence |
75
+ |---|---|---|---|
76
+ | | | | |
@@ -0,0 +1,48 @@
1
+ # Research Traceability
2
+
3
+ This file is a navigation and convergence artifact. Do not duplicate the baseline
4
+ specifications' prose.
5
+
6
+ ## Scope
7
+
8
+ - Baseline or change id:
9
+ - Research workflow id and mode:
10
+ - Repository revision:
11
+ - Completed step set:
12
+
13
+ ## Observed
14
+
15
+ | Claim | Evidence reference | Specification anchor |
16
+ |---|---|---|
17
+ | | | |
18
+
19
+ ## Decisions
20
+
21
+ | Decision | Owner and approval | Specification anchor |
22
+ |---|---|---|
23
+ | | | |
24
+
25
+ ## Unknowns
26
+
27
+ | Unknown or gap id | Blocking | Owner or next action |
28
+ |---|---|---|
29
+ | | | |
30
+
31
+ ## End-to-End Trace
32
+
33
+ | Problem or constraint | Actor and scenario | Requirement and acceptance | Architecture path | Verification |
34
+ |---|---|---|---|---|
35
+ | | | | | |
36
+
37
+ ## Verification
38
+
39
+ | Command or observation | Result | Evidence location | Freshness |
40
+ |---|---|---|---|
41
+ | | | | |
42
+
43
+ ## Planning Entry
44
+
45
+ - Accepted scope and posture:
46
+ - Required references:
47
+ - Blocking gaps:
48
+ - Exact next route:
@@ -1,36 +1,19 @@
1
- <!-- Body template only. The projector owns authoritative YAML frontmatter. -->
1
+ <!-- The projector owns YAML frontmatter and the generated execution contract. -->
2
2
 
3
- # Task {id}: {title}
3
+ # Task Notes
4
4
 
5
- ## Outcome
5
+ Use this body only for task-specific implementation discoveries that are not already
6
+ authoritative task fields. Stable specification learning must follow the change
7
+ approval workflow.
6
8
 
7
- [Describe the observable result this task must produce.]
9
+ ## Implementation Notes
8
10
 
9
- ## Required context
11
+ - [Evidence-backed note with a source reference]
10
12
 
11
- - `[project-relative reference]` — [why it is required]
13
+ ## Open Questions
12
14
 
13
- ## Execution contract
15
+ - [Question, consequence, owner, and next evidence]
14
16
 
15
- - Public seam: [reachable entry point or observable boundary]
16
- - Verification command: `[exact deterministic command]`
17
- - Documentation impact: [required paths or a specific no-change rationale]
17
+ ## Recovery Notes
18
18
 
19
- ## Constraints
20
-
21
- - [Confirmed constraint with its evidence source]
22
-
23
- ## Acceptance evidence
24
-
25
- - [Expected behavior and the evidence that will verify it]
26
-
27
- ## Traceability
28
-
29
- - Change: [change id or initial baseline]
30
- - Specification: [project-relative section reference]
31
-
32
- ## Completion evidence
33
-
34
- - Commit: [verified commit when applicable]
35
- - Tests: [command and result]
36
- - Summary: [delivered behavior]
19
+ - [Current safe resume point and any external prerequisite]
package/CHANGELOG.md CHANGED
@@ -7,6 +7,48 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.15.0] — 2026-07-22
11
+
12
+ ### Added
13
+
14
+ - Added schema 15 typed semantic records for all seventeen research steps, including
15
+ step-specific attributes, stable ids, evidence links, source anchors, stored source
16
+ digests, synthesis trace validation, and current-source health checks.
17
+ - Added complete Change Contracts with executable acceptance, non-goals, public seams,
18
+ recovery, unresolved decisions, profile rationale/risk flags, and explicit bounded
19
+ research disposition.
20
+ - Added plan acceptance coverage and traceability gates, one-task enforcement for quick
21
+ changes, verified specification-learning application, and a published
22
+ `ultra-baseline-reconciliation-v1` schema.
23
+ - Added task/change/plan review modes and machine-validated worker selection or skip
24
+ provenance while preserving independent specification-fidelity and engineering axes.
25
+
26
+ ### Changed
27
+
28
+ - Unified every greenfield, brownfield, migrated, and daily route through
29
+ `ultra-change` before planning. Initial planning can no longer bypass durable intent,
30
+ risk, research, recovery, or acceptance authority.
31
+ - Reworked the workflow Skills into compact host-neutral execution contracts with
32
+ focused references for research semantics, Change profiles, planning preflight,
33
+ review modes, and delivery reconciliation.
34
+ - Made context budgets advisory while keeping evidence, authority, acceptance,
35
+ specification freshness, review, and recovery gates deterministic and blocking.
36
+
37
+ ### Fixed
38
+
39
+ - Fixed research completion that previously stored prose and file hashes without a
40
+ machine-consumable semantic index or stale-source detection.
41
+ - Fixed planning that could complete without proving every Change acceptance criterion
42
+ had an executable owner or that each task traced to accepted evidence.
43
+ - Fixed approved learning and delivery reconciliation that could record status without
44
+ verifying the applied target, before/after content, source anchor, and archive replay
45
+ provenance.
46
+ - Fixed review artifacts that did not distinguish task, aggregate change, and plan
47
+ scope or preserve why each bounded worker was selected or skipped.
48
+ - Fixed host review-prompt adaptation across intentional Markdown line wrapping and
49
+ excluded tests, test fixtures, and generated Python bytecode from installed and
50
+ published plugin payloads.
51
+
10
52
  ## [0.14.0] — 2026-07-19
11
53
 
12
54
  ### Added
@@ -582,7 +624,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
582
624
  skill manifest, CLI protocol + mapping table; 5 spec validators.
583
625
  - **Phase 0 — skeleton**: multi-runtime installer scaffolding.
584
626
 
585
- [Unreleased]: https://github.com/rocky2431/ultra-builder-pro-cli/compare/v0.14.0...HEAD
627
+ [Unreleased]: https://github.com/rocky2431/ultra-builder-pro-cli/compare/v0.15.0...HEAD
628
+ [0.15.0]: https://github.com/rocky2431/ultra-builder-pro-cli/compare/v0.14.0...v0.15.0
586
629
  [0.14.0]: https://github.com/rocky2431/ultra-builder-pro-cli/compare/v0.13.0...v0.14.0
587
630
  [0.13.0]: https://github.com/rocky2431/ultra-builder-pro-cli/compare/v0.12.1...v0.13.0
588
631
  [0.12.1]: https://github.com/rocky2431/ultra-builder-pro-cli/compare/v0.12.0...v0.12.1
package/README.md CHANGED
@@ -8,7 +8,7 @@ authoritative `.ultra/state.db`.
8
8
 
9
9
  <div align="center">
10
10
 
11
- [![Version](https://img.shields.io/badge/version-0.14.0-blue)](./CHANGELOG.md)
11
+ [![Version](https://img.shields.io/badge/version-0.15.0-blue)](./CHANGELOG.md)
12
12
  [![Tests](https://img.shields.io/badge/tests-passing-brightgreen)](#verification)
13
13
  [![License: MIT](https://img.shields.io/badge/license-MIT-green)](./LICENSE)
14
14
  [![Node](https://img.shields.io/badge/node-%E2%89%A522-informational)](./package.json)
@@ -35,10 +35,13 @@ authoritative `.ultra/state.db`.
35
35
  host derives task objects; `task.parse_prd` validates them → `lib/topo.cjs` waves →
36
36
  `.ultra/execution-plan.json` → parallel worktree sessions → auto-merge back.
37
37
  - **Keeps daily work convergent.** `/ultra-change` creates a bounded delta and
38
- Context Manifest v2; the Context Spine assigns a role/gate, verifies required
38
+ complete Change Contract, classifies risk, records whether bounded research is
39
+ required, and creates immutable Context Manifest v2 snapshots; the Context Spine assigns a role/gate, verifies required
39
40
  references, reports fresh-context budget pressure as advisory warnings, exposes one DB-derived breadcrumb, and
40
- routes a single next action. `/ultra-deliver` requires applied specification
41
- learning plus docs/test/two-axis review evidence before archive. `/ultra-doctor` reports incidents,
41
+ routes a single next action. Research stores typed, source-digested semantic records;
42
+ planning proves Change acceptance coverage; `/ultra-deliver` requires applied specification
43
+ learning plus docs/test/mode-bound two-axis review evidence and a schema-validated
44
+ baseline reconciliation manifest before archive. `/ultra-doctor` reports incidents,
42
45
  projection lag, orphan sessions, and backup-first mechanical recovery.
43
46
  Incident changes additionally require a five-section `diagnosis.md` covering
44
47
  reproduction, hypotheses, root cause, regression test, and recovery.
@@ -86,13 +89,22 @@ install or update.
86
89
  See [`docs/RUNTIME-COMPAT-MATRIX.md`](./docs/RUNTIME-COMPAT-MATRIX.md)
87
90
  for per-runtime capabilities.
88
91
 
89
- Start with `ultra-init` in both new and existing projects. An empty project opens
90
- a `draft` greenfield baseline. An existing codebase opens an `adopting`
91
- brownfield baseline; inspect current behavior, call `baseline.record`, then
92
- approve it through `baseline.converge` before normal planning or delivery. Existing
93
- active work may continue while adoption drift is visible. A new incident requires an
94
- explicit break-glass approver and leaves a blocking reconciliation gap at archive;
95
- new ordinary work always requires a healthy ready baseline.
92
+ Start with `ultra-init` in both new and existing projects. Auto classification is
93
+ based on delivered-system evidence: application source, tests, deployment, or
94
+ persisted-state/schema signals make a repository brownfield; a Git repository,
95
+ manifest, README, or starter documentation alone remains greenfield. An empty project
96
+ opens a `draft` greenfield baseline and an existing system opens an `adopting`
97
+ brownfield baseline. Both execute all seventeen research steps before
98
+ `baseline.record` and explicit `baseline.converge`; initialization never treats blank
99
+ templates as a trusted baseline and never selects an MVP. Existing active work may
100
+ continue only when its durable change workflow was bound to a healthy ready baseline;
101
+ the expected HEAD, worktree, spec, and source-evidence drift created by that change is
102
+ advisory until delivery reconciliation. Loss of approved-ready status or structural
103
+ baseline evidence blocks ordinary work. An incident requires an explicit break-glass
104
+ approver and leaves a blocking reconciliation gap at archive; new ordinary work always
105
+ requires a healthy ready baseline. See
106
+ [`docs/WORKFLOW-LIFECYCLE.md`](./docs/WORKFLOW-LIFECYCLE.md) for exact write,
107
+ transition, invalidation, and recovery semantics.
96
108
 
97
109
  ## Three-layer architecture
98
110
 
@@ -105,7 +117,7 @@ new ordinary work always requires a healthy ready baseline.
105
117
  The layers share one `.ultra/state.db`, but the CLI is not a mirror of every MCP
106
118
  tool: continuous change mutations are MCP-only and fail closed. See
107
119
  [`docs/ARCHITECTURE.md`](./docs/ARCHITECTURE.md) for the full contract and
108
- [`spec/cli-protocol.md`](./spec/cli-protocol.md) for the 36 live contracts.
120
+ [`spec/cli-protocol.md`](./spec/cli-protocol.md) for the 41 live contracts.
109
121
  Review, impact discovery, skill resolution, and user interaction stay on each
110
122
  Host's native surfaces; the generated Codex capability map documents those
111
123
  replacements without advertising non-existent MCP tools.
@@ -138,10 +150,11 @@ ultra-tools task init-project --project-name myapp --mode auto
138
150
 
139
151
  # Projection-only projects from prior releases use one backup-first import:
140
152
  ultra-tools migrate --from=4.4 --to=4.5 --source-dir .
141
- ultra-tools migrate --from=4.5 --to=12.0 --source-dir .
153
+ ultra-tools migrate --from=4.5 --to=15.0 --source-dir .
142
154
 
143
- # 2. Record and converge the greenfield/brownfield baseline, then turn accepted
144
- # behavior into a task graph (normally driven by ultra-init/research/plan)
155
+ # 2. Complete all 17 research steps, record current evidence, and obtain explicit
156
+ # baseline approval. Then open an initial change and persist its task contracts
157
+ # (normally driven by ultra-research/change/plan).
145
158
 
146
159
  # 3. Run the plan — parallel sessions, auto-merge back to main on success
147
160
  ubp-orchestrator run
@@ -154,10 +167,11 @@ ultra-tools system doctor
154
167
  ```
155
168
 
156
169
  Or let the skills drive it. In Codex, invoke
157
- `$ultra-builder-pro:ultra-init` → `$ultra-builder-pro:ultra-plan` → `$ultra-builder-pro:ultra-dev` →
158
- `$ultra-builder-pro:ultra-test` → `$ultra-builder-pro:ultra-review` →
159
- `$ultra-builder-pro:ultra-deliver`; after the baseline is delivered, daily work
160
- starts with `$ultra-builder-pro:ultra-change`, while
170
+ `$ultra-builder-pro:ultra-init` → `$ultra-builder-pro:ultra-research` →
171
+ `$ultra-builder-pro:ultra-change` → `$ultra-builder-pro:ultra-plan` →
172
+ `$ultra-builder-pro:ultra-dev` → `$ultra-builder-pro:ultra-test` →
173
+ `$ultra-builder-pro:ultra-review` → `$ultra-builder-pro:ultra-deliver`; after the
174
+ baseline is delivered, daily work starts with `$ultra-builder-pro:ultra-change`, while
161
175
  `$ultra-builder-pro:ultra-status` reads the compact authoritative breadcrumb.
162
176
  Kimi uses the corresponding
163
177
  `/ultra-builder-pro:ultra-*` namespace. Other runtimes retain their native
@@ -239,6 +253,7 @@ Individual suites: `test:state`, `test:orch`, `test:spec`, `test:rest`.
239
253
  | [`docs/PLAN.zh-CN.md`](./docs/PLAN.zh-CN.md) | Historical 12-phase plan and decision log with a current-boundary overlay |
240
254
  | [`docs/ROADMAP.md`](./docs/ROADMAP.md) | One-page English roadmap + phase status |
241
255
  | [`docs/ARCHITECTURE.md`](./docs/ARCHITECTURE.md) | Single-page system architecture |
256
+ | [`docs/WORKFLOW-LIFECYCLE.md`](./docs/WORKFLOW-LIFECYCLE.md) | Baseline classification, DB writes, status machines, gates, invalidation, and recovery |
242
257
  | [`docs/AGENT-CONTEXT.md`](./docs/AGENT-CONTEXT.md) | Canonical runtime context contract |
243
258
  | [`docs/USER-HANDBOOK-CONTRACT.md`](./docs/USER-HANDBOOK-CONTRACT.md) | Shared user-handbook policy and host renderings |
244
259
  | [`docs/RUNTIME-COMPAT-MATRIX.md`](./docs/RUNTIME-COMPAT-MATRIX.md) | Per-runtime capability matrix |
@@ -89,8 +89,8 @@ function replaceSlashCommand(text, command, replacement) {
89
89
  function adaptCodexPrimaryText(input, skillName) {
90
90
  let text = String(input);
91
91
  if (skillName === 'ultra-review') {
92
- text = text.replaceAll(
93
- "the current host's native bounded-worker mechanism",
92
+ text = text.replace(
93
+ /the current host's native bounded-worker\s+mechanism/g,
94
94
  'native Codex custom agents installed for the selected review workers',
95
95
  );
96
96
  }
@@ -396,6 +396,10 @@ main().catch((error) => {
396
396
  path.join(repoRoot, 'mcp-server', 'breadcrumb.cjs'),
397
397
  path.join(runtimeRoot, 'breadcrumb.cjs'),
398
398
  );
399
+ fs.copyFileSync(
400
+ path.join(repoRoot, 'mcp-server', 'hook-event.cjs'),
401
+ path.join(runtimeRoot, 'hook-event.cjs'),
402
+ );
399
403
 
400
404
  const sourceToolsFile = path.join(repoRoot, 'spec', 'mcp-tools.yaml');
401
405
  const upstreamManifest = yaml.load(fs.readFileSync(sourceToolsFile, 'utf8'));