ultra-builder-pro-cli 3.0.2 → 5.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/.ultra-template/contexts/TEMPLATE.md +6 -0
  2. package/CHANGELOG.md +83 -1
  3. package/README.md +126 -36
  4. package/README.zh-CN.md +440 -0
  5. package/adapters/_shared/host-profile.cjs +3 -151
  6. package/adapters/_shared/plugin-core.cjs +57 -0
  7. package/adapters/_shared/runtime-assets.cjs +64 -12
  8. package/adapters/codex.js +3 -6
  9. package/bin/delegate-worker.cjs +2 -345
  10. package/bin/delegate.cjs +3 -530
  11. package/docs/ARCHITECTURE.md +59 -18
  12. package/docs/ARTIFACT-AUTHORITY.md +21 -5
  13. package/docs/DECISIONS.md +31 -10
  14. package/docs/PLUGIN-ISOLATION-CONTRACT.md +28 -12
  15. package/docs/RUNTIME-COMPAT-MATRIX.md +106 -26
  16. package/docs/SKILL-AUTHORING.md +15 -3
  17. package/docs/WORKFLOW-LIFECYCLE.md +83 -29
  18. package/docs/evals/ultra-5-0-journey-results.md +62 -0
  19. package/docs/evals/ultra-5-0-live-acp-conformance.md +93 -0
  20. package/docs/evals/ultra-5-0-route-journeys.md +145 -0
  21. package/package.json +2 -1
  22. package/skills/ultra-change/SKILL.md +30 -4
  23. package/skills/ultra-delegate/SKILL.md +80 -7
  24. package/skills/ultra-delegate/patches/zcode-acp-0.1.0-zcode-0.16.5.patch +184 -0
  25. package/skills/ultra-delegate/references/delegation-contract.md +60 -1
  26. package/skills/ultra-delegate/scripts/acp-conformance.cjs +287 -0
  27. package/skills/ultra-delegate/scripts/acp-driver.cjs +762 -0
  28. package/skills/ultra-delegate/scripts/agent-execution-driver.cjs +320 -0
  29. package/skills/ultra-delegate/scripts/cli-driver.cjs +61 -0
  30. package/skills/ultra-delegate/scripts/delegate-worker.cjs +328 -0
  31. package/skills/ultra-delegate/scripts/delegate.cjs +690 -0
  32. package/skills/ultra-delegate/scripts/host-profile.cjs +267 -0
  33. package/skills/ultra-deliver/SKILL.md +13 -0
  34. package/skills/ultra-dev/SKILL.md +18 -2
  35. package/skills/ultra-init/SKILL.md +12 -0
  36. package/skills/ultra-plan/SKILL.md +21 -3
  37. package/skills/ultra-research/SKILL.md +33 -5
  38. package/skills/ultra-status/SKILL.md +37 -7
  39. package/skills/ultra-status/references/route-contract.md +100 -0
  40. package/skills/ultra-test/SKILL.md +16 -1
  41. /package/{adapters/_shared → skills/ultra-delegate/scripts}/delegate-profiles/kimi-read-only.md +0 -0
  42. /package/{adapters/_shared → skills/ultra-delegate/scripts}/delegate-profiles/kimi-write.md +0 -0
@@ -18,6 +18,12 @@
18
18
 
19
19
  **Tech Notes**: [framework or library specifics]
20
20
 
21
+ **Earliest observable slice**: [the first real consumer -> real data path ->
22
+ owner-visible observation, or `not applicable` with the concrete reason]
23
+
24
+ **Fresh-session recovery**: [repository root and HEAD -> active Change -> matching
25
+ ledger row -> this context and Resume Note -> exact safe resume command or path]
26
+
21
27
  ## Planned Path Inventory
22
28
 
23
29
  `MODIFY`:
