ultra-builder-pro-cli 0.25.0 → 0.26.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 (241) hide show
  1. package/.ultra-template/contexts/TEMPLATE.md +87 -0
  2. package/.ultra-template/decisions/.gitkeep +1 -0
  3. package/.ultra-template/evidence/.gitkeep +1 -0
  4. package/.ultra-template/north-star.md +46 -0
  5. package/.ultra-template/research/.gitkeep +1 -0
  6. package/.ultra-template/specs/discovery.md +2 -2
  7. package/.ultra-template/tasks.json +3 -0
  8. package/.ultra-template/test-report.json +27 -0
  9. package/CHANGELOG.md +49 -0
  10. package/README.md +217 -579
  11. package/adapters/_shared/delegate-profiles/kimi-read-only.md +15 -0
  12. package/adapters/_shared/delegate-profiles/kimi-write.md +17 -0
  13. package/adapters/_shared/file-ops.cjs +76 -2
  14. package/adapters/_shared/host-profile.cjs +97 -0
  15. package/adapters/_shared/plugin-core.cjs +204 -0
  16. package/adapters/_shared/runtime-assets.cjs +31 -96
  17. package/adapters/claude.js +92 -291
  18. package/adapters/codex.js +309 -842
  19. package/adapters/grok.js +143 -1469
  20. package/adapters/kimi.js +124 -1053
  21. package/adapters/opencode.js +230 -742
  22. package/bin/delegate-worker.cjs +323 -0
  23. package/bin/delegate.cjs +456 -0
  24. package/bin/install.js +38 -11
  25. package/docs/ARCHITECTURE.md +122 -216
  26. package/docs/ARTIFACT-AUTHORITY.md +90 -268
  27. package/docs/DECISIONS.md +75 -87
  28. package/docs/PHILOSOPHY.md +177 -0
  29. package/docs/PLUGIN-ISOLATION-CONTRACT.md +62 -39
  30. package/docs/RUNTIME-COMPAT-MATRIX.md +99 -156
  31. package/docs/SKILL-AUTHORING.md +94 -73
  32. package/docs/WORKFLOW-LIFECYCLE.md +93 -189
  33. package/hooks/README.md +17 -37
  34. package/hooks/_common.py +113 -0
  35. package/hooks/adapters/codex.py +9 -16
  36. package/hooks/adapters/grok.py +5 -5
  37. package/hooks/adapters/kimi.py +8 -14
  38. package/hooks/block_dangerous_commands.py +95 -0
  39. package/hooks/compact_context.py +65 -0
  40. package/hooks/mid_workflow_recall.py +25 -0
  41. package/hooks/post_edit_guard.py +105 -0
  42. package/hooks/session_context.py +30 -0
  43. package/package.json +17 -52
  44. package/skills/ultra-change/SKILL.md +97 -50
  45. package/skills/ultra-change/references/change-contract.md +40 -1
  46. package/skills/ultra-delegate/SKILL.md +82 -0
  47. package/skills/ultra-delegate/references/delegation-contract.md +51 -0
  48. package/skills/ultra-delegate/scripts/delegate_wait.py +86 -0
  49. package/skills/ultra-deliver/SKILL.md +61 -42
  50. package/skills/ultra-deliver/references/baseline-reconciliation.md +39 -20
  51. package/skills/ultra-dev/SKILL.md +96 -62
  52. package/skills/ultra-dev/references/debugging.md +22 -0
  53. package/skills/ultra-domain-modeling/SKILL.md +79 -0
  54. package/skills/ultra-grilling/SKILL.md +79 -0
  55. package/skills/ultra-init/SKILL.md +94 -37
  56. package/skills/ultra-init/references/brownfield-adoption.md +33 -83
  57. package/skills/ultra-init/scripts/init_project.cjs +84 -0
  58. package/skills/ultra-plan/SKILL.md +88 -68
  59. package/skills/ultra-research/SKILL.md +62 -48
  60. package/skills/ultra-research/references/00-problem-validation.md +5 -5
  61. package/skills/ultra-research/references/01-opportunity-discovery.md +3 -3
  62. package/skills/ultra-research/references/02-market-assessment.md +5 -4
  63. package/skills/ultra-research/references/03-competitive-landscape.md +3 -3
  64. package/skills/ultra-research/references/04-product-strategy.md +3 -3
  65. package/skills/ultra-research/references/05-assumptions-validation.md +5 -5
  66. package/skills/ultra-research/references/10-user-personas.md +3 -2
  67. package/skills/ultra-research/references/11-user-scenarios.md +3 -3
  68. package/skills/ultra-research/references/20-user-stories.md +4 -3
  69. package/skills/ultra-research/references/21-features-scope.md +3 -2
  70. package/skills/ultra-research/references/22-success-metrics.md +3 -3
  71. package/skills/ultra-research/references/30-architecture-context.md +3 -3
  72. package/skills/ultra-research/references/31-solution-strategy.md +3 -3
  73. package/skills/ultra-research/references/32-building-blocks.md +3 -3
  74. package/skills/ultra-research/references/40-deployment.md +3 -3
  75. package/skills/ultra-research/references/41-quality-risks.md +3 -3
  76. package/skills/ultra-research/references/99-synthesis.md +7 -7
  77. package/skills/ultra-review/SKILL.md +59 -32
  78. package/skills/ultra-review/references/code.md +17 -0
  79. package/skills/ultra-review/references/comments.md +12 -0
  80. package/skills/ultra-review/references/design.md +12 -0
  81. package/skills/ultra-review/references/errors.md +13 -0
  82. package/skills/ultra-review/references/spec.md +13 -0
  83. package/skills/ultra-review/references/tests.md +12 -0
  84. package/skills/ultra-review/references/worker-packet.md +40 -0
  85. package/skills/ultra-review/scripts/review_wait.py +26 -15
  86. package/skills/ultra-status/SKILL.md +61 -36
  87. package/skills/ultra-tdd/SKILL.md +81 -0
  88. package/skills/ultra-tdd/references/templates/README.md +20 -0
  89. package/skills/ultra-tdd/references/templates/feature-flag-default-audit.sh +79 -0
  90. package/skills/ultra-tdd/references/templates/persistence-real.ts +78 -0
  91. package/skills/ultra-tdd/references/templates/testcontainer-postgres.py +78 -0
  92. package/skills/ultra-tdd/references/templates/testcontainer-postgres.ts +73 -0
  93. package/skills/ultra-tdd/references/templates/vertical-slice.ts +66 -0
  94. package/skills/ultra-tdd/references/test-execution.md +18 -0
  95. package/skills/ultra-test/SKILL.md +70 -30
  96. package/skills/ultra-test/references/export-syntax.md +18 -0
  97. package/skills/ultra-test/scripts/worktree_digest.cjs +54 -0
  98. package/skills/ultra-think/SKILL.md +49 -27
  99. package/skills/ultra-think/references/autonomy-boundary.md +48 -0
  100. package/skills/ultra-think/references/interaction-boundary.md +18 -33
  101. package/.ultra-template/docs/research/README.md +0 -55
  102. package/.ultra-template/reports/templates/delivery-report.json +0 -17
  103. package/.ultra-template/reports/templates/test-report.json +0 -18
  104. package/.ultra-template/tasks/tasks.json +0 -15
  105. package/.ultra-template/templates/task-context.md +0 -19
  106. package/adapters/_shared/codex-assets.cjs +0 -725
  107. package/adapters/_shared/codex-ultra-tools-entry.cjs +0 -11
  108. package/adapters/_shared/interaction-contract.cjs +0 -129
  109. package/adapters/_shared/path-rewrite.cjs +0 -79
  110. package/adapters/_shared/runtime-native.cjs +0 -132
  111. package/adapters/_shared/settings-merge.cjs +0 -76
  112. package/agents/code-reviewer.md +0 -42
  113. package/agents/debugger.md +0 -40
  114. package/agents/review-code.md +0 -49
  115. package/agents/review-comments.md +0 -38
  116. package/agents/review-coordinator.md +0 -56
  117. package/agents/review-design.md +0 -40
  118. package/agents/review-errors.md +0 -43
  119. package/agents/review-spec.md +0 -39
  120. package/agents/review-tests.md +0 -40
  121. package/agents/tdd-runner.md +0 -38
  122. package/bin/orchestrator.js +0 -383
  123. package/commands/ultra-change.md +0 -10
  124. package/commands/ultra-deliver.md +0 -10
  125. package/commands/ultra-dev.md +0 -10
  126. package/commands/ultra-doctor.md +0 -10
  127. package/commands/ultra-init.md +0 -10
  128. package/commands/ultra-plan.md +0 -10
  129. package/commands/ultra-research.md +0 -10
  130. package/commands/ultra-review.md +0 -10
  131. package/commands/ultra-status.md +0 -10
  132. package/commands/ultra-test.md +0 -10
  133. package/commands/ultra-think.md +0 -10
  134. package/docs/AGENT-CONTEXT.md +0 -191
  135. package/docs/COMMIT-HASH-BACKFILL.md +0 -51
  136. package/docs/LEGACY-CLI-CROSSWALK.md +0 -175
  137. package/docs/ROADMAP.md +0 -101
  138. package/docs/STATE-DB-ACCESS-POLICY.md +0 -161
  139. package/hooks/active_task_context.py +0 -152
  140. package/hooks/context_envelope.py +0 -100
  141. package/hooks/health_check.py +0 -196
  142. package/hooks/pre_stop_check.py +0 -66
  143. package/hooks/runtime_paths.py +0 -396
  144. package/hooks/subagent_tracker.py +0 -88
  145. package/hooks/workflow_checkpoint.py +0 -76
  146. package/hooks/workflow_context.py +0 -48
  147. package/hooks/workflow_resume.py +0 -84
  148. package/mcp-server/hook-context.cjs +0 -38
  149. package/mcp-server/hook-event.cjs +0 -34
  150. package/mcp-server/lib/archive-journal.cjs +0 -1119
  151. package/mcp-server/lib/archive-mutation-worker.py +0 -365
  152. package/mcp-server/lib/artifact-registry.cjs +0 -1232
  153. package/mcp-server/lib/baseline-workflow.cjs +0 -1193
  154. package/mcp-server/lib/canonical-json.cjs +0 -19
  155. package/mcp-server/lib/change-authority.cjs +0 -26
  156. package/mcp-server/lib/change-packet.cjs +0 -790
  157. package/mcp-server/lib/change-workflow.cjs +0 -65
  158. package/mcp-server/lib/context-envelope.cjs +0 -581
  159. package/mcp-server/lib/context-paths.cjs +0 -142
  160. package/mcp-server/lib/decision-records.cjs +0 -423
  161. package/mcp-server/lib/delivery-transaction.cjs +0 -471
  162. package/mcp-server/lib/doctor-backup-worker.cjs +0 -328
  163. package/mcp-server/lib/doctor.cjs +0 -627
  164. package/mcp-server/lib/git-bootstrap.cjs +0 -651
  165. package/mcp-server/lib/init-project.cjs +0 -1021
  166. package/mcp-server/lib/kernel-change-workflow.cjs +0 -2029
  167. package/mcp-server/lib/legacy-change-workflow.cjs +0 -3032
  168. package/mcp-server/lib/managed-file-write.cjs +0 -172
  169. package/mcp-server/lib/plan-checkpoint.cjs +0 -177
  170. package/mcp-server/lib/plan-publication-worker.cjs +0 -830
  171. package/mcp-server/lib/plan-store.cjs +0 -794
  172. package/mcp-server/lib/prd-parser.cjs +0 -83
  173. package/mcp-server/lib/pricing.cjs +0 -44
  174. package/mcp-server/lib/project-context.cjs +0 -178
  175. package/mcp-server/lib/projector.cjs +0 -386
  176. package/mcp-server/lib/provider-refs.cjs +0 -42
  177. package/mcp-server/lib/runtime-paths.cjs +0 -1687
  178. package/mcp-server/lib/runtime-state.cjs +0 -222
  179. package/mcp-server/lib/safe-project-file.cjs +0 -385
  180. package/mcp-server/lib/stage-checkpoints.cjs +0 -463
  181. package/mcp-server/lib/state-authority.cjs +0 -95
  182. package/mcp-server/lib/state-db.cjs +0 -1580
  183. package/mcp-server/lib/state-ops.cjs +0 -1428
  184. package/mcp-server/lib/task-contract.cjs +0 -404
  185. package/mcp-server/lib/task-expander.cjs +0 -105
  186. package/mcp-server/lib/task-ledger.cjs +0 -1964
  187. package/mcp-server/lib/telemetry.cjs +0 -85
  188. package/mcp-server/lib/topo.cjs +0 -131
  189. package/mcp-server/lib/ultra-facade.cjs +0 -2684
  190. package/mcp-server/lib/worker-packet.cjs +0 -358
  191. package/mcp-server/server.cjs +0 -437
  192. package/orchestrator/auto-merge.cjs +0 -128
  193. package/orchestrator/daemon.cjs +0 -264
  194. package/orchestrator/dispatch-rules.cjs +0 -78
  195. package/orchestrator/parallel-orchestrator.cjs +0 -903
  196. package/orchestrator/planner/plan-builder.cjs +0 -125
  197. package/orchestrator/recovery.cjs +0 -188
  198. package/orchestrator/session-close-journal-worker.cjs +0 -5
  199. package/orchestrator/session-close-journal.cjs +0 -1014
  200. package/orchestrator/session-runner.cjs +0 -1153
  201. package/orchestrator/worktree-manager.cjs +0 -282
  202. package/settings.json +0 -7
  203. package/skills/cc-collab/SKILL.md +0 -42
  204. package/skills/code-review-expert/SKILL.md +0 -43
  205. package/skills/code-review-expert/references/correctness-reliability.md +0 -30
  206. package/skills/code-review-expert/references/design-boundaries.md +0 -26
  207. package/skills/code-review-expert/references/removal-plan.md +0 -24
  208. package/skills/codex-collab/SKILL.md +0 -49
  209. package/skills/codex-collab/evals/evals.json +0 -35
  210. package/skills/integration-rules/SKILL.md +0 -32
  211. package/skills/security-rules/SKILL.md +0 -38
  212. package/skills/testing-rules/SKILL.md +0 -32
  213. package/skills/ultra-doctor/SKILL.md +0 -41
  214. package/skills/ultra-plan/references/semantic-preflight.md +0 -20
  215. package/skills/ultra-verify/SKILL.md +0 -46
  216. package/skills/ultra-verify/evals/evals.json +0 -46
  217. package/skills/ultra-verify/references/cross-verify-modes.md +0 -28
  218. package/skills/ultra-verify/references/evidence-status.md +0 -21
  219. package/skills/ultra-verify/scripts/verify_wait.py +0 -94
  220. package/spec/cli-protocol.md +0 -102
  221. package/spec/mcp-tools.yaml +0 -312
  222. package/spec/schemas/baseline-reconciliation.v1.schema.json +0 -73
  223. package/spec/schemas/change-delta.v1.schema.json +0 -153
  224. package/spec/schemas/command-manifest.schema.json +0 -29
  225. package/spec/schemas/context-file.v4.5.schema.json +0 -54
  226. package/spec/schemas/delivery-report.v1.schema.json +0 -66
  227. package/spec/schemas/documentation-reconciliation.v1.schema.json +0 -106
  228. package/spec/schemas/mcp-tools.schema.json +0 -136
  229. package/spec/schemas/skill-manifest.schema.json +0 -24
  230. package/spec/schemas/state-db.sql +0 -641
  231. package/spec/schemas/task-ledger.v2.schema.json +0 -296
  232. package/spec/schemas/tasks.v4.5.schema.json +0 -96
  233. package/spec/schemas/test-report.v1.schema.json +0 -225
  234. package/ultra-tools/cli.cjs +0 -129
  235. package/ultra-tools/commands/db.cjs +0 -226
  236. package/ultra-tools/commands/legacy-memory.cjs +0 -159
  237. package/ultra-tools/commands/migrate.cjs +0 -1386
  238. package/ultra-tools/commands/session.cjs +0 -213
  239. package/ultra-tools/commands/status.cjs +0 -559
  240. package/ultra-tools/commands/system.cjs +0 -498
  241. package/ultra-tools/commands/task.cjs +0 -105
