ultra-builder-pro-cli 5.0.1 → 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.
Files changed (159) hide show
  1. package/CHANGELOG.md +103 -3
  2. package/README.md +67 -478
  3. package/README.zh-CN.md +49 -422
  4. package/adapters/_shared/frontmatter.cjs +1 -18
  5. package/adapters/_shared/plugin-core.cjs +17 -83
  6. package/adapters/_shared/runtime-assets.cjs +6 -120
  7. package/adapters/claude.js +8 -24
  8. package/adapters/codex.js +13 -32
  9. package/bin/install.js +35 -57
  10. package/docs/PLUGIN-ISOLATION-CONTRACT.md +13 -101
  11. package/docs/examples/drive/claude-reviewer.sh +53 -0
  12. package/docs/examples/drive/claude-writer.sh +43 -0
  13. package/engine/FORMATS.md +1051 -0
  14. package/engine/checks.cjs +139 -0
  15. package/engine/cli.cjs +148 -0
  16. package/engine/completion.cjs +48 -0
  17. package/engine/context.cjs +94 -0
  18. package/engine/drive.cjs +220 -0
  19. package/engine/expect-worker.cjs +5 -0
  20. package/engine/expect.cjs +33 -0
  21. package/engine/formats.cjs +189 -0
  22. package/engine/git-state.cjs +112 -0
  23. package/engine/ledger.cjs +205 -0
  24. package/engine/loading.cjs +28 -0
  25. package/engine/merge.cjs +273 -0
  26. package/engine/milestone.cjs +89 -0
  27. package/engine/plan.cjs +232 -0
  28. package/engine/project.cjs +5 -0
  29. package/engine/signals.cjs +3 -0
  30. package/engine/states.cjs +175 -0
  31. package/hooks/session-start.cjs +54 -0
  32. package/package.json +17 -52
  33. package/skills/ultra/SKILL.md +395 -0
  34. package/.ultra-template/changes/abandoned/.gitkeep +0 -0
  35. package/.ultra-template/changes/active/.gitkeep +0 -1
  36. package/.ultra-template/changes/archive/.gitkeep +0 -1
  37. package/.ultra-template/contexts/TEMPLATE.md +0 -135
  38. package/.ultra-template/decisions/.gitkeep +0 -1
  39. package/.ultra-template/evidence/.gitkeep +0 -1
  40. package/.ultra-template/north-star.md +0 -52
  41. package/.ultra-template/project-brief.md +0 -28
  42. package/.ultra-template/research/.gitkeep +0 -1
  43. package/.ultra-template/specs/architecture.md +0 -81
  44. package/.ultra-template/specs/discovery.md +0 -74
  45. package/.ultra-template/specs/product.md +0 -80
  46. package/.ultra-template/specs/research-distillate.md +0 -57
  47. package/.ultra-template/tasks.json +0 -4
  48. package/.ultra-template/test-report.json +0 -44
  49. package/adapters/_shared/host-profile.cjs +0 -5
  50. package/adapters/grok.js +0 -242
  51. package/adapters/kimi.js +0 -232
  52. package/adapters/opencode.js +0 -408
  53. package/adapters/zcode.js +0 -375
  54. package/bin/delegate-worker.cjs +0 -5
  55. package/bin/delegate.cjs +0 -5
  56. package/docs/ARCHITECTURE.md +0 -274
  57. package/docs/ARTIFACT-AUTHORITY.md +0 -305
  58. package/docs/DECISIONS.md +0 -229
  59. package/docs/PHILOSOPHY.md +0 -261
  60. package/docs/RUNTIME-COMPAT-MATRIX.md +0 -316
  61. package/docs/SKILL-AUTHORING.md +0 -113
  62. package/docs/WORKFLOW-LIFECYCLE.md +0 -350
  63. package/docs/evals/adversarial-review-2026-08-14.md +0 -84
  64. package/docs/evals/ultra-5-0-journey-results.md +0 -62
  65. package/docs/evals/ultra-5-0-live-acp-conformance.md +0 -93
  66. package/docs/evals/ultra-5-0-route-journeys.md +0 -145
  67. package/docs/evals/zcode-automation-2026-08-14.md +0 -103
  68. package/hooks/README.md +0 -52
  69. package/hooks/_common.py +0 -1779
  70. package/hooks/adapters/codex.py +0 -295
  71. package/hooks/adapters/grok.py +0 -134
  72. package/hooks/adapters/kimi.py +0 -156
  73. package/hooks/adapters/zcode.py +0 -227
  74. package/hooks/block_dangerous_commands.py +0 -201
  75. package/hooks/compact_context.py +0 -224
  76. package/hooks/mid_workflow_recall.py +0 -47
  77. package/hooks/post_edit_guard.py +0 -215
  78. package/hooks/session_context.py +0 -741
  79. package/skills/ultra-change/SKILL.md +0 -165
  80. package/skills/ultra-change/references/change-contract.md +0 -199
  81. package/skills/ultra-change/references/execution-grant.md +0 -109
  82. package/skills/ultra-change/references/primary-transfer.md +0 -273
  83. package/skills/ultra-change/scripts/validate_primary_transfer.cjs +0 -1928
  84. package/skills/ultra-delegate/SKILL.md +0 -195
  85. package/skills/ultra-delegate/patches/zcode-acp-0.1.0-zcode-0.16.5.patch +0 -184
  86. package/skills/ultra-delegate/references/delegation-contract.md +0 -138
  87. package/skills/ultra-delegate/scripts/acp-conformance.cjs +0 -287
  88. package/skills/ultra-delegate/scripts/acp-driver.cjs +0 -762
  89. package/skills/ultra-delegate/scripts/agent-execution-driver.cjs +0 -320
  90. package/skills/ultra-delegate/scripts/cli-driver.cjs +0 -61
  91. package/skills/ultra-delegate/scripts/delegate-profiles/kimi-read-only.md +0 -15
  92. package/skills/ultra-delegate/scripts/delegate-profiles/kimi-write.md +0 -17
  93. package/skills/ultra-delegate/scripts/delegate-worker.cjs +0 -328
  94. package/skills/ultra-delegate/scripts/delegate.cjs +0 -690
  95. package/skills/ultra-delegate/scripts/delegate_wait.py +0 -86
  96. package/skills/ultra-delegate/scripts/host-profile.cjs +0 -267
  97. package/skills/ultra-deliver/SKILL.md +0 -194
  98. package/skills/ultra-deliver/references/baseline-reconciliation.md +0 -41
  99. package/skills/ultra-dev/SKILL.md +0 -265
  100. package/skills/ultra-dev/references/debugging.md +0 -22
  101. package/skills/ultra-domain-modeling/SKILL.md +0 -79
  102. package/skills/ultra-grilling/SKILL.md +0 -121
  103. package/skills/ultra-grilling/references/reframing.md +0 -76
  104. package/skills/ultra-init/SKILL.md +0 -143
  105. package/skills/ultra-init/references/brownfield-adoption.md +0 -32
  106. package/skills/ultra-init/scripts/init_project.cjs +0 -1031
  107. package/skills/ultra-plan/SKILL.md +0 -160
  108. package/skills/ultra-plan/references/task-evidence-v2.md +0 -300
  109. package/skills/ultra-plan/scripts/validate_task_evidence.cjs +0 -859
  110. package/skills/ultra-research/SKILL.md +0 -167
  111. package/skills/ultra-research/references/00-problem-validation.md +0 -36
  112. package/skills/ultra-research/references/01-opportunity-discovery.md +0 -33
  113. package/skills/ultra-research/references/02-market-assessment.md +0 -31
  114. package/skills/ultra-research/references/03-alternatives.md +0 -31
  115. package/skills/ultra-research/references/04-product-strategy.md +0 -41
  116. package/skills/ultra-research/references/05-assumptions-validation.md +0 -31
  117. package/skills/ultra-research/references/10-user-personas.md +0 -30
  118. package/skills/ultra-research/references/11-user-scenarios.md +0 -28
  119. package/skills/ultra-research/references/20-user-stories.md +0 -31
  120. package/skills/ultra-research/references/21-features-scope.md +0 -38
  121. package/skills/ultra-research/references/22-success-metrics.md +0 -33
  122. package/skills/ultra-research/references/30-architecture-context.md +0 -30
  123. package/skills/ultra-research/references/31-solution-strategy.md +0 -28
  124. package/skills/ultra-research/references/32-building-blocks.md +0 -28
  125. package/skills/ultra-research/references/40-deployment.md +0 -29
  126. package/skills/ultra-research/references/41-quality-risks.md +0 -28
  127. package/skills/ultra-research/references/99-synthesis.md +0 -59
  128. package/skills/ultra-research/references/north-star-v2.md +0 -168
  129. package/skills/ultra-research/references/wayfinding.md +0 -50
  130. package/skills/ultra-research/scripts/validate_north_star.cjs +0 -1174
  131. package/skills/ultra-review/SKILL.md +0 -275
  132. package/skills/ultra-review/references/adversarial-evaluation.md +0 -31
  133. package/skills/ultra-review/references/code.md +0 -17
  134. package/skills/ultra-review/references/comments.md +0 -12
  135. package/skills/ultra-review/references/design.md +0 -12
  136. package/skills/ultra-review/references/errors.md +0 -13
  137. package/skills/ultra-review/references/review-modes.md +0 -29
  138. package/skills/ultra-review/references/spec.md +0 -18
  139. package/skills/ultra-review/references/tests.md +0 -12
  140. package/skills/ultra-review/references/unified-schema.md +0 -284
  141. package/skills/ultra-review/references/worker-packet.md +0 -183
  142. package/skills/ultra-review/scripts/review_wait.py +0 -2943
  143. package/skills/ultra-status/SKILL.md +0 -209
  144. package/skills/ultra-status/references/route-contract.md +0 -100
  145. package/skills/ultra-tdd/SKILL.md +0 -91
  146. package/skills/ultra-tdd/references/templates/README.md +0 -20
  147. package/skills/ultra-tdd/references/templates/feature-flag-default-audit.sh +0 -79
  148. package/skills/ultra-tdd/references/templates/persistence-real.ts +0 -78
  149. package/skills/ultra-tdd/references/templates/testcontainer-postgres.py +0 -78
  150. package/skills/ultra-tdd/references/templates/testcontainer-postgres.ts +0 -73
  151. package/skills/ultra-tdd/references/templates/vertical-slice.ts +0 -66
  152. package/skills/ultra-tdd/references/test-execution.md +0 -23
  153. package/skills/ultra-test/SKILL.md +0 -244
  154. package/skills/ultra-test/references/export-syntax.md +0 -18
  155. package/skills/ultra-test/scripts/validate_review_transport.cjs +0 -549
  156. package/skills/ultra-test/scripts/worktree_digest.cjs +0 -576
  157. package/skills/ultra-think/SKILL.md +0 -56
  158. package/skills/ultra-think/references/autonomy-boundary.md +0 -48
  159. package/skills/ultra-think/references/interaction-boundary.md +0 -42