package/CHANGELOG.md CHANGED
@@ -7,6 +7,87 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [5.0.1] — 2026-08-26
11
+
12
+ ### Fixed
13
+
14
+ - Corrected Codex Doctor's Hook-trust observation. Codex owns persisted Hook trust but
15
+ does not expose the live decision through its plugin CLI, so Doctor now reports
16
+ `hook_activation: host_managed` with `observable: false` instead of permanently
17
+ claiming `user_review_required` and instructing already-trusted users to review again.
18
+ This changes no Hook registration, ACP transport, installation, or permission behavior.
19
+
20
+ ## [5.0.0] — 2026-08-26
21
+
22
+ ### Added
23
+
24
+ - Added one owner-visible Route Contract for every public workflow transition:
25
+ invocation, mode, current position, observable exit condition, material checkpoint,
26
+ and next route are derived from repository authority rather than stored as another
27
+ semantic state machine.
28
+ - Added a canonical installed Skill-local delegation runtime and one replaceable
29
+ `AgentExecutionDriver` boundary. The stable ACP v1 driver handles negotiation, fresh
30
+ absolute-cwd sessions, bounded/redacted updates, permission requests, cancellation,
31
+ timeouts, and terminal observation while preserving the existing immutable packet,
32
+ Git-diff, and exact result validator. `CliDriver` remains result-compatible fallback.
33
+ - Added per-Host ACP capability/conformance selection and Doctor reporting for runner
34
+ health, selected driver, fallback reason, and transport maturity. ACP can activate
35
+ only for an executable stdio v1 candidate with a passed Host-specific evidence row.
36
+ - Added a 3.x migration and fourteen-journey acceptance harness covering byte- and
37
+ mode-preserving install/update/Doctor/uninstall, fresh-session recovery, degraded
38
+ authority, early observable slices, delegation, cancellation, and truthful STOPs.
39
+
40
+ ### Changed
41
+
42
+ - Made `ultra-change` the daily entry for an existing-project request. `ultra-research`
43
+ now owns the first baseline or one bounded evidence question; Change owns the delta
44
+ and its Research Disposition; Plan owns the smallest dependency-correct graph and the
45
+ earliest owner-observable vertical slice.
46
+ - Made fresh-session recovery explicitly file-first: resolve the unique active Change,
47
+ task ledger and context, Acceptance, Resume Note, decisions, evidence, and Git without
48
+ replaying completed Research or treating conversation memory as authority.
49
+ - Moved the canonical delegation launcher and its complete runtime closure under the
50
+ installed `ultra-delegate` Skill. The package-level `ubp delegate` command is a thin
51
+ one-release compatibility wrapper rather than a day-to-day runtime dependency.
52
+ - Activated ACP-first delivery for all six shipped Host profiles only while each exact
53
+ executable, candidate identity, protocol version, and current conformance receipt
54
+ remain valid. Any unavailable or stale boundary still returns the typed,
55
+ result-compatible CLI fallback without an automatic provider retry.
56
+ - Connected ZCode Desktop through the independently built `zcode-acp` v0.1.0 bridge at
57
+ commit `42fe149d4b501469343c01f23ba3801832306d53` plus the shipped digest-bound ZCode
58
+ 0.16.5 runtime-preferences patch. The verified provider path is domestic 智谱
59
+ BigModel Coding Plan, not international Z.AI OAuth; transport maturity remains
60
+ `experimental` and requires explicit acknowledgment.
61
+ - Kept Status and degraded Review read-only. Ambiguous authority reports the earliest
62
+ unsafe fact and reachable repair, retry, cancel, or abandon path without selecting an
63
+ intent, activating stored grant text, or writing semantic content.
64
+
65
+ ### Compatibility and scope
66
+
67
+ - Preserved every seeded accepted 3.x project artifact byte and mode through the real
68
+ isolated install, update, Doctor, and uninstall lifecycle.
69
+ - Deliberately excluded a daemon, remote workflow service, semantic state machine, A2A
70
+ network, Team Pack, remote marketplace, shared authority store, automatic ACP-to-CLI
71
+ retry after a started run, and unverified Host capability promotion.
72
+ - This package has no service deployment target. npm publication and GitHub Release are
73
+ the only release surfaces; Team Pack, a daemon, remote workflow service, provider
74
+ purchase, credential export, force-push, and npm unpublish remain excluded.
75
+
76
+ ### Verified
77
+
78
+ - Completed one bounded real ACP v1 provider session for Claude Code, Codex, OpenCode,
79
+ Kimi Code, Grok Build, and ZCode. Every receipt binds the exact Host candidate, clean
80
+ isolated Git subject, terminal worker observation, and redacted result facts.
81
+ - Installed 5.0.0 into all six real user Host homes after a mode-0700 recovery backup.
82
+ Final Doctor reports six healthy adapters, installed Skill-local ACP selection, and
83
+ ownership-safe ZCode uninstall/reinstall without changing the domestic-provider config.
84
+ - Passed the same-commit GitHub Actions matrix on Ubuntu and macOS with 661 Node tests,
85
+ 89 Hook tests, and zero production dependency vulnerabilities, plus Windows 27/27
86
+ real ACP tests including cancel and timeout cleanup of an actual grandchild process.
87
+ - Reproduced Windows checkout EOL and worktree-alias failures before fixing them with
88
+ LF-bound bridge patches and filesystem device/file-ID comparison; both failed
89
+ predecessor runs remain retained in the release evidence.
90
+
10
91
  ## [3.0.2] — 2026-08-18