@@ -1,293 +1,115 @@
1
1
  # Ultra artifact authority
2
2
 
3
- This document defines what `.ultra/` remembers across sessions, which surface owns
4
- each fact, and how working output becomes durable Ultra authority.
3
+ This document defines which project artifacts carry semantic authority, who may change
4
+ them, how staleness is detected, and how recovery works in Ultra Builder Pro v0.26.
5
5
 
6
- ## Boundary
6
+ ## Rules
7
7
 
8
- `.ultra/` is the project-local cross-session workflow-memory envelope for Ultra
9
- Builder Pro. It retains normalized intent, lifecycle progress, tasks, bounded execution
10
- context, specifications, evidence, provenance, recovery state, and external provider
11
- references. It is not a general conversational-memory system and does not retain raw
12
- prompts, transcripts, chain-of-thought, general episodic summaries, or code-graph
13
- payloads.
8
+ 1. One semantic fact has one canonical representation.
9
+ 2. Owner intent and accepted reductions require owner authority.
10
+ 3. The model may interpret, decompose, investigate, and edit inside the authorized frame.
11
+ 4. Generated observations are disposable and never silently promoted.
12
+ 5. Git supplies revision identity, history, archive moves, comparison, and rollback.
14
13
 
15
- Semantic and evidence artifacts under `.ultra/` are trackable so reviewed intent and
16
- verification can travel with the repository. `.ultra/.runtime/` is always ignored:
17
- the SQLite authority, leases, worktrees, local telemetry, and recovery snapshots remain
18
- checkout-local. `.ultra/tasks/tasks.json` is the narrow MCP-owned Git handoff for
19
- portable baseline, Change, Decision, accepted Stage Checkpoint, and durable Task
20
- records; it is not a copy of live runtime state.
14
+ ## Canonical artifacts
21
15
 