@@ -1,93 +0,0 @@
1
- # Ultra Builder Pro 5.0 live ACP conformance — 2026-08-26
2
-
3
- ## 结论
4
-
5
- 本报告把每个 Host 的 ACP 激活结论绑定到自己的真实 provider receipt;一个 Host 的
6
- 结果不能提升另一个 Host。Claude Code、Codex、OpenCode、Kimi Code、Grok Build 与
7
- ZCode 当前全部为 `PASS`,六个 profile 都可以在对应 executable 存在时选择 ACP。
8
-
9
- `PASS` 的共同条件是:stable ACP v1、真实 provider、精确
10
- `ultra-delegation-result-v1`、只读 isolated worktree、Git unchanged,以及 worker
11
- 进入 terminal state。`end_turn` 本身不是完成证据;它必须和 exact result/diff
12
- validator 一起成立。
13
-
14
- ## 方法
15
-
16
- 命令:
17
-
18
- ```bash
19
- node skills/ultra-delegate/scripts/acp-conformance.cjs \
20
- --host <host> \
21
- --output .ultra/evidence/v50-live-acp-activation/host-<host>.json \
22
- --timeout 240
23
- ```
24
-
25
- Harness 经过真实 `delegate.cjs`、background worker、`AcpDriver`、exact result
26
- validator 和 Git-diff validator。Receipt 只保存候选命令、协议/result 状态、事件数量、
27
- 子进程终态及临时 artifact digest;不保存 prompt、provider text、hidden reasoning、
28
- credential value 或 raw JSON-RPC。临时工作树和 raw artifacts 在计算 digest 后删除。
29
-
30
- ## Host register
31
-
32
- | Host | Candidate | Result | Receipt SHA-256 | Observation |
33
- |---|---|---|---|---|
34
- | Claude Code | `npx --yes @agentclientprotocol/claude-agent-acp@0.70.0` | PASS | `9b1d88cbd5e5b66a56e0cf19f34e7f2107f9e4b8fde9d80b9eadcdfc8f4a25e3` | ACP v1, `end_turn`, exact result, clean Git, worker exited |
35
- | Codex | `npx --yes @agentclientprotocol/codex-acp@1.6.2` | PASS | `e82287609397807fb6968dff104d7f6569499b53c77be6a186aa33939a4c629e` | ACP v1, `end_turn`, exact result, clean Git; adapter was terminated after the logical turn |
36
- | OpenCode | `opencode acp` | PASS | `3575b148f6feb8c9f1472add705390e6d47b87be080403ec7006b66a29f7873b` | ACP v1, `end_turn`, exact result, clean Git, worker exited |
37
- | Grok Build | `grok agent stdio` | PASS | `370eeae12d63443188d519825ed8040fd8bba9b27fddb82e499d9cb590f4a33d` | ACP v1, exact result, clean Git; creation-time metadata was bounded and identity-checked before use |
38
- | Kimi Code | `kimi acp` | PASS | `30d8adec2877f80fadf0b20c3cb7fa6b732dea3598d7484c143f9835770301fe` | ACP v1, `end_turn`, exact result, clean Git, worker exited |
39
- | ZCode | `zcode-acp --zcode-path <installed-runtime> --no-browser` | PASS | `156080f88ed84a013fb26d93e5138230732d2ef0e2b5b10a7c3deb501d3548e9` | domestic BigModel provider, ACP v1, `end_turn`, exact result, clean Git, worker exited |
40
-
41
- ## Claude Code
42
-
43
- The pinned official adapter completed the real read-only drill. Its profile may select
44
- ACP when `npx` is executable; `ULTRA_DELEGATE_FORCE_CLI=1` remains recovery.
45
-
46
- ## Codex
47
-
48
- The pinned official adapter completed the real read-only drill. A nonzero adapter exit
49
- caused by client-owned stdin shutdown remains recorded separately and does not overturn
50
- an already validated protocol terminal and exact result.
51
-
52
- ## OpenCode
53
-
54
- The native stdio server completed the real read-only drill through `opencode acp`.
55
-
56
- ## Grok Build
57
-
58
- Grok emits bounded creation-time metadata before returning `session/new`. Ultra accepts
59
- only four metadata update kinds at that point, caps the transient buffer at 32 messages
60
- and 256 KiB, and validates each buffered session ID after the response. Early content,
61
- tool traffic, mismatched identity, or overflow remains a typed failure.
62
-
63
- ## Kimi Code
64
-
65
- Kimi 1.49.0 completed an owner-authenticated, read-only ACP provider session and returned
66
- the exact Ultra result. Its profile may select native `kimi acp` when executable.
67
-
68
- ## ZCode
69
-
70
- Ultra resolves independently installed `zcode-acp` v0.1.0 source commit
71
- `42fe149d4b501469343c01f23ba3801832306d53`, the digest-bound Ultra compatibility patch
72
- `174dfd0feafe84320556a84b5ae08b10e44c5515fea4992fd1d58af54cee4e3d`, and installed
73
- ZCode CLI 0.16.5. The patch answers the new `session/requestRuntimePreferences` request
74
- that otherwise deadlocks upstream v0.1.0 during `session/create`. Locked Rust tests,
75
- the 0.16.5 regression, patched fake app-server E2E, release build, installed binary
76
- digest, exact bridge build marker, and the real provider session all pass.
77
-
78
- Authentication uses the Owner's existing domestic BigModel Coding Plan provider at
79
- `https://open.bigmodel.cn/api/anthropic` with model `GLM-5.2`; it does not use the
80
- international Z.AI OAuth flow. Credential values are absent from this report and its
81
- receipt. The transport remains `experimental` because the downstream ZCode app-server
82
- is not a public stability contract.
83
-
84
- ## Recovery
85
-
86
- - Missing adapter, bridge, candidate identity, protocol version, or evidence returns a
87
- typed CLI fallback reason before provider execution. If `session/new` reports
88
- `acp_auth_required` before a prompt is sent, Ultra invokes the bounded CLI fallback
89
- once; it never retries any other ACP failure.
90
- - `ULTRA_DELEGATE_FORCE_CLI=1` selects the bounded CLI path explicitly.
91
- - A failed or stale Host receipt is replaced only by a fresh bounded drill for that Host.
92
- - Raw receipt bytes remain repository evidence under `.ultra/evidence/`; this packaged
93
- report carries their SHA-256 bindings without packaging private provider output.
@@ -1,145 +0,0 @@
1
- # Ultra 5.0 Route Contract journey 评测 — 2026-08-25
2
-
3
- ## 结论
4
-
5
- 本轮以当前 Skill source 和 adapter policy 做静态 journey inspection。九个 public/router
6
- Skill 已共享一个 Route Contract;Greenfield、existing project、owner revision、early
7
- value、fresh session、degraded diagnosis 和 grant continuation 都有可达入口、可观察
8
- exit、material checkpoint 与 next/repair path。
9
-
10
- 这不是 Host/provider 实跑。它验证的是模型拿到 Skill 后是否拥有一致的导航合同,不证明
11
- 任何特定模型一定会生成高质量 Route Card,也不证明后续 ACP transport 已完成。live
12
- cross-host journey 留在 `v50-migration-journeys`。
13
-
14
- ## 判定方法
15
-
16
- 每个场景检查五个问题:
17
-
18
- 1. 入口文件能否唯一判断 Route 与 Mode;
19
- 2. Owner 能否看到 Why、Outcome、Accepted boundary、Position、Exit condition、Reality、
20
- Decision needed、Next 与 Not done;
21
- 3. 停止是否由 material checkpoint 或可观察 evidence 触发,而非计数器;
22
- 4. 没有授权时是否推荐下一 route,有有效 Execution Grant 时是否只继续 covered mode;
23
- 5. authority 损坏时是否仍有 read-only diagnosis 和最便宜恢复路径。
24
-
25
- `PASS` 表示当前 source 明确提供上述行为;它不是对业务语义或 live model output 的自动
26
- 判定。
27
-
28
- ## J1 — Greenfield baseline
29
-
30
- - 起点:无 `.ultra/`,Owner 给出一个原始产品想法。
31
- - 预期路线:`ultra-init/create` → 推荐 `ultra-research/baseline` → 推荐
32
- `ultra-change/intake`。
33
- - 可观察 exit:Init read-back skeleton 与 raw Project Brief;Research read-back selected
34
- reports、accepted North Star、specifications、vocabulary 与 synthesis。
35
- - material checkpoint:Owner 确认 raw outline;Research 的方向、scope、synthesis 和
36
- North Star acceptance。
37
- - 禁止行为:Init 写 North Star;Research 没有 selected coverage/stop condition;任一
38
- Skill 自动打开 Change。
39
- - source evidence:`skills/ultra-init/SKILL.md`、`skills/ultra-research/SKILL.md`。
40
- - 结果:`PASS (source inspection)`。
41
-
42
- ## J2 — Existing project bounded evidence
43
-
44
- - 起点:已有 accepted baseline,无 active Change,Owner 提一个新 feature/fix。
45
- - 预期路线:`ultra-change/intake` → `evidence-needed` →
46
- `ultra-research/change-scoped` → 同一 `change_id` 的 `ultra-change/reconcile` →
47
- `accepted` → `ultra-plan/decompose`。
48
- - 可观察 exit:Change 先固定 bounded question 与 named exit evidence;Research 只完成该
49
- question;Change 再决定 evidence 是否改变 intent;Plan 只消费 accepted Change。
50
- - 禁止行为:原始需求先自动进入 Research;Research 打开第二个 Change;Plan 直接打开
51
- Research 或自己改变 product contract。
52
- - source evidence:`skills/ultra-change/SKILL.md`、`skills/ultra-research/SKILL.md`、
53
- `skills/ultra-plan/SKILL.md`。
54
- - 结果:`PASS (source inspection)`。
55
-
56
- ## J3 — Owner revision、拒绝选项与 history
57
-
58
- - 起点:Owner 修改尚未接受的 Change,或推翻一个已接受的 consequential decision。
59
- - 预期路线:draft 在同一 `intent.md` 内修订;accepted decision 以新的
60
- `.ultra/decisions/<id>.md` 和 `supersedes` 保留历史;`ultra-status/history` 可按需解释
61
- 当前答案、被拒绝选项与旧边界。
62
- - Decision needed:只保留一个会实质改变 outcome/boundary 的问题;Owner 拒绝当前选项
63
- 时,Change 保持 draft/evidence-needed 并补证据或新选项,不假装 accepted,不进入 Plan。
64
- - 禁止行为:覆盖旧 accepted decision、用 event log 代替 authority、因 Owner 没选现有
65
- 选项就制造默认答案。
66
- - source evidence:`skills/ultra-change/SKILL.md`、`skills/ultra-status/SKILL.md`、
67
- `docs/ARTIFACT-AUTHORITY.md#decisions-and-reductions`。
68
- - 结果:`PASS (source inspection)`。
69
-
70
- ## J4 — Earliest observable value
71
-
72
- - 起点:accepted/evidenced Change 已进入 Plan。
73
- - 预期路线:`ultra-plan/decompose` 明确第一个 executable slice 的 real consumer、real
74
- data path 与 owner-visible observation,再把 exact task 交给 `ultra-dev/execute`。
75
- - 产品或 contract evidence gap:返回 `ultra-change/reconcile`,由 Change 决定是否记录
76
- bounded Research Disposition。
77
- - ordinary technical uncertainty:模型解决,或用 bounded spike/tracer task;不重新打开
78
- product Research。
79
- - 禁止行为:先完成整层基础设施、用 task count 代表价值、Plan 直接启动 Research。
80
- - source evidence:`skills/ultra-plan/SKILL.md`。
81
- - 结果:`PASS (source inspection)`。
82
-
83
- ## J5 — Fresh-session recovery
84
-
85
- - 起点:对话上下文丢失,但 repository 与 Git 仍在。
86
- - 预期路线:先读 root/HEAD,再唯一解析 active `change_id`,读取 matching task ledger、
87
- context 与 closing Resume Note,然后核对 Brief、North Star、decisions、specs、evidence
88
- 和 worktree,重新推导 Route Card。
89
- - 可观察 exit:Owner 能看到当前 boundary、真实 diff/evidence、下一 exact task 或 repair;
90
- 已完成 Research 不被重跑。
91
- - context pressure:在最近 safe write 更新 Resume Note,显示 stop card,并建议 fresh
92
- session;token/file count 不成为 semantic gate。
93
- - source evidence:`skills/ultra-status/references/route-contract.md`、
94
- `skills/ultra-status/SKILL.md`、`skills/ultra-dev/SKILL.md`。
95
- - 结果:`PASS (source inspection)`。
96
-
97
- ## J6 — Degraded authority diagnosis
98
-
99
- - 起点:两个 active Change、malformed intent、stale trace 或暂时不可读 authority。
100
- - 预期路线:`ultra-status/recovery` 停止从 ambiguous Change 做 semantic routing/write,
101
- 但仍用 typed diagnostic、安全的 Git/directory observations 和未冲突的 canonical files
102
- 显示原因与 repair/retry/cancel/abandon 路径。
103
- - 禁止行为:选第一个目录、把“不能写”表达为永久 in-progress、因为 authority 损坏而
104
- 关闭 Status/Review 的只读诊断。
105
- - source evidence:`skills/ultra-status/SKILL.md`、
106
- `skills/ultra-status/references/route-contract.md`。
107
- - 结果:`PASS (source inspection)`。
108
-
109
- ## J7 — Grant-aware continuation
110
-
111
- - 起点:同一 accepted Change 有当前有效 Execution Grant,覆盖 Plan、一个 exact Dev task、
112
- Test 与 Deliver-reconcile 的 local reversible effects。
113
- - 预期路线:每次 public transition 先显示 Route Card;Skill 重新核对 Mode、`change_id`、
114
- effects、budget 与 stop conditions,再继续 covered mode。
115
- - 必停点:Change acceptance/reduction、primary transfer、unresolved P0/P1、Deliver
116
- finalization/archive,以及任何 commit/push/publish/deploy/provider spend。
117
- - 无 grant:同一路径在当前 Skill exit 停止,并把 `Next` 表达为 recommendation。
118
- - 禁止行为:Host implicit bit 授权 Change intake/acceptance 或 Deliver finalization;grant
119
- 自动扩展 scope;Route Card 自己成为 permission。
120
- - source evidence:`adapters/_shared/runtime-assets.cjs`、九个 public/router Skills、
121
- `skills/ultra-status/references/route-contract.md`。
122
- - 结果:`PASS (source inspection)`。
123
-
124
- ## J8 — Delegation event versus semantic route
125
-
126
- - 起点:Owner 显式授权一个 bounded task/research/aggregate worker slice。
127
- - 预期路线:`ultra-delegate` launch 前显示 primary Route Card;运行时 permission、tool、
128
- plan、usage、process 或 ACP update 只进入 Position/Delta/Reality;terminal result 经验证
129
- 后回到原 primary Skill,由 primary writer 解释和集成。
130
- - 禁止行为:worker event 写 canonical `.ultra`、terminal `finished` 自动完成 task、
131
- delegation 升级为 primary transfer。
132
- - source evidence:`skills/ultra-delegate/SKILL.md`、Route Contract。
133
- - 结果:`PASS (source inspection; ACP driver not implemented in this task)`。
134
-
135
- ## Route Contract 冻结时本轮未证明
136
-
137
- - 尚未在六个真实 Host 上比较同一 fixture 的 Route Card 质量。
138
- - 本次 Route Contract inspection 没有证明 ACP v1 driver、CLI fallback、Skill-local
139
- runner 或 ZCode bridge;这些能力必须由各自后续任务提供独立 evidence。
140
- - 尚未执行 3.x byte-preservation migration journey。
141
- - 尚未完成 5.0 package/release verification。
142
-
143
- 这些缺口分别路由到 `v50-acp-execution-drivers`、`v50-skill-local-delegation`、
144
- `v50-migration-journeys` 与 `v50-release-candidate`,不会被本次 source inspection
145
- 冒充为通过。
@@ -1,103 +0,0 @@
1
- # ZCode 自动编码与双向委派实测 — 2026-08-14
2
-
3
- ## 结论
4
-
5
- 当前实现已经证明两条不同的 live path:ZCode 可以作为第六个目标 Host 被 Ultra
6
- 委派,也可以作为发起 Host 调用另一个 CLI;在 owner 明确激活的 Change-scoped
7
- Autonomy Envelope 内,它还可以在同一会话连续完成 Plan、Dev/TDD 和 Test,而不需要
8
- daemon、数据库、MCP 或语义状态机。
9
-
10
- 这不是无限授权。实测 envelope 只覆盖一个任务、零次委派、零 external effects,并在
11
- through-test stop condition 后停止;Deliver finalization、archive、commit、push、publish
12
- 和 deploy 都没有获得授权,也没有发生。
13
-
14
- ## ZCode 原生插件
15
-
16
- - ZCode CLI: `0.16.3`
17
- - Managed plugin: `ultra-builder-pro@inline`
18
- - Native inventory: 14 Skills、5 Hooks、0 Commands、0 MCP
19
- - Activation: managed local marketplace 加 owner-configured `plugins.dirs` entry
20
- - Hook bridge: `hooks/adapters/zcode.py`
21
-
22
- 安装后 `zcode plugins list` 报告插件 enabled,并能枚举全部十四个 qualified Skills。
23
- 一次真实 no-op Bash tool call 在修复 hook transport 后以 exit 0 完成;无动作 adapter
24
- 现在不再把 `{}` 发送给 ZCode 的 strict hook parser,而是保持 stdout 为空。
25
-
26
- ## 同会话自动编码
27
-
28
- - Fixture: `/tmp/ubp-zcode-autonomy-20260814`
29
- - Seed HEAD: `7292d7654d228ac3dc7f9b07b2e28d226c6f6104`
30
- - Change: `C-AUTO`
31
- - Task: `T-AUTO-1`
32
- - ZCode session: `sess_49caffcb-1d8e-44be-825d-ec607d21b1e3`
33
- - Envelope: through-test、max tasks 1、max repairs 2、review budgets 1 each、delegations 0
34
-
35
- ZCode 读取 accepted intent 和 exact North Star revision 后完成:
36
-
37
- 1. 写入一个 tracer-bullet task,并生成 Plan review;
38
- 2. 通过 public seam 写出可发现的 failing test,再做最小实现修复;
39
- 3. 生成 task review 和六维 evidence;
40
- 4. 运行 whole-change Test、真实 consumer E2E 和 aggregate review;
41
- 5. 写入 fresh `.ultra/test-report.json`,然后按 envelope 停止。
42
-
43
- 独立复核命令 `npm test` exit 0,3 tests、3 pass、0 skipped。三份
44
- `SUMMARY.json` 都通过当前 `review_wait.py` 校验:Plan 为 APPROVE/0 findings,Task 和
45
- aggregate Change 均为 APPROVE/1 P3。Test 报告保留两个 P3 residual risk:finite-number
46
- 合同缺少非整数例子,以及作为 library 的 export 没有仓内非测试 consumer。
47
-
48
- 原会话第一次在所有产品工作完成后,因 no-op hook 把 `{}` 写到 stdout 而在最后一个
49
- benign Bash 验证上 exit 1。修复 adapter 并重装插件后,先独立复现该 Bash 为 exit 0,
50
- 再 resume 同一个 session 做只读终检;resume exit 0,HEAD 仍是 seed commit,未生成
51
- commit。这条失败没有被隐藏,它直接产生了当前 hook 修复。
52
-
53
- ## ZCode 作为目标 Host
54
-
55
- 对抗性 fixture seed HEAD 为 `37c07dc8596cda64a93aac260917b3c091ad1b58`。一次
56
- `--to zcode` 的 read-only delegation 通过 instruction、permission、output-schema
57
- digest、空 diff 和 terminal-result 校验,并找到五类 hidden seed。terminal result
58
- SHA-256 为:
59
-
60
- `f9409cdd62a5e41a5b183cbed155e25e097ec9a27d0d0bfae0f9e74d87468956`
61
-
62
- 语义评测与 six-lens 决定见 `docs/evals/adversarial-review-2026-08-14.md`。
63
-
64
- 随后又专门验证了当前 macOS 上 `zcode` 不在 `PATH` 的默认路径。未设置
65
- `UBP_DELEGATE_ZCODE_BIN`,共享 profile 自动选择
66
- `/Applications/ZCode.app/Contents/Resources/glm/zcode.cjs`。第一次调用真实完成审查但
67
- 省略 `$schema`;原因是共享 prompt 先要求该字段、随后列举“exact fields”时又漏掉它。
68
- launcher 按设计发布 `failed/missing_result`,没有把不合约输出算作成功。补上 prompt
69
- contract 回归并重新安装后,以新 delegation id 再跑:
70
-
71
- - Delegation id: `spec-zcode-default-fallback-2`
72
- - ZCode session: `sess_a985dc31-0eb5-4521-988d-97e92bee2c9a`
73
- - Selected command: `/Applications/ZCode.app/Contents/Resources/glm/zcode.cjs`
74
- - Override: absent
75
- - Result: `finished`、5 findings、empty diff、exit 0、stderr 为空
76
- - Result SHA-256: `71d973723b9317fe2ad31d3216a4f65e933d8ac18a8275244c94b84623dae852`
77
-
78
- 这把“ZCode 可以作为 target”从手工 binary override 提升为当前安装形态下的默认真实
79
- 路径,并同时验证了不合约结果的可恢复失败路径。
80
-
81
- ## ZCode 作为发起 Host
82
-
83
- 同一 fixture 上,ZCode session `sess_3ba3e9b2-6e3a-492d-876e-5e1a5e817d77`
84
- 执行 `ubp delegate run --to claude`,等待 terminal artifact,再读取并汇报结果。Claude
85
- worker 只读定位到 `timeout-after-charge` 后无幂等键重试造成重复扣款的缺陷;worktree
86
- 保持空 diff,result status 为 `finished`,exit code 0。
87
-
88
- - Delegation id: `zcode-to-claude-2`
89
- - Result SHA-256: `f2a9d9d88def969a0dc52ce494f0226e4c0f17f48c049c301e01241d449890da`
90
- - Instruction digest: `0d4a958db8c903eb6f5da6b8a6e6932a67398ad520424b32c8e4f83972618dd4`
91
- - Permission digest: `96f7f8ed4ddb77e4569519d8d20d2e29595c74a06b119d0dee8f3a7dd2cb`
92
- - Schema digest: `723230a485136ef52d0ef6f6fcbe804fc9b13544a11b93aefb2a75fe7ce3887d`
93
-
94
- 这证明的是 ZCode→Ultra launcher→Claude 的真实 source path,不只是“ZCode 能被别的
95
- Host 调用”。第一次尝试也如实暴露了隔离 `HOME` 隐藏 Claude 登录的问题;第二次仅把
96
- 已授权的真实 `HOME` 交给 nested launcher,未复制或打印任何凭据。
97
-
98
- ## 六目标 Host 当前边界
99
-
100
- Claude、Codex、OpenCode、Kimi 和 ZCode 均完成了 schema-valid read-only target run。
101
- Grok Build 1.0.3 多轮 exit 0 但 terminal output 截断或畸形,launcher 正确发布
102
- `failed/missing_result`;其 partial text 不计入 findings。这个残余是当前 Grok 输出
103
- conformance ceiling,不能通过放松 result contract 来伪造成成功。
package/hooks/README.md DELETED
@@ -1,52 +0,0 @@
1
- # Ultra Builder Pro hooks
2
-
3
- Ultra ships five small file-first hooks. Every hook first looks for a `.ultra/`
4
- directory and exits silently when the workflow is not active.
5
-
6
- | Hook | Lifecycle | Purpose |
7
- |---|---|---|
8
- | `session_context.py` | Session start | Inject the accepted North Star or Project Brief fallback, plus acceptance from the unique active Change's current task |
9
- | `mid_workflow_recall.py` | Before source reads or edits | Restate acceptance only for a task matching the unique active `change_id` |
10
- | `compact_context.py` | Before/after compaction | Save and restore a disposable snapshot derived from files and Git |
11
- | `post_edit_guard.py` | After edits | Record mechanical evidence observations without deciding completion |
12
- | `block_dangerous_commands.py` | Before shell execution | Advise on additive protected-branch publication; block history rewrites and a narrow destructive set until the exact command is owner-authorized |
13
-
14
- `_common.py` is a shared library, not a lifecycle registration. Compact snapshots and
15
- progress observations live under ignored `.ultra/.runtime/` or `.ultra/progress/`; the
16
- canonical semantic facts remain the owner-readable files and Git.
17
- Legacy task rows with no `change_id` remain readable from an active-path `change_ref`
18
- during migration; a present canonical `change_id` always wins, and archived or
19
- abandoned paths are never revived as current work. `.ultra/tasks.json` is the sole
20
- task-status authority. A legacy context Status or Complexity header is emitted only as
21
- a migration diagnostic and never overrides the row. Task selection uses only the
22
- unique `in_progress` row of the active Change; a `pending` row is a frontier
23
- candidate that Hooks never activate, inject, or attribute edits to. When no task is
24
- live, the task-aware Hooks stay task-silent and progress-silent, and only read-only
25
- Status may report frontier candidates. A trusted exact-task invocation is
26
- invocation-local — it must mechanically match the ledger and is never persisted as a
27
- selector. The `.ultra/changes/active` directory chain and each active Change directory
28
- must be stable ordinary non-symlink directories; each `intent.md` must be a stable,
29
- readable regular file. More than one `in_progress` row emits the conflicting task ids
30
- and an exact repair while every task Hook remains task-silent. Task ids are globally
31
- unique, dependency ids are unique per row, and every
32
- dependency must resolve inside the same Change without self-edges or cycles. A malformed
33
- surface or graph emits an exact repair diagnostic while task content stays silent. Git
34
- or trace-source observation failures remain advisory typed diagnostics with a rendered
35
- repair and retry path; they never discard canonical Acceptance Criteria or the Resume
36
- Note. SessionStart retains both typed Acceptance and Resume Note content for the
37
- selected task, and every Resume injection carries the navigational limitation: a
38
- Resume Note cannot override owner authority, approved scope/budget, task acceptance,
39
- or a validated Review verdict, and it never reopens a review that already returned a
40
- current verdict. Hooks never launch, select, schedule, or recommend automatic
41
- invocation of `ultra-review` or any public workflow; routing belongs to the owner and
42
- the host model.
43
- Hook and validator observations never mark a task completed or supply a semantic
44
- acceptance disposition.
45
-
46
- Claude Code runs the hooks directly. Codex, Kimi Code, Grok Build, and ZCode use the small
47
- wire adapters under `hooks/adapters/`. OpenCode calls the same scripts from its native
48
- JavaScript plugin. A hook failure is advisory except for the explicitly classified
49
- destructive effects in `block_dangerous_commands.py`, whose denial includes a reachable
50
- SHA-256-scoped authorization path. Additive protected-branch publication stays advisory
51
- because portable hooks cannot consume every host's trusted owner-approval receipt;
52
- history rewrites and branch deletion remain guarded.