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.
- package/CHANGELOG.md +103 -3
- package/README.md +67 -478
- package/README.zh-CN.md +49 -422
- package/adapters/_shared/frontmatter.cjs +1 -18
- package/adapters/_shared/plugin-core.cjs +17 -83
- package/adapters/_shared/runtime-assets.cjs +6 -120
- package/adapters/claude.js +8 -24
- package/adapters/codex.js +13 -32
- package/bin/install.js +35 -57
- package/docs/PLUGIN-ISOLATION-CONTRACT.md +13 -101
- package/docs/examples/drive/claude-reviewer.sh +53 -0
- package/docs/examples/drive/claude-writer.sh +43 -0
- package/engine/FORMATS.md +1051 -0
- package/engine/checks.cjs +139 -0
- package/engine/cli.cjs +148 -0
- package/engine/completion.cjs +48 -0
- package/engine/context.cjs +94 -0
- package/engine/drive.cjs +220 -0
- package/engine/expect-worker.cjs +5 -0
- package/engine/expect.cjs +33 -0
- package/engine/formats.cjs +189 -0
- package/engine/git-state.cjs +112 -0
- package/engine/ledger.cjs +205 -0
- package/engine/loading.cjs +28 -0
- package/engine/merge.cjs +273 -0
- package/engine/milestone.cjs +89 -0
- package/engine/plan.cjs +232 -0
- package/engine/project.cjs +5 -0
- package/engine/signals.cjs +3 -0
- package/engine/states.cjs +175 -0
- package/hooks/session-start.cjs +54 -0
- package/package.json +17 -52
- package/skills/ultra/SKILL.md +395 -0
- package/.ultra-template/changes/abandoned/.gitkeep +0 -0
- package/.ultra-template/changes/active/.gitkeep +0 -1
- package/.ultra-template/changes/archive/.gitkeep +0 -1
- package/.ultra-template/contexts/TEMPLATE.md +0 -135
- package/.ultra-template/decisions/.gitkeep +0 -1
- package/.ultra-template/evidence/.gitkeep +0 -1
- package/.ultra-template/north-star.md +0 -52
- package/.ultra-template/project-brief.md +0 -28
- package/.ultra-template/research/.gitkeep +0 -1
- package/.ultra-template/specs/architecture.md +0 -81
- package/.ultra-template/specs/discovery.md +0 -74
- package/.ultra-template/specs/product.md +0 -80
- package/.ultra-template/specs/research-distillate.md +0 -57
- package/.ultra-template/tasks.json +0 -4
- package/.ultra-template/test-report.json +0 -44
- package/adapters/_shared/host-profile.cjs +0 -5
- package/adapters/grok.js +0 -242
- package/adapters/kimi.js +0 -232
- package/adapters/opencode.js +0 -408
- package/adapters/zcode.js +0 -375
- package/bin/delegate-worker.cjs +0 -5
- package/bin/delegate.cjs +0 -5
- package/docs/ARCHITECTURE.md +0 -274
- package/docs/ARTIFACT-AUTHORITY.md +0 -305
- package/docs/DECISIONS.md +0 -229
- package/docs/PHILOSOPHY.md +0 -261
- package/docs/RUNTIME-COMPAT-MATRIX.md +0 -316
- package/docs/SKILL-AUTHORING.md +0 -113
- package/docs/WORKFLOW-LIFECYCLE.md +0 -350
- package/docs/evals/adversarial-review-2026-08-14.md +0 -84
- package/docs/evals/ultra-5-0-journey-results.md +0 -62
- package/docs/evals/ultra-5-0-live-acp-conformance.md +0 -93
- package/docs/evals/ultra-5-0-route-journeys.md +0 -145
- package/docs/evals/zcode-automation-2026-08-14.md +0 -103
- package/hooks/README.md +0 -52
- package/hooks/_common.py +0 -1779
- package/hooks/adapters/codex.py +0 -295
- package/hooks/adapters/grok.py +0 -134
- package/hooks/adapters/kimi.py +0 -156
- package/hooks/adapters/zcode.py +0 -227
- package/hooks/block_dangerous_commands.py +0 -201
- package/hooks/compact_context.py +0 -224
- package/hooks/mid_workflow_recall.py +0 -47
- package/hooks/post_edit_guard.py +0 -215
- package/hooks/session_context.py +0 -741
- package/skills/ultra-change/SKILL.md +0 -165
- package/skills/ultra-change/references/change-contract.md +0 -199
- package/skills/ultra-change/references/execution-grant.md +0 -109
- package/skills/ultra-change/references/primary-transfer.md +0 -273
- package/skills/ultra-change/scripts/validate_primary_transfer.cjs +0 -1928
- package/skills/ultra-delegate/SKILL.md +0 -195
- package/skills/ultra-delegate/patches/zcode-acp-0.1.0-zcode-0.16.5.patch +0 -184
- package/skills/ultra-delegate/references/delegation-contract.md +0 -138
- package/skills/ultra-delegate/scripts/acp-conformance.cjs +0 -287
- package/skills/ultra-delegate/scripts/acp-driver.cjs +0 -762
- package/skills/ultra-delegate/scripts/agent-execution-driver.cjs +0 -320
- package/skills/ultra-delegate/scripts/cli-driver.cjs +0 -61
- package/skills/ultra-delegate/scripts/delegate-profiles/kimi-read-only.md +0 -15
- package/skills/ultra-delegate/scripts/delegate-profiles/kimi-write.md +0 -17
- package/skills/ultra-delegate/scripts/delegate-worker.cjs +0 -328
- package/skills/ultra-delegate/scripts/delegate.cjs +0 -690
- package/skills/ultra-delegate/scripts/delegate_wait.py +0 -86
- package/skills/ultra-delegate/scripts/host-profile.cjs +0 -267
- package/skills/ultra-deliver/SKILL.md +0 -194
- package/skills/ultra-deliver/references/baseline-reconciliation.md +0 -41
- package/skills/ultra-dev/SKILL.md +0 -265
- package/skills/ultra-dev/references/debugging.md +0 -22
- package/skills/ultra-domain-modeling/SKILL.md +0 -79
- package/skills/ultra-grilling/SKILL.md +0 -121
- package/skills/ultra-grilling/references/reframing.md +0 -76
- package/skills/ultra-init/SKILL.md +0 -143
- package/skills/ultra-init/references/brownfield-adoption.md +0 -32
- package/skills/ultra-init/scripts/init_project.cjs +0 -1031
- package/skills/ultra-plan/SKILL.md +0 -160
- package/skills/ultra-plan/references/task-evidence-v2.md +0 -300
- package/skills/ultra-plan/scripts/validate_task_evidence.cjs +0 -859
- package/skills/ultra-research/SKILL.md +0 -167
- package/skills/ultra-research/references/00-problem-validation.md +0 -36
- package/skills/ultra-research/references/01-opportunity-discovery.md +0 -33
- package/skills/ultra-research/references/02-market-assessment.md +0 -31
- package/skills/ultra-research/references/03-alternatives.md +0 -31
- package/skills/ultra-research/references/04-product-strategy.md +0 -41
- package/skills/ultra-research/references/05-assumptions-validation.md +0 -31
- package/skills/ultra-research/references/10-user-personas.md +0 -30
- package/skills/ultra-research/references/11-user-scenarios.md +0 -28
- package/skills/ultra-research/references/20-user-stories.md +0 -31
- package/skills/ultra-research/references/21-features-scope.md +0 -38
- package/skills/ultra-research/references/22-success-metrics.md +0 -33
- package/skills/ultra-research/references/30-architecture-context.md +0 -30
- package/skills/ultra-research/references/31-solution-strategy.md +0 -28
- package/skills/ultra-research/references/32-building-blocks.md +0 -28
- package/skills/ultra-research/references/40-deployment.md +0 -29
- package/skills/ultra-research/references/41-quality-risks.md +0 -28
- package/skills/ultra-research/references/99-synthesis.md +0 -59
- package/skills/ultra-research/references/north-star-v2.md +0 -168
- package/skills/ultra-research/references/wayfinding.md +0 -50
- package/skills/ultra-research/scripts/validate_north_star.cjs +0 -1174
- package/skills/ultra-review/SKILL.md +0 -275
- package/skills/ultra-review/references/adversarial-evaluation.md +0 -31
- package/skills/ultra-review/references/code.md +0 -17
- package/skills/ultra-review/references/comments.md +0 -12
- package/skills/ultra-review/references/design.md +0 -12
- package/skills/ultra-review/references/errors.md +0 -13
- package/skills/ultra-review/references/review-modes.md +0 -29
- package/skills/ultra-review/references/spec.md +0 -18
- package/skills/ultra-review/references/tests.md +0 -12
- package/skills/ultra-review/references/unified-schema.md +0 -284
- package/skills/ultra-review/references/worker-packet.md +0 -183
- package/skills/ultra-review/scripts/review_wait.py +0 -2943
- package/skills/ultra-status/SKILL.md +0 -209
- package/skills/ultra-status/references/route-contract.md +0 -100
- package/skills/ultra-tdd/SKILL.md +0 -91
- package/skills/ultra-tdd/references/templates/README.md +0 -20
- package/skills/ultra-tdd/references/templates/feature-flag-default-audit.sh +0 -79
- package/skills/ultra-tdd/references/templates/persistence-real.ts +0 -78
- package/skills/ultra-tdd/references/templates/testcontainer-postgres.py +0 -78
- package/skills/ultra-tdd/references/templates/testcontainer-postgres.ts +0 -73
- package/skills/ultra-tdd/references/templates/vertical-slice.ts +0 -66
- package/skills/ultra-tdd/references/test-execution.md +0 -23
- package/skills/ultra-test/SKILL.md +0 -244
- package/skills/ultra-test/references/export-syntax.md +0 -18
- package/skills/ultra-test/scripts/validate_review_transport.cjs +0 -549
- package/skills/ultra-test/scripts/worktree_digest.cjs +0 -576
- package/skills/ultra-think/SKILL.md +0 -56
- package/skills/ultra-think/references/autonomy-boundary.md +0 -48
- package/skills/ultra-think/references/interaction-boundary.md +0 -42
package/README.md
CHANGED
|
@@ -1,485 +1,74 @@
|
|
|
1
|
-
# Ultra Builder Pro
|
|
1
|
+
# Ultra Builder Pro 6
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Intent is source code, the plan is compiled, progress is computed, and a change is a diff.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
authority, explicit session-local or durable work-package grants, exclusive
|
|
9
|
-
verified handover between Agents, typed evidence with recovery, and review that
|
|
10
|
-
terminates within an owner-visible budget. It keeps product
|
|
11
|
-
intent, specifications, task contracts, evidence, decisions, and recovery notes
|
|
12
|
-
in the repository, so a different session or host can continue by reading files
|
|
13
|
-
and Git.
|
|
14
|
-
|
|
15
|
-
The host model remains the engineer. Ultra supplies reusable methods and checkable
|
|
16
|
-
artifacts; it does not replace reasoning with a workflow engine. Agent topology —
|
|
17
|
-
one Agent or several, which providers — is the owner's choice at every stage; the
|
|
18
|
-
default is the current Agent continuing alone, and handing the work package's
|
|
19
|
-
writing authority to a different Agent requires an explicit verified transfer
|
|
20
|
-
(OFFER → ACK → RESULT over the repository files and Git).
|
|
21
|
-
|
|
22
|
-
## Ultra Builder Pro 5.0
|
|
23
|
-
|
|
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:
|
|
29
|
-
|
|
30
|
-
- establish the owner-accepted North Star before Research becomes a plan or code;
|
|
31
|
-
- let the owner choose one Agent or several, and the provider, at every stage;
|
|
32
|
-
- carry canonical intent, decisions, tasks, evidence, and recovery through files
|
|
33
|
-
under `.ultra/` plus Git so another session or host can resume from the same facts;
|
|
34
|
-
- automate mechanically verifiable authority, permissions, external effects,
|
|
35
|
-
evidence, physical limits, and recovery while leaving meaning and strategy to the
|
|
36
|
-
model and owner; and
|
|
37
|
-
- bound Review and repair so delivery converges instead of turning every observation
|
|
38
|
-
into another automatic implementation loop.
|
|
39
|
-
|
|
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.
|
|
55
|
-
|
|
56
|
-
## Why it exists
|
|
57
|
-
|
|
58
|
-
Long agentic changes tend to fail in four repeatable ways:
|
|
59
|
-
|
|
60
|
-
- intent is paraphrased until the delivered product no longer matches the owner;
|
|
61
|
-
- a locally green layer is mistaken for a working end-to-end path;
|
|
62
|
-
- context loss turns an interrupted task into archaeology;
|
|
63
|
-
- safety mechanisms start deciding product meaning and trap the primary workflow.
|
|
64
|
-
|
|
65
|
-
Ultra addresses those failures with short owner-readable files, progressive Skills,
|
|
66
|
-
real verification evidence, and Git recovery. There is no database, MCP server,
|
|
67
|
-
semantic state machine, generated prompt projection, or background daemon.
|
|
68
|
-
|
|
69
|
-
## Product surface
|
|
70
|
-
|
|
71
|
-
The package installs exactly fourteen Skills in three roles.
|
|
72
|
-
|
|
73
|
-
### Owner-invoked workflows
|
|
74
|
-
|
|
75
|
-
| Skill | Outcome |
|
|
76
|
-
|---|---|
|
|
77
|
-
| `ultra-init` | Establish the project skeleton and raw Project Brief |
|
|
78
|
-
| `ultra-research` | Establish an accepted North Star and evidence-backed baseline |
|
|
79
|
-
| `ultra-change` | Reconcile one requested delta against the accepted baseline |
|
|
80
|
-
| `ultra-plan` | Write tracer-bullet tasks, contexts, dependencies, and seams |
|
|
81
|
-
| `ultra-dev` | Implement one task through red/green development and six evidence dimensions |
|
|
82
|
-
| `ultra-test` | Audit whole-system wiring, E2E behavior, performance, and security |
|
|
83
|
-
| `ultra-deliver` | Reconcile, review, document, and archive a completed Change |
|
|
84
|
-
| `ultra-delegate` | Run bounded task work, Research evidence, or aggregate review through another supported CLI |
|
|
85
|
-
|
|
86
|
-
### Model-invoked disciplines
|
|
87
|
-
|
|
88
|
-
| Skill | Reused method |
|
|
89
|
-
|---|---|
|
|
90
|
-
| `ultra-grilling` | Draw out incomplete owner intent one material question at a time |
|
|
91
|
-
| `ultra-domain-modeling` | Maintain precise ubiquitous language in `CONTEXT.md` |
|
|
92
|
-
| `ultra-tdd` | Prove one confirmed seam red, then green |
|
|
93
|
-
| `ultra-review` | Run six independent review lenses and synthesize findings |
|
|
94
|
-
| `ultra-think` | Stress-test consequential decisions and record durable results |
|
|
95
|
-
|
|
96
|
-
`ultra-status` is the single router. It infers the current route from project files,
|
|
97
|
-
Git, and installation health without mutating the workflow.
|
|
98
|
-
|
|
99
|
-
Public workflows are explicitly selected by the owner by default. Outside a live,
|
|
100
|
-
owner-activated execution grant (session-local, or a durable work-package grant), one public workflow can recommend the
|
|
101
|
-
next one but does not launch it. Inside that grant, the host model may select only
|
|
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.
|
|
109
|
-
Model-invoked disciplines remain available to the host model and are not separate user
|
|
110
|
-
routes. The model selects one when the active task presents its trigger: incomplete
|
|
111
|
-
intent uses grilling, competing terms use domain modeling, an accepted seam uses TDD,
|
|
112
|
-
review-ready evidence uses review, and a consequential unresolved decision uses think.
|
|
113
|
-
A host with native bounded subagents may parallelize review lenses; another host runs
|
|
114
|
-
the same lens assets sequentially.
|
|
115
|
-
|
|
116
|
-
Inside `ultra-research`, the first six references are six semantic lenses, not six
|
|
117
|
-
extra Skills: problem validation, opportunity discovery, market assessment,
|
|
118
|
-
alternatives, product strategy, and assumptions validation. `wayfinding.md` chooses
|
|
119
|
-
the smallest dependency-correct path through those and the later evidence lenses.
|
|
120
|
-
Grilling still owns how to ask one missing question, Think owns one consequential
|
|
121
|
-
trade-off, and Domain Modeling owns vocabulary; Research owns the overall question
|
|
122
|
-
map, evidence convergence, owner checkpoints, and baseline promotion.
|
|
123
|
-
|
|
124
|
-
### What happened to the original Agents
|
|
125
|
-
|
|
126
|
-
Version 5.0.1 does not install a custom `agents/` projection. The old review workers became the
|
|
127
|
-
six focused files under `ultra-review/references/`; review coordination and synthesis
|
|
128
|
-
belong to the parent `ultra-review` Skill. The old debugger procedure lives under
|
|
129
|
-
`ultra-dev/references/debugging.md`, and test execution lives under
|
|
130
|
-
`ultra-tdd/references/test-execution.md`. These are assets of their Skills and therefore
|
|
131
|
-
travel to all six hosts. They preserve a bounded role without pretending that every
|
|
132
|
-
host exposes the same custom-agent API.
|
|
133
|
-
|
|
134
|
-
## Project authority
|
|
135
|
-
|
|
136
|
-
A project after its first accepted Research baseline uses this shape. Immediately after
|
|
137
|
-
Init, `CONTEXT.md` does not exist yet and the North Star/specification files are empty
|
|
138
|
-
skeletons.
|
|
139
|
-
|
|
140
|
-
```text
|
|
141
|
-
CONTEXT.md
|
|
142
|
-
.ultra/
|
|
143
|
-
├── .gitignore # ignores only derived Ultra paths
|
|
144
|
-
├── project-brief.md
|
|
145
|
-
├── north-star.md
|
|
146
|
-
├── tasks.json
|
|
147
|
-
├── test-report.json
|
|
148
|
-
├── specs/
|
|
149
|
-
│ ├── product.md
|
|
150
|
-
│ ├── architecture.md
|
|
151
|
-
│ ├── discovery.md
|
|
152
|
-
│ └── research-distillate.md
|
|
153
|
-
├── changes/
|
|
154
|
-
│ ├── active/<change-id>/{intent.md,delivery.md}
|
|
155
|
-
│ ├── archive/<change-id>/{intent.md,delivery.md}
|
|
156
|
-
│ └── abandoned/<change-id>/intent.md # includes exact Abandonment closure
|
|
157
|
-
├── contexts/task-<task-id>.md
|
|
158
|
-
├── decisions/<decision-id>.md
|
|
159
|
-
├── evidence/<task-id>/...
|
|
160
|
-
└── research/<run-id>/{brief.md,<step-id>.md}
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
The optional `brief.md` is derived navigation; the selected step reports are cited
|
|
164
|
-
evidence, and promoted semantic facts live in the other canonical files. Git provides
|
|
165
|
-
history, comparison, rollback, and archive moves. The following additional paths are
|
|
166
|
-
derived:
|
|
167
|
-
|
|
168
|
-
```text
|
|
169
|
-
.ultra/.runtime/
|
|
170
|
-
.ultra/progress/
|
|
171
|
-
.ultra/reviews/
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
`.ultra/.runtime/` and `.ultra/progress/` can be deleted or rebuilt from current
|
|
175
|
-
authority. Retain the exact current strict review session until both Test and Deliver
|
|
176
|
-
have successfully consumed it; only then may that session be garbage-collected. If it
|
|
177
|
-
is lost before both consumers finish, run a fresh Review and Test and never reconstruct
|
|
178
|
-
the old receipt.
|
|
179
|
-
|
|
180
|
-
See [Artifact Authority](docs/ARTIFACT-AUTHORITY.md) for writer, reader, promotion,
|
|
181
|
-
staleness, and recovery rules.
|
|
182
|
-
|
|
183
|
-
### Which route writes which document
|
|
184
|
-
|
|
185
|
-
| Route | Canonical write | Who consumes it next |
|
|
186
|
-
|---|---|---|
|
|
187
|
-
| `ultra-init` | raw `project-brief.md`, empty North Star and specification skeletons, and empty task/test ledgers | research, status, and the pre-baseline session Hook fallback |
|
|
188
|
-
| `ultra-research` | accepted North Star, first domain baseline, selected cited reports, reconciled specifications, and distillate | change, plan, and delivery |
|
|
189
|
-
| `ultra-change` | one active `intent.md` with stable `change_id`, Research Disposition, and only the accepted baseline sections touched by that delta; or an exact Abandonment closure before an owner-authorized move | active: research through delivery; abandoned: future Change history and status |
|
|
190
|
-
| `ultra-plan` | append-only `tasks.json` rows for the active `change_id`, one context per task, and Planning Posture in the active intent | dev and every resume path |
|
|
191
|
-
| `ultra-dev` | source/tests, typed task evidence, ledger-only task status, Completion, Task Review, and Resume Note | review, test, status, delivery |
|
|
192
|
-
| `ultra-test` | the one current `test-report.json` bound to Change id, current task ids, intent digest, HEAD, and product-worktree digest | status and delivery |
|
|
193
|
-
| `ultra-deliver` | first reconciled specs/docs, then after a fresh Test snapshot one `delivery.md` and the archived Change directory | owner and future Change history |
|
|
194
|
-
| `ultra-status` | none | recommends the smallest explicit route from current files |
|
|
195
|
-
| `ultra-delegate` | derived runtime receipt plus an isolated worktree diff | primary host inspection and optional integration |
|
|
196
|
-
|
|
197
|
-
`ultra-domain-modeling` is the sole focused writer of `CONTEXT.md`; `ultra-think` writes
|
|
198
|
-
a durable decision only after owner acceptance. Review packets, Hook progress, compact
|
|
199
|
-
snapshots, and delegation receipts are derived evidence, not extra semantic documents.
|
|
5
|
+
UBP gives Claude Code and Codex one `ultra` Skill, a deterministic `ubp` engine, and a
|
|
6
|
+
SessionStart hook. The model owns judgment; the engine computes progress from project files
|
|
7
|
+
and executable checks. Node.js 22 or newer and Git are required.
|
|
200
8
|
|
|
201
9
|
## Install
|
|
202
10
|
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
# Global installation
|
|
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
|
|
215
|
-
|
|
216
|
-
# All supported hosts
|
|
217
|
-
npx ultra-builder-pro-cli@5.0.1 --all --global
|
|
218
|
-
```
|
|
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
|
|
11
|
+
```sh
|
|
12
|
+
npm install -g ultra-builder-pro-cli@6.0.0
|
|
13
|
+
ubp --claude --global
|
|
14
|
+
ubp --codex --global
|
|
15
|
+
# Or install both:
|
|
16
|
+
ubp --all --global
|
|
231
17
|
```
|
|
232
18
|
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
`
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
`
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
`--
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
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
|
-
|
|
295
|
-
1. Select `ultra-init` once. It writes the skeleton, preserves the owner's raw one-line
|
|
296
|
-
request and broad outline in the Project Brief, initializes Git when needed, and
|
|
297
|
-
stops before product research.
|
|
298
|
-
2. Select `ultra-research` to turn that brief into the first accepted North Star,
|
|
299
|
-
shared vocabulary, and evidence-backed product and architecture baseline. For an
|
|
300
|
-
unclear multi-lens question it first writes a derived Wayfinding brief; for one
|
|
301
|
-
bounded evidence gap it skips that extra file.
|
|
302
|
-
3. Select `ultra-change` for a requested delta. It reconciles only the baseline sections
|
|
303
|
-
the delta touches before planning; it does not rebuild the project baseline. Its
|
|
304
|
-
Research Disposition either cites sufficient evidence or names the bounded question
|
|
305
|
-
and exit evidence that must return through Research. A micro edit that makes no
|
|
306
|
-
specification sentence false stays outside Ultra; every accepted Change receives the
|
|
307
|
-
smallest Plan graph justified by its real seams, evidence, review, and recovery needs.
|
|
308
|
-
A profile never fixes task count. While that Change remains active, reconcile its
|
|
309
|
-
same stable id; never open a second active Change for a separate request.
|
|
310
|
-
4. Select `ultra-plan` to record public seams and produce resumable tracer-bullet tasks.
|
|
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.
|
|
314
|
-
5. Select `ultra-dev` for one task at a time. `.ultra/tasks.json` is the sole task-status
|
|
315
|
-
authority. Dev records typed v2 evidence and completes task review while the row is
|
|
316
|
-
still `in_progress`; only after blocking findings and affected evidence are resolved
|
|
317
|
-
does it write `completed`, add Completion, and rewrite the Resume Note.
|
|
318
|
-
6. Select `ultra-test` once tasks for the active Change are completed with current v2
|
|
319
|
-
evidence and retained task-review provenance. Historical ledger rows and legacy
|
|
320
|
-
context Status fields do not enter this audit. Local green tests do not substitute
|
|
321
|
-
for wiring and E2E proof.
|
|
322
|
-
7. Select `ultra-deliver` to run aggregate review and reconcile documentation. If that
|
|
323
|
-
changes product or semantic files, rerun Test; re-enter Deliver on the fresh snapshot
|
|
324
|
-
to write delivery metadata and archive the stable Change id. Commit, push, tag,
|
|
325
|
-
publication, and deployment remain separately authorized effects.
|
|
326
|
-
|
|
327
|
-
For one accepted Change, the owner may activate its exact `Execution Grant` in either
|
|
328
|
-
mode. A `session-local` grant lives only in the current conversation: when that
|
|
329
|
-
activation is lost — a fresh session, another host, or compaction — the work stops and
|
|
330
|
-
waits for a new owner activation. A `durable work-package` grant lets a fresh Agent or
|
|
331
|
-
host continue one exact work package, but only after the Agent stably verifies the
|
|
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
|
|
336
|
-
or package posture, and archiving always require a current explicit owner invocation,
|
|
337
|
-
as do commit, push, publication, deployment, installation, and every other external
|
|
338
|
-
effect.
|
|
339
|
-
|
|
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.
|
|
349
|
-
|
|
350
|
-
## Three independent integration defences
|
|
351
|
-
|
|
352
|
-
The workflow does not treat “tests pass” as an end-to-end verdict.
|
|
353
|
-
|
|
354
|
-
- `ultra-plan` rejects horizontal feature slicing and confirms observable seams.
|
|
355
|
-
- `ultra-dev` records tests, persistence, feature flags, vertical execution, and spec
|
|
356
|
-
trace as six separate observations.
|
|
357
|
-
- `ultra-test` searches changed exports for real non-test consumers and runs the
|
|
358
|
-
smallest primary flow through its boundary.
|
|
359
|
-
|
|
360
|
-
Each defence can report a defect independently. The reports are sensors, not semantic
|
|
361
|
-
gates; the model and owner decide the response without erasing evidence.
|
|
362
|
-
|
|
363
|
-
## Hooks
|
|
364
|
-
|
|
365
|
-
Five optional hooks accelerate file reading and protect a narrow effect boundary:
|
|
366
|
-
|
|
367
|
-
| Hook | Behavior |
|
|
368
|
-
|---|---|
|
|
369
|
-
| `session_context.py` | Inject the accepted North Star, or the Project Brief fallback before Research, plus current acceptance |
|
|
370
|
-
| `mid_workflow_recall.py` | Restate acceptance before relevant source operations |
|
|
371
|
-
| `compact_context.py` | Save and restore a disposable Git/file snapshot |
|
|
372
|
-
| `post_edit_guard.py` | Record mechanical evidence observations after edits |
|
|
373
|
-
| `block_dangerous_commands.py` | Advise on additive protected-branch publication; deny history rewrites and named destructive shell effects until the exact command is authorized |
|
|
374
|
-
|
|
375
|
-
All five hooks exit silently when `.ultra/` is absent. Details are in
|
|
376
|
-
[Plugin Isolation](docs/PLUGIN-ISOLATION-CONTRACT.md).
|
|
377
|
-
|
|
378
|
-
## Delegation
|
|
379
|
-
|
|
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;
|
|
391
|
-
declared roots select bounded write mode. The model returns one schema-constrained final
|
|
392
|
-
response; the launcher extracts it from native structured output, validates the actual
|
|
393
|
-
Git diff, and atomically publishes a terminal `finished`, `blocked`, or `failed` result
|
|
394
|
-
beside the instruction. The digest-bound packet is embedded in the worker prompt, so a
|
|
395
|
-
strict host need not read instruction files outside its isolated worktree.
|
|
396
|
-
|
|
397
|
-
```bash
|
|
398
|
-
node <loaded-ultra-delegate-skill-dir>/scripts/delegate.cjs run --to codex \
|
|
399
|
-
--instruction .ultra/.runtime/delegations/D-01/instruction.md \
|
|
400
|
-
--permission .ultra/.runtime/delegations/D-01/permission.json \
|
|
401
|
-
--worktree .ultra/.runtime/worktrees/D-01
|
|
402
|
-
```
|
|
403
|
-
|
|
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
|
|
409
|
-
authority; writable roots remain inside the worktree, and its permission file must
|
|
410
|
-
declare zero external effects without widening the host sandbox.
|
|
411
|
-
The immutable instruction names task execution/continuation, scoped Research evidence,
|
|
412
|
-
or aggregate Change review/verification. The latter two may be read-only and do not
|
|
413
|
-
require a task row, keeping pre-Plan Research and post-task cross-family review
|
|
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.
|
|
421
|
-
|
|
422
|
-
## Host support
|
|
423
|
-
|
|
424
|
-
| Host | Skills | Hooks | Managed lifecycle |
|
|
425
|
-
|---|---:|---:|---|
|
|
426
|
-
| Claude Code | 14 | 5 direct | install / doctor / update / uninstall |
|
|
427
|
-
| Codex | 14 + native metadata | 5 through wire adapter | plugin + personal marketplace |
|
|
428
|
-
| OpenCode | 14 | 5 through native JS plugin | bundle + skill directories |
|
|
429
|
-
| Kimi Code | 14 | 5 through wire adapter | managed plugin registry |
|
|
430
|
-
| Grok Build | 14 | 5 through wire adapter | native plugin registration when available |
|
|
431
|
-
| ZCode | 14 | 5 through wire adapter | inline plugin + local marketplace + reversible config registration |
|
|
432
|
-
|
|
433
|
-
See [Runtime Compatibility](docs/RUNTIME-COMPAT-MATRIX.md) for exact paths and host
|
|
434
|
-
limitations.
|
|
435
|
-
|
|
436
|
-
## Development
|
|
437
|
-
|
|
438
|
-
```bash
|
|
439
|
-
# Node contracts, package smoke, host adapters, delegation, and Skills
|
|
440
|
-
npm run test:node
|
|
441
|
-
|
|
442
|
-
# File-first hook behavior and wire wrappers
|
|
443
|
-
npm run test:hooks
|
|
444
|
-
|
|
445
|
-
# Complete release gate
|
|
446
|
-
npm run verify:release
|
|
447
|
-
|
|
448
|
-
# Inspect the exact publish artifact
|
|
449
|
-
npm pack --dry-run --json
|
|
450
|
-
```
|
|
451
|
-
|
|
452
|
-
Every changed Skill is also validated with the Codex Skill Creator validator. A changed
|
|
453
|
-
Codex manifest is validated against the Plugin Creator schema. No release effect is
|
|
454
|
-
implied by a green verification run, and validator success establishes structural
|
|
455
|
-
conformance rather than semantic acceptance.
|
|
456
|
-
|
|
457
|
-
## Documentation
|
|
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.
|
|
465
|
-
- [Current authority](.ultra/north-star.md) — this repository's accepted
|
|
466
|
-
North Star, revision `north-star-v2-r3`, is the canonical current authority;
|
|
467
|
-
`.ultra/tasks.json` and the stable Change under `.ultra/changes/active/` or
|
|
468
|
-
`.ultra/changes/archive/` record the current or delivered work frontier.
|
|
469
|
-
- Frozen design history (immutable accepted records, not live status):
|
|
470
|
-
[3.0 North Star R3](docs/ULTRA-BUILDER-PRO-3.0-NORTH-STAR-R3.zh-CN.md) —
|
|
471
|
-
the hash-bound accepted r3 design — and
|
|
472
|
-
[3.0 design](docs/ULTRA-BUILDER-PRO-3.0.zh-CN.md), superseded by r3.
|
|
473
|
-
- [Philosophy](docs/PHILOSOPHY.md)
|
|
474
|
-
- [Architecture](docs/ARCHITECTURE.md)
|
|
475
|
-
- [Artifact Authority](docs/ARTIFACT-AUTHORITY.md)
|
|
476
|
-
- [Workflow Lifecycle](docs/WORKFLOW-LIFECYCLE.md)
|
|
477
|
-
- [Skill Authoring](docs/SKILL-AUTHORING.md)
|
|
478
|
-
- [Plugin Isolation](docs/PLUGIN-ISOLATION-CONTRACT.md)
|
|
479
|
-
- [Runtime Compatibility](docs/RUNTIME-COMPAT-MATRIX.md)
|
|
480
|
-
- [Adversarial Review Evaluation](docs/evals/adversarial-review-2026-08-14.md)
|
|
481
|
-
- [ZCode Automation Evaluation](docs/evals/zcode-automation-2026-08-14.md)
|
|
482
|
-
|
|
483
|
-
## License
|
|
484
|
-
|
|
485
|
-
[MIT](LICENSE)
|
|
19
|
+
Use `--config-dir <dir>` for an isolated installation; `--all` gives each host a separate
|
|
20
|
+
subdirectory. Only Claude Code supports `--local`. Codex installs are user-scope only:
|
|
21
|
+
`--codex` defaults to user scope; `--codex --local` is rejected unless `--config-dir` isolates the
|
|
22
|
+
install.
|
|
23
|
+
Inspect an installation with `ubp --all --global --doctor --json`. Remove managed assets
|
|
24
|
+
with `ubp --all --global --uninstall`.
|
|
25
|
+
|
|
26
|
+
Each installed plugin carries the engine. Its Skill includes the absolute Node command to
|
|
27
|
+
use for every engine command, regardless of any `ubp` on PATH. No Python runtime is needed.
|
|
28
|
+
|
|
29
|
+
## First session
|
|
30
|
+
|
|
31
|
+
Open the project in Claude Code and invoke `/ultra` (full name `/ultra-builder-pro:ultra`);
|
|
32
|
+
in Codex invoke `$ultra-builder-pro:ultra`. Run `ubp status` to see the current state.
|
|
33
|
+
A project without `.ultra/spec.md` starts with an interview, then a specification, checks and a
|
|
34
|
+
milestone plan.
|
|
35
|
+
|
|
36
|
+
The SessionStart hook prints progress and a reminder to use `ultra` only when
|
|
37
|
+
`.ultra/spec.md` exists, and stays silent inside a drive's writer or reviewer (`UBP_DRIVE`). It does not start work or write project files.
|
|
38
|
+
|
|
39
|
+
Codex users review and trust the plugin hook once with `/hooks`; it is skipped until then.
|
|
40
|
+
Changed hook definitions need renewed trust. Without hook trust, the Skill's first step,
|
|
41
|
+
`ubp status`, still shows the progress line.
|
|
42
|
+
See [Codex hook trust](https://learn.chatgpt.com/docs/hooks).
|
|
43
|
+
|
|
44
|
+
## Commands
|
|
45
|
+
|
|
46
|
+
| Command | Purpose |
|
|
47
|
+
| --- | --- |
|
|
48
|
+
| `ubp status` | Compute progress and the next step |
|
|
49
|
+
| `ubp gate` | Validate the plan and record its baseline |
|
|
50
|
+
| `ubp check [ids]` | Run checks and record evidence |
|
|
51
|
+
| `ubp node done <id>` | Complete a node with green requirements |
|
|
52
|
+
| `ubp context <id>` | Compile a node brief |
|
|
53
|
+
| `ubp milestone close <id> --owner "words" --review <file>` | Close a reviewed milestone |
|
|
54
|
+
| `ubp approve <items> --owner "words"` | Record approval of reductions |
|
|
55
|
+
| `ubp retro` | Show repeated failure classes |
|
|
56
|
+
| `ubp merge <branch> --expect-head <sha>` | Verify and merge a worker branch |
|
|
57
|
+
| `ubp drive --writer <cmd> [--reviewer <cmd>]` | Run nodes unattended until the next Owner touch |
|
|
58
|
+
|
|
59
|
+
Engine commands accept `--root <dir>` and `--json`.
|
|
60
|
+
See [file formats and exit codes](engine/FORMATS.md)
|
|
61
|
+
and the [method](skills/ultra/SKILL.md) for required evidence and approval boundaries.
|
|
62
|
+
|
|
63
|
+
## Coming from 5.x
|
|
64
|
+
|
|
65
|
+
Version 6 replaces the fourteen `ultra-*` Skills with one method and replaces the five
|
|
66
|
+
Python hooks with one advisory Node hook. OpenCode, Kimi, Grok and ZCode adapters,
|
|
67
|
+
`run`, `delegate`, ACP/Pi execution, durable grants, wake-up machinery and the old project
|
|
68
|
+
template are removed. These mechanisms competed for the next step; v6 derives it from the
|
|
69
|
+
engine's state. Existing 5.x project records are not automatically migrated.
|
|
70
|
+
|
|
71
|
+
Keep 5.0.1, the last published 5.x, in a separate configuration directory if you still
|
|
72
|
+
need those workflows (5.0.2 was never published).
|
|
73
|
+
The old source remains in Git history. See [changes](CHANGELOG.md) and the
|
|
74
|
+
[plugin boundary](docs/PLUGIN-ISOLATION-CONTRACT.md).
|