22
- ## Artifact classes
16
+ | Artifact | Canonical content | Primary writer | Required readers | Staleness or conflict signal |
17
+ |---|---|---|---|---|
18
+ | `.ultra/north-star.md` | Owner's one-line goal and hard constraints | `ultra-init`, owner | every workflow; session Hook | owner correction or explicit replacement |
19
+ | `.ultra/specs/product.md` | Product behavior and acceptance | research/change/delivery reconciliation | change, plan, dev, test, review, delivery | source/evidence conflict or unresolved marker |
20
+ | `.ultra/specs/architecture.md` | Boundaries, authority, consumers, failure and recovery | research/change/delivery reconciliation | change, plan, dev, test, review, delivery | live-path evidence conflicts with text |
21
+ | `.ultra/specs/discovery.md` | observations, unknowns, drift, and evidence queue | init/research | research, change, status | evidence resolves or overturns an entry |
22
+ | `.ultra/specs/research-distillate.md` | bounded synthesis of specification state | `ultra-research` | change, plan, delivery | stored source blob hash differs from Git blob hash |
23
+ | `CONTEXT.md` | ubiquitous language and relationships | `ultra-domain-modeling` | every workflow and test naming | source/product use reveals ambiguity |
24
+ | `.ultra/changes/active/<id>/intent.md` | one bounded requested outcome | `ultra-change`; Planning Posture by `ultra-plan` | plan, dev, test, review, status, delivery | acceptance or scope changes |
25
+ | `.ultra/tasks.json` | task identity, graph, status, trace, and context path | `ultra-plan` / `ultra-dev` | every user workflow and context Hook | ledger and context status disagree |
26
+ | task `context_file` | acceptance, seams, implementation, evidence pointers, Completion, Resume Note | plan/dev | dev, test, review, status, delivery, resume | differs from ledger or current implementation |
27
+ | `.ultra/decisions/<id>.md` | durable consequential owner decision | `ultra-think` after acceptance | every workflow in scope | superseded by a newer decision file |
28
+ | `.ultra/evidence/<task-id>/...` | command output and bounded task evidence | `ultra-dev` | review, test, delivery | evidence revision differs from affected code |
29
+ | `.ultra/test-report.json` | whole-system audit at one Git commit and worktree digest | `ultra-test` | status and delivery | `git_commit` or worktree digest differs from current checkout |
30
+ | `.ultra/changes/active/<id>/delivery.md` | outcome, docs, verification, review, debt, risk, recovery, effects | `ultra-deliver` | owner and archived Change history | active evidence or accepted scope changes |
31
+ | `.ultra/research/<run-id>/...` | cited investigation reports | `ultra-research` | specs, change, plan, delivery | newer sources or later superseding run |
23
32
 
