ultra-builder-pro-cli 0.26.1 → 3.0.2
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 +64 -29
- package/.ultra-template/north-star.md +36 -30
- package/.ultra-template/project-brief.md +28 -0
- package/.ultra-template/specs/product.md +4 -0
- package/.ultra-template/specs/research-distillate.md +8 -0
- package/.ultra-template/tasks.json +1 -0
- package/.ultra-template/test-report.json +18 -1
- package/CHANGELOG.md +227 -1
- package/README.md +161 -59
- package/adapters/_shared/host-profile.cjs +68 -12
- package/adapters/_shared/plugin-core.cjs +4 -5
- package/adapters/_shared/runtime-assets.cjs +11 -2
- package/adapters/zcode.js +375 -0
- package/bin/delegate-worker.cjs +20 -0
- package/bin/delegate.cjs +94 -25
- package/bin/install.js +11 -6
- package/docs/ARCHITECTURE.md +109 -25
- package/docs/ARTIFACT-AUTHORITY.md +204 -30
- package/docs/DECISIONS.md +141 -10
- package/docs/PHILOSOPHY.md +61 -8
- package/docs/PLUGIN-ISOLATION-CONTRACT.md +6 -0
- package/docs/RUNTIME-COMPAT-MATRIX.md +106 -13
- package/docs/SKILL-AUTHORING.md +14 -9
- package/docs/WORKFLOW-LIFECYCLE.md +211 -53
- package/docs/evals/adversarial-review-2026-08-14.md +84 -0
- package/docs/evals/zcode-automation-2026-08-14.md +103 -0
- package/hooks/README.md +31 -3
- package/hooks/_common.py +1699 -33
- package/hooks/adapters/zcode.py +227 -0
- package/hooks/compact_context.py +176 -17
- package/hooks/mid_workflow_recall.py +27 -5
- package/hooks/post_edit_guard.py +133 -23
- package/hooks/session_context.py +722 -11
- package/package.json +6 -3
- package/skills/ultra-change/SKILL.md +84 -64
- package/skills/ultra-change/references/change-contract.md +130 -32
- package/skills/ultra-change/references/execution-grant.md +109 -0
- package/skills/ultra-change/references/primary-transfer.md +273 -0
- package/skills/ultra-change/scripts/validate_primary_transfer.cjs +1928 -0
- package/skills/ultra-delegate/SKILL.md +38 -5
- package/skills/ultra-delegate/references/delegation-contract.md +21 -1
- package/skills/ultra-deliver/SKILL.md +123 -44
- package/skills/ultra-deliver/references/baseline-reconciliation.md +5 -3
- package/skills/ultra-dev/SKILL.md +173 -43
- package/skills/ultra-grilling/SKILL.md +19 -16
- package/skills/ultra-grilling/references/reframing.md +7 -3
- package/skills/ultra-init/SKILL.md +99 -87
- package/skills/ultra-init/references/brownfield-adoption.md +23 -40
- package/skills/ultra-init/scripts/init_project.cjs +968 -21
- package/skills/ultra-plan/SKILL.md +83 -46
- package/skills/ultra-plan/references/task-evidence-v2.md +300 -0
- package/skills/ultra-plan/scripts/validate_task_evidence.cjs +859 -0
- package/skills/ultra-research/SKILL.md +119 -68
- package/skills/ultra-research/references/{03-competitive-landscape.md → 03-alternatives.md} +6 -6
- package/skills/ultra-research/references/04-product-strategy.md +11 -2
- package/skills/ultra-research/references/21-features-scope.md +8 -0
- package/skills/ultra-research/references/22-success-metrics.md +9 -4
- package/skills/ultra-research/references/99-synthesis.md +25 -1
- package/skills/ultra-research/references/north-star-v2.md +168 -0
- package/skills/ultra-research/references/wayfinding.md +50 -0
- package/skills/ultra-research/scripts/validate_north_star.cjs +1174 -0
- package/skills/ultra-review/SKILL.md +201 -24
- package/skills/ultra-review/references/adversarial-evaluation.md +31 -0
- package/skills/ultra-review/references/spec.md +5 -0
- package/skills/ultra-review/references/unified-schema.md +146 -11
- package/skills/ultra-review/references/worker-packet.md +151 -8
- package/skills/ultra-review/scripts/review_wait.py +2653 -63
- package/skills/ultra-status/SKILL.md +146 -32
- package/skills/ultra-tdd/SKILL.md +14 -4
- package/skills/ultra-tdd/references/test-execution.md +6 -1
- package/skills/ultra-test/SKILL.md +157 -15
- package/skills/ultra-test/scripts/validate_review_transport.cjs +549 -0
- package/skills/ultra-test/scripts/worktree_digest.cjs +551 -29
- package/skills/ultra-think/SKILL.md +5 -10
- package/skills/ultra-think/references/interaction-boundary.md +2 -1
|
@@ -8,9 +8,24 @@ description: Delegate one bounded workflow segment to another installed CLI in a
|
|
|
8
8
|
Delegation is an execution mode, not another workflow stage. The primary host keeps
|
|
9
9
|
semantic synthesis and remains the only writer of `.ultra/tasks.json`.
|
|
10
10
|
|
|
11
|
+
Delegation is also not a primary transfer. A delegated worker never becomes the
|
|
12
|
+
work package's canonical writer, whatever its result says; moving that role to
|
|
13
|
+
another Agent requires the owner-directed OFFER → ACK → RESULT protocol in
|
|
14
|
+
`../ultra-change/references/primary-transfer.md`, which stays mutually exclusive
|
|
15
|
+
with this bounded-worker path.
|
|
16
|
+
|
|
11
17
|
## Before you start
|
|
12
18
|
|
|
13
|
-
1.
|
|
19
|
+
1. Resolve exactly one active `change_id`, then select one scope and name it in
|
|
20
|
+
`instruction.md`:
|
|
21
|
+
- **task execution or continuation** — select one matching task and read its full
|
|
22
|
+
`context_file` and `## Resume Note`;
|
|
23
|
+
- **scoped Research evidence** — read the active intent's Research Disposition,
|
|
24
|
+
named question, sources, and required exit evidence;
|
|
25
|
+
- **aggregate Change review or verification** — read the exact matching task ids,
|
|
26
|
+
relevant contexts, current report or review summary, and Change diff.
|
|
27
|
+
Research and aggregate read-only scopes do not require a task. An archived or
|
|
28
|
+
abandoned task cannot be delegated as current work.
|
|
14
29
|
2. Read `CONTEXT.md`, relevant `.ultra/decisions/`, acceptance and current evidence.
|
|
15
30
|
3. Define one bounded instruction, permission set, clean Git worktree and result.
|
|
16
31
|
4. Read `references/delegation-contract.md` before writing either JSON artifact.
|
|
@@ -24,13 +39,15 @@ semantic synthesis and remains the only writer of `.ultra/tasks.json`.
|
|
|
24
39
|
- No `writable_roots` entry is `.ultra/` or sits under it, and the actual diff touches
|
|
25
40
|
nothing there.
|
|
26
41
|
- Timeout and cancellation reach a terminal failed result and release `run.lock`.
|
|
27
|
-
- The primary host verifies the result against the
|
|
42
|
+
- The primary host verifies the result against the selected scope's task acceptance,
|
|
43
|
+
Research exit evidence, or aggregate review/verification question.
|
|
28
44
|
|
|
29
45
|
## Prepare and run
|
|
30
46
|
|
|
31
47
|
Write under `.ultra/.runtime/delegations/<id>/`:
|
|
32
48
|
|
|
33
|
-
- `instruction.md`:
|
|
49
|
+
- `instruction.md`: scope type, stable `change_id`, optional task id, bounded goal,
|
|
50
|
+
sources, acceptance or exit evidence, and forbidden effects;
|
|
34
51
|
- `permission.json`: the exact file-local boundary in the contract reference;
|
|
35
52
|
- `result.json`: launcher-published terminal artifact only.
|
|
36
53
|
|
|
@@ -43,7 +60,7 @@ worktrees collide in the very files every later session reads to resume. Worker
|
|
|
43
60
|
and state changes travel back in `result.json` and are applied by the primary host.
|
|
44
61
|
`external_effects` must be empty in this portable launcher: commit, push, publish,
|
|
45
62
|
deployment and other effects stay with the primary host. There is no `readable_roots`
|
|
46
|
-
claim because the
|
|
63
|
+
claim because the six host sandboxes do not share one mechanically enforceable read
|
|
47
64
|
policy.
|
|
48
65
|
|
|
49
66
|
Create `.ultra/.runtime/worktrees/<id>` as a real Git worktree and run:
|
|
@@ -52,6 +69,20 @@ Create `.ultra/.runtime/worktrees/<id>` as a real Git worktree and run:
|
|
|
52
69
|
ubp delegate run --to <host> --instruction <file> --permission <file> --worktree <dir> --timeout <seconds>
|
|
53
70
|
```
|
|
54
71
|
|
|
72
|
+
`<host>` is `claude`, `codex`, `opencode`, `kimi`, `grok`, or `zcode`. Kimi accepts an
|
|
73
|
+
optional `--model <id>` when its account has no default headless model. A ZCode primary
|
|
74
|
+
host uses this same command to delegate to any other installed CLI; a different primary
|
|
75
|
+
host can select `--to zcode` through the ZCode headless profile.
|
|
76
|
+
|
|
77
|
+
The ZCode headless transport is `experimental`: it is an App-internal or PATH CLI with
|
|
78
|
+
no public stability contract, and it is **not** the documented ZCode Desktop
|
|
79
|
+
interactive surface. `delegate run --to zcode` refuses to launch until the invocation
|
|
80
|
+
explicitly carries `--ack-experimental`; every launch then prints a stderr warning and
|
|
81
|
+
records `transport_maturity: "experimental"`, the exact `transport_surface` wording,
|
|
82
|
+
and `experimental_ack: true` in the receipt, the worker spec, and the terminal result
|
|
83
|
+
(including failure and timeout recovery results), so no receipt can imply a documented
|
|
84
|
+
Desktop session. Promotion requires official documentation plus a full recovery drill.
|
|
85
|
+
|
|
55
86
|
The command returns a receipt. Immediately run `scripts/delegate_wait.py`; read no
|
|
56
87
|
intermediate output. Use `ubp delegate status --delegation <dir>` for a read-only state
|
|
57
88
|
and `ubp delegate cancel --delegation <dir>` to request termination. Never delete a lock
|
|
@@ -60,7 +91,9 @@ to manufacture completion.
|
|
|
60
91
|
The worker returns one schema-constrained JSON final response. The launcher extracts it
|
|
61
92
|
from the host's native structured output, validates digests, process exit, exact schema,
|
|
62
93
|
actual base-HEAD diff and writable roots, then atomically publishes `result.json`. The
|
|
63
|
-
|
|
94
|
+
launcher embeds the exact digest-bound instruction and permission packet in the prompt,
|
|
95
|
+
so a host that denies external-directory reads never needs authority outside the
|
|
96
|
+
worktree. The model never writes its own receipt. If owner input is needed, the worker terminates
|
|
64
97
|
`blocked` with questions and evidence; start a new id and fresh packet after obtaining
|
|
65
98
|
the answer.
|
|
66
99
|
|
|
@@ -23,6 +23,13 @@ reads to resume. Enforced twice: the launcher rejects a `.ultra` root before the
|
|
|
23
23
|
delegation starts, and the worker fails an actual diff that touches it with
|
|
24
24
|
`unauthorized_write`.
|
|
25
25
|
|
|
26
|
+
This boundary also separates delegation from a primary transfer: a delegation result
|
|
27
|
+
is a bounded observation returned to the primary host, and no delegation receipt can
|
|
28
|
+
serve as, upgrade into, or substitute for the OFFER/ACK/RESULT receipts of a primary
|
|
29
|
+
transfer (`../ultra-change/references/primary-transfer.md`). Widening a worker to write
|
|
30
|
+
`.ultra` in order to simulate a transfer is a contract violation, not an integration
|
|
31
|
+
shortcut.
|
|
32
|
+
|
|
26
33
|
## Model final response
|
|
27
34
|
|
|
28
35
|
```json
|
|
@@ -43,12 +50,25 @@ delegation starts, and the worker fails an actual diff that touches it with
|
|
|
43
50
|
Fields are exact. Status is `finished`, `blocked`, or `failed`; `blocked` requires a
|
|
44
51
|
question. Check status is `passed`, `failed`, or `not_run`. Changed files are unique,
|
|
45
52
|
normalized repository-relative paths and must exactly equal the launcher's Git diff.
|
|
53
|
+
`output_ref` is requested for every check and required in the native schema projection
|
|
54
|
+
used by hosts that accept one. The launcher remains compatible with hosts that return
|
|
55
|
+
the otherwise exact check without that optional evidence pointer.
|
|
46
56
|
|
|
47
|
-
The launcher
|
|
57
|
+
The launcher embeds the exact instruction and permission sources with their digests in
|
|
58
|
+
the host prompt, extracts this object from native structured output, and adds
|
|
48
59
|
`delegation_id`, `host`, instruction, permission, and output-schema digests,
|
|
49
60
|
`read_only`, `base_head`, `final_head`, timestamps, `exit_code`, and signal. Launcher
|
|
50
61
|
failures also add `failure_type`. A nonzero process cannot publish `finished`.
|
|
51
62
|
|
|
63
|
+
Every receipt, worker spec, and terminal result also records the transport truth:
|
|
64
|
+
`transport_maturity` (from the shared host profile) and the exact `transport_surface`
|
|
65
|
+
wording. The ZCode headless transport is `experimental` with no public stability
|
|
66
|
+
contract and is not the documented ZCode Desktop interactive surface; launching it
|
|
67
|
+
requires the explicit `--ack-experimental` flag, prints a stderr warning, and stamps
|
|
68
|
+
`experimental_ack: true` on the receipt, so no delegation record can misrepresent an
|
|
69
|
+
internal CLI run as a documented Desktop session — including failure, cancellation,
|
|
70
|
+
and timeout recovery results.
|
|
71
|
+
|
|
52
72
|
## Recovery
|
|
53
73
|
|
|
54
74
|
- `status` distinguishes running, cancelling, stalled, and terminal artifacts.
|
|
@@ -1,58 +1,137 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ultra-deliver
|
|
3
|
-
description: Reconcile one
|
|
3
|
+
description: Reconcile one Change whose matching tasks are complete, run aggregate review and refactoring, and report the delivery handoff. Use when the owner wants delivery reconciliation and reporting, or — by current explicit owner invocation only — the separately gated finalization that writes delivery.md, fixes version and package posture, and archives the local workflow record.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Turn current evidence into a recoverable delivery handoff
|
|
7
7
|
|
|
8
|
-
Delivery closes the local Change
|
|
9
|
-
separate effects; local readiness grants none of them automatically.
|
|
8
|
+
Delivery closes the local Change; readiness grants no commit, push, tag, publish, or deploy authority.
|
|
10
9
|
|
|
11
10
|
## Before you start
|
|
12
11
|
|
|
13
|
-
1.
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
1. If model-selected, verify the live execution grant in `../ultra-change/references/execution-grant.md` — a current session-local activation or a stably verified durable work-package grant; without either, stop. A model-selected Deliver run under that grant may reconcile, review, and report, and then MUST stop before finalization: its inputs, writes, and effects end at the report. Only a current explicit owner invocation of `ultra-deliver` may finalize — writing `delivery.md`, deciding the version decision and package posture, and archiving the stable Change id with `git mv` are owner-invocation-only in every grant mode, and a grant never covers them.
|
|
13
|
+
2. Read `../ultra-change/references/change-contract.md` and apply its **Active Change
|
|
14
|
+
authority resolution** before reading any active `intent.md` or resolving a current
|
|
15
|
+
`change_id`. This workflow requires its one valid active authority; any zero result
|
|
16
|
+
or typed diagnostic stops before finalization input is read until the stated repair
|
|
17
|
+
or retry succeeds. Read `.ultra/tasks.json`; every matching task must be `completed`
|
|
18
|
+
in that sole task-status authority. Read each `context_file`'s Completion, Task
|
|
19
|
+
Review, and closing Resume Note. For every current Change task,
|
|
20
|
+
require current `ultra-task-evidence-v2` and task-review provenance under
|
|
21
|
+
`../ultra-plan/references/task-evidence-v2.md`, already consumed by the current Test
|
|
22
|
+
report. A legacy context Status or Complexity header and v1 evidence are migration
|
|
23
|
+
diagnostics only and cannot support current delivery.
|
|
24
|
+
3. Read `CONTEXT.md`, relevant `.ultra/decisions/`, active Change intent and evidence.
|
|
25
|
+
Validate `.ultra/north-star.md`; resolve every recorded `FP-*`, `NS-*`, and `HC-*`
|
|
26
|
+
for the delivered Change, tasks, findings, and dispositions against that accepted
|
|
27
|
+
authority. Compare the active Change's recorded **North Star revision** and
|
|
28
|
+
**North Star digest** with the accepted file's revision and current Git blob digest. Any
|
|
29
|
+
missing ID or mismatch stops finalization and recommends explicit owner invocation of
|
|
30
|
+
`ultra-change` for reconciliation; delivery never silently rewrites the trace.
|
|
31
|
+
4. Read `.ultra/test-report.json`, then run the Test Skill's `worktree_digest.cjs` with
|
|
32
|
+
project root and `--change-id`. Require report `task_ids` for the current Change plus
|
|
33
|
+
matching `change_id`, `git_commit`, worktree digest, intent digest, and review
|
|
34
|
+
`admission_digest`, `subject_digest`, and `summary_digest`; otherwise stop. Recheck
|
|
35
|
+
each projected task's declared review branch as recorded: strict-v4 items keep their
|
|
36
|
+
strict receipt and transport bindings, while `external-manual` items reverify their
|
|
37
|
+
receipt bytes and digest through the task-evidence sensor's
|
|
38
|
+
`--verify-external-receipt` mode and take the sensor's `--projection` output
|
|
39
|
+
verbatim — a strict SUMMARY never substitutes for an external receipt and neither
|
|
40
|
+
branch is rewritten into the other.
|
|
41
|
+
The product-worktree digest has one fixed boundary: it excludes `.ultra/evidence/**`,
|
|
42
|
+
whose command and external-observation entries bind raw bytes as
|
|
43
|
+
`raw_evidence_sha256` before stable exact record bytes are bound as `evidence_digest`
|
|
44
|
+
through the report's ordered `task_evidence` projection. For each projected record,
|
|
45
|
+
take every `raw_evidence_ref` to bounded stable repository-contained bytes from an
|
|
46
|
+
ordinary regular non-symlink file opened nonblocking and no-follow, with an 8 MiB
|
|
47
|
+
ceiling and path/descriptor identity checks around the read. Recompute
|
|
48
|
+
`raw_evidence_sha256` and require an exact match, then recompute the stable exact
|
|
49
|
+
`evidence.json` bytes as `evidence_digest` before comparing the projection. Recheck
|
|
50
|
+
the exact review receipts separately; never treat the product exclusion as permission
|
|
51
|
+
to ignore evidence drift or add another exclusion.
|
|
52
|
+
An intent digest changed by North Star reconciliation or any other intent edit always
|
|
53
|
+
requires a fresh `ultra-test` before Deliver can finalize, even if product bytes did
|
|
54
|
+
not change.
|
|
55
|
+
5. Preserve every typed acceptance authority. The owner alone supplies the semantic
|
|
56
|
+
result for `owner-judgment`; Deliver may verify its cited source and freshness but no
|
|
57
|
+
model, command, digest, schema, or validator may replace it.
|
|
18
58
|
|
|
19
59
|
## Definition of done
|
|
20
60
|
|
|
21
|
-
-
|
|
22
|
-
with every documentation file checked against the actual diff rather than from memory.
|
|
61
|
+
- Outcome, specs, tests, aggregate review, and every document match the actual diff.
|
|
23
62
|
- Every changed export has a non-test consumer or a recorded owner disposition.
|
|
24
63
|
- Every omitted stage is explicitly recorded with its evidence-based rationale.
|
|
64
|
+
- Delivery explains whether evidence realizes the traced first principles and outcome,
|
|
65
|
+
and preserves contradictions or stale trace as findings instead of mirroring or
|
|
66
|
+
silently revising North Star prose.
|
|
25
67
|
- Build and release checks have exact commands and real results.
|
|
26
68
|
- The Change is archived with `git mv`, and rollback remains a normal Git operation.
|
|
27
69
|
|
|
28
70
|
## Review and refactor
|
|
29
71
|
|
|
30
|
-
Follow `../ultra-review/SKILL.md` across the aggregate Change
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
72
|
+
Follow `../ultra-review/SKILL.md` across the aggregate Change; refactor only observed
|
|
73
|
+
duplication, coupling, or boundary defects. Rerun affected checks and refresh the report.
|
|
74
|
+
After the aggregate review and the current Test report are consumed, Deliver does not
|
|
75
|
+
refactor product source: it reconciles delivery artifacts and documentation only. A
|
|
76
|
+
post-approval implementation issue routes as at most one new owner-approved Dev task
|
|
77
|
+
for a P0/P1, or as recorded backlog and residual risk for P2/P3; an unbounded
|
|
78
|
+
Test ↔ Deliver bounce is not a valid recovery path, and any re-entry through Test
|
|
79
|
+
requires an explicit owner disposition.
|
|
34
80
|
|
|
35
81
|
## Reconcile the handoff
|
|
36
82
|
|
|
37
83
|
1. Compare accepted intent and task traces with delivered behavior.
|
|
38
84
|
2. Apply justified specification corrections; route any REDUCTION to the owner.
|
|
39
|
-
3.
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
85
|
+
3. List documentation, compare every file with the full Change diff, and repair stale
|
|
86
|
+
behavior, examples, flags, or fields. Record bounded debt only in active
|
|
87
|
+
`delivery.md` under `## Technical Debt`.
|
|
88
|
+
4. Defer build, non-publishing package inspection, version selection, and the canonical
|
|
89
|
+
`delivery.md` until the fresh-snapshot finalization pass below. Reconciliation that
|
|
90
|
+
changed files must return through Test first.
|
|
91
|
+
|
|
92
|
+
Entry reconciliation prevents inherited drift; this exit reconciliation prevents the
|
|
93
|
+
Change from leaving new document drift.
|
|
94
|
+
|
|
95
|
+
## Reconcile, then finalize on a fresh snapshot
|
|
96
|
+
|
|
97
|
+
Delivery has two observable passes, not a hidden state machine:
|
|
98
|
+
|
|
99
|
+
1. Reconcile and review. If this pass changes source, tests, task/context/evidence,
|
|
100
|
+
specifications, maintained documentation, or `intent.md`, stop after writing the
|
|
101
|
+
reconciled files. The existing report is stale; recommend `ultra-test` and make no
|
|
102
|
+
delivery or release claim.
|
|
103
|
+
2. After an unchanged pass or fresh Test, resolve the report's canonical
|
|
104
|
+
`review.summary_ref` as `<validated-summary-path>` and run the current strict transport
|
|
105
|
+
consumer against the current report:
|
|
106
|
+
|
|
107
|
+
`node <ultra-test-skill-dir>/scripts/validate_review_transport.cjs --summary <validated-summary-path> --report .ultra/test-report.json`
|
|
108
|
+
|
|
109
|
+
Require exit 0 and a JSON `"valid": true` field. This one existing consumer verifies
|
|
110
|
+
the exact
|
|
111
|
+
retained `ADMISSION.json` and `SUMMARY.json`, then binds the report's
|
|
112
|
+
`admission_digest`, `subject_digest`, and `summary_digest` to those bytes. A missing or
|
|
113
|
+
invalid receipt, summary, or binding makes the current Test claim `INCOMPLETE`: start
|
|
114
|
+
a fresh Review and Test. Do not write `delivery.md`, archive the Change, create a
|
|
115
|
+
release package, or make a delivery claim while that receipt evidence is missing or
|
|
116
|
+
invalid. Never use `--legacy-v4` for this current-session check; v3 and pre-admission
|
|
117
|
+
v4 are read-only historical evidence, not current Test or Deliver evidence.
|
|
118
|
+
|
|
119
|
+
After the transport succeeds, recheck Change/task/HEAD/product/intent identities.
|
|
120
|
+
Apply the gate, run build and non-publishing package inspection, determine version
|
|
121
|
+
impact, and use `references/baseline-reconciliation.md` for canonical `delivery.md`.
|
|
122
|
+
Archive the Change. Excluded delivery metadata and the directory move cannot
|
|
123
|
+
self-invalidate the product digest; intent stays independently bound. Retain the
|
|
124
|
+
review session through this successful Deliver consumption; only then may its derived
|
|
125
|
+
artifacts be garbage-collected.
|
|
126
|
+
|
|
127
|
+
Transport and task-evidence validators establish exact structural, identity,
|
|
128
|
+
provenance, and freshness facts only. Their success never means that the Change is
|
|
129
|
+
semantically accepted or that its outcome is ready to describe as delivered.
|
|
130
|
+
|
|
131
|
+
Do not draft a success narrative around stale evidence. A current `passed: false`
|
|
132
|
+
report may still reach finalization only after every finding has an explicit owner
|
|
133
|
+
disposition and the one hard gate below is clear; `passed` is evidence summary, not a
|
|
134
|
+
second mechanical release gate.
|
|
56
135
|
|
|
57
136
|
## The one delivery gate
|
|
58
137
|
|
|
@@ -62,27 +141,24 @@ attach itself to ordinary repository packaging outside this workflow.
|
|
|
62
141
|
Everything else in this workflow reports and hands over. This is the exception, and it
|
|
63
142
|
is deliberately narrow:
|
|
64
143
|
|
|
65
|
-
**Do not package while an export this Change added or changed has no
|
|
66
|
-
and no recorded owner disposition.**
|
|
144
|
+
**Do not produce a release package while an export this Change added or changed has no
|
|
145
|
+
non-test consumer and no recorded owner disposition.**
|
|
67
146
|
|
|
68
147
|
| | |
|
|
69
148
|
|---|---|
|
|
70
149
|
| Invariant | Every changed export is either reachable from a non-test caller or explicitly declared internal |
|
|
71
|
-
| Fact source | The Wiring Verification
|
|
72
|
-
| Blocked effect |
|
|
73
|
-
| Repair | Wire the export to its caller, or record the owner's disposition in
|
|
150
|
+
| Fact source | The Wiring Verification finding and its owner disposition in `.ultra/test-report.json`, bound to the current Change id, task ids, intent, HEAD, and product-worktree digest — the audit already found these; this is not a fresh opinion |
|
|
151
|
+
| Blocked effect | Release-package creation and the separately authorized release effects after it. A non-publishing package inspection is diagnostic; local commit and archival are untouched |
|
|
152
|
+
| Repair | Wire the export to its caller, or record the owner's disposition on the finding in `.ultra/test-report.json`, then carry it into `delivery.md`. Either one clears the gate |
|
|
74
153
|
|
|
75
|
-
"Written but never connected"
|
|
76
|
-
|
|
77
|
-
ignored exactly when it matters, because everything else already reads as done. The gate
|
|
78
|
-
sits at the last step rather than at edit time on purpose — a gate early in the loop
|
|
79
|
-
gets escaped by damaging the work.
|
|
154
|
+
"Written but never connected" can leave tests and review green while the feature is
|
|
155
|
+
absent. Keep this gate at finalization, after the audit can distinguish unfinished work.
|
|
80
156
|
|
|
81
157
|
## Archive locally
|
|
82
158
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
159
|
+
After the fresh check, `git mv` active `<id>` to archive. The id stays stable in task
|
|
160
|
+
rows; never store a movable intent path or create a second delivery summary. Archived
|
|
161
|
+
delivery, test report, evidence, and Git history are the handoff.
|
|
86
162
|
|
|
87
163
|
For separately authorized effects, perform and verify each independently. Ask for
|
|
88
164
|
authority at the point of effect: commit, then push, then tag, package publication and
|
|
@@ -95,8 +171,11 @@ Without release authority, stop after the recoverable local archive and report i
|
|
|
95
171
|
|
|
96
172
|
## References
|
|
97
173
|
|
|
174
|
+
- `../ultra-change/references/change-contract.md` — canonical Active Change authority resolution.
|
|
98
175
|
- `../ultra-review/SKILL.md` — read before aggregate review and refactoring.
|
|
176
|
+
- `../ultra-plan/references/task-evidence-v2.md` — canonical current task evidence and task-review contract.
|
|
99
177
|
- `../ultra-think/SKILL.md` — read when version or release posture is a consequential
|
|
100
178
|
trade-off rather than an established repository rule.
|
|
101
179
|
- `../ultra-think/references/autonomy-boundary.md` — read before scope or evidence shrinks.
|
|
180
|
+
- `../ultra-change/references/execution-grant.md` — read only for grant-activated continuation.
|
|
102
181
|
- `references/baseline-reconciliation.md` — exact `delivery.md` reconciliation contract.
|
|
@@ -34,6 +34,8 @@ the Change is active and moves with the directory when archived.
|
|
|
34
34
|
|
|
35
35
|
Every semantic update cites a repository-relative `path#anchor`. A reduction requires
|
|
36
36
|
the owner decision before the affected specification changes. Exact command evidence
|
|
37
|
-
must match the
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
must match the stable Change id, exact current task ids, intent digest, HEAD, and
|
|
38
|
+
product-worktree digest identified by `.ultra/test-report.json`; stale results stay
|
|
39
|
+
visible and never become a pass. Reconcile before finalizing. If reconciliation changes
|
|
40
|
+
semantic or product files, obtain a fresh Test snapshot before writing final delivery
|
|
41
|
+
metadata or archiving. Do not create a second JSON or Markdown delivery summary.
|