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
package/README.zh-CN.md CHANGED
@@ -1,440 +1,67 @@
1
- # Ultra Builder Pro
1
+ # Ultra Builder Pro 6
2
2
 
3
- [English](README.md) | **简体中文**
3
+ 意图是源码,计划是编译产物,进度由计算得出,变更是一份 diff。
4
4
 
5
- Ultra Builder Pro 是面向 Claude Code、Codex、OpenCode、Kimi Code、Grok Build
6
- 和 ZCode 的 file-first(文件优先)工程工作流。它实现了与提供商无关的
7
- **Ultra Core Protocol**:所有者与 Agent 的认知对齐、每项事实的规范权威、
8
- 显式的会话级或持久工作包授权、Agent 之间经过验证的独占式移交、带恢复路径的
9
- 类型化证据,以及在所有者可见预算内终止的 Review。它把产品意图、规格、任务
10
- 合同、证据、决策和恢复说明保存在仓库中,因此不同会话或 Host 可以通过读取文件
11
- 和 Git,从同一组事实继续工作。
12
-
13
- Host 模型仍然是工程师。Ultra 提供可复用的方法和可检查的产物;它不会用工作流
14
- 引擎取代推理。每个阶段采用一个还是多个 Agent、使用哪些提供商,均由所有者决定;
15
- 默认由当前 Agent 单独继续。若要把工作包的写入权移交给另一个 Agent,必须通过
16
- 仓库文件和 Git 完成显式、可验证的转移(OFFER → ACK → RESULT)。
17
-
18
- ## Ultra Builder Pro 5.0
19
-
20
- `5.0.1` 是 Ultra 作为真实软件工程认知对齐 Harness 的当前实现。它保留已接受的
21
- 3.0 file-first 与 model-agency 宪法,再让工作流位置、恢复和跨 Agent 执行变得可直接
22
- 观察。它不是去中心化多 Agent 平台,也不规定唯一的 Agent 拓扑。它只承诺五件事:
23
-
24
- - 在 Research 进入计划或代码之前,先确立所有者接受的北极星(North Star);
25
- - 允许所有者在每个阶段选择一个或多个 Agent,以及所使用的提供商;
26
- - 通过 `.ultra/` 下的文件与 Git,传递规范意图、决策、任务、证据和恢复信息,
27
- 让另一个会话或 Host 能够从同一事实继续;
28
- - 自动化可机械验证的权威、权限、外部 effect、证据、物理限制和恢复,同时把意义
29
- 与策略留给模型和所有者;以及
30
- - 约束 Review 与修复,使交付能够收敛,而不是把每个观察都变成下一轮自动实现循环。
31
-
32
- 5.0 通过一个 Route Contract、明确的 Init/Research/Change/Plan 职责、只依赖文件的
33
- 新会话恢复、installed Skill-local delegation runtime 和可替换的
34
- `AgentExecutionDriver` 来兑现这些承诺。只有某个 Host 通过有记录的 conformance
35
- drill 后,才优先选择 stable ACP v1;否则同一 result contract 使用明确报告原因的 CLI
36
- fallback。可移植协议和原生安装覆盖 Claude Code、Codex、OpenCode、Kimi Code、
37
- Grok Build 和 ZCode。六个 profile 都暴露 stable ACP v1 candidate,也都有各自当前的
38
- 真实 provider receipt。只有对应 executable 与 candidate identity 仍匹配时才选择 ACP;
39
- 否则返回 typed CLI fallback。ZCode 使用独立安装且锁定源码的 bridge,并保持
40
- `experimental`。
41
-
42
- 5.0 明确不加入 daemon、workflow service、语义状态机、A2A 网络、Team Pack、remote
43
- marketplace 或共享权威存储。Package publication 和真实用户安装仍是需要独立核验的
44
- effects;仅凭 source version 不能证明任一 effect 已经发生。
45
-
46
- ## 为什么需要它
47
-
48
- 长周期 Agent 工程变更通常以四种可重复的方式失败:
49
-
50
- - 意图被反复转述,最终交付的产品不再符合所有者原意;
51
- - 局部层面测试变绿,被误认为端到端路径已经可用;
52
- - 上下文丢失后,中断任务变成考古工作;
53
- - 安全机制开始替产品作语义决定,并把主工作流困住。
54
-
55
- Ultra 通过简短、所有者可读的文件,渐进式 Skills,真实验证证据和 Git 恢复来解决
56
- 这些问题。产品不包含数据库、MCP server、语义状态机、生成式 prompt 投影或后台
57
- daemon。
58
-
59
- ## 产品表面
60
-
61
- 该软件包精确安装十四个 Skills,分为三类角色。
62
-
63
- ### 所有者调用的工作流
64
-
65
- | Skill | 结果 |
66
- |---|---|
67
- | `ultra-init` | 建立项目骨架和原始 Project Brief |
68
- | `ultra-research` | 建立已接受的 North Star 和有证据支撑的基线 |
69
- | `ultra-change` | 将一次请求的增量与已接受基线进行协调 |
70
- | `ultra-plan` | 编写 tracer-bullet 任务、上下文、依赖与 seam |
71
- | `ultra-dev` | 通过红/绿开发和六个证据维度实现一个任务 |
72
- | `ultra-test` | 审计全系统接线、E2E 行为、性能和安全性 |
73
- | `ultra-deliver` | 协调、Review、记录并归档一个已完成的 Change |
74
- | `ultra-delegate` | 通过另一个受支持的 CLI 执行有界任务、Research 取证或聚合 Review |
75
-
76
- ### 模型调用的纪律
77
-
78
- | Skill | 可复用方法 |
79
- |---|---|
80
- | `ultra-grilling` | 每次只问一个关键问题,补齐所有者未明确的意图 |
81
- | `ultra-domain-modeling` | 在 `CONTEXT.md` 中维护精确的统一语言 |
82
- | `ultra-tdd` | 证明一条已确认 seam 先红后绿 |
83
- | `ultra-review` | 运行六个独立 Review lens 并综合 findings |
84
- | `ultra-think` | 对重要决策进行压力测试并记录持久结果 |
85
-
86
- `ultra-status` 是唯一的 router。它根据项目文件、Git 和安装健康状态推断当前 route,
87
- 不会改变工作流状态。
88
-
89
- 默认情况下,公开工作流由所有者显式选择。在一个已激活且仍有效的所有者
90
- `Execution Grant`(会话级授权或持久工作包授权)之外,一个公开工作流可以推荐
91
- 下一个工作流,但不会自行启动它。在授权范围内,Host 模型只能选择授权覆盖的
92
- Change-scoped Research、同一 Change 的 reconcile、Plan、Dev、Test 和仅协调阶段的
93
- Deliver route;Init、Change intake/evidence/acceptance/abandonment 或 primary transfer、
94
- Delegate、Deliver finalization、最终归档以及每个外部 effect 始终由所有者选择;
95
- Status 同样由所有者选择、保持只读且不授予 continuation。每次 public transition 都先显示 derived
96
- `UBP Route Card`;Host invocation metadata 只负责粗粒度发现,加载后的 Skill 会重新
97
- 验证精确 Mode 与 Grant,而不会创建 route state。模型调用的纪律仍可供 Host
98
- 模型使用,它们不是独立的用户 route。模型在当前任务出现相应触发条件时选择它们:
99
- 意图不完整时使用 grilling,术语冲突时使用 domain modeling,已接受的 seam 使用
100
- TDD,证据已可 Review 时使用 review,重要且未解决的决策使用 think。具备原生有界
101
- subagent 的 Host 可以并行运行 Review lens;其他 Host 则顺序运行同一组 lens 资产。
102
-
103
- 在 `ultra-research` 中,前六个 reference 是六个语义 lens,而不是六个额外 Skill:
104
- 问题验证、机会发现、市场评估、替代方案、产品策略和假设验证。`wayfinding.md` 会在
105
- 这些 lens 与后续证据 lens 之间选择最小且依赖顺序正确的路径。Grilling 仍负责如何
106
- 逐一追问缺失信息,Think 负责一个重要权衡,Domain Modeling 负责词汇;Research
107
- 负责整体问题图、证据收敛、所有者 checkpoint 和基线晋升。
108
-
109
- ### 原来的 Agents 去哪里了
110
-
111
- `5.0.1` 不安装自定义 `agents/` 投影。原来的 Review workers 变成
112
- `ultra-review/references/` 下六个聚焦文件;Review 协调和综合归属于父级
113
- `ultra-review` Skill。原来的 debugger 流程位于
114
- `ultra-dev/references/debugging.md`,测试执行流程位于
115
- `ultra-tdd/references/test-execution.md`。这些都是所属 Skill 的资产,因此会随
116
- Skill 到达全部六个 Host。它们保留了有界角色,又不会假装每个 Host 都暴露相同的
117
- 自定义 Agent API。
118
-
119
- ## 项目权威
120
-
121
- 一个项目在首次接受 Research 基线后使用以下结构。刚完成 Init 时,`CONTEXT.md`
122
- 尚不存在,North Star 和规格文件仍是空骨架。
123
-
124
- ```text
125
- CONTEXT.md
126
- .ultra/
127
- ├── .gitignore # 只忽略 Ultra 派生产物路径
128
- ├── project-brief.md
129
- ├── north-star.md
130
- ├── tasks.json
131
- ├── test-report.json
132
- ├── specs/
133
- │ ├── product.md
134
- │ ├── architecture.md
135
- │ ├── discovery.md
136
- │ └── research-distillate.md
137
- ├── changes/
138
- │ ├── active/<change-id>/{intent.md,delivery.md}
139
- │ ├── archive/<change-id>/{intent.md,delivery.md}
140
- │ └── abandoned/<change-id>/intent.md # 包含精确的 Abandonment closure
141
- ├── contexts/task-<task-id>.md
142
- ├── decisions/<decision-id>.md
143
- ├── evidence/<task-id>/...
144
- └── research/<run-id>/{brief.md,<step-id>.md}
145
- ```
146
-
147
- 可选的 `brief.md` 是派生导航;被选中的 step report 是引用证据,而晋升后的语义事实
148
- 存在其他规范文件中。Git 提供历史、比较、回滚和归档移动。以下附加路径均为派生产物:
149
-
150
- ```text
151
- .ultra/.runtime/
152
- .ultra/progress/
153
- .ultra/reviews/
154
- ```
155
-
156
- `.ultra/.runtime/` 和 `.ultra/progress/` 可以从当前权威中删除或重建。精确保留当前
157
- strict Review session,直到 Test 和 Deliver 都成功消费它;只有在两个消费者都
158
- 完成后,才能垃圾回收该 session。如果在两者完成前丢失,必须运行全新的 Review
159
- 和 Test,绝不能重构旧 receipt。
160
-
161
- 有关 writer、reader、promotion、staleness 和 recovery 规则,请参阅
162
- [Artifact Authority](docs/ARTIFACT-AUTHORITY.md)。
163
-
164
- ### 哪个 route 写哪个文档
165
-
166
- | Route | 规范写入 | 下一个消费者 |
167
- |---|---|---|
168
- | `ultra-init` | 原始 `project-brief.md`、空的 North Star 和规格骨架、空任务/测试 ledger | research、status,以及基线前 Session Hook fallback |
169
- | `ultra-research` | 已接受的 North Star、首个 domain baseline、被选择且有引用的报告、已协调规格和 distillate | change、plan 和 delivery |
170
- | `ultra-change` | 一个带稳定 `change_id`、Research Disposition 且只触及增量相关已接受基线章节的 active `intent.md`;或在所有者授权移动前写入精确 Abandonment closure | active:research 到 delivery;abandoned:未来 Change 历史和 status |
171
- | `ultra-plan` | 为 active `change_id` 追加 `tasks.json` 行、每任务一个 context,以及 active intent 中的 Planning Posture | dev 和所有 resume 路径 |
172
- | `ultra-dev` | source/tests、类型化任务证据、只在 ledger 中保存的任务状态、Completion、Task Review 和 Resume Note | review、test、status、delivery |
173
- | `ultra-test` | 唯一的当前 `test-report.json`,绑定 Change id、当前 task ids、intent digest、HEAD 和 product-worktree digest | status 和 delivery |
174
- | `ultra-deliver` | 先协调 specs/docs,再在 fresh Test snapshot 后写一个 `delivery.md` 并归档 Change 目录 | 所有者和未来 Change 历史 |
175
- | `ultra-status` | 无 | 根据当前文件推荐最小显式 route |
176
- | `ultra-delegate` | 派生 runtime receipt 加 isolated worktree diff | primary host 检查和可选集成 |
177
-
178
- `ultra-domain-modeling` 是 `CONTEXT.md` 唯一的聚焦 writer;`ultra-think` 只在所有者
179
- 接受后写持久决策。Review packets、Hook progress、compact snapshots 和 delegation
180
- receipts 都是派生证据,不是额外语义文档。
5
+ UBP 为 Claude Code 和 Codex 提供一个 `ultra` Skill、确定性的 `ubp` 引擎和一个
6
+ SessionStart hook。模型负责判断,引擎从项目文件与可执行检查计算进度。需要 Node.js 22
7
+ 或更新版本,以及 Git。
181
8
 