24
- | Class | Examples | Authority |
25
- |---|---|---|
26
- | Checkout-local persistence and safety | `.ultra/.runtime/state.db` | Operational authority for identifiers, normalized accepted intent, accepted Stage Checkpoints, references, digests, freshness, provenance, locks, leases, transactions, recovery, and coordination in one checkout; never semantic route selection |
27
- | Git team checkpoint | `.ultra/tasks/tasks.json` | MCP-published, digest-chained handoff of portable baseline, Change, Decision summary/reference, accepted Stage Checkpoint, Task contract, dependency, and durable outcome records; never live Session or lease authority |
28
- | Digest-bound semantic artifacts | specifications, research reports, Change intent/delta/plan, Context Envelopes, Decision Records | Authoritative semantic bodies only while registered by the owning record or Stage Checkpoint and matching its recorded digest |
29
- | Digest-bound evidence artifacts | test, review, delivery, and verification reports | Authoritative evidence bodies only while registered, immutable where required, and matching the recorded digest and scope |
30
- | Generated projections | `.ultra/.runtime/projections/tasks.json`, generated task contexts, activity exports | Checkout-local read-only views derived from DB authority; manual edits are overwritten and never become authority |
31
- | Advisory recovery | `.ultra/.runtime/checkpoint.json` | Compact recovery hint derived from DB authority; stale or missing content never overrides the DB |
32
- | Working scratch | `.ultra/.runtime/collab/`, temporary session output, incomplete drafts | Non-authoritative working material until verified and promoted through a supported workflow write |
33
- | External provider references | memory or code-graph provider name, scope, version, stable reference, freshness metadata | Metadata-only context stored by Ultra; the provider remains authority for its payload |
34
-
35
- The DB is not expected to contain every semantic paragraph. It owns checkout-local
36
- lifecycle and the binding between a fact and its current content. A digest-bound file
37
- owns the registered semantic or evidence body. The team checkpoint moves a reviewed
38
- portable subset through Git and is merged into the receiving DB through MCP. None of
39
- these surfaces independently owns all three roles.
40
-
41
- ## Human, model, and mechanical responsibilities
42
-
43
- | Actor | Responsible for | Must not do |
44
- |---|---|---|
45
- | Owner | Goals, acceptance, non-goals, material choices, risk acceptance, and authorization for irreversible or external effects | Supply facts the checkout or runtime can establish directly |
46
- | Host model | Inspect evidence, recommend a route, ask only for unresolved owner choices, normalize the answer, call the owning write, update semantic artifacts, read back the result, and present the next recommendation | Fabricate evidence, infer owner authorization, or bypass mechanical safety |
47
- | Ultra MCP | Persist normalized inputs, validate structure/current bytes/digests, record facts and provenance, commit caller-declared Stage Checkpoints, project local views, publish/import the Git checkpoint, and expose recovery | Judge semantic completeness, choose product direction, prove a UI click, pre-authorize reasoning steps, force a semantic route, or replace model judgment |
48
- | Host adapter | Render the shared interaction contract through the host-native question and tool surfaces | Become a second workflow authority |
49
- | Hook | Observe lifecycle, inject compact DB-derived recovery context, and protect MCP-owned checkpoint and generated projection paths | Select a semantic route or block ordinary development |
50
-
51
- ## Intent persistence
52
-
53
- The interaction sequence is:
54
-
55
- ```text
56
- inspect -> suggest -> host-native ask -> normalize -> persist -> apply -> read back
57
- ```
58
-
59
- The host-native ask is conditional. An explicit owner instruction can already resolve
60
- a choice, so the model must not ask
61
- again merely to manufacture proof. When interaction is needed, the adapter uses the
62
- host-native question surface. Once the model batches the normalized result through
63
- `ultra.record`, the DB treats that result as current cross-session intent authority. It
64
- does not store or verify a UI receipt, raw prompt, or transcript.
65
-
66
- If the accepted decision changes another Ultra authority, the model applies that change
67
- through `ultra.record` or a digest-bound artifact and reads the result back. A decision whose normalized record is
68
- itself the complete authority may have no applied reference. Breadcrumb and decision
69
- read paths recall accepted intent only after the dialogue thread is completed or
70
- confirmed. A row-backed applied reference names an exact field and canonical value,
71
- with an optional digest of that value. A specification or artifact reference names
72
- the exact file digest. Row existence alone never proves that intent was applied.
73
-
74
- ## Promotion and evidence
75
-
76
- Working material becomes durable only when all applicable conditions hold:
77
-
78
- 1. the current Change and owner authority permit the write;
79
- 2. consequential claims are verified against the checkout, runtime, test result, or
80
- primary source;
81
- 3. the model writes through the owning MCP operation or immutable artifact path;
82
- 4. the DB records the owning baseline, Change, Stage Checkpoint, Task, Decision, or artifact reference;
83
- 5. content-bearing files match the recorded SHA-256 digest and scope;
84
- 6. the model reads back the resulting state before reporting completion.
85
-
86
- The durable evidence trail may include normalized decisions, delegation source,
87
- durable effects, typed applied references, Stage Checkpoint evidence, artifact hashes,
88
- verification commands and results, provenance, events, and recovery state. It must not
89
- include chain-of-thought, UI-click proof, raw prompts, or conversation transcripts.
90
-
91
- Public kernel inputs are exact at their owning kind/action boundary. SQLite constraints
92
- remain defense in depth, not the first definition of a business vocabulary: wrong
93
- types, unsupported enums, unknown fields, malformed references, and invalid digests
94
- are rejected as typed mutable diagnostics before any row or file write. The rejected
95
- attempt is retained as audit evidence but never becomes semantic authority.
96
-
97
- An accepted mutation and its durable idempotency receipt form one logical transaction.
98
- DB-only operations commit them together. Operations that also publish managed files,
99
- the Git team checkpoint, a Session worktree/Worker Packet, or an archive packet use a
100
- recoverable journal or verified compensation. Failure restores the exact prior file
101
- bytes, rows, ledger generation, lease, packet, and worktree where applicable; an
102
- unprovable rollback becomes an explicit recovery condition rather than false success.
103
-
104
- Verified conclusions from `.ultra/.runtime/collab/` or other scratch locations must be promoted
105
- into the invoking DB-bound workflow artifact or report. Keeping a file in the scratch
106
- directory is not promotion.
33
+ The repository files may use prose, tables, or JSON as appropriate. The format is not
34
+ authority by itself; the canonical path and accepted writer contract are.
107
35
 
