ultra-builder-pro-cli 5.0.0 → 6.0.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/CHANGELOG.md +113 -3
- package/README.md +67 -478
- package/README.zh-CN.md +49 -422
- package/adapters/_shared/frontmatter.cjs +1 -18
- package/adapters/_shared/plugin-core.cjs +17 -83
- package/adapters/_shared/runtime-assets.cjs +6 -120
- package/adapters/claude.js +8 -24
- package/adapters/codex.js +16 -38
- package/bin/install.js +35 -57
- package/docs/PLUGIN-ISOLATION-CONTRACT.md +13 -101
- package/docs/examples/drive/claude-reviewer.sh +53 -0
- package/docs/examples/drive/claude-writer.sh +43 -0
- package/engine/FORMATS.md +1051 -0
- package/engine/checks.cjs +139 -0
- package/engine/cli.cjs +148 -0
- package/engine/completion.cjs +48 -0
- package/engine/context.cjs +94 -0
- package/engine/drive.cjs +220 -0
- package/engine/expect-worker.cjs +5 -0
- package/engine/expect.cjs +33 -0
- package/engine/formats.cjs +189 -0
- package/engine/git-state.cjs +112 -0
- package/engine/ledger.cjs +205 -0
- package/engine/loading.cjs +28 -0
- package/engine/merge.cjs +273 -0
- package/engine/milestone.cjs +89 -0
- package/engine/plan.cjs +232 -0
- package/engine/project.cjs +5 -0
- package/engine/signals.cjs +3 -0
- package/engine/states.cjs +175 -0
- package/hooks/session-start.cjs +54 -0
- package/package.json +17 -52
- package/skills/ultra/SKILL.md +395 -0
- package/.ultra-template/changes/abandoned/.gitkeep +0 -0
- package/.ultra-template/changes/active/.gitkeep +0 -1
- package/.ultra-template/changes/archive/.gitkeep +0 -1
- package/.ultra-template/contexts/TEMPLATE.md +0 -135
- package/.ultra-template/decisions/.gitkeep +0 -1
- package/.ultra-template/evidence/.gitkeep +0 -1
- package/.ultra-template/north-star.md +0 -52
- package/.ultra-template/project-brief.md +0 -28
- package/.ultra-template/research/.gitkeep +0 -1
- package/.ultra-template/specs/architecture.md +0 -81
- package/.ultra-template/specs/discovery.md +0 -74
- package/.ultra-template/specs/product.md +0 -80
- package/.ultra-template/specs/research-distillate.md +0 -57
- package/.ultra-template/tasks.json +0 -4
- package/.ultra-template/test-report.json +0 -44
- package/adapters/_shared/host-profile.cjs +0 -5
- package/adapters/grok.js +0 -242
- package/adapters/kimi.js +0 -232
- package/adapters/opencode.js +0 -408
- package/adapters/zcode.js +0 -375
- package/bin/delegate-worker.cjs +0 -5
- package/bin/delegate.cjs +0 -5
- package/docs/ARCHITECTURE.md +0 -274
- package/docs/ARTIFACT-AUTHORITY.md +0 -305
- package/docs/DECISIONS.md +0 -229
- package/docs/PHILOSOPHY.md +0 -261
- package/docs/RUNTIME-COMPAT-MATRIX.md +0 -315
- package/docs/SKILL-AUTHORING.md +0 -113
- package/docs/WORKFLOW-LIFECYCLE.md +0 -350
- package/docs/evals/adversarial-review-2026-08-14.md +0 -84
- package/docs/evals/ultra-5-0-journey-results.md +0 -62
- package/docs/evals/ultra-5-0-live-acp-conformance.md +0 -93
- package/docs/evals/ultra-5-0-route-journeys.md +0 -145
- package/docs/evals/zcode-automation-2026-08-14.md +0 -103
- package/hooks/README.md +0 -52
- package/hooks/_common.py +0 -1779
- package/hooks/adapters/codex.py +0 -295
- package/hooks/adapters/grok.py +0 -134
- package/hooks/adapters/kimi.py +0 -156
- package/hooks/adapters/zcode.py +0 -227
- package/hooks/block_dangerous_commands.py +0 -201
- package/hooks/compact_context.py +0 -224
- package/hooks/mid_workflow_recall.py +0 -47
- package/hooks/post_edit_guard.py +0 -215
- package/hooks/session_context.py +0 -741
- package/skills/ultra-change/SKILL.md +0 -165
- package/skills/ultra-change/references/change-contract.md +0 -199
- package/skills/ultra-change/references/execution-grant.md +0 -109
- package/skills/ultra-change/references/primary-transfer.md +0 -273
- package/skills/ultra-change/scripts/validate_primary_transfer.cjs +0 -1928
- package/skills/ultra-delegate/SKILL.md +0 -195
- package/skills/ultra-delegate/patches/zcode-acp-0.1.0-zcode-0.16.5.patch +0 -184
- package/skills/ultra-delegate/references/delegation-contract.md +0 -138
- package/skills/ultra-delegate/scripts/acp-conformance.cjs +0 -287
- package/skills/ultra-delegate/scripts/acp-driver.cjs +0 -762
- package/skills/ultra-delegate/scripts/agent-execution-driver.cjs +0 -320
- package/skills/ultra-delegate/scripts/cli-driver.cjs +0 -61
- package/skills/ultra-delegate/scripts/delegate-profiles/kimi-read-only.md +0 -15
- package/skills/ultra-delegate/scripts/delegate-profiles/kimi-write.md +0 -17
- package/skills/ultra-delegate/scripts/delegate-worker.cjs +0 -328
- package/skills/ultra-delegate/scripts/delegate.cjs +0 -690
- package/skills/ultra-delegate/scripts/delegate_wait.py +0 -86
- package/skills/ultra-delegate/scripts/host-profile.cjs +0 -267
- package/skills/ultra-deliver/SKILL.md +0 -194
- package/skills/ultra-deliver/references/baseline-reconciliation.md +0 -41
- package/skills/ultra-dev/SKILL.md +0 -265
- package/skills/ultra-dev/references/debugging.md +0 -22
- package/skills/ultra-domain-modeling/SKILL.md +0 -79
- package/skills/ultra-grilling/SKILL.md +0 -121
- package/skills/ultra-grilling/references/reframing.md +0 -76
- package/skills/ultra-init/SKILL.md +0 -143
- package/skills/ultra-init/references/brownfield-adoption.md +0 -32
- package/skills/ultra-init/scripts/init_project.cjs +0 -1031
- package/skills/ultra-plan/SKILL.md +0 -160
- package/skills/ultra-plan/references/task-evidence-v2.md +0 -300
- package/skills/ultra-plan/scripts/validate_task_evidence.cjs +0 -859
- package/skills/ultra-research/SKILL.md +0 -167
- package/skills/ultra-research/references/00-problem-validation.md +0 -36
- package/skills/ultra-research/references/01-opportunity-discovery.md +0 -33
- package/skills/ultra-research/references/02-market-assessment.md +0 -31
- package/skills/ultra-research/references/03-alternatives.md +0 -31
- package/skills/ultra-research/references/04-product-strategy.md +0 -41
- package/skills/ultra-research/references/05-assumptions-validation.md +0 -31
- package/skills/ultra-research/references/10-user-personas.md +0 -30
- package/skills/ultra-research/references/11-user-scenarios.md +0 -28
- package/skills/ultra-research/references/20-user-stories.md +0 -31
- package/skills/ultra-research/references/21-features-scope.md +0 -38
- package/skills/ultra-research/references/22-success-metrics.md +0 -33
- package/skills/ultra-research/references/30-architecture-context.md +0 -30
- package/skills/ultra-research/references/31-solution-strategy.md +0 -28
- package/skills/ultra-research/references/32-building-blocks.md +0 -28
- package/skills/ultra-research/references/40-deployment.md +0 -29
- package/skills/ultra-research/references/41-quality-risks.md +0 -28
- package/skills/ultra-research/references/99-synthesis.md +0 -59
- package/skills/ultra-research/references/north-star-v2.md +0 -168
- package/skills/ultra-research/references/wayfinding.md +0 -50
- package/skills/ultra-research/scripts/validate_north_star.cjs +0 -1174
- package/skills/ultra-review/SKILL.md +0 -275
- package/skills/ultra-review/references/adversarial-evaluation.md +0 -31
- package/skills/ultra-review/references/code.md +0 -17
- package/skills/ultra-review/references/comments.md +0 -12
- package/skills/ultra-review/references/design.md +0 -12
- package/skills/ultra-review/references/errors.md +0 -13
- package/skills/ultra-review/references/review-modes.md +0 -29
- package/skills/ultra-review/references/spec.md +0 -18
- package/skills/ultra-review/references/tests.md +0 -12
- package/skills/ultra-review/references/unified-schema.md +0 -284
- package/skills/ultra-review/references/worker-packet.md +0 -183
- package/skills/ultra-review/scripts/review_wait.py +0 -2943
- package/skills/ultra-status/SKILL.md +0 -209
- package/skills/ultra-status/references/route-contract.md +0 -100
- package/skills/ultra-tdd/SKILL.md +0 -91
- package/skills/ultra-tdd/references/templates/README.md +0 -20
- package/skills/ultra-tdd/references/templates/feature-flag-default-audit.sh +0 -79
- package/skills/ultra-tdd/references/templates/persistence-real.ts +0 -78
- package/skills/ultra-tdd/references/templates/testcontainer-postgres.py +0 -78
- package/skills/ultra-tdd/references/templates/testcontainer-postgres.ts +0 -73
- package/skills/ultra-tdd/references/templates/vertical-slice.ts +0 -66
- package/skills/ultra-tdd/references/test-execution.md +0 -23
- package/skills/ultra-test/SKILL.md +0 -244
- package/skills/ultra-test/references/export-syntax.md +0 -18
- package/skills/ultra-test/scripts/validate_review_transport.cjs +0 -549
- package/skills/ultra-test/scripts/worktree_digest.cjs +0 -576
- package/skills/ultra-think/SKILL.md +0 -56
- package/skills/ultra-think/references/autonomy-boundary.md +0 -48
- package/skills/ultra-think/references/interaction-boundary.md +0 -42
|
@@ -1,305 +0,0 @@
|
|
|
1
|
-
# Ultra artifact authority
|
|
2
|
-
|
|
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. Since the
|
|
5
|
-
accepted 3.0 design it is the per-fact expression of the Ultra Core Protocol: one
|
|
6
|
-
canonical representation per semantic fact, explicit authorization, bounded effects,
|
|
7
|
-
and reachable recovery, on files plus Git alone.
|
|
8
|
-
|
|
9
|
-
## Rules
|
|
10
|
-
|
|
11
|
-
1. One semantic fact has one canonical representation.
|
|
12
|
-
2. Owner intent and accepted reductions require owner authority.
|
|
13
|
-
3. The model may interpret, decompose, investigate, and edit inside the authorized frame.
|
|
14
|
-
4. Generated observations are disposable and never silently promoted.
|
|
15
|
-
5. Git supplies revision identity, history, archive moves, comparison, and rollback.
|
|
16
|
-
6. A Change keeps one stable `change_id`; directory position records lifecycle, not identity.
|
|
17
|
-
|
|
18
|
-
## Routing precedence
|
|
19
|
-
|
|
20
|
-
When workflow-route signals conflict, consumers resolve them in this order:
|
|
21
|
-
|
|
22
|
-
1. the current explicit owner instruction, accepted decisions, and external-effect
|
|
23
|
-
authorization;
|
|
24
|
-
2. the current accepted North Star and the active Change intent;
|
|
25
|
-
3. the current owner-issued Execution Grant — `session-local` while its conversation
|
|
26
|
-
activation is live, or a `durable work-package` grant a fresh Agent has stably
|
|
27
|
-
verified — its exact Change, modes, effects, topology, budget, and stop conditions;
|
|
28
|
-
4. the task ledger, task acceptance, planned paths, and dependencies;
|
|
29
|
-
5. the current validated Review SUMMARY verdict;
|
|
30
|
-
6. current evidence and Test observations;
|
|
31
|
-
7. the Resume Note;
|
|
32
|
-
8. Hooks, progress records, compact snapshots, historical reviews, and other
|
|
33
|
-
derived observations.
|
|
34
|
-
|
|
35
|
-
A lower layer never overrides a higher one. A conflict produces a typed diagnostic,
|
|
36
|
-
preserves the original bytes, and routes to the nearest repair or owner checkpoint;
|
|
37
|
-
nothing silently selects the "safer" semantic result. The Resume Note is
|
|
38
|
-
navigational context — the current checkpoint, the next action a higher authority
|
|
39
|
-
has already allowed, unresolved prerequisites, and the cheapest safe resume command
|
|
40
|
-
or path — and never route authority: it cannot rewrite acceptance, a Review verdict,
|
|
41
|
-
scope, or budget, and it cannot promote P2/P3 findings into blockers or reopen a
|
|
42
|
-
review that returned a current verdict. Historical reviews, progress records, and
|
|
43
|
-
Hook observations are provenance only.
|
|
44
|
-
|
|
45
|
-
The Route Card is a projection of this precedence, not another layer in it. Its Route,
|
|
46
|
-
Mode, Position, Exit condition, Delta, and Next fields are recalculated from the same
|
|
47
|
-
authorities and current observations whenever a public Skill enters, pauses, exits, or
|
|
48
|
-
transitions.
|
|
49
|
-
|
|
50
|
-
A formal terminal outcome — an accepted result, an owner decision, an external
|
|
51
|
-
blocker, a review-budget stop, or an abandonment — outranks every Resume, Hook, or
|
|
52
|
-
Status suggestion that appears to continue the same work. Review stays inside the
|
|
53
|
-
budget accepted for the work package, under one precedence rule: an exact current
|
|
54
|
-
owner grant overrides the versioned product default — the released default is one
|
|
55
|
-
initial Review plus two P0/P1 delta Reviews. Budget exhaustion with a remaining
|
|
56
|
-
blocker returns the choice to the owner instead of another round; no Agent,
|
|
57
|
-
reviewer, Hook, or control plane extends a budget itself, and the same root
|
|
58
|
-
surviving three failed fixes stops point-patching and reports an architecture
|
|
59
|
-
problem.
|
|
60
|
-
|
|
61
|
-
## Effect classes
|
|
62
|
-
|
|
63
|
-
Every action belongs to exactly one class, and the class fixes who may perform it:
|
|
64
|
-
|
|
65
|
-
| Effect class | Examples | Default rule |
|
|
66
|
-
|---|---|---|
|
|
67
|
-
| `observation` | read-only source inspection, search, test listing | an Agent may act freely inside its task scope |
|
|
68
|
-
| `local-reversible` | editing files inside the authorized worktree, running local tests, creating deletable temporary files | allowed inside an accepted work package with a recovery point |
|
|
69
|
-
| `canonical-authority` | modifying the North Star, an active intent, task status, or an evidence verdict | one designated writer per fact; material semantic deltas return to the owner |
|
|
70
|
-
| `external-or-irreversible` | commit, push, tag, publish, deploy, real installation, provider spend, credential or production mutation | one separate owner authorization per effect; capability or readiness never implies permission |
|
|
71
|
-
|
|
72
|
-
A durable work-package grant may cover exact `local-reversible` execution and the
|
|
73
|
-
canonical status writes it names explicitly. It never inherits
|
|
74
|
-
`external-or-irreversible` effects by default; those require the owner to list each
|
|
75
|
-
one in the grant and the consuming Agent to verify the listing is current.
|
|
76
|
-
|
|
77
|
-
## Owner checkpoint semantics
|
|
78
|
-
|
|
79
|
-
Every owner-facing checkpoint — the WIP at a stop, a task's closing Resume Note, a
|
|
80
|
-
delivery report, or a review's owner handoff — answers eight fixed semantics, in
|
|
81
|
-
whatever length keeps the owner able to judge:
|
|
82
|
-
|
|
83
|
-
1. **Why** — the real problem being solved.
|
|
84
|
-
2. **Outcome** — what difference the owner will see.
|
|
85
|
-
3. **Accepted boundary** — what is accepted, and what explicitly is not.
|
|
86
|
-
4. **Delta** — what materially changed since the last checkpoint.
|
|
87
|
-
5. **Reality** — how far the live path actually works; what is still fake, unknown,
|
|
88
|
-
or unverified.
|
|
89
|
-
6. **Decision needed** — what the owner must decide now; a Route Card says `none` when
|
|
90
|
-
nothing is genuinely blocking, while a free-form handoff may omit the section.
|
|
91
|
-
7. **Next bounded action** — the smallest authorized next step.
|
|
92
|
-
8. **Not done** — what remains owed when stopping or pausing.
|
|
93
|
-
|
|
94
|
-
The canonical
|
|
95
|
-
[`UBP Route Card`](../skills/ultra-status/references/route-contract.md#route-card) adds
|
|
96
|
-
four navigation fields — Route, Mode, Position, and Exit condition — around these eight
|
|
97
|
-
semantics. It is emitted output only: it has no canonical project path, never becomes a
|
|
98
|
-
route ledger, and cannot grant continuation. Counts and transport events may explain
|
|
99
|
-
Position or Reality but cannot produce a semantic completion verdict.
|
|
100
|
-
|
|
101
|
-
A checkpoint is a cognitive interface, not a mechanical stage marker: no line count,
|
|
102
|
-
token budget, or coverage percentage gates it, and alignment failure ("I don't know
|
|
103
|
-
what you are doing", or the same concept re-explained repeatedly) stops execution and
|
|
104
|
-
review until the owner re-accepts an outcome.
|
|
105
|
-
|
|
106
|
-
## Canonical artifacts
|
|
107
|
-
|
|
108
|
-
| Artifact | Canonical content | Primary writer | Required readers | Staleness or conflict signal |
|
|
109
|
-
|---|---|---|---|---|
|
|
110
|
-
| `.ultra/project-brief.md` | Raw owner intake, broad outline, explicit inputs, and open Research questions | `ultra-init`, owner correction | research, status; session Hook before an accepted baseline exists | owner correction or a recovered legacy one-line; never rewritten as researched truth |
|
|
111
|
-
| `.ultra/north-star.md` | Accepted project direction, outcome or metric decision, hard constraints, and exclusions | `ultra-research` after owner acceptance; owner correction | every workflow; session Hook | accepted correction, superseding decision, or evidence conflict |
|
|
112
|
-
| `.ultra/specs/product.md` | Product behavior and acceptance | research establishes; change/delivery reconcile touched sections | change, plan, dev, test, review, delivery | source/evidence conflict or unresolved marker |
|
|
113
|
-
| `.ultra/specs/architecture.md` | Boundaries, authority, consumers, failure and recovery | research establishes; change/delivery reconcile touched sections | change, plan, dev, test, review, delivery | live-path evidence conflicts with text |
|
|
114
|
-
| `.ultra/specs/discovery.md` | observations, unknowns, drift, and evidence queue | research; change for its scoped delta | research, change, status | evidence resolves or overturns an entry |
|
|
115
|
-
| `.ultra/specs/research-distillate.md` | bounded synthesis of specification state | `ultra-research` | change, plan, delivery | stored source blob hash differs from Git blob hash |
|
|
116
|
-
| `CONTEXT.md` | ubiquitous language and relationships | `ultra-domain-modeling`, first called by research and later by any qualifying workflow | every workflow and test naming | source/product use reveals ambiguity |
|
|
117
|
-
| `.ultra/changes/{active,archive,abandoned}/<id>/intent.md` | one bounded requested outcome, reconciliation, Research Disposition, stable identity, and exact Abandonment closure when abandoned | `ultra-change`; Planning Posture by `ultra-plan` | active: research through delivery; all states: status and future Change history | more than one active Change, duplicate id across positions, missing Abandonment closure, or acceptance/scope change |
|
|
118
|
-
| `.ultra/tasks.json` | `ultra-task-ledger-v2`: append-only task identity, stable `change_id`, same-Change graph, sole task status, trace, and context path | `ultra-plan` / `ultra-dev` | every user workflow and context Hook | dependency crosses Change, row shape is invalid, or a named context cannot be resolved |
|
|
119
|
-
| task `context_file` | typed acceptance, seams, implementation, evidence pointers, Completion, Task Review, Resume Note; no v2 task status | plan/dev | dev, test, review, status, delivery, resume | acceptance identity, evidence pointer, or implementation differs from current source; a legacy Status or Complexity field is a migration diagnostic |
|
|
120
|
-
| `.ultra/decisions/<id>.md` | durable consequential owner decision | `ultra-think` after acceptance | every workflow in scope | superseded by a newer decision file |
|
|
121
|
-
| active Change `## Execution Grant` | the current work package's execution authorization: mode (`session-local` default or `durable work-package`), scope, Agent topology, allowed local effects, budgets/expiry, invalidation, and revoke; the exact durable grant bytes live in the cited owner decision, never in a second prose mirror | owner issues; `ultra-change` records the exact reference and fields; no workflow may widen it | executor, handoff, Status | a new Change, a recorded owner revocation, or a fired invalidation condition; stored grant text alone never activates |
|
|
122
|
-
| `.ultra/evidence/<task-id>/...` | one final `ultra-task-evidence-v2` record: typed acceptance evidence, six dimensions, independent completion-snapshot freshness observation, separate task-review provenance, raw-output refs, and limitations | `ultra-dev` after validated task review | test, delivery; review consumes actual pre-review evidence instead | context acceptance, completion observation, cited artifacts, or review binding differs, or a legacy record has not been migrated |
|
|
123
|
-
| `.ultra/test-report.json` | whole-system audit, ordered task-evidence identities, strict aggregate-review provenance, findings, and owner disposition for one Change/task/intent/product snapshot | `ultra-test`; `ultra-deliver` may add owner disposition without changing findings or `passed` | status and delivery | root identity, ordered task-evidence projection, or packet/admission/subject/summary review binding differs |
|
|
124
|
-
| `.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 |
|
|
125
|
-
| `.ultra/research/<run-id>/<step-id>.md` | cited investigation report for one selected lens | `ultra-research` | specs, change, plan, delivery | newer sources or later superseding run |
|
|
126
|
-
|
|
127
|
-
The repository files may use prose, tables, or JSON as appropriate. The format is not
|
|
128
|
-
authority by itself; the canonical path and accepted writer contract are.
|
|
129
|
-
|
|
130
|
-
The append-only task ledger preserves sequential Change history. Current readers select
|
|
131
|
-
only rows whose `change_id` matches the one unique active Change. Moving its directory
|
|
132
|
-
to archive or abandoned never rewrites task identity, and an unfinished historical row
|
|
133
|
-
never becomes current merely because of its status. Before an abandoned move,
|
|
134
|
-
`ultra-change` appends `## Abandonment` with the owner decision, reason, reusable
|
|
135
|
-
evidence, and recovery or successor. Future Change reconciliation and Status consume
|
|
136
|
-
that record as history, not as accepted current intent.
|
|
137
|
-
|
|
138
|
-
Every current completed task has exactly one final
|
|
139
|
-
`.ultra/evidence/<task-id>/evidence.json` with schema `ultra-task-evidence-v2`. The
|
|
140
|
-
canonical field and type contract lives in
|
|
141
|
-
`skills/ultra-plan/references/task-evidence-v2.md`; this document does not duplicate it.
|
|
142
|
-
The record binds the task and Change, context acceptance bytes, typed acceptance
|
|
143
|
-
evidence and dispositions, all six evidence dimensions,
|
|
144
|
-
task-review provenance, artifacts, limitations, and timestamp. `command`, `inspection`,
|
|
145
|
-
`owner-judgment`, and `external-observation` retain separate evidence authorities. The
|
|
146
|
-
owner alone supplies an owner-judgment result. The CLI establishes only JSON shape,
|
|
147
|
-
token syntax, and authority designation; it does not prove current identity, provenance,
|
|
148
|
-
freshness, or semantic acceptance. Test takes stable bytes independently, recomputes the
|
|
149
|
-
Acceptance-section SHA-256, aligns exact criterion IDs and verification types with the
|
|
150
|
-
current context, and aligns task-review session and summary digest with the retained strict summary. The `subject` is an independently captured completion-snapshot freshness observation made after the final strict task Review validates and immediately before
|
|
151
|
-
evidence publication. Its `task_review` separately binds the retained strict summary.
|
|
152
|
-
Worker Packet v1 and its summary's null `worktree_digest` do not prove or
|
|
153
|
-
cryptographically bind the completion subject. Test separately binds its report to the
|
|
154
|
-
current whole Change, then rechecks the current Acceptance, criterion IDs and verification
|
|
155
|
-
types, owner record, review summary, and cited affected artifacts instead of demanding
|
|
156
|
-
digest equality with the earlier task observation.
|
|
157
|
-
For `owner-judgment`, the durable owner record must exist and its cited statement and
|
|
158
|
-
disposition must remain readable. Any mismatch is an evidence gap returned to Dev or,
|
|
159
|
-
for missing owner judgment, to the owner. Optional raw logs live beside the record and
|
|
160
|
-
do not create another summary. Historical v1 records stay readable evidence but produce
|
|
161
|
-
a migration diagnostic and cannot satisfy a current Change's Test or Deliver input.
|
|
162
|
-
|
|
163
|
-
Task-review provenance has two discriminated branches with one authority rule: a
|
|
164
|
-
strict-v4 record binds its retained strict session artifacts, while an
|
|
165
|
-
`external-manual` record binds a real external-reviewer receipt under
|
|
166
|
-
`.ultra/evidence/<task-id>/` by exact stable bytes and SHA-256 through the task
|
|
167
|
-
evidence sensor's verify mode. The external receipt is a reconstructable observation
|
|
168
|
-
of reviewer identity, reviewed subject, verdict, and exact findings — never semantic
|
|
169
|
-
authority, never owner acceptance, and never a substitute strict
|
|
170
|
-
SUMMARY/ADMISSION/session. Consumers recheck whichever branch a record declares and
|
|
171
|
-
never rewrite one into the other.
|
|
172
|
-
|
|
173
|
-
## Mutable workflow state
|
|
174
|
-
|
|
175
|
-
Pure file state uses three mechanisms:
|
|
176
|
-
|
|
177
|
-
- directory position, such as `changes/active/` versus `changes/archive/`;
|
|
178
|
-
- an explicit field, such as task status in `.ultra/tasks.json`;
|
|
179
|
-
- an on-the-spot model judgment that is not persisted as state.
|
|
180
|
-
|
|
181
|
-
A state field records a mechanically checkable fact. Route selection remains a model
|
|
182
|
-
judgment. Do not add a workflow-position field merely to decide which Skill should run.
|
|
183
|
-
The Route Card is derived each time and is disposable in exactly this sense.
|
|
184
|
-
|
|
185
|
-
At most one Change is active in one worktree. Zero active Changes is valid before a new
|
|
186
|
-
request and after delivery; completed current tasks may remain active while awaiting
|
|
187
|
-
Test or Deliver. More than one active directory is a conflict for owner/model repair,
|
|
188
|
-
not a reason for code to select the first entry.
|
|
189
|
-
|
|
190
|
-
Task status has one writer and one authority: `.ultra/tasks.json`. New contexts carry no
|
|
191
|
-
Status field. A legacy context Status or Complexity header is preserved as a migration
|
|
192
|
-
diagnostic, but the ledger wins. During implementation the row remains `in_progress`.
|
|
193
|
-
Task-review admission uses that row, task context, an immutable review packet, and
|
|
194
|
-
actual pre-review evidence; it does not require the final record it is helping create.
|
|
195
|
-
After the final summary validates, Dev writes the one canonical evidence record with
|
|
196
|
-
every blocking finding, resolution or authoritative disposition, and affected evidence
|
|
197
|
-
refresh. Only after that record and the context review facts are current may the primary
|
|
198
|
-
model write `completed` to the ledger and read the row back. A validator may check this
|
|
199
|
-
ordering and its references; it cannot decide that a finding is semantically resolved.
|
|
200
|
-
|
|
201
|
-
Later invalidation uses one explicit recovery edge. The ledger-authoritative row changes
|
|
202
|
-
from `completed` to `in_progress`; Dev must never silently demote it. Before the write,
|
|
203
|
-
Dev records the affected criterion IDs and reason in the task context Change Log and Resume Note.
|
|
204
|
-
It preserves the old frozen review as history, then writes and reads back the ledger
|
|
205
|
-
transition. New evidence and review close the task again through the same path.
|
|
206
|
-
|
|
207
|
-
## Single-writer boundary
|
|
208
|
-
|
|
209
|
-
One primary host model writes canonical `.ultra` files in a worktree. Native review
|
|
210
|
-
workers are read-only sensors, and delegated CLIs write only declared non-`.ultra`
|
|
211
|
-
roots in isolated registered worktrees; their findings return to the primary writer.
|
|
212
|
-
Parallel implementation uses separate worktrees and explicit Git integration. Ultra
|
|
213
|
-
does not add a lock service or semantic state machine to make concurrent canonical
|
|
214
|
-
writes appear safe.
|
|
215
|
-
|
|
216
|
-
The primary writer of a work package changes only through an owner-granted primary
|
|
217
|
-
transfer (`skills/ultra-change/references/primary-transfer.md`): a derived OFFER
|
|
218
|
-
binding canonical refs/hashes, HEAD, and worktree digest; a receiver ACK that is
|
|
219
|
-
ready only on full stable-read match; sole-writer execution; and a frozen terminal
|
|
220
|
-
RESULT. A delegated worker never becomes the canonical writer, and a delegation
|
|
221
|
-
receipt never serves as an ACK or RESULT. While an ACK-ready transfer is open, at
|
|
222
|
-
most that one receiver may write canonical files.
|
|
223
|
-
|
|
224
|
-
## Decisions and reductions
|
|
225
|
-
|
|
226
|
-
Write a durable decision only when it is difficult to reverse, surprising without
|
|
227
|
-
context, and the result of a real trade-off. All three conditions are required.
|
|
228
|
-
|
|
229
|
-
An accepted decision file is append-only history. A changed answer creates a new file
|
|
230
|
-
with `supersedes`; it does not rewrite the prior decision.
|
|
231
|
-
|
|
232
|
-
Classification of a specification change is outcome-based:
|
|
233
|
-
|
|
234
|
-
- `EXPANSION`: adds a commitment while all prior commitments remain true;
|
|
235
|
-
- `CORRECTION`: changes an inaccurate description while every prior product commitment
|
|
236
|
-
still holds in the result;
|
|
237
|
-
- `REDUCTION`: any prior commitment stops holding, regardless of the justification.
|
|
238
|
-
|
|
239
|
-
Only the owner may accept a reduction.
|
|
240
|
-
|
|
241
|
-
## Evidence promotion
|
|
242
|
-
|
|
243
|
-
Tool output, source inspection, external sources, and runtime observations begin as
|
|
244
|
-
evidence. The model may use them to update a canonical specification when their scope
|
|
245
|
-
and provenance support the claim. The evidence is retained or cited; it is not copied
|
|
246
|
-
into a second semantic ledger.
|
|
247
|
-
|
|
248
|
-
A test result is current only for the code and environment it exercised. A report must
|
|
249
|
-
carry the exact command, exit code, stable Change id, exact current task ids, intent
|
|
250
|
-
SHA-256, Git commit, product-worktree digest, ordered v2 task-evidence identities, and
|
|
251
|
-
strict aggregate-review packet, admission, subject, and summary bindings. Delivery
|
|
252
|
-
metadata and moving the same Change between active and archive do not alter the product
|
|
253
|
-
digest. The product-worktree digest has one fixed boundary: it excludes
|
|
254
|
-
`.ultra/evidence/**`, whose command and external-observation entries bind exact raw bytes
|
|
255
|
-
as `raw_evidence_sha256` before stable record bytes are bound as `evidence_digest`
|
|
256
|
-
through the ordered task-evidence projection. Test, Status, and Deliver independently
|
|
257
|
-
recompute both bindings from bounded stable repository-contained regular non-symlink
|
|
258
|
-
files; exact review receipts retain their own digest and consumer checks. No writer may
|
|
259
|
-
add a caller-selected exclusion. Changing intent bytes does alter `intent_digest`.
|
|
260
|
-
Missing or stale evidence remains
|
|
261
|
-
`not_run`, `unknown`, or `stale`; it is never inferred as passing.
|
|
262
|
-
|
|
263
|
-
## Derived artifacts
|
|
264
|
-
|
|
265
|
-
These paths are intentionally non-authoritative:
|
|
266
|
-
|
|
267
|
-
| Path | Purpose | Recovery |
|
|
268
|
-
|---|---|---|
|
|
269
|
-
| `.ultra/research/<run-id>/brief.md` | optional Wayfinding question map for a multi-lens Research run | rebuild from Project Brief, accepted authority, evidence needs, and owner checkpoints |
|
|
270
|
-
| `.ultra/.runtime/compact-snapshot.md` | compaction acceleration | rebuild from files and Git |
|
|
271
|
-
| `.ultra/.runtime/delegations/` | delegated process receipts and logs | inspect result or rerun with new id |
|
|
272
|
-
| `.ultra/.runtime/handoffs/` | primary-transfer OFFER/ACK/RESULT receipts, plus the optional CLOSEOUT receipt of the one prescribed post-review closeout | create a fresh handoff id from canonical authority; never reconstruct an old ACK or RESULT; close out a newest completed v2 RESULT by publishing its CLOSEOUT receipt, never by refreshing the RESULT or opening a handoff for the closeout |
|
|
273
|
-
| `.ultra/.runtime/worktrees/` | delegated checkout locations | inspect Git worktrees and remove safely |
|
|
274
|
-
| `.ultra/progress/<task-id>.json` | mechanical evidence observations | rerun sensors or inspect current diff |
|
|
275
|
-
| `.ultra/reviews/<session>/` | `WORKER-PACKET.json`, `ADMISSION.json`, selected specialist artifacts, and `SUMMARY.json` | retain a current strict session through successful aggregate Test and Deliver consumption; after premature loss, run a fresh Review and Test and never reconstruct the old receipt |
|
|
276
|
-
|
|
277
|
-
The canonical template's nested `.ultra/.gitignore` ignores `.runtime/`, `progress/`,
|
|
278
|
-
and `reviews/` without rewriting the owner's repository-level ignore rules. A current
|
|
279
|
-
strict review session contains `WORKER-PACKET.json`, `ADMISSION.json`, every selected
|
|
280
|
-
specialist artifact, and `SUMMARY.json`; it may be garbage-collected only after aggregate Test and
|
|
281
|
-
Deliver have both consumed it successfully. Premature loss requires a fresh Review and
|
|
282
|
-
Test, never reconstruction of the old receipt. Subject to that retention window,
|
|
283
|
-
deleting derived paths cannot delete accepted product intent, task contracts, or
|
|
284
|
-
decisions.
|
|
285
|
-
|
|
286
|
-
## Recovery order
|
|
287
|
-
|
|
288
|
-
After interruption or host change:
|
|
289
|
-
|
|
290
|
-
1. identify the repository root and current `HEAD`;
|
|
291
|
-
2. resolve zero or one active `change_id`, then read `.ultra/tasks.json`; if authority
|
|
292
|
-
resolution returns a typed conflict or unavailable observation, stop semantic writes
|
|
293
|
-
but keep Status recovery diagnosis reachable without selecting an ambiguous intent;
|
|
294
|
-
3. select only matching tasks and read the frontier task's full context and closing Resume Note;
|
|
295
|
-
4. read the Project Brief, accepted North Star, `CONTEXT.md`, relevant decisions, active
|
|
296
|
-
Change, specifications, and evidence;
|
|
297
|
-
5. inspect the working tree and compare it with Completion and evidence claims;
|
|
298
|
-
6. rely only on ledger task status; preserve any legacy context Status or Complexity as
|
|
299
|
-
a migration diagnostic, and use the explicit recorded reopen before repairing an
|
|
300
|
-
invalid completed task's current v2 evidence or task-review bindings;
|
|
301
|
-
7. derive a fresh Route Card and continue only through the next observable acceptance
|
|
302
|
-
boundary covered by the current owner instruction or valid Execution Grant.
|
|
303
|
-
|
|
304
|
-
Hooks and the `ubp` executable may be unavailable. Recovery must still work through
|
|
305
|
-
these files and Git alone.
|
package/docs/DECISIONS.md
DELETED
|
@@ -1,229 +0,0 @@
|
|
|
1
|
-
# Ultra Builder Pro 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
|
-
## Ultra Core Protocol (3.0, accepted 2026-08-17; r3 revision same day)
|
|
7
|
-
|
|
8
|
-
The owner accepted `docs/ULTRA-BUILDER-PRO-3.0.zh-CN.md` and projected it as North
|
|
9
|
-
Star revision `north-star-v2-r2`
|
|
10
|
-
(`.ultra/decisions/2026-08-17-ultra-3-0-north-star-r2.md`), then converged the
|
|
11
|
-
constitution with the owner-directed r3 design
|
|
12
|
-
(`docs/ULTRA-BUILDER-PRO-3.0-NORTH-STAR-R3.zh-CN.md`) as revision
|
|
13
|
-
`north-star-v2-r3`
|
|
14
|
-
(`.ultra/decisions/2026-08-17-ultra-3-0-north-star-r3.md`). Ultra Builder Pro is
|
|
15
|
-
the file-first, provider-neutral Ultra Core Protocol: cognitive alignment through
|
|
16
|
-
checkpoints, per-fact canonical authority, explicit dual-mode authorization, typed
|
|
17
|
-
evidence with recovery, exclusive verified Agent handover, and review convergence
|
|
18
|
-
bounded by an owner-visible budget. The constitution itself stays count-free —
|
|
19
|
-
agent counts and topology detail, Host and Skill counts, provider names, and
|
|
20
|
-
exact review-round numbers live in the versioned product contract and exact
|
|
21
|
-
work-package grants. Authorization has two
|
|
22
|
-
modes — `session-local` by default, `durable work-package` when the owner issues an
|
|
23
|
-
exact grant (see `.ultra/decisions/2026-08-17-ultra-builder-pro-3.0-mode-b.md`); no
|
|
24
|
-
file, status, Hook, or Resume note ever implies activation. Optional Graph/Loop
|
|
25
|
-
coordination layers own observations only and none is integrated.
|
|
26
|
-
|
|
27
|
-
## Ultra 5.0 workflow projection (accepted 2026-08-25)
|
|
28
|
-
|
|
29
|
-
The owner accepted the 5.0 scope and interaction boundary in
|
|
30
|
-
`.ultra/decisions/2026-08-25-ultra-5-0-scope.md`; the versioned contract is
|
|
31
|
-
`docs/ULTRA-BUILDER-PRO-5.0.zh-CN.md`. One shared Route Contract projects the existing
|
|
32
|
-
owner-checkpoint semantics into every public Skill without adding route state. Research
|
|
33
|
-
has explicit baseline and grant-continuable Change-scoped modes; Change makes
|
|
34
|
-
intake/evidence/reconcile/accepted visible and permits only same-Change non-material
|
|
35
|
-
reconciliation under a valid grant; Plan returns product evidence gaps through Change.
|
|
36
|
-
Host invocation bits remain coarse discovery metadata and every Skill rechecks mode,
|
|
37
|
-
grant, effects, and material checkpoints. Team Pack, remote shared assets, a semantic
|
|
38
|
-
state machine, daemon, and resident ACP service remain outside 5.0.
|
|
39
|
-
|
|
40
|
-
## Primary transfer between Agents (r3, accepted 2026-08-17)
|
|
41
|
-
|
|
42
|
-
A work package's canonical writer moves to another Agent only through an
|
|
43
|
-
owner-granted primary transfer: the sender writes current reality into the task
|
|
44
|
-
context and Resume Note, derives an OFFER binding canonical refs/hashes, HEAD,
|
|
45
|
-
and the worktree digest, and stops writing after the receiver's ready ACK; the
|
|
46
|
-
receiver stable-reads, verifies every digest, becomes the sole canonical writer,
|
|
47
|
-
and freezes a terminal RESULT. Receipts under `.ultra/.runtime/handoffs/` are
|
|
48
|
-
derived and rebuildable, never authority; mismatches block instead of
|
|
49
|
-
auto-repairing; delegated workers stay mutually exclusive with this path and
|
|
50
|
-
never write canonical `.ultra`
|
|
51
|
-
(`.ultra/decisions/2026-08-17-ultra-3-0-r3-primary-handoff.md`,
|
|
52
|
-
`skills/ultra-change/references/primary-transfer.md`).
|
|
53
|
-
|
|
54
|
-
## ZCode headless transport stays experimental (r3, accepted 2026-08-17)
|
|
55
|
-
|
|
56
|
-
The ZCode app-bundled CLI is a verified-local surface — it exists, launches, and
|
|
57
|
-
passed local drills — but the provider publishes no headless CLI, SDK, or
|
|
58
|
-
protocol stability contract. Its transport maturity is recorded `experimental`
|
|
59
|
-
in the shared host profile and compatibility matrix; promotion to `supported`
|
|
60
|
-
requires both official documentation and a full recovery drill. Interactive
|
|
61
|
-
Desktop use and the documented plugin surface are unaffected, and no adapter may
|
|
62
|
-
pass an app-internal binary off as an official stable interface.
|
|
63
|
-
|
|
64
|
-
## File-first authority
|
|
65
|
-
|
|
66
|
-
Owner-readable repository files and Git are the complete semantic authority. Ultra
|
|
67
|
-
does not maintain a database, MCP kernel, workflow state machine, prompt projection, or
|
|
68
|
-
daemon. The previous mechanical supervisor could make every public path unreachable
|
|
69
|
-
while still reporting internally consistent state; deletion restores the host model's
|
|
70
|
-
ownership of route and meaning.
|
|
71
|
-
|
|
72
|
-
## Three Skill roles
|
|
73
|
-
|
|
74
|
-
The product exposes eight owner-invocable public workflows, five model-invoked
|
|
75
|
-
disciplines, and one router. Public modes are `explicit-entry` or
|
|
76
|
-
`grant-continuable`. Scoped Research, same-Change reconciliation, Plan, Dev, Test, and
|
|
77
|
-
Deliver reconciliation may be selected under an activated Change-scoped execution
|
|
78
|
-
grant — session-local activation in the current conversation, or a stably verified
|
|
79
|
-
durable work-package grant. All other public modes stay explicit-entry; Status stays
|
|
80
|
-
owner-invoked and read-only. A model discipline needs at least two canonical callers or it is inlined.
|
|
81
|
-
|
|
82
|
-
This keeps reusable reasoning in one place without turning it into another user-facing
|
|
83
|
-
route or custom-agent registry.
|
|
84
|
-
|
|
85
|
-
## Bounded same-session continuation
|
|
86
|
-
|
|
87
|
-
The stored grant text is descriptive authority, not an executable grant. Session-local
|
|
88
|
-
activation is a current owner utterance approving the exact grant and current task
|
|
89
|
-
ledger; a durable work-package grant is executable only after a fresh Agent stably
|
|
90
|
-
verifies its recorded subject, scope, topology, effects, budgets, expiry, revocation,
|
|
91
|
-
and invalidation. A fresh session without a durable grant, host change, lost
|
|
92
|
-
activation context, semantic stop, or budget ceiling pauses
|
|
93
|
-
the loop. Plan, task, and aggregate reviews remain mandatory. Delivery continuation is
|
|
94
|
-
reconcile-only; finalization, archive, authenticated providers, install, commit, push,
|
|
95
|
-
publish, and deploy remain separately authorized.
|
|
96
|
-
|
|
97
|
-
The native host model-tool loop performs the work. Existing files and Git carry
|
|
98
|
-
recovery; no route position, daemon, or extra semantic store is introduced.
|
|
99
|
-
|
|
100
|
-
## Review topology is owner-selected
|
|
101
|
-
|
|
102
|
-
The owner chooses reviewer and provider count for each stage. The default is one reviewer:
|
|
103
|
-
the current Agent. An initial task review selects `review-spec` plus the
|
|
104
|
-
lenses justified by risk and touched seams; a delta review reruns only affected
|
|
105
|
-
lenses; an aggregate Change review may default to the full roster only when cross-task
|
|
106
|
-
wiring justifies it — never as a mandatory count or a quality proxy. Specification
|
|
107
|
-
fidelity owns both accepted-behavior mapping and the challenge to a Change's claimed
|
|
108
|
-
North Star contribution, with actual execution mode and coverage recorded. When
|
|
109
|
-
another model family is available, a blind premise challenger is an additional probe
|
|
110
|
-
rather than a voting lens.
|
|
111
|
-
|
|
112
|
-
The seeded 2026-08-14 evaluation found no consequential defect class uniquely caught
|
|
113
|
-
by a permanent premise lens: the strengthened specification lens, the six-concern Kimi
|
|
114
|
-
probe, and the ZCode specification probe each found all five hidden classes. Grok's
|
|
115
|
-
malformed terminal output was rejected and was not counted as semantic evidence. See
|
|
116
|
-
`docs/evals/adversarial-review-2026-08-14.md`.
|
|
117
|
-
|
|
118
|
-
## ZCode activation uses documented plugin directories
|
|
119
|
-
|
|
120
|
-
ZCode receives a managed local marketplace for importability and a documented
|
|
121
|
-
`plugins.dirs` entry for immediate native discovery. Ultra owns only the entry it adds,
|
|
122
|
-
so reinstall is idempotent and uninstall preserves unrelated user configuration. It
|
|
123
|
-
does not write ZCode's private plugin cache or copy desktop provider credentials into
|
|
124
|
-
headless CLI configuration.
|
|
125
|
-
|
|
126
|
-
## Intake, baseline, and delta
|
|
127
|
-
|
|
128
|
-
Init preserves raw owner intake in the Project Brief; Research establishes the accepted North Star, domain language, and specification baseline; Change reconciles only the sections touched by one requested delta.
|
|
129
|
-
|
|
130
|
-
The optional Research Wayfinding brief is derived navigation, not a fifteenth Skill or
|
|
131
|
-
semantic authority. The first six Research references remain dependency-aware semantic
|
|
132
|
-
lenses. Grilling controls how caller-named questions are asked, Think stress-tests one
|
|
133
|
-
consequential decision, and Domain Modeling promotes settled vocabulary. This prevents
|
|
134
|
-
Init from consuming Research while keeping reusable methods in one canonical place.
|
|
135
|
-
|
|
136
|
-
## Rule-side assets travel with Skills
|
|
137
|
-
|
|
138
|
-
`.ultra/` contains project data only. Reusable executable examples live under
|
|
139
|
-
`skills/ultra-tdd/references/templates/`; the reduction boundary lives under
|
|
140
|
-
`skills/ultra-think/references/`; the full philosophy lives in `docs/PHILOSOPHY.md`.
|
|
141
|
-
|
|
142
|
-
Skill `references/` is already copied by every adapter and supports relative
|
|
143
|
-
cross-Skill links. No placeholder root variable or separate asset distributor is
|
|
144
|
-
needed.
|
|
145
|
-
|
|
146
|
-
## State is fact; route is judgment
|
|
147
|
-
|
|
148
|
-
Directory position and explicit fields record mechanically checkable facts. The host
|
|
149
|
-
model reads those facts and chooses the next route. There is no persisted “current
|
|
150
|
-
workflow stage” whose value can override the actual files.
|
|
151
|
-
|
|
152
|
-
The `UBP Route Card` is the owner-visible projection of those facts: it adds Route,
|
|
153
|
-
Mode, Position, and Exit condition around the eight accepted checkpoint semantics. It
|
|
154
|
-
is derived at public boundaries, has no canonical path, and provides neither completion
|
|
155
|
-
nor continuation authority.
|
|
156
|
-
|
|
157
|
-
Task status lives only in the `ultra-task-ledger-v2` row and is read back there. New task
|
|
158
|
-
contexts do not duplicate it; legacy context Status and Complexity fields remain
|
|
159
|
-
migration diagnostics and the ledger wins. Tasks retain a stable `change_id` in the
|
|
160
|
-
append-only ledger; current readers select only rows matching the one active Change.
|
|
161
|
-
Archive or abandonment is a `git mv`. Test-report freshness is governed normatively by the complete v2 rule in [Artifact Authority](ARTIFACT-AUTHORITY.md#evidence-promotion).
|
|
162
|
-
That authority binds the current Change snapshot, ordered v2 task-evidence identities,
|
|
163
|
-
and strict aggregate-review packet, admission, subject, and summary bindings. This
|
|
164
|
-
decision intentionally does not maintain a second field mirror. Deliver reconciles
|
|
165
|
-
first and finalizes only while that complete snapshot remains current. A separate
|
|
166
|
-
request cannot create a second active Change; it waits, exits the current Change, or is
|
|
167
|
-
explicitly reconciled into the same id.
|
|
168
|
-
|
|
169
|
-
## Typed task evidence and completion ordering
|
|
170
|
-
|
|
171
|
-
Current work uses `ultra-task-evidence-v2`. Command, inspection, owner-judgment, and
|
|
172
|
-
external-observation evidence retain distinct authorities; the owner alone can supply
|
|
173
|
-
an owner-judgment result. Structural validators report exact fields, identities,
|
|
174
|
-
digests, provenance, and freshness, never semantic acceptance. A task remains
|
|
175
|
-
`in_progress` through its task review. Blocking findings and their dispositions are
|
|
176
|
-
recorded and affected evidence is refreshed before the primary model writes
|
|
177
|
-
`completed` to the ledger. Historical v1 evidence remains readable but cannot satisfy a
|
|
178
|
-
current Change's Test or Deliver input without migration.
|
|
179
|
-
|
|
180
|
-
## Counts are observations, not semantic gates
|
|
181
|
-
|
|
182
|
-
Task, file, line, context, question, finding, repair-round, and complexity counts do not
|
|
183
|
-
decide plan quality, review convergence, staleness, or completion. The model interprets
|
|
184
|
-
concrete coupling, evidence, risk, and recovery facts. Explicit physical ceilings such
|
|
185
|
-
as time, bytes, cost, provider spend, or bounded process resources still stop resource
|
|
186
|
-
consumption and return a typed recovery path; exhaustion never dispositions a finding.
|
|
187
|
-
|
|
188
|
-
## Three independent integration defences
|
|
189
|
-
|
|
190
|
-
Planning, task development, and final testing detect different versions of the
|
|
191
|
-
locally-green/whole-system-broken failure. Their outputs remain independent sensors:
|
|
192
|
-
horizontal task shape, six evidence dimensions, and final wiring/E2E audit.
|
|
193
|
-
|
|
194
|
-
No single sensor is promoted into a semantic completion gate.
|
|
195
|
-
|
|
196
|
-
## Five hooks only
|
|
197
|
-
|
|
198
|
-
The hook surface is session context, mid-workflow acceptance recall, compact snapshot,
|
|
199
|
-
post-edit evidence observation, and dangerous-command protection. Every hook is silent
|
|
200
|
-
without `.ultra/`. Additive protected-branch publication is advisory because the
|
|
201
|
-
portable hook cannot receive every host's trusted owner-approval receipt. History
|
|
202
|
-
rewrites, branch deletion, and the narrower named destructive effects can be denied;
|
|
203
|
-
their repair is authorization scoped to the exact command digest.
|
|
204
|
-
|
|
205
|
-
## Delegation is a process boundary
|
|
206
|
-
|
|
207
|
-
The installed `ultra-delegate/scripts/delegate.cjs` starts a supported CLI with an
|
|
208
|
-
immutable instruction, explicit permission JSON, and named worktree. Its exact
|
|
209
|
-
digest-bound sources are embedded in
|
|
210
|
-
the worker prompt because some native sandboxes correctly deny reads outside the
|
|
211
|
-
worktree. Files remain the cross-host state; the embedded copy is transport, not another
|
|
212
|
-
authority. The parent reads a stable terminal result instead of worker chatter. The
|
|
213
|
-
package `ubp delegate` surface is a one-release compatibility import of that same
|
|
214
|
-
launcher, not a second implementation or a runtime installation requirement.
|
|
215
|
-
Delegation adds no semantic store and no authority. The instruction selects task
|
|
216
|
-
execution, scoped Research evidence, or aggregate Change review/verification; only task
|
|
217
|
-
execution requires a task row.
|
|
218
|
-
|
|
219
|
-
## Installation isolation
|
|
220
|
-
|
|
221
|
-
An explicit `--config-dir` owns host sidecars as well as the primary config. In
|
|
222
|
-
particular, Codex plugin and personal-marketplace paths resolve inside the sandbox.
|
|
223
|
-
Managed staging, provenance, doctor, and uninstall are native adapter responsibilities.
|
|
224
|
-
|
|
225
|
-
## External effects
|
|
226
|
-
|
|
227
|
-
Commit, push, tag, package publication, release, deployment, installation, migrations,
|
|
228
|
-
and real-money effects are independent. A locally complete delivery authorizes none of
|
|
229
|
-
them automatically.
|