182
9
  ## 安装
183
10
 
184
- 需要 Node.js 22 或更新版本。
185
-
186
- ```bash
187
- # 当前项目,单个 Host
188
- npx ultra-builder-pro-cli@5.0.1 --claude --local
189
- npx ultra-builder-pro-cli@5.0.1 --codex --local
190
-
191
- # 全局安装
192
- npx ultra-builder-pro-cli@5.0.1 --opencode --global
193
- npx ultra-builder-pro-cli@5.0.1 --kimi --global
194
- npx ultra-builder-pro-cli@5.0.1 --grok --global
195
- npx ultra-builder-pro-cli@5.0.1 --zcode --global
196
-
197
- # 所有受支持 Host
198
- npx ultra-builder-pro-cli@5.0.1 --all --global
11
+ ```sh
12
+ npm install -g ultra-builder-pro-cli@6.0.0
13
+ ubp --claude --global
14
+ ubp --codex --global
15
+ # 或一次安装两个宿主:
16
+ ubp --all --global
199
17
  ```
200
18
 
201
- 把任务通过 ACP 派给 ZCode 还需要独立构建的 bridge 和已安装的 ZCode Desktop。
202
- Ultra 会随 Skill 提供 ZCode CLI 0.16.5 所需的小型 source patch,但不安装这两个依赖,
203
- 也不会把 provider 凭据写入项目证据:
19
+ 使用 `--config-dir <dir>` 隔离安装;`--all` 会为两个宿主分别建立子目录。
20
+ 仅 Claude Code 支持 `--local`。Codex 只安装到用户范围:`--codex` 默认采用用户范围;
21
+ `--codex --local` 会报错,除非使用 `--config-dir` 隔离安装。
22
+ 用 `ubp --all --global --doctor --json` 检查安装,用
23
+ `ubp --all --global --uninstall` 卸载托管资源。
204
24
 
205
- ```bash
206
- git clone https://github.com/jpalmae/zcode-acp
207
- git -C zcode-acp checkout 42fe149d4b501469343c01f23ba3801832306d53
208
- git -C zcode-acp apply \
209
- /path/to/installed/ultra-delegate/patches/zcode-acp-0.1.0-zcode-0.16.5.patch
210
- cargo test --locked --manifest-path zcode-acp/Cargo.toml
211
- cargo install --locked --path zcode-acp
212
- ```
213
-
214
- 5.0 已验证 base commit、patch SHA-256
215
- `174dfd0feafe84320556a84b5ae08b10e44c5515fea4992fd1d58af54cee4e3d`、locked tests、
216
- fake E2E、release build 和真实 ZCode 0.16.5 session。需确保 binary 位于 `PATH`;非
217
- macOS 环境使用该平台实际安装的 ZCode CLI path。`--version` 必须返回
218
- `zcode-acp 0.1.0+ultra.zcode.0.16.5`。
219
-
220
- Host 与 provider 是两个概念:ZCode Desktop 是 runtime,模型账号可以是国内智谱
221
- BigModel,也可以是国际 Z.AI。国内 BigModel Coding Plan 应在
222
- `~/.zcode/cli/config.json` 中使用官方 Anthropic-compatible endpoint
223
- `https://open.bigmodel.cn/api/anthropic` 和 BigModel API Key,不能走 Z.AI OAuth。
224
- 5.0 的真实验证使用 `builtin:bigmodel-coding-plan/GLM-5.2`。参见
225
- [智谱官方 Claude API 兼容文档](https://docs.bigmodel.cn/cn/guide/develop/claude/introduction)。
226
-
227
- 这些固定版本的 `npx` 命令在发布后解析 registry 中不可变的版本。需要避免修改真实
228
- 用户安装时,源码验证使用 `node bin/install.js --config-dir <isolated-path>`;独立的
229
- 5.0 release drill 还在六个真实 Host home 中验证了 ownership-safe install、Doctor、
230
- ZCode uninstall 与 reinstall。
231
-
232
- 使用 Host 原生 Skill picker 或调用语法选择一个所有者工作流。Codex 会暴露带命名空间
233
- 的条目,例如 `$ultra-builder-pro:ultra-init`。安装后的 frontmatter 和 metadata 会
234
- 保持用户 route 显式、模型 discipline 隐式。
235
-
236
- ### 诊断、更新和卸载
237
-
238
- 安装过程受管理、具备原子性,并会核验 provenance。
239
-
240
- ```bash
241
- # 重新执行安装会更新受管理产物
242
- npx ultra-builder-pro-cli@5.0.1 --codex --global
243
-
244
- # 只读诊断
245
- npx ultra-builder-pro-cli@5.0.1 --all --global --doctor --json
246
-
247
- # 只移除受管理的 Ultra 资产
248
- npx ultra-builder-pro-cli@5.0.1 --all --global --uninstall
249
- ```
250
-
251
- `--config-dir <path>` 会同时隔离主配置和 Host 自有 sidecar。它是测试时的安全选择,
252
- 不会回落到真实 home 目录。选择多个 Host 时,每个 Host 会收到
253
- `<path>/<runtime>`,避免彼此的原生布局相互覆盖。
254
-
255
- 卸载会移除受管理插件,并且只清理首次安装前不存在、当前为空的配置目录外壳。
256
- 已有 registry、目录、symlink 以及任何包含所有者数据的路径都会保留。
257
-
258
- Kimi Code、Grok Build 和 ZCode 当前只提供用户级插件,所以 `--local` 会在任何修改
259
- 前拒绝它们。Claude Code、Codex 和 OpenCode 支持项目级安装;全部六个 Host 都支持
260
- 受管理的全局安装和隔离 `--config-dir` 验证。
261
-
262
- ## 典型工作流
263
-
264
- 已有项目的日常工作从 `ultra-change` 开始,而不是先进入一次无边界的 Research。
265
- 只有建立首个 baseline,或回答同一 active Change 已记录的有界证据问题时,才直接进入
266
- `ultra-research`。每次 public transition 都先展示派生的 Route Card,明确当前 Mode、
267
- Position、可观察 Exit condition、material checkpoint 和 Next route。
268
-
269
- 1. 选择一次 `ultra-init`。它写入骨架,在 Project Brief 中保留所有者原始的一行请求
270
- 和大致轮廓,在需要时初始化 Git,然后停止,不会开始产品 Research。
271
- 2. 选择 `ultra-research`,把 brief 转化为首个已接受的 North Star、共享词汇以及有
272
- 证据支撑的产品和架构基线。对于不清晰的多 lens 问题,它会先写派生 Wayfinding
273
- brief;对于单个有界证据缺口,则跳过该额外文件。
274
- 3. 对一次请求的增量选择 `ultra-change`。它只在计划前协调该增量触及的基线章节,
275
- 不会重建项目基线。其 Research Disposition 要么引用充分证据,要么明确必须通过
276
- Research 返回的有界问题和退出证据。不会让任何规格语句失真的微小编辑可以留在
277
- Ultra 之外;每个被接受的 Change 都会获得由真实 seam、证据、Review 和恢复需要
278
- 所证明的最小 Plan graph。任何 profile 都不能固定任务数量。该 Change 仍 active
279
- 时,继续协调同一个稳定 id;不要为另一个请求开启第二个 active Change。
280
- 4. 选择 `ultra-plan`,记录公开 seam,并生成可恢复的 tracer-bullet 任务。最早的可观察
281
- slice 必须穿过真实 consumer 和真实 data path,并写明所有者能观察到的结果。模型负责
282
- 普通技术 seam;只有会改变公开合同或其他重大权衡的 seam 才由所有者决定。
283
- 5. 每次为一个任务选择 `ultra-dev`。`.ultra/tasks.json` 是唯一任务状态权威。Dev 在
284
- row 仍为 `in_progress` 时记录类型化 v2 证据并完成 Task Review;只有解决 blocking
285
- findings 并刷新受影响证据后,它才写入 `completed`、添加 Completion,并重写
286
- Resume Note。
287
- 6. 当 active Change 的任务均以当前 v2 证据和保留的 Task Review provenance 完成后,
288
- 选择 `ultra-test`。历史 ledger rows 和旧 context Status fields 不进入该审计。本地
289
- 测试变绿不能代替 wiring 与 E2E 证明。
290
- 7. 选择 `ultra-deliver` 运行聚合 Review 并协调文档。如果这一步改变产品或语义文件,
291
- 需要重新运行 Test;再在 fresh snapshot 上重新进入 Deliver,写入 delivery metadata
292
- 并归档稳定 Change id。Commit、push、tag、publication 和 deployment 始终是分别
293
- 授权的 effects。
294
-
295
- 对于一个已接受 Change,所有者可以用两种模式激活其精确 `Execution Grant`。
296
- `session-local` grant 只存在于当前对话:当激活状态丢失——进入新会话、切换 Host
297
- 或发生 compaction——工作会停止,等待所有者重新激活。`durable work-package`
298
- grant 允许新的 Agent 或 Host 继续一个精确工作包,但 Agent 必须先稳定验证所记录的
299
- grant 本身。在两种模式下,模型都可以选择授权覆盖的 Change-scoped Research、同一
300
- Change 的 reconcile、Plan、Dev、Test 和仅协调阶段的 Deliver route,直到下一个语义
301
- 停止点或声明预算;两种模式都不授予
302
- finalization 或 archive 权限:写入 `delivery.md`、版本或 package posture,以及归档
303
- 始终需要所有者当前显式调用;commit、push、publication、deployment、installation
304
- 和其他任何外部 effect 也一样。
25
+ 每个安装后的插件都携带引擎副本。Skill 写明其绝对 Node 调用路径,所有引擎命令始终使用这个副本,
26
+ 不采用 PATH 上其他版本的 `ubp`。不需要 Python。
305
27
 
306
- 任何时候,`ultra-status` 都可以重建当前位置。新会话先从 repository root 和 `HEAD`
307
- 开始,唯一解析 active Change,再读取 `.ultra/tasks.json`、匹配任务的 `context_file`
308
- 和其中的 `## Resume Note`、`CONTEXT.md`、相关 decisions、specifications、evidence 与
309
- 当前 Git diff;不会因为聊天记忆丢失而重跑已完成的 Research。如果 active authority
310
- 歧义或不可读,Status 转入只读 recovery,指出最早的不安全事实,并给出最便宜的
311
- repair、retry、cancel、abandon 或 fresh-session 路径,不选择 intent,也不写语义文件。
312
- archive 或 abandoned Change 中未完成的历史 rows 仍不是当前 frontier。
28
+ ## 第一次会话
313
29
 
314
- ## 三层独立集成防线
30
+ 在 Claude Code 项目中调用 `/ultra`(完整名称 `/ultra-builder-pro:ultra`);
31
+ 在 Codex 中调用 `$ultra-builder-pro:ultra`。运行 `ubp status` 查看当前状态。没有 `.ultra/spec.md`
32
+ 的项目从访谈开始,再形成规格、验收检查和里程碑计划。
315
33
 
316
- 工作流不会把“测试通过”等同于端到端结论。
34
+ SessionStart hook 仅在 `.ultra/spec.md` 存在时打印进度和使用 `ultra` 的提示;
35
+ 它不自动启动工作,也不写项目文件。
317
36
 
318
- - `ultra-plan` 拒绝横向 feature slicing,并确认可观察 seam。
319
- - `ultra-dev` 把测试、持久化、feature flags、垂直执行和 spec trace 记录为六个独立观察。
320
- - `ultra-test` 为 changed exports 查找真实的非测试消费者,并让最小 primary flow 穿过边界。
37
+ Codex 用户需先在 `/hooks` 中审阅并信任插件 hook;未信任前会跳过它。定义变更后需重新信任。
38
+ 即使尚未信任 hook,Skill 的第一步 `ubp status` 仍会显示进度行。
39
+ 详见 [Codex hook 信任规则](https://learn.chatgpt.com/docs/hooks)。
321
40
 
322
- 每层防线都可以独立报告缺陷。这些报告是 sensors,不是语义 gates;模型和所有者在
323
- 不抹除证据的前提下决定如何响应。
324
-
325
- ## Hooks
326
-
327
- 五个可选 Hooks 会加速文件读取,并保护一个狭窄的 effect 边界:
328
-
329
- | Hook | 行为 |
330
- |---|---|
331
- | `session_context.py` | 注入已接受的 North Star;Research 前则注入 Project Brief fallback,并附上当前 acceptance |
332
- | `mid_workflow_recall.py` | 在相关 source 操作前重述 acceptance |
333
- | `compact_context.py` | 保存和恢复一次可丢弃的 Git/file snapshot |
334
- | `post_edit_guard.py` | 在编辑后记录机械证据观察 |
335
- | `block_dangerous_commands.py` | 对受保护分支的增量 publication 给出建议;在精确命令获授权前,拒绝改写历史和具名破坏性 shell effects |
336
-
337
- 当 `.ultra/` 不存在时,五个 Hooks 都静默退出。详情见
338
- [Plugin Isolation](docs/PLUGIN-ISOLATION-CONTRACT.md)。
339
-
340
- ## 委派
341
-
342
- 委派会写入不可变的 instruction 和 permission envelope,然后选择一个 Host-local
343
- `AgentExecutionDriver` 并在后台启动。只有 executable stdio endpoint 能协商 stable
344
- ACP v1,且该 Host 有带 evidence 的 passed conformance record 时才选择 ACP;否则使用
345
- 相同 result contract 的 `CliDriver`,并报告精确 fallback reason。当前六个 Host row
346
- 都已有各自真实 provider 的 passing receipt;executable 缺失或 receipt 缺失/过期时仍
347
- 返回 typed CLI fallback;candidate identity 不匹配也同样 fallback。只有在
348
- `session/prompt` 之前识别到 `acp_auth_required` 时,才会执行一次有界 CLI path;其他
349
- ACP failure 一律不重试,因此不会重复派送 provider task。空
350
- writable roots 选择原生只读模式;声明 roots 则
351
- 选择有界写入模式。模型返回一个
352
- 受 schema 约束的最终响应;launcher 从原生结构化输出中提取它,验证真实 Git diff,
353
- 并在 instruction 旁原子发布 terminal `finished`、`blocked` 或 `failed` result。
354
- 绑定 digest 的 packet 会嵌入 worker prompt,因此严格 Host 不必从 isolated worktree
355
- 之外读取 instruction files。
356
-
357
- ```bash
358
- node <loaded-ultra-delegate-skill-dir>/scripts/delegate.cjs run --to codex \
359
- --instruction .ultra/.runtime/delegations/D-01/instruction.md \
360
- --permission .ultra/.runtime/delegations/D-01/permission.json \
361
- --worktree .ultra/.runtime/worktrees/D-01
362
- ```
363
-
364
- loaded Skill path 是 canonical runtime;clean `npx` plugin install 后不需要全局 `ubp`,
365
- 也不会通过 `npx` 查找 Ultra;固定版本的 Claude/Codex ACP adapter 本身可以经 `npx`
366
- 运行。`ubp delegate` 只保留一个版本周期的薄兼容
367
- wrapper。使用 installed Skill 内的 `scripts/delegate_wait.py` 等待 `result.json`,无需把
368
- worker 中间输出载入父上下文。委派不会授予新权限;writable roots 仍位于 worktree 内,
369
- permission file 必须声明零外部 effects,且不得放宽 Host sandbox。
370
- 不可变 instruction 可指定任务执行/续做、有界 Research 取证或聚合 Change
371
- Review/verification。后两类可以只读,也不要求 task row,因此 pre-Plan Research 与
372
- post-task 跨 family Review 不需要虚构 ledger work 也能执行。
373
- ZCode 通过独立安装的 `zcode-acp` bridge 只解析 installed Desktop runtime(macOS
374
- 优先 App-bundled CLI,之后才是 `PATH` fallback),并保持 `experimental`。当前
375
- capability、read-only、permission、cancel/no-orphan、cwd/diff、result parity 与
376
- redaction drill 均已通过;提升 maturity 仍需要 App-internal runtime 的官方稳定性承诺。
377
- Doctor 分开报告 runner health、ACP capability、candidate identity、selected driver、
378
- fallback reason 与 ZCode maturity。
379
-
380
- ## Host 支持
381
-
382
- | Host | Skills | Hooks | 受管理生命周期 |
383
- |---|---:|---:|---|
384
- | Claude Code | 14 | 5 个直接 Hooks | install / doctor / update / uninstall |
385
- | Codex | 14 + 原生 metadata | 5 个 wire adapter Hooks | plugin + personal marketplace |
386
- | OpenCode | 14 | 5 个原生 JS plugin Hooks | bundle + skill directories |
387
- | Kimi Code | 14 | 5 个 wire adapter Hooks | managed plugin registry |
388
- | Grok Build | 14 | 5 个 wire adapter Hooks | 可用时使用原生 plugin registration |
389
- | ZCode | 14 | 5 个 wire adapter Hooks | inline plugin + local marketplace + reversible config registration |
390
-
391
- 有关精确路径和 Host 限制,请参阅
392
- [Runtime Compatibility](docs/RUNTIME-COMPAT-MATRIX.md)。
393
-
394
- ## 开发
395
-
396
- ```bash
397
- # Node contracts、package smoke、Host adapters、delegation 和 Skills
398
- npm run test:node
399
-
400
- # File-first Hook 行为和 wire wrappers
401
- npm run test:hooks
402
-
403
- # 完整 release gate
404
- npm run verify:release
405
-
406
- # 检查精确 publish artifact
407
- npm pack --dry-run --json
408
- ```
41
+ ## 命令
409
42
 
410
- 每个发生变化的 Skill 还会通过 Codex Skill Creator validator 验证。发生变化的 Codex
411
- manifest 会依据 Plugin Creator schema 验证。验证变绿不代表已授权任何 release
412
- effect;validator 成功只证明结构符合要求,不代表语义已被接受。
43
+ | 命令 | 用途 |
44
+ | --- | --- |
45
+ | `ubp status` | 计算进度和下一步 |
46
+ | `ubp gate` | 校验计划并记录基线 |
47
+ | `ubp check [ids]` | 执行检查并记录证据 |
48
+ | `ubp node done <id>` | 在需求为绿时完成节点 |
49
+ | `ubp context <id>` | 编译节点简报 |
50
+ | `ubp milestone close <id> --owner "原话" --review <file>` | 关闭已评审里程碑 |
51
+ | `ubp approve <items> --owner "原话"` | 记录缩减范围的批准 |
52
+ | `ubp retro` | 列出重复失败类别 |
53
+ | `ubp merge <branch> --expect-head <sha>` | 校验并合并工作分支 |
54
+ | `ubp drive --writer <cmd> [--reviewer <cmd>]` | 无人值守地推进节点,直到下一个需要 Owner 的点 |
413
55
 
414
- ## 文档
56
+ 引擎命令接受 `--root <dir>` 和 `--json`。文件格式、退出码见
57
+ [引擎合同](engine/FORMATS.md),工作方法与批准边界见 [ultra](skills/ultra/SKILL.md)。
415
58
 
416
- - [5.0 设计与验收合同](docs/ULTRA-BUILDER-PRO-5.0.zh-CN.md) — 5.0.1 已实现的
417
- Route、Skill 职责、continuation、ACP/CLI execution、migration 与 journey 边界。
418
- - [5.0 journey 结果](docs/evals/ultra-5-0-journey-results.md) — 可观察的 source、
419
- isolated-runtime、real-provider、real-HOME 与跨平台结果,以及明确排除的服务部署边界。
420
- - [当前权威](.ultra/north-star.md) — 本仓库已接受的 North Star
421
- `north-star-v2-r3` 是当前规范权威;`.ultra/tasks.json` 以及
422
- `.ultra/changes/active/` 或 `.ultra/changes/archive/` 下的稳定 Change 记录当前或
423
- 已交付的工作 frontier。
424
- - 冻结的设计历史(不可变的已接受记录,不是实时状态):
425
- [3.0 North Star R3](docs/ULTRA-BUILDER-PRO-3.0-NORTH-STAR-R3.zh-CN.md) —
426
- 绑定 hash 的已接受 r3 设计;以及已被 r3 取代的
427
- [3.0 design](docs/ULTRA-BUILDER-PRO-3.0.zh-CN.md)。
428
- - [理念](docs/PHILOSOPHY.md)
429
- - [架构](docs/ARCHITECTURE.md)
430
- - [产物权威](docs/ARTIFACT-AUTHORITY.md)
431
- - [工作流生命周期](docs/WORKFLOW-LIFECYCLE.md)
432
- - [Skill 编写规范](docs/SKILL-AUTHORING.md)
433
- - [插件隔离](docs/PLUGIN-ISOLATION-CONTRACT.md)
434
- - [Runtime 兼容性](docs/RUNTIME-COMPAT-MATRIX.md)
435
- - [对抗性 Review 评估](docs/evals/adversarial-review-2026-08-14.md)
436
- - [ZCode 自动化评估](docs/evals/zcode-automation-2026-08-14.md)
59
+ ## 从 5.x 迁移
437
60
 
438
- ## License
61
+ v6 用一个方法替代十四个 `ultra-*` Skills,用一个 Node 提示 hook 替代五个 Python hooks。
62
+ 移除了 OpenCode、Kimi、Grok、ZCode 适配器、`run`、`delegate`、ACP/Pi 执行、durable grants、
63
+ wake-up 机制和旧项目模板,避免多个入口争夺下一步;下一步由引擎状态决定。
64
+ 旧项目记录不会自动转换为 v6 格式。
439
65
 
440
- [MIT](LICENSE)
66
+ 仍需旧工作流时,在独立配置目录使用最后发布的 5.x 版本 5.0.1(5.0.2 从未发布);旧源码可从 Git 历史恢复。
67
+ 另见 [变更记录](CHANGELOG.md) 和 [插件边界](docs/PLUGIN-ISOLATION-CONTRACT.md)。
@@ -1,7 +1,6 @@
1
1
  'use strict';
2
2
 
3
3
  // YAML frontmatter parsing / serialization for markdown assets.
4
- // Every runtime adapter consumes this — OpenCode lowercases keys while
5
4
  // Claude Code and Codex preserve their native metadata contracts.
6
5
 
7
6
  const yaml = require('js-yaml');
@@ -33,20 +32,4 @@ function serialize(fm, body = '') {
33
32
  return `${DELIMITER}\n${yamlBody}\n${DELIMITER}\n${body}`;
34
33
  }
35
34
 
36
- function lowercaseKeys(obj) {
37
- if (Array.isArray(obj)) return obj.map(lowercaseKeys);
38
- if (obj === null || typeof obj !== 'object') return obj;
39
- const out = {};
40
- for (const [k, v] of Object.entries(obj)) {
41
- out[k.toLowerCase()] = lowercaseKeys(v);
42
- }
43
- return out;
44
- }
45
-
46
- function patch(text, patchFn) {
47
- const { fm, body } = parse(text);
48
- const nextFm = patchFn(fm ? { ...fm } : {});
49
- return serialize(nextFm, body);
50
- }
51
-
52
- module.exports = { parse, serialize, lowercaseKeys, patch };
35
+ module.exports = { parse, serialize };