108
- ## Change overlay authority
36
+ Every completed task has exactly one `.ultra/evidence/<task-id>/evidence.json` with
37
+ schema `ultra-task-evidence-v1`. It records `task_id`, forty-character `git_head`, exact
38
+ commands (`command`, `exit_code`, `evidence_ref`), all six evidence dimensions,
39
+ artifact paths, limitations, and timestamp. Each dimension uses `status` of
40
+ `satisfied`, `gap`, or `not_applicable`, plus `evidence_refs` and a non-empty rationale.
41
+ Optional raw logs live beside that record; they do not create another summary.
109
42
 
110
- An active Change is an isolated overlay below
111
- `.ultra/changes/active/<change-id>/`. Its intent, normalized decisions, adaptive research,
112
- typed delta payloads, plan, contexts, documentation payloads, progress projection,
113
- test reports, review artifacts, and delivery evidence remain below that root. Change
114
- research never edits baseline specifications.
43
+ ## Mutable workflow state
115
44
 
116
- `change.delta` registers exact baseline id, repository revision, specification
117
- digests, accepted decisions, non-goals, acceptance, documentation impact, unknowns,
118
- and every semantic mutation's before/after digest. A no-semantic-change result is an
119
- explicit typed delta, not an absent file. `progress.md` is a deterministic projection
120
- of the registered delta and documentation state; it is never an independent status
121
- authority.
45
+ Pure file state uses three mechanisms:
122
46
 
123
- `change.documentation_reconcile` binds the current delta id and digest, every changed
124
- document's before/after digest, delta and acceptance references, verification, and a
125
- verified consumer or explicit no-consumer reason. Standard and major delivery require
126
- one current reconciliation even when its document set is empty.
47
+ - directory position, such as `changes/active/` versus `changes/archive/`;
48
+ - an explicit field, such as a task or context status;
49
+ - an on-the-spot model judgment that is not persisted as state.
127
50
 
128
- The Deliver Skill owns the evidence-based semantic handoff and records any deliberate
129
- stage omission. `change.archive` does not infer completeness or require a fixed
130
- Plan/Dev/Test/Review/Deliver sequence. It preflights the caller-declared target set
131
- before writing, validates reconciliation structure, applies overlay bytes through a
132
- recoverable local transaction, refreshes baseline digests, moves the complete Change
133
- root to its archive location, and rebinds registry paths. A conflict, crash, or DB
134
- failure must roll back or resume the whole packet; no subset is reported as delivered.
51
+ A state field records a mechanically checkable fact. Route selection remains a model
52
+ judgment. Do not add a workflow-position field merely to decide which Skill should run.
135
53
 
136
- ## Context and plan authority
54
+ Task completion uses a dual write: `.ultra/tasks.json` and the task context header must
55
+ agree. The writer reads both back. A mismatch is a visible recovery diagnostic; neither
56
+ side silently wins.
137
57
 
138
- The canonical Context Envelope generator reads accepted Change, Task, baseline,
139
- Decision, checkout, evidence, execution, and provider-reference authority and writes
140
- one immutable manifest plus its DB snapshot row when persistence is requested. It
141
- never updates provider references or semantic Change fields. Each snapshot is
142
- identified by its exact scope, stage, content digest, and selected execution seam;
143
- consumers must not substitute a snapshot from another scope.
58
+ ## Decisions and reductions
144
59
 
145
- Context refs preserve `expected_digest`, `anchor`, `scope`, and `freshness_policy`.
146
- Digest-bound refs are revalidated at the consuming gate, existence-bound implementation
147
- targets may change while remaining present, and advisory drift is retained as a
148
- warning. File bodies stay lazy. Implementation manifests inline only the selected task,
149
- its direct dependency/integration neighborhood, and its task-context contract.
60
+ Write a durable decision only when it is difficult to reverse, surprising without
61
+ context, and the result of a real trade-off. All three conditions are required.
150
62
 
151
- A current plan is a Change-owned pair:
63
+ An accepted decision file is append-only history. A changed answer creates a new file
64
+ with `supersedes`; it does not rewrite the prior decision.
152
65
 
153
- - `<artifact_root>/plan.json` is the machine-readable topology and exact planning
154
- context binding;
155
- - `<artifact_root>/plan.md` is the deterministic human projection of the same plan and
156
- task contracts.
66
+ Classification of a specification change is outcome-based:
157
67
 
