ultra-builder-pro-cli 0.25.1 → 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.
- package/.ultra-template/contexts/TEMPLATE.md +87 -0
- package/.ultra-template/decisions/.gitkeep +1 -0
- package/.ultra-template/evidence/.gitkeep +1 -0
- package/.ultra-template/north-star.md +46 -0
- package/.ultra-template/research/.gitkeep +1 -0
- package/.ultra-template/specs/discovery.md +2 -2
- package/.ultra-template/tasks.json +3 -0
- package/.ultra-template/test-report.json +27 -0
- package/CHANGELOG.md +40 -0
- package/README.md +217 -579
- package/adapters/_shared/delegate-profiles/kimi-read-only.md +15 -0
- package/adapters/_shared/delegate-profiles/kimi-write.md +17 -0
- package/adapters/_shared/file-ops.cjs +76 -2
- package/adapters/_shared/host-profile.cjs +97 -0
- package/adapters/_shared/plugin-core.cjs +204 -0
- package/adapters/_shared/runtime-assets.cjs +31 -96
- package/adapters/claude.js +92 -291
- package/adapters/codex.js +309 -842
- package/adapters/grok.js +143 -1469
- package/adapters/kimi.js +124 -1053
- package/adapters/opencode.js +230 -742
- package/bin/delegate-worker.cjs +323 -0
- package/bin/delegate.cjs +456 -0
- package/bin/install.js +38 -11
- package/docs/ARCHITECTURE.md +122 -216
- package/docs/ARTIFACT-AUTHORITY.md +90 -268
- package/docs/DECISIONS.md +75 -87
- package/docs/PHILOSOPHY.md +177 -0
- package/docs/PLUGIN-ISOLATION-CONTRACT.md +62 -39
- package/docs/RUNTIME-COMPAT-MATRIX.md +99 -156
- package/docs/SKILL-AUTHORING.md +94 -73
- package/docs/WORKFLOW-LIFECYCLE.md +93 -189
- package/hooks/README.md +17 -37
- package/hooks/_common.py +113 -0
- package/hooks/adapters/codex.py +9 -16
- package/hooks/adapters/grok.py +5 -5
- package/hooks/adapters/kimi.py +8 -14
- package/hooks/block_dangerous_commands.py +95 -0
- package/hooks/compact_context.py +65 -0
- package/hooks/mid_workflow_recall.py +25 -0
- package/hooks/post_edit_guard.py +105 -0
- package/hooks/session_context.py +30 -0
- package/package.json +17 -52
- package/skills/ultra-change/SKILL.md +97 -50
- package/skills/ultra-change/references/change-contract.md +40 -1
- package/skills/ultra-delegate/SKILL.md +82 -0
- package/skills/ultra-delegate/references/delegation-contract.md +51 -0
- package/skills/ultra-delegate/scripts/delegate_wait.py +86 -0
- package/skills/ultra-deliver/SKILL.md +61 -42
- package/skills/ultra-deliver/references/baseline-reconciliation.md +39 -20
- package/skills/ultra-dev/SKILL.md +96 -62
- package/skills/ultra-dev/references/debugging.md +22 -0
- package/skills/ultra-domain-modeling/SKILL.md +79 -0
- package/skills/ultra-grilling/SKILL.md +79 -0
- package/skills/ultra-init/SKILL.md +94 -37
- package/skills/ultra-init/references/brownfield-adoption.md +33 -83
- package/skills/ultra-init/scripts/init_project.cjs +84 -0
- package/skills/ultra-plan/SKILL.md +88 -68
- package/skills/ultra-research/SKILL.md +62 -48
- package/skills/ultra-research/references/00-problem-validation.md +5 -5
- package/skills/ultra-research/references/01-opportunity-discovery.md +3 -3
- package/skills/ultra-research/references/02-market-assessment.md +5 -4
- package/skills/ultra-research/references/03-competitive-landscape.md +3 -3
- package/skills/ultra-research/references/04-product-strategy.md +3 -3
- package/skills/ultra-research/references/05-assumptions-validation.md +5 -5
- package/skills/ultra-research/references/10-user-personas.md +3 -2
- package/skills/ultra-research/references/11-user-scenarios.md +3 -3
- package/skills/ultra-research/references/20-user-stories.md +4 -3
- package/skills/ultra-research/references/21-features-scope.md +3 -2
- package/skills/ultra-research/references/22-success-metrics.md +3 -3
- package/skills/ultra-research/references/30-architecture-context.md +3 -3
- package/skills/ultra-research/references/31-solution-strategy.md +3 -3
- package/skills/ultra-research/references/32-building-blocks.md +3 -3
- package/skills/ultra-research/references/40-deployment.md +3 -3
- package/skills/ultra-research/references/41-quality-risks.md +3 -3
- package/skills/ultra-research/references/99-synthesis.md +7 -7
- package/skills/ultra-review/SKILL.md +59 -32
- package/skills/ultra-review/references/code.md +17 -0
- package/skills/ultra-review/references/comments.md +12 -0
- package/skills/ultra-review/references/design.md +12 -0
- package/skills/ultra-review/references/errors.md +13 -0
- package/skills/ultra-review/references/spec.md +13 -0
- package/skills/ultra-review/references/tests.md +12 -0
- package/skills/ultra-review/references/worker-packet.md +40 -0
- package/skills/ultra-review/scripts/review_wait.py +26 -15
- package/skills/ultra-status/SKILL.md +61 -36
- package/skills/ultra-tdd/SKILL.md +81 -0
- package/skills/ultra-tdd/references/templates/README.md +20 -0
- package/skills/ultra-tdd/references/templates/feature-flag-default-audit.sh +79 -0
- package/skills/ultra-tdd/references/templates/persistence-real.ts +78 -0
- package/skills/ultra-tdd/references/templates/testcontainer-postgres.py +78 -0
- package/skills/ultra-tdd/references/templates/testcontainer-postgres.ts +73 -0
- package/skills/ultra-tdd/references/templates/vertical-slice.ts +66 -0
- package/skills/ultra-tdd/references/test-execution.md +18 -0
- package/skills/ultra-test/SKILL.md +70 -30
- package/skills/ultra-test/references/export-syntax.md +18 -0
- package/skills/ultra-test/scripts/worktree_digest.cjs +54 -0
- package/skills/ultra-think/SKILL.md +49 -27
- package/skills/ultra-think/references/autonomy-boundary.md +48 -0
- package/skills/ultra-think/references/interaction-boundary.md +18 -33
- package/.ultra-template/docs/research/README.md +0 -55
- package/.ultra-template/reports/templates/delivery-report.json +0 -17
- package/.ultra-template/reports/templates/test-report.json +0 -18
- package/.ultra-template/tasks/tasks.json +0 -15
- package/.ultra-template/templates/task-context.md +0 -19
- package/adapters/_shared/codex-assets.cjs +0 -725
- package/adapters/_shared/codex-ultra-tools-entry.cjs +0 -11
- package/adapters/_shared/interaction-contract.cjs +0 -129
- package/adapters/_shared/path-rewrite.cjs +0 -79
- package/adapters/_shared/runtime-native.cjs +0 -132
- package/adapters/_shared/settings-merge.cjs +0 -76
- package/agents/code-reviewer.md +0 -42
- package/agents/debugger.md +0 -40
- package/agents/review-code.md +0 -49
- package/agents/review-comments.md +0 -38
- package/agents/review-coordinator.md +0 -56
- package/agents/review-design.md +0 -40
- package/agents/review-errors.md +0 -43
- package/agents/review-spec.md +0 -39
- package/agents/review-tests.md +0 -40
- package/agents/tdd-runner.md +0 -38
- package/bin/orchestrator.js +0 -383
- package/commands/ultra-change.md +0 -10
- package/commands/ultra-deliver.md +0 -10
- package/commands/ultra-dev.md +0 -10
- package/commands/ultra-doctor.md +0 -10
- package/commands/ultra-init.md +0 -10
- package/commands/ultra-plan.md +0 -10
- package/commands/ultra-research.md +0 -10
- package/commands/ultra-review.md +0 -10
- package/commands/ultra-status.md +0 -10
- package/commands/ultra-test.md +0 -10
- package/commands/ultra-think.md +0 -10
- package/docs/AGENT-CONTEXT.md +0 -191
- package/docs/COMMIT-HASH-BACKFILL.md +0 -51
- package/docs/LEGACY-CLI-CROSSWALK.md +0 -175
- package/docs/ROADMAP.md +0 -101
- package/docs/STATE-DB-ACCESS-POLICY.md +0 -161
- package/hooks/active_task_context.py +0 -152
- package/hooks/context_envelope.py +0 -100
- package/hooks/health_check.py +0 -196
- package/hooks/pre_stop_check.py +0 -66
- package/hooks/runtime_paths.py +0 -396
- package/hooks/subagent_tracker.py +0 -88
- package/hooks/workflow_checkpoint.py +0 -76
- package/hooks/workflow_context.py +0 -48
- package/hooks/workflow_resume.py +0 -84
- package/mcp-server/hook-context.cjs +0 -38
- package/mcp-server/hook-event.cjs +0 -34
- package/mcp-server/lib/archive-journal.cjs +0 -1119
- package/mcp-server/lib/archive-mutation-worker.py +0 -365
- package/mcp-server/lib/artifact-registry.cjs +0 -1232
- package/mcp-server/lib/baseline-workflow.cjs +0 -1193
- package/mcp-server/lib/canonical-json.cjs +0 -19
- package/mcp-server/lib/change-authority.cjs +0 -26
- package/mcp-server/lib/change-packet.cjs +0 -790
- package/mcp-server/lib/change-workflow.cjs +0 -65
- package/mcp-server/lib/context-envelope.cjs +0 -581
- package/mcp-server/lib/context-paths.cjs +0 -142
- package/mcp-server/lib/decision-records.cjs +0 -423
- package/mcp-server/lib/delivery-transaction.cjs +0 -471
- package/mcp-server/lib/doctor-backup-worker.cjs +0 -328
- package/mcp-server/lib/doctor.cjs +0 -627
- package/mcp-server/lib/git-bootstrap.cjs +0 -651
- package/mcp-server/lib/init-project.cjs +0 -1021
- package/mcp-server/lib/kernel-change-workflow.cjs +0 -2029
- package/mcp-server/lib/legacy-change-workflow.cjs +0 -3032
- package/mcp-server/lib/managed-file-write.cjs +0 -172
- package/mcp-server/lib/plan-checkpoint.cjs +0 -177
- package/mcp-server/lib/plan-publication-worker.cjs +0 -830
- package/mcp-server/lib/plan-store.cjs +0 -794
- package/mcp-server/lib/prd-parser.cjs +0 -83
- package/mcp-server/lib/pricing.cjs +0 -44
- package/mcp-server/lib/project-context.cjs +0 -178
- package/mcp-server/lib/projector.cjs +0 -386
- package/mcp-server/lib/provider-refs.cjs +0 -42
- package/mcp-server/lib/runtime-paths.cjs +0 -1714
- package/mcp-server/lib/runtime-state.cjs +0 -222
- package/mcp-server/lib/safe-project-file.cjs +0 -385
- package/mcp-server/lib/stage-checkpoints.cjs +0 -463
- package/mcp-server/lib/state-authority.cjs +0 -95
- package/mcp-server/lib/state-db.cjs +0 -1580
- package/mcp-server/lib/state-ops.cjs +0 -1428
- package/mcp-server/lib/task-contract.cjs +0 -404
- package/mcp-server/lib/task-expander.cjs +0 -105
- package/mcp-server/lib/task-ledger.cjs +0 -1964
- package/mcp-server/lib/telemetry.cjs +0 -85
- package/mcp-server/lib/topo.cjs +0 -131
- package/mcp-server/lib/ultra-facade.cjs +0 -2684
- package/mcp-server/lib/worker-packet.cjs +0 -358
- package/mcp-server/server.cjs +0 -437
- package/orchestrator/auto-merge.cjs +0 -128
- package/orchestrator/daemon.cjs +0 -264
- package/orchestrator/dispatch-rules.cjs +0 -78
- package/orchestrator/parallel-orchestrator.cjs +0 -903
- package/orchestrator/planner/plan-builder.cjs +0 -125
- package/orchestrator/recovery.cjs +0 -188
- package/orchestrator/session-close-journal-worker.cjs +0 -5
- package/orchestrator/session-close-journal.cjs +0 -1014
- package/orchestrator/session-runner.cjs +0 -1153
- package/orchestrator/worktree-manager.cjs +0 -282
- package/settings.json +0 -7
- package/skills/cc-collab/SKILL.md +0 -42
- package/skills/code-review-expert/SKILL.md +0 -43
- package/skills/code-review-expert/references/correctness-reliability.md +0 -30
- package/skills/code-review-expert/references/design-boundaries.md +0 -26
- package/skills/code-review-expert/references/removal-plan.md +0 -24
- package/skills/codex-collab/SKILL.md +0 -49
- package/skills/codex-collab/evals/evals.json +0 -35
- package/skills/integration-rules/SKILL.md +0 -32
- package/skills/security-rules/SKILL.md +0 -38
- package/skills/testing-rules/SKILL.md +0 -32
- package/skills/ultra-doctor/SKILL.md +0 -41
- package/skills/ultra-plan/references/semantic-preflight.md +0 -20
- package/skills/ultra-verify/SKILL.md +0 -46
- package/skills/ultra-verify/evals/evals.json +0 -46
- package/skills/ultra-verify/references/cross-verify-modes.md +0 -28
- package/skills/ultra-verify/references/evidence-status.md +0 -21
- package/skills/ultra-verify/scripts/verify_wait.py +0 -94
- package/spec/cli-protocol.md +0 -102
- package/spec/mcp-tools.yaml +0 -312
- package/spec/schemas/baseline-reconciliation.v1.schema.json +0 -73
- package/spec/schemas/change-delta.v1.schema.json +0 -153
- package/spec/schemas/command-manifest.schema.json +0 -29
- package/spec/schemas/context-file.v4.5.schema.json +0 -54
- package/spec/schemas/delivery-report.v1.schema.json +0 -66
- package/spec/schemas/documentation-reconciliation.v1.schema.json +0 -106
- package/spec/schemas/mcp-tools.schema.json +0 -136
- package/spec/schemas/skill-manifest.schema.json +0 -24
- package/spec/schemas/state-db.sql +0 -641
- package/spec/schemas/task-ledger.v2.schema.json +0 -296
- package/spec/schemas/tasks.v4.5.schema.json +0 -96
- package/spec/schemas/test-report.v1.schema.json +0 -225
- package/ultra-tools/cli.cjs +0 -129
- package/ultra-tools/commands/db.cjs +0 -226
- package/ultra-tools/commands/legacy-memory.cjs +0 -159
- package/ultra-tools/commands/migrate.cjs +0 -1386
- package/ultra-tools/commands/session.cjs +0 -213
- package/ultra-tools/commands/status.cjs +0 -559
- package/ultra-tools/commands/system.cjs +0 -498
- package/ultra-tools/commands/task.cjs +0 -105
|
@@ -1,293 +1,115 @@
|
|
|
1
1
|
# Ultra artifact authority
|
|
2
2
|
|
|
3
|
-
This document defines
|
|
4
|
-
|
|
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
|
-
##
|
|
6
|
+
## Rules
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
124
|
-
|
|
125
|
-
|
|
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
|
-
|
|
129
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
146
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
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
|
-
|
|
73
|
+
Only the owner may accept a reduction.
|
|
169
74
|
|
|
170
|
-
|
|
171
|
-
already registered by its owning typed record or Stage Checkpoint. Every managed registry row has:
|
|
75
|
+
## Evidence promotion
|
|
172
76
|
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
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
|
-
|
|
182
|
-
|
|
183
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
201
|
-
|
|
202
|
-
`
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
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
|
|
2
|
-
|
|
3
|
-
This
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
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.
|