11
92
 
12
93
  ### Added
@@ -1446,7 +1527,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1446
1527
  skill manifest, CLI protocol + mapping table; 5 spec validators.
1447
1528
  - **Phase 0 — skeleton**: multi-runtime installer scaffolding.
1448
1529
 
1449
- [Unreleased]: https://github.com/rocky2431/ultra-builder-pro-cli/compare/v3.0.2...HEAD
1530
+ [Unreleased]: https://github.com/rocky2431/ultra-builder-pro-cli/compare/v5.0.0...HEAD
1531
+ [5.0.0]: https://github.com/rocky2431/ultra-builder-pro-cli/compare/v3.0.2...v5.0.0
1450
1532
  [3.0.2]: https://github.com/rocky2431/ultra-builder-pro-cli/compare/v0.26.2...v3.0.2
1451
1533
  [0.26.2]: https://github.com/rocky2431/ultra-builder-pro-cli/compare/v0.26.1...v0.26.2
1452
1534
  [0.26.1]: https://github.com/rocky2431/ultra-builder-pro-cli/compare/v0.26.0...v0.26.1
package/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # Ultra Builder Pro
2
2
 
3
+ **English** | [简体中文](README.zh-CN.md)
4
+
3
5
  Ultra Builder Pro is a file-first engineering workflow for Claude Code, Codex,
4
6
  OpenCode, Kimi Code, Grok Build, and ZCode. It implements the provider-neutral
5
7
  **Ultra Core Protocol**: owner–agent cognitive alignment, per-fact canonical
@@ -17,11 +19,13 @@ default is the current Agent continuing alone, and handing the work package's
17
19
  writing authority to a different Agent requires an explicit verified transfer
18
20
  (OFFER → ACK → RESULT over the repository files and Git).
19
21
 
20
- ## Ultra Builder Pro 3.0
22
+ ## Ultra Builder Pro 5.0
21
23
 
22
- Version `3.0.2` is the first published release of Ultra as a cognitive-alignment harness for
23
- real software engineering. It is not a decentralized multi-agent platform and it
24
- does not prescribe one Agent topology. Instead, it keeps five promises:
24
+ Version `5.0.1` is the current implementation of Ultra as a cognitive-alignment harness
25
+ for real software engineering. It preserves the accepted 3.0 file-first and model-agency
26
+ constitution, then makes workflow position, recovery, and cross-Agent execution directly
27
+ observable. It is not a decentralized multi-agent platform and it does not prescribe one
28
+ Agent topology. Instead, it keeps five promises:
25
29
 
26
30
  - establish the owner-accepted North Star before Research becomes a plan or code;
27
31
  - let the owner choose one Agent or several, and the provider, at every stage;
@@ -33,10 +37,21 @@ does not prescribe one Agent topology. Instead, it keeps five promises:
33
37
  - bound Review and repair so delivery converges instead of turning every observation
34
38
  into another automatic implementation loop.
35
39
 