158
- The Plan checkpoint selects both paths from the owning Change and accepts no arbitrary
159
- output path. The model owns decomposition and semantic coverage. MCP binds the JSON
160
- digest and the preceding `plan/planning` snapshot;
161
- the artifact registry records both plan files with that context provenance. Publication
162
- preflights both path authorities and prior digests, rejects symlinked ancestors or
163
- targets, and journals the two file replacements so a registry or event failure restores
164
- both prior files while the SQLite transaction rolls back. The global
165
- `.ultra/execution-plan.json` remains readable only for explicit legacy migration and is
166
- never current write or dispatch authority.
68
+ - `EXPANSION`: adds a commitment while all prior commitments remain true;
69
+ - `CORRECTION`: changes an inaccurate description while every prior product commitment
70
+ still holds in the result;
71
+ - `REDUCTION`: any prior commitment stops holding, regardless of the justification.
167
72
 
168
- ## Registry contract
73
+ Only the owner may accept a reduction.
169
74
 
170
- `ultra.record` is the public writer for a semantic or evidence file that is not
171
- already registered by its owning typed record or Stage Checkpoint. Every managed registry row has:
75
+ ## Evidence promotion
172
76
 
173
- - a typed `owner_type` and `owner_id`;
174
- - an artifact `kind`, project-relative `path`, lifecycle `status`, and SHA-256
175
- `digest`;
176
- - `before_digest` and `after_digest` values for optimistic write validation and
177
- change evidence;
178
- - structured `provenance` and optional metadata;
179
- - normalized source and consumer edges in `artifact_edges`.
77
+ Tool output, source inspection, external sources, and runtime observations begin as
78
+ evidence. The model may use them to update a canonical specification when their scope
79
+ and provenance support the claim. The evidence is retained or cited; it is not copied
80
+ into a second semantic ledger.
180
81
 
181
- The write replaces all edges for the artifact in one immediate SQLite transaction.
182
- It never accumulates stale edges with `INSERT OR IGNORE`. If an existing digest
183
- changes, the same transaction emits `spec_changed`, marks only reachable artifact
184
- and Task consumers stale through typed artifact, Task, checkpoint, and Change intermediates,
185
- and records the exact invalidated endpoints. Self-edges and dependency cycles are
186
- rejected without changing prior authority. A caller can provide
187
- `expected_before_digest`; a mismatch fails without changing the row or its edges.
82
+ A test result is current only for the code and environment it exercised. A report must
83
+ carry the exact command, exit code, and Git commit. Missing or stale evidence remains
84
+ `not_run`, `unknown`, or `stale`; it is never inferred as passing.
188
85
 
189
- `artifact.get` reads by unique ID or unambiguous path. It fails closed when a path
190
- has multiple active authorities and reports whether the row satisfies the managed
191
- registry contract. A canonical path can have only one non-archived authority across
192
- all owners and kinds. Runtime, scratch, the MCP-owned team checkpoint, and generated
193
- task contexts cannot be promoted through this API.
86
+ ## Derived artifacts
194
87
 
195
- Owning internal writers use the same transaction contract. Change intent, delta and
196
- documentation packets, Context Envelopes, adaptive research, incident diagnosis,
197
- plan, test, review, delivery, archive reconciliation, and specification learning
198
- cannot update a managed digest or provenance through a parallel SQL path.
88
+ These paths are intentionally non-authoritative:
199
89
 
200
- Rows migrated from pre-20 schemas remain readable and preserve their original IDs,
201
- paths, hashes, timestamps, and legacy change/task ownership. They are marked
202
- `managed = 0` until an owning current record or `artifact.record` supplies complete
203
- provenance and dependency edges. This compatibility state preserves data without
204
- pretending that an old row satisfies the current registry contract.
205
-
206
- ## Dependency and orphan diagnosis
207
-
208
- `ultra.doctor` compares the registry, dependency graph, filesystem, and owner
209
- tables. It reports:
210
-
211
- - unregistered semantic or evidence files;
212
- - registered files that are missing or whose digest/status is stale;
213
- - missing typed owners;
214
- - current managed artifacts without a consumer, unless explicitly terminal;
215
- - dangling source or consumer endpoints;
216
- - graph cycles that cannot become consumer evidence;
217
- - more than one active authority for the same canonical path;
218
- - legacy compatibility rows that remain unmanaged;
219
- - legacy generated task contexts left outside the runtime projection root.
220
-
221
- `.ultra/.runtime/**`, `.ultra/scratch/**`, and fixed scaffold support files are outside
222
- orphan diagnosis. Current generated projections are local runtime files and are not
223
- semantic artifacts. A retired `.ultra/tasks/contexts/**` entry is diagnosed and any
224
- generated marker is reported as a ghost projection. Before a baseline is ready, only
225
- the reserved
226
- `discovery.md`, `product.md`, `architecture.md`, and `research-distillate.md` scaffold
227
- paths under `.ultra/specs/` are provisional; every additional specification is subject
228
- to orphan diagnosis immediately. Completion cannot be manufactured by registering
229
- empty templates. Doctor and status expose registered, managed, and unmanaged counts,
230
- and compatibility remains unhealthy until every retained row is deliberately promoted
231
- or retired.
232
-
233
- ## Team checkpoint
234
-
235
- `.ultra/tasks/tasks.json` has kind `ultra-team-task-ledger` and a versioned schema. It
236
- contains:
237
-
238
- - one portable baseline record, when present;
239
- - every Change summary, including a Change that has not yet produced Tasks;
240
- - normalized Decision summaries, artifact references, digests, and supersession;
241
- - accepted Stage Checkpoint summaries and evidence references;
242
- - durable Task contracts, dependencies, acceptance mappings, and outcomes;
243
- - per-record revisions, parent digests, the checkpoint state digest, and bounded
244
- checkpoint ancestry.
245
-
246
- It excludes `in_progress` ownership, session ids, leases, worktrees, telemetry,
247
- projection jobs, recovery scratch, and `completion_commit`. Those fields are meaningful
248
- only in the checkout that owns the active process or Git object.
249
-
250
- MCP publishes a new generation at semantic handoff points: baseline convergence,
251
- Change creation or update, plan acceptance, durable task-contract or status change,
252
- task expansion or deletion, and Change convergence or archive. A direct edit is
253
- rejected by host hooks and fails digest validation even without hooks.
254
-
255
- `ultra.sync { action: import }` validates schema, full and per-record digests, bounded ancestry,
256
- Change ownership, task parents, and local active sessions. A clean record fast-forwards.
257
- A record changed on both sides, a non-descendant checkpoint, or a remote update to a
258
- locally active task stops with a typed conflict. Re-importing the same checkpoint
259
- performs no DB write. A ready imported baseline becomes `draft` or `adopting` with a
260
- blocking checkout-local revalidation gap; Git cannot prove the receiving checkout's
261
- HEAD, scope bytes, verification, or accepted dirty state. Publication remains blocked
262
- until that local baseline converges, preventing one unvalidated checkout from
263
- downgrading team authority.
264
-
265
- Legacy v4.4/v4.5 projections are replaced only through
266
- `ultra.sync { action: publish }`. The
267
- publisher first compares every available durable field with SQLite, writes the exact
268
- legacy bytes to `.ultra/.runtime/backups/task-ledger/`, and refuses any mismatch.
269
- Doctor diagnoses this state but never performs the semantic replacement.
270
-
271
- ## Task-context projection
272
-
273
- `.ultra/.runtime/projections/contexts/<task-id>.md` is fully generated from current DB
274
- authority. The projector replaces the whole file, including its execution contract and
275
- stale banner, and marks it with `generated_by: ultra-projector`. It never preserves
276
- arbitrary prose inserted into an earlier projection.
277
-
278
- Before retiring an existing `.ultra/tasks/contexts/<task-id>.md`, the projector
279
- promotes its exact authored body bytes once into a digest-bound
280
- `legacy_context_findings` artifact owned and consumed by the task. Legacy frontmatter,
281
- stale banners, and generated contract marker regions are removed first; any remaining
282
- authored body is retained exactly, even when an older projector had preserved it after
283
- a generated contract. Migration fails without deleting the authored body if promotion
284
- cannot be registered. Both legacy reads and runtime projection writes reject traversal,
285
- symlink ancestors, and path escape. When a task disappears, only a runtime projection
286
- carrying the generated marker may be pruned, and the removal emits
287
- `projection_pruned`.
288
-
289
- Model findings, decisions, or evidence discovered during development must be written
290
- below the owning Change root and registered through its typed record, checkpoint, or
291
- `artifact.record`.
292
- The next context projection references that authority. Editing the task-context body
293
- or an accepted baseline specification directly is neither persistence nor promotion.
90
+ | Path | Purpose | Recovery |
91
+ |---|---|---|
92
+ | `.ultra/.runtime/compact-snapshot.md` | compaction acceleration | rebuild from files and Git |
93
+ | `.ultra/.runtime/delegations/` | delegated process receipts and logs | inspect result or rerun with new id |
94
+ | `.ultra/.runtime/worktrees/` | delegated checkout locations | inspect Git worktrees and remove safely |
95
+ | `.ultra/progress/<task-id>.json` | mechanical evidence observations | rerun sensors or inspect current diff |
96
+ | `.ultra/reviews/<session>/` | bounded lens packets and findings | rerun review at a named revision |
97
+
98
+ The canonical template's nested `.ultra/.gitignore` ignores `.runtime/`, `progress/`,
99
+ and `reviews/` without rewriting the owner's repository-level ignore rules. Deleting
100
+ those paths cannot delete accepted product intent, task contracts, or decisions.
101
+
102
+ ## Recovery order
103
+
104
+ After interruption or host change:
105
+
106
+ 1. identify the repository root and current `HEAD`;
107
+ 2. read `.ultra/tasks.json`;
108
+ 3. read the unfinished task's full context and closing Resume Note;
109
+ 4. read `CONTEXT.md`, relevant decisions, active Change, specifications, and evidence;
110
+ 5. inspect the working tree and compare it with Completion and evidence claims;
111
+ 6. repair any ledger/context mismatch explicitly before relying on status;
112
+ 7. continue through the next observable acceptance boundary.
113
+
114
+ Hooks and the `ubp` executable may be unavailable. Recovery must still work through
115
+ these files and Git alone.
package/docs/DECISIONS.md CHANGED
@@ -1,87 +1,75 @@
1
- # Ultra Builder Pro decision contract
2
-
3
- This document records the current product and authority boundaries that apply to
4
- the distributed package. Executable behavior remains defined by source,
5
- `spec/mcp-tools.yaml`, and `spec/schemas/state-db.sql`; `package.json` is the
6
- release-version authority.
7
-
8
- ## Authority split
9
-
10
- | Layer | Owns | Must not own |
11
- |---|---|---|
12
- | User intent | Goals, acceptance, non-goals, semantic route selection, material product trade-offs, risk acceptance, and authorization for irreversible or external effects | Facts that the current checkout or runtime can establish directly |
13
- | Host model | Classification and route recommendations, investigation, solution design, task decomposition, context, test and review strategy, documentation impact, intent normalization, and next-action recommendations | Fabricated evidence, bypassed authorization, or durable lifecycle state |
14
- | Ultra MCP | IDs, checkout-local state, digests, provenance, freshness, locks, leases, transactions, recovery, legal state transitions, and Git checkpoint publish/import | Product direction, a fixed research route, technology selection, or business decisions |
15
- | Host adapter | Native Skill discovery, user-question surfaces, tool invocation, installation, and runtime wiring | A second project-state authority |
16
- | Hook | Lifecycle observation, compact DB-derived context, recovery hints, and protection of MCP-owned checkpoint/projection paths | Ordinary development blocking or semantic route selection |
17
-
18
- `.ultra/` is project-local cross-session workflow memory. `.ultra/.runtime/state.db` is
19
- checkout-local lifecycle, index, transition, freshness, and coordination authority.
20
- Registered digest-bound files carry semantic or evidence bodies.
21
- `.ultra/tasks/tasks.json` is the MCP-published Git handoff for portable baseline,
22
- Change, and durable task records, never live session state. Generated projections and
23
- working scratch are not authority. Prompt text, chat history, general external-memory
24
- payloads, and code-graph payloads are not Ultra authority. See
25
- [`ARTIFACT-AUTHORITY.md`](./ARTIFACT-AUTHORITY.md).
26
-
27
- ## Research coverage
28
-
29
- The research references form an optional semantic catalog. The host model
30
- inspects current evidence and recommends the smallest sufficient route. The
31
- owner selects, modifies, delegates, or defers that route through the current
32
- host's native question surface unless current intent already resolves it. The
33
- host then normalizes and records the accepted coverage with an evidence-based
34
- rationale and synthesis. Omitted catalog areas create no workflow rows. An
35
- explicit `not_applicable` or accepted `deferred` entry is recorded only when
36
- preserving that exclusion is useful.
37
-
38
- MCP validates generic invariants: selected identifiers must exist, dispositions
39
- must be legal, reused or excluded evidence must be referenced, synthesis must be
40
- active, and at least one non-synthesis area must be applicable. MCP does not
41
- choose the coverage set or prove how the owner answered. Once normalized intent
42
- is written, `.ultra/.runtime/state.db` treats it as current cross-session authority. If
43
- that intent changes another Ultra authority, the host applies the change,
44
- reads it back, and records typed applied references when completing the
45
- decision thread.
46
-
47
- ## Lifecycle boundaries
48
-
49
- - `ultra-init` classifies and initializes local project authority. It does not
50
- perform product research or start another workflow.
51
- - `ultra-research` establishes or refreshes evidence and converges a baseline
52
- only after the required user decisions and local Git authority exist.
53
- - `ultra-change` owns post-baseline product deltas. Research, planning,
54
- development, testing, review, and delivery remain separately invocable
55
- capabilities with DB-enforced prerequisites.
56
- - `ultra-deliver` converges local Ultra evidence. Commit, push, publish, deploy,
57
- messaging, and other external effects remain separately authorized host
58
- actions.
59
-
60
- ## Package boundary
61
-
62
- The package contains the public Ultra workflows, internal review-rule Skills,
63
- host-specific collaboration companions, MCP runtime, adapters, lifecycle hooks,
64
- and minimal project bootstrap. General browser, deployment, framework,
65
- discovery, memory, and graph capabilities remain owned by their separately
66
- installed providers. Ultra stores only bounded provider metadata references.
67
-
68
- ## Installation provenance
69
-
70
- Each host installation records package identity, repository, source commit when
71
- available, installed-asset hashes, and contract targets. A local source checkout
72
- also records whether it was dirty and a deterministic worktree digest. An npm
73
- installation has no package-local Git repository and records those source
74
- checkout fields as `null`; it never inherits an enclosing consumer repository.
75
-
76
- Installation and project diagnostics are read-only unless an explicit repair or
77
- install action is requested. No local workflow completion authorizes a remote,
78
- release, deployment, or destructive effect.
79
-
80
- ## Current source map
81
-
82
- - Runtime architecture: [`ARCHITECTURE.md`](./ARCHITECTURE.md)
83
- - Workflow state and invalidation: [`WORKFLOW-LIFECYCLE.md`](./WORKFLOW-LIFECYCLE.md)
84
- - Host compatibility: [`RUNTIME-COMPAT-MATRIX.md`](./RUNTIME-COMPAT-MATRIX.md)
85
- - Plugin and user-instruction boundary: [`PLUGIN-ISOLATION-CONTRACT.md`](./PLUGIN-ISOLATION-CONTRACT.md)
86
- - MCP interface: [`../spec/mcp-tools.yaml`](../spec/mcp-tools.yaml)
87
- - Database contract: [`../spec/schemas/state-db.sql`](../spec/schemas/state-db.sql)
1
+ # Ultra Builder Pro v0.26 decisions
2
+
3
+ This file records durable product-level decisions that explain the current source tree.
4
+ Project decisions created by Ultra belong in each project's `.ultra/decisions/`.
5
+
6
+ ## File-first authority
7
+
8
+ Owner-readable repository files and Git are the complete semantic authority. Ultra
9
+ does not maintain a database, MCP kernel, workflow state machine, prompt projection, or
10
+ daemon. The previous mechanical supervisor could make every public path unreachable
11
+ while still reporting internally consistent state; deletion restores the host model's
12
+ ownership of route and meaning.
13
+
14
+ ## Three Skill roles
15
+
16
+ The product exposes eight owner-invoked workflows, five model-invoked disciplines, and
17
+ one router. Public workflows require explicit owner selection. A public workflow may
18
+ recommend but never launch another public workflow. A model discipline needs at least
19
+ two canonical callers or it is inlined.
20
+
21
+ This keeps reusable reasoning in one place without turning it into another user-facing
22
+ route or custom-agent registry.
23
+
24
+ ## Rule-side assets travel with Skills
25
+
26
+ `.ultra/` contains project data only. Reusable executable examples live under
27
+ `skills/ultra-tdd/references/templates/`; the reduction boundary lives under
28
+ `skills/ultra-think/references/`; the full philosophy lives in `docs/PHILOSOPHY.md`.
29
+
30
+ Skill `references/` is already copied by every adapter and supports relative
31
+ cross-Skill links. No placeholder root variable or separate asset distributor is
32
+ needed.
33
+
34
+ ## State is fact; route is judgment
35
+
36
+ Directory position and explicit fields record mechanically checkable facts. The host
37
+ model reads those facts and chooses the next route. There is no persisted “current
38
+ workflow stage” whose value can override the actual files.
39
+
40
+ Task status is written to both the ledger and context, then read back. Change archive
41
+ is a `git mv`. Test-report freshness compares `git_commit` with `HEAD`.
42
+
43
+ ## Three independent integration defences
44
+
45
+ Planning, task development, and final testing detect different versions of the
46
+ locally-green/whole-system-broken failure. Their outputs remain independent sensors:
47
+ horizontal task shape, six evidence dimensions, and final wiring/E2E audit.
48
+
49
+ No single sensor is promoted into a semantic completion gate.
50
+
51
+ ## Five hooks only
52
+
53
+ The hook surface is session context, mid-workflow acceptance recall, compact snapshot,
54
+ post-edit evidence observation, and dangerous-command protection. Every hook is silent
55
+ without `.ultra/`. Only a narrow named destructive effect can be denied, and its repair
56
+ is authorization scoped to the exact command digest.
57
+
58
+ ## Delegation is a process boundary
59
+
60
+ `ubp delegate run` starts a supported CLI with an immutable instruction, explicit
61
+ permission JSON, and named worktree. Files are the cross-host state. The parent reads a
62
+ stable terminal result instead of worker chatter. Delegation adds no semantic store and
63
+ no authority.
64
+
65
+ ## Installation isolation
66
+
67
+ An explicit `--config-dir` owns host sidecars as well as the primary config. In
68
+ particular, Codex plugin and personal-marketplace paths resolve inside the sandbox.
69
+ Managed staging, provenance, doctor, and uninstall are native adapter responsibilities.
70
+
71
+ ## External effects
72
+
73
+ Commit, push, tag, package publication, release, deployment, installation, migrations,
74
+ and real-money effects are independent. A locally complete delivery authorizes none of
75
+ them automatically.