36
- The portable protocol and native installation cover Claude Code, Codex, OpenCode,
37
- Kimi Code, Grok Build, and ZCode. ZCode plugin installation is supported; its
38
- App-bundled headless delegation transport remains explicitly `experimental` until an
39
- official stable interface and recovery drill satisfy the support bar.
40
+ 5.0 expresses those promises through one Route Contract, explicit Init/Research/Change/
41
+ Plan responsibilities, file-only fresh-session recovery, an installed Skill-local
42
+ delegation runtime, and a replaceable `AgentExecutionDriver`. Stable ACP v1 is preferred
43
+ only after the exact Host has passed a recorded conformance drill; otherwise the same
44
+ result contract uses a reported CLI fallback. The portable protocol and native
45
+ installation cover Claude Code, Codex, OpenCode, Kimi Code, Grok Build, and ZCode. All
46
+ six profiles expose stable ACP v1 candidates and have their own current real-provider
47
+ receipt. Each selects ACP only while its recorded executable and candidate identity
48
+ still match; otherwise it returns a typed CLI fallback. ZCode uses an independently
49
+ installed, source-pinned bridge and remains `experimental`.
50
+
51
+ 5.0 deliberately does not add a daemon, workflow service, semantic state machine, A2A
52
+ network, Team Pack, remote marketplace, or shared authority store. Package publication
53
+ and real user installation remain independently verifiable effects; a source version
54
+ alone never proves either one occurred.
40
55
 
41
56
  ## Why it exists
42
57
 
@@ -84,8 +99,13 @@ Git, and installation health without mutating the workflow.
84
99
  Public workflows are explicitly selected by the owner by default. Outside a live,
85
100
  owner-activated execution grant (session-local, or a durable work-package grant), one public workflow can recommend the
86
101
  next one but does not launch it. Inside that grant, the host model may select only
87
- the covered Research, Plan, Dev, Test, and reconcile-only Deliver routes; Init, Change,
88
- Delegate, Status, final archive, and every external effect remain owner-selected.
102
+ the covered change-scoped Research, same-Change reconciliation, Plan, Dev, Test, and
103
+ reconcile-only Deliver routes. Init, Change intake/evidence/acceptance/abandonment or
104
+ primary transfer, Delegate, Deliver finalization, archive, and every external effect
105
+ remain owner-selected; Status also remains owner-selected, read-only, and grants no continuation.
106
+ Every public transition first displays the derived `UBP Route Card`; Host invocation
107
+ metadata is only coarse discovery, and the loaded Skill revalidates its exact mode and
108
+ grant without creating route state.
89
109
  Model-invoked disciplines remain available to the host model and are not separate user
90
110
  routes. The model selects one when the active task presents its trigger: incomplete
91
111
  intent uses grilling, competing terms use domain modeling, an accepted seam uses TDD,
@@ -103,7 +123,7 @@ map, evidence convergence, owner checkpoints, and baseline promotion.
103
123
 
104
124
  ### What happened to the original Agents
105
125
 
106
- Version 3.0.2 does not install a custom `agents/` projection. The old review workers became the
126
+ Version 5.0.1 does not install a custom `agents/` projection. The old review workers became the
107
127
  six focused files under `ultra-review/references/`; review coordination and synthesis
108
128
  belong to the parent `ultra-review` Skill. The old debugger procedure lives under
109
129
  `ultra-dev/references/debugging.md`, and test execution lives under
@@ -184,19 +204,53 @@ Node.js 22 or newer is required.
184
204
 
185
205
  ```bash
186
206
  # Current project, one host
187
- npx ultra-builder-pro-cli@3.0.2 --claude --local
188
- npx ultra-builder-pro-cli@3.0.2 --codex --local
207
+ npx ultra-builder-pro-cli@5.0.1 --claude --local
208
+ npx ultra-builder-pro-cli@5.0.1 --codex --local
189
209
 
190
210
  # Global installation
191
- npx ultra-builder-pro-cli@3.0.2 --opencode --global
192
- npx ultra-builder-pro-cli@3.0.2 --kimi --global
193
- npx ultra-builder-pro-cli@3.0.2 --grok --global
194
- npx ultra-builder-pro-cli@3.0.2 --zcode --global
211
+ npx ultra-builder-pro-cli@5.0.1 --opencode --global
212
+ npx ultra-builder-pro-cli@5.0.1 --kimi --global
213
+ npx ultra-builder-pro-cli@5.0.1 --grok --global
214
+ npx ultra-builder-pro-cli@5.0.1 --zcode --global
195
215
 
196
216
  # All supported hosts
197
- npx ultra-builder-pro-cli@3.0.2 --all --global
217
+ npx ultra-builder-pro-cli@5.0.1 --all --global
198
218
  ```
199
219
 
220
+ ZCode ACP delegation additionally requires the independently built bridge and an
221
+ installed ZCode Desktop runtime. Ultra ships the small source patch needed by ZCode
222
+ CLI 0.16.5, but installs neither dependency and never records provider credentials:
223
+
224
+ ```bash
225
+ git clone https://github.com/jpalmae/zcode-acp
226
+ git -C zcode-acp checkout 42fe149d4b501469343c01f23ba3801832306d53
227
+ git -C zcode-acp apply \
228
+ /path/to/installed/ultra-delegate/patches/zcode-acp-0.1.0-zcode-0.16.5.patch
229
+ cargo test --locked --manifest-path zcode-acp/Cargo.toml
230
+ cargo install --locked --path zcode-acp
231
+ ```
232
+
233
+ The base commit, patch SHA-256
234
+ `174dfd0feafe84320556a84b5ae08b10e44c5515fea4992fd1d58af54cee4e3d`, locked tests,
235
+ fake E2E, release build, and real ZCode 0.16.5 session were verified for 5.0. Keep the
236
+ binary on `PATH`; its `--version` must report
237
+ `zcode-acp 0.1.0+ultra.zcode.0.16.5`. Use the platform's installed ZCode CLI path
238
+ outside macOS.
239
+
240
+ Provider identity is separate from the Host: ZCode Desktop is the runtime, while the
241
+ model account may be domestic 智谱 BigModel or international Z.AI. A domestic BigModel
242
+ Coding Plan config uses the official Anthropic-compatible endpoint
243
+ `https://open.bigmodel.cn/api/anthropic` and a BigModel API key in
244
+ `~/.zcode/cli/config.json`; it must not use the Z.AI OAuth login. The live 5.0 drill used
245
+ `builtin:bigmodel-coding-plan/GLM-5.2`. See the
246
+ [official BigModel Claude API compatibility guide](https://docs.bigmodel.cn/cn/guide/develop/claude/introduction).
247
+
248
+ These pinned `npx` commands resolve the immutable registry version after publication.
249
+ Source-tree verification uses `node bin/install.js --config-dir <isolated-path>` when
250
+ it must not mutate the real user installation; the separate 5.0 release drill also
251
+ verified an ownership-safe install, Doctor, ZCode uninstall, and reinstall in all six
252
+ real Host homes.
253
+
200
254
  Use the host's native Skill picker or invocation syntax to select an owner workflow.
201
255
  Codex exposes namespaced entries such as `$ultra-builder-pro:ultra-init`. The installed
202
256
  frontmatter and metadata keep user routes explicit and model disciplines implicit.
@@ -207,13 +261,13 @@ Installation is managed, atomic, and provenance-checked.
207
261
 
208
262
  ```bash
209
263
  # Re-running install updates the managed artifact
210
- npx ultra-builder-pro-cli@3.0.2 --codex --global
264
+ npx ultra-builder-pro-cli@5.0.1 --codex --global
211
265
 
212
266
  # Read-only diagnosis
213
- npx ultra-builder-pro-cli@3.0.2 --all --global --doctor --json
267
+ npx ultra-builder-pro-cli@5.0.1 --all --global --doctor --json
214
268
 
215
269
  # Remove only managed Ultra assets
216
- npx ultra-builder-pro-cli@3.0.2 --all --global --uninstall
270
+ npx ultra-builder-pro-cli@5.0.1 --all --global --uninstall
217
271
  ```
218
272
 
219
273
  `--config-dir <path>` isolates both the primary config and host-owned sidecars. It is
@@ -232,6 +286,12 @@ installation; all six support managed global installation and isolated
232
286
 
233
287
  ## Typical workflow
234
288
 
289
+ For day-to-day work on an existing project, a new request starts with `ultra-change`,
290
+ not an open-ended Research run. Enter `ultra-research` directly only to establish the
291
+ first baseline, or to answer the bounded evidence question recorded by the same active
292
+ Change. Every public transition shows a derived Route Card with its current Mode,
293
+ Position, observable Exit condition, material checkpoint, and Next route.
294
+
235
295
  1. Select `ultra-init` once. It writes the skeleton, preserves the owner's raw one-line
236
296
  request and broad outline in the Project Brief, initializes Git when needed, and
237
297
  stops before product research.
@@ -248,8 +308,9 @@ installation; all six support managed global installation and isolated
248
308
  A profile never fixes task count. While that Change remains active, reconcile its
249
309
  same stable id; never open a second active Change for a separate request.
250
310
  4. Select `ultra-plan` to record public seams and produce resumable tracer-bullet tasks.
251
- The model owns ordinary technical seams; the owner decides only a seam that changes
252
- the public contract or another material trade-off.
311
+ Its earliest observable slice must cross a real consumer and real data path and name
312
+ the owner-visible observation. The model owns ordinary technical seams; the owner
313
+ decides only a seam that changes the public contract or another material trade-off.
253
314
  5. Select `ultra-dev` for one task at a time. `.ultra/tasks.json` is the sole task-status
254
315
  authority. Dev records typed v2 evidence and completes task review while the row is
255
316
  still `in_progress`; only after blocking findings and affected evidence are resolved
@@ -268,18 +329,23 @@ mode. A `session-local` grant lives only in the current conversation: when that
268
329
  activation is lost — a fresh session, another host, or compaction — the work stops and
269
330
  waits for a new owner activation. A `durable work-package` grant lets a fresh Agent or
270
331
  host continue one exact work package, but only after the Agent stably verifies the
271
- recorded grant itself. In both modes the model may select the covered Research, Plan,
272
- Dev, Test, and reconcile-only Deliver routes until the next semantic stop or declared
273
- budget, and neither mode grants finalization or archive: writing `delivery.md`, version
332
+ recorded grant itself. In both modes the model may select the covered change-scoped
333
+ Research, same-Change reconciliation, Plan, Dev, Test, and reconcile-only Deliver
334
+ routes until the next semantic stop or declared budget, and neither mode grants
335
+ finalization or archive: writing `delivery.md`, version
274
336
  or package posture, and archiving always require a current explicit owner invocation,
275
337
  as do commit, push, publication, deployment, installation, and every other external
276
338
  effect.
277
339
 
278
- At any point, `ultra-status` can reconstruct the current position. A fresh session or
279
- different host resumes by reading `.ultra/tasks.json`, the selected `context_file`, its
280
- `## Resume Note`, `CONTEXT.md`, relevant decisions, the active Change, and Git. It first
281
- filters the append-only ledger to tasks whose `change_id` matches the unique active
282
- Change; archived and abandoned unfinished rows are history, not the frontier.
340
+ At any point, `ultra-status` can reconstruct the current position. A fresh session
341
+ starts from repository root and `HEAD`, resolves exactly one active Change, then reads
342
+ `.ultra/tasks.json`, the matching `context_file` and its `## Resume Note`, `CONTEXT.md`,
343
+ relevant decisions, specifications, evidence, and the current Git diff. It never reruns
344
+ completed Research merely because conversation memory is gone. If active authority is
345
+ ambiguous or unreadable, Status switches to read-only recovery, names the unsafe fact,
346
+ and gives the cheapest repair, retry, cancel, abandon, or fresh-session path without
347
+ choosing an intent or writing semantic files. Archived and abandoned unfinished rows
348
+ remain history, not the frontier.
283
349
 
284
350
  ## Three independent integration defences
285
351
 
@@ -311,8 +377,17 @@ All five hooks exit silently when `.ultra/` is absent. Details are in
311
377
 
312
378
  ## Delegation
313
379
 
314
- Delegation writes an immutable instruction and permission envelope, then starts the
315
- selected CLI in the background. Empty writable roots select native read-only mode;
380
+ Delegation writes an immutable instruction and permission envelope, then selects one
381
+ Host-local `AgentExecutionDriver` and starts it in the background. ACP is selected only
382
+ for an executable stdio endpoint that negotiates stable v1 and has a passed per-Host
383
+ conformance record with evidence; otherwise the same result contract uses `CliDriver`
384
+ and reports the exact fallback reason. All six current Host rows have their own passing
385
+ real-provider receipt; a missing executable, candidate-identity mismatch, or
386
+ stale/missing receipt still returns the typed CLI fallback. An ACP authentication error
387
+ detected before `session/prompt` runs the bounded CLI path once and records
388
+ `acp_auth_required`; no other ACP failure is retried, so Ultra cannot duplicate a
389
+ provider task. Empty
390
+ writable roots select native read-only mode;
316
391
  declared roots select bounded write mode. The model returns one schema-constrained final
317
392
  response; the launcher extracts it from native structured output, validates the actual
318
393
  Git diff, and atomically publishes a terminal `finished`, `blocked`, or `failed` result
@@ -320,20 +395,29 @@ beside the instruction. The digest-bound packet is embedded in the worker prompt
320
395
  strict host need not read instruction files outside its isolated worktree.
321
396
 
322
397
  ```bash
323
- ubp delegate run --to codex \
398
+ node <loaded-ultra-delegate-skill-dir>/scripts/delegate.cjs run --to codex \
324
399
  --instruction .ultra/.runtime/delegations/D-01/instruction.md \
325
400
  --permission .ultra/.runtime/delegations/D-01/permission.json \
326
401
  --worktree .ultra/.runtime/worktrees/D-01
327
402
  ```
328
403
 
329
- Use `skills/ultra-delegate/scripts/delegate_wait.py` to wait for `result.json` without
330
- loading intermediate worker output into the parent context. Delegation grants no new
404
+ The loaded Skill path is canonical and works after a clean `npx` plugin install without
405
+ a global `ubp` or another `npx` lookup for Ultra; the pinned Claude/Codex ACP adapters
406
+ may themselves run through `npx`. `ubp delegate` remains a one-release compatibility
407
+ wrapper. Use the installed Skill's `scripts/delegate_wait.py` to wait for `result.json`
408
+ without loading intermediate worker output into the parent context. Delegation grants no new
331
409
  authority; writable roots remain inside the worktree, and its permission file must
332
410
  declare zero external effects without widening the host sandbox.
333
411
  The immutable instruction names task execution/continuation, scoped Research evidence,
334
412
  or aggregate Change review/verification. The latter two may be read-only and do not
335
413
  require a task row, keeping pre-Plan Research and post-task cross-family review
336
414
  reachable without inventing ledger work.
415
+ ZCode resolves only the installed Desktop runtime through the independently installed
416
+ `zcode-acp` bridge and remains `experimental`. Its capability, read-only,
417
+ permission, cancellation/no-orphan, cwd/diff, result-parity, and redaction drills pass;
418
+ promotion still requires an official stability contract for the App-internal runtime.
419
+ Doctor reports runner health, ACP capability, candidate identity, selected driver,
420
+ fallback reason, and ZCode maturity independently.
337
421
 
338
422
  ## Host support
339
423
 
@@ -372,6 +456,12 @@ conformance rather than semantic acceptance.
372
456
 
373
457
  ## Documentation
374
458
 
459
+ - [5.0 design and acceptance contract](docs/ULTRA-BUILDER-PRO-5.0.zh-CN.md) —
460
+ Route, Skill ownership, continuation, ACP/CLI execution, migration, and journey
461
+ boundaries implemented by 5.0.1.
462
+ - [5.0 journey results](docs/evals/ultra-5-0-journey-results.md) — observable source,
463
+ isolated-runtime, real-provider, real-HOME, and cross-platform outcomes plus the
464
+ deliberately excluded service-deployment boundary.
375
465
  - [Current authority](.ultra/north-star.md) — this repository's accepted
376
466
  North Star, revision `north-star-v2-r3`, is the canonical current authority;
377
467
  `.ultra/tasks.json` and the stable Change under `.ultra/changes/active/` or