ultra-builder-pro-cli 0.9.0 → 0.11.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 +92 -1
- package/README.md +11 -6
- package/adapters/_shared/codex-assets.cjs +23 -331
- package/adapters/_shared/handbook.cjs +2 -0
- package/adapters/_shared/runtime-assets.cjs +25 -0
- package/adapters/_shared/tests/handbook.test.cjs +3 -0
- package/adapters/_shared/tests/runtime-assets.test.cjs +12 -4
- package/adapters/claude.js +28 -5
- package/adapters/kimi.js +15 -138
- package/adapters/opencode.js +59 -63
- package/adapters/tests/claude.test.cjs +26 -9
- package/adapters/tests/codex.test.cjs +23 -9
- package/adapters/tests/kimi.test.cjs +15 -11
- package/adapters/tests/opencode.test.cjs +57 -10
- package/agents/code-reviewer.md +24 -85
- package/agents/debugger.md +30 -132
- package/agents/review-code.md +24 -104
- package/agents/review-comments.md +20 -83
- package/agents/review-coordinator.md +40 -137
- package/agents/review-design.md +21 -118
- package/agents/review-errors.md +22 -70
- package/agents/review-spec.md +36 -0
- package/agents/review-tests.md +20 -76
- package/agents/tdd-runner.md +26 -84
- package/commands/learn.md +5 -36
- package/commands/ultra-change.md +5 -43
- package/commands/ultra-deliver.md +4 -46
- package/commands/ultra-dev.md +4 -48
- package/commands/ultra-doctor.md +4 -30
- package/commands/ultra-init.md +5 -47
- package/commands/ultra-plan.md +5 -48
- package/commands/ultra-research.md +5 -54
- package/commands/ultra-status.md +5 -44
- package/commands/ultra-test.md +5 -45
- package/commands/ultra-think.md +5 -40
- package/docs/AGENT-CONTEXT.md +34 -12
- package/docs/ARCHITECTURE.md +31 -5
- package/docs/PLAN.zh-CN.md +3 -2
- package/docs/ROADMAP.md +5 -4
- package/docs/RUNTIME-COMPAT-MATRIX.md +7 -5
- package/docs/SKILL-AUTHORING.md +75 -0
- package/docs/USER-HANDBOOK-CONTRACT.md +9 -2
- package/hooks/README.md +6 -4
- package/hooks/active_task_context.py +14 -0
- package/hooks/context_spine.py +218 -0
- package/hooks/health_check.py +1 -1
- package/hooks/workflow_context.py +16 -123
- package/hooks/workflow_resume.py +21 -0
- package/mcp-server/lib/change-workflow.cjs +89 -11
- package/mcp-server/lib/change-workflow.test.cjs +202 -7
- package/mcp-server/lib/context-spine.cjs +331 -0
- package/mcp-server/lib/context-spine.test.cjs +73 -0
- package/mcp-server/lib/spec-learning.cjs +191 -0
- package/mcp-server/lib/spec-learning.test.cjs +62 -0
- package/mcp-server/lib/state-db.cjs +72 -10
- package/mcp-server/lib/state-db.test.cjs +7 -2
- package/mcp-server/server.cjs +31 -1
- package/mcp-server/tests/db-ops.test.cjs +3 -3
- package/mcp-server/tests/server-contract.test.cjs +74 -0
- package/mcp-server/tests/state-db.test.cjs +20 -3
- package/package.json +3 -2
- package/skills/cc-collab/SKILL.md +16 -18
- package/skills/code-review-expert/SKILL.md +39 -114
- package/skills/code-review-expert/references/correctness-reliability.md +30 -0
- package/skills/code-review-expert/references/design-boundaries.md +26 -0
- package/skills/code-review-expert/references/removal-plan.md +17 -45
- package/skills/codex-collab/SKILL.md +23 -28
- package/skills/codex-collab/evals/evals.json +18 -23
- package/skills/integration-rules/SKILL.md +28 -67
- package/skills/learn/SKILL.md +46 -105
- package/skills/security-rules/SKILL.md +34 -56
- package/skills/testing-rules/SKILL.md +28 -52
- package/skills/ultra-change/SKILL.md +61 -145
- package/skills/ultra-deliver/SKILL.md +63 -229
- package/skills/ultra-dev/SKILL.md +46 -338
- package/skills/ultra-doctor/SKILL.md +39 -71
- package/skills/ultra-init/SKILL.md +59 -139
- package/skills/ultra-plan/SKILL.md +50 -310
- package/skills/ultra-research/SKILL.md +59 -152
- package/skills/ultra-research/references/architecture.md +38 -0
- package/skills/ultra-research/references/problem-product.md +39 -0
- package/skills/ultra-research/references/quality-delivery.md +34 -0
- package/skills/ultra-research/references/synthesis.md +38 -0
- package/skills/ultra-research/references/users-scope.md +40 -0
- package/skills/ultra-review/SKILL.md +55 -427
- package/skills/ultra-review/references/unified-schema.md +76 -101
- package/skills/ultra-review/scripts/review_wait.py +242 -77
- package/skills/ultra-status/SKILL.md +38 -173
- package/skills/ultra-test/SKILL.md +41 -195
- package/skills/ultra-think/SKILL.md +43 -101
- package/skills/ultra-verify/SKILL.md +44 -84
- package/skills/ultra-verify/evals/evals.json +24 -27
- package/spec/cli-protocol.md +3 -0
- package/spec/mcp-tools.yaml +133 -4
- package/spec/schemas/command-manifest.schema.json +7 -25
- package/spec/schemas/skill-manifest.schema.json +9 -79
- package/spec/schemas/state-db.sql +31 -0
- package/skills/code-review-expert/references/code-quality-checklist.md +0 -112
- package/skills/code-review-expert/references/integration-checklist.md +0 -46
- package/skills/code-review-expert/references/security-checklist.md +0 -100
- package/skills/code-review-expert/references/solid-checklist.md +0 -65
- package/skills/ultra-research/steps/step-00-problem-validation.md +0 -154
- package/skills/ultra-research/steps/step-01-opportunity-discovery.md +0 -172
- package/skills/ultra-research/steps/step-02-market-assessment.md +0 -195
- package/skills/ultra-research/steps/step-03-competitive-landscape.md +0 -197
- package/skills/ultra-research/steps/step-04-product-strategy.md +0 -196
- package/skills/ultra-research/steps/step-05-assumptions-validation.md +0 -234
- package/skills/ultra-research/steps/step-10-user-personas.md +0 -169
- package/skills/ultra-research/steps/step-11-user-scenarios.md +0 -181
- package/skills/ultra-research/steps/step-20-user-stories.md +0 -156
- package/skills/ultra-research/steps/step-21-features-scope.md +0 -157
- package/skills/ultra-research/steps/step-22-success-metrics.md +0 -195
- package/skills/ultra-research/steps/step-30-architecture-context.md +0 -154
- package/skills/ultra-research/steps/step-31-solution-strategy.md +0 -172
- package/skills/ultra-research/steps/step-32-building-blocks.md +0 -188
- package/skills/ultra-research/steps/step-40-deployment.md +0 -123
- package/skills/ultra-research/steps/step-41-quality-risks.md +0 -135
- package/skills/ultra-research/steps/step-99-synthesis.md +0 -188
- package/skills/ultra-review/scripts/review_verdict_update.py +0 -99
|
@@ -1,239 +1,73 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ultra-deliver
|
|
3
|
-
description:
|
|
4
|
-
runtime: all
|
|
5
|
-
mcp_tools_required:
|
|
6
|
-
- change.list
|
|
7
|
-
- change.get
|
|
8
|
-
- change.context
|
|
9
|
-
- change.converge
|
|
10
|
-
- change.archive
|
|
11
|
-
cli_fallback: "direct user interaction"
|
|
3
|
+
description: Converge verified implementation, specification learning, review evidence, and release artifacts into a recoverable baseline. Use when an initial baseline or active change has current passing evidence and is ready to archive or release.
|
|
12
4
|
---
|
|
13
5
|
|
|
14
|
-
#
|
|
6
|
+
# Converge and deliver
|
|
15
7
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
deterministic closure gate; `.ultra/delivery-report.json` is the release report.
|
|
19
|
-
Change lifecycle writes go through MCP only.
|
|
20
|
-
|
|
21
|
-
## Prerequisites (all validations are blocking)
|
|
8
|
+
Deliver one baseline or continuous change. Change lifecycle writes use MCP; test,
|
|
9
|
+
review, and delivery reports are evidence artifacts.
|
|
22
10
|
|
|
23
|
-
|
|
11
|
+
## Bind current evidence
|
|
24
12
|
|
|
25
|
-
Call `change.list`
|
|
13
|
+
1. Call `change.list` and bind exactly one relevant change, or a null change id for an
|
|
14
|
+
initial baseline.
|
|
15
|
+
2. Call `change.breadcrumb`. Block on stale context, incomplete linked tasks, or
|
|
16
|
+
unresolved readiness.
|
|
17
|
+
3. Require a passing test report for the current full HEAD and at least one declared
|
|
18
|
+
public seam.
|
|
19
|
+
4. Require current independent `spec_fidelity` and `engineering_standards` review
|
|
20
|
+
verdicts. Evidence from another checkout, commit, task set, or change is invalid.
|
|
26
21
|
|
|
27
|
-
|
|
28
|
-
- More than one → require an explicit id; never guess which change to archive.
|
|
29
|
-
- None → allow initial-baseline delivery, but record `change_id: null`.
|
|
30
|
-
- Active/blocked change → its linked tasks must all be completed and its
|
|
31
|
-
`test-report.json.change_id` must match.
|
|
32
|
-
- Ready change → do not rerun convergence blindly; verify its existing
|
|
33
|
-
verification artifact still matches current HEAD before archive.
|
|
34
|
-
|
|
35
|
-
### Validation 1 — `/ultra-test` passed
|
|
36
|
-
|
|
37
|
-
Read `.ultra/test-report.json`:
|
|
38
|
-
- File must exist → else: "Run `/ultra-test` first" → **EXIT**
|
|
39
|
-
- `passed === true` → else: show `blocking_issues`, **EXIT**
|
|
40
|
-
- `git_commit === current HEAD` → else: "Code changed since last test;
|
|
41
|
-
re-run `/ultra-test`" → **EXIT**
|
|
22
|
+
## Reconcile the baseline
|
|
42
23
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
`git status --porcelain` must be empty. If dirty, ask through the current
|
|
46
|
-
Host's native user-interaction surface:
|
|
47
|
-
- A: "Auto-commit all changes" → `git add -A && git commit -m "chore: pre-delivery cleanup"`
|
|
48
|
-
- B: "Review changes first" → `git diff --stat` → re-ask
|
|
49
|
-
- C: "Block delivery" → **EXIT**
|
|
50
|
-
|
|
51
|
-
Commit failure (conflicts, hook rejection) → surface error and **EXIT**.
|
|
52
|
-
|
|
53
|
-
## Workflow
|
|
24
|
+
Call `change.get` for authoritative learning candidates.
|
|
54
25
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
3. `Cargo.toml` → `cargo build --release`
|
|
104
|
-
4. `go.mod` → `go build ./...`
|
|
105
|
-
5. Nothing detected → ask the user for the command
|
|
106
|
-
|
|
107
|
-
Non-zero exit → block with stderr captured, then ask the user:
|
|
108
|
-
- A: "Fix error and retry"
|
|
109
|
-
- B: "Abort delivery"
|
|
110
|
-
|
|
111
|
-
### Step 3 — Version + convergence + release
|
|
112
|
-
|
|
113
|
-
**3.1 Determine version bump**:
|
|
114
|
-
- `git log <last-tag>..HEAD --oneline` → analyze commit types
|
|
115
|
-
- `feat:` → minor, `BREAKING CHANGE:` / `!:` → major, else patch
|
|
116
|
-
- Display `<old> → <new>`; allow an explicit user override.
|
|
117
|
-
|
|
118
|
-
**3.2 Update version in project files**:
|
|
119
|
-
- `package.json`, `Cargo.toml`, `pyproject.toml`, etc.
|
|
120
|
-
- Verify: read the file; confirm new version.
|
|
121
|
-
|
|
122
|
-
**3.2a Re-run release evidence after docs/version edits**:
|
|
123
|
-
|
|
124
|
-
- Run the exact relevant test, type-check, build, and package commands again.
|
|
125
|
-
- Capture command, exit code, and result. Any non-zero exit blocks delivery.
|
|
126
|
-
- Do not reuse a test report whose `change_id` or pre-change HEAD belongs to a
|
|
127
|
-
different change as final evidence.
|
|
128
|
-
|
|
129
|
-
**3.3 Release commit**:
|
|
130
|
-
```bash
|
|
131
|
-
git add -A
|
|
132
|
-
git commit -m "chore(release): v<X.Y.Z>"
|
|
133
|
-
```
|
|
134
|
-
Verify with `git log -1 --oneline`.
|
|
135
|
-
|
|
136
|
-
**3.4 Recompile context and converge the change** (skip only for initial baseline):
|
|
137
|
-
|
|
138
|
-
For `active` or `blocked`, call `change.context` after the release commit so its
|
|
139
|
-
git head and task set are current. Then call `change.converge` with the exact
|
|
140
|
-
evidence required by kind:
|
|
141
|
-
|
|
142
|
-
- `quick`: diff, tests, spec;
|
|
143
|
-
- `standard` / `major`: diff, tests, spec, docs, review;
|
|
144
|
-
- `incident`: diagnosis, diff, tests. The diagnosis evidence must point to the
|
|
145
|
-
completed `diagnosis.md`; convergence separately validates all five required
|
|
146
|
-
debugging sections and cannot be satisfied by the evidence string alone.
|
|
147
|
-
|
|
148
|
-
Evidence must name concrete commands, artifacts, or file paths. If blockers are
|
|
149
|
-
returned, stop before tag/push and route to the owning workflow. Do not weaken
|
|
150
|
-
the change kind or mark failed evidence `not_applicable` merely to pass.
|
|
151
|
-
|
|
152
|
-
**3.5 Archive after baseline reconciliation**:
|
|
153
|
-
|
|
154
|
-
Call `change.archive` with the summary and either `baseline_updates` or the
|
|
155
|
-
explicit no-change reason. This moves the packet from `changes/active` to the
|
|
156
|
-
dated archive and records closure in state.db. Archive failure blocks release.
|
|
157
|
-
|
|
158
|
-
**3.6 Git tag**:
|
|
159
|
-
```bash
|
|
160
|
-
git tag v<X.Y.Z>
|
|
161
|
-
```
|
|
162
|
-
Verify with `git tag -l v<X.Y.Z>`.
|
|
163
|
-
|
|
164
|
-
**3.7 Push to remote**:
|
|
165
|
-
```bash
|
|
166
|
-
git push origin main # release commit
|
|
167
|
-
git push origin v<X.Y.Z> # version tag
|
|
168
|
-
```
|
|
169
|
-
Verify with `git ls-remote --tags origin | grep v<X.Y.Z>`.
|
|
170
|
-
|
|
171
|
-
**Release checklist**:
|
|
172
|
-
- [ ] Version determined and displayed
|
|
173
|
-
- [ ] Version file updated and verified
|
|
174
|
-
- [ ] Release commit created and verified
|
|
175
|
-
- [ ] Change context current, convergence ready, baseline reconciled, archive complete
|
|
176
|
-
- [ ] Git tag created and verified
|
|
177
|
-
- [ ] Commit and tag pushed and verified on remote
|
|
178
|
-
|
|
179
|
-
Any failure → stop immediately; do NOT continue; surface last-step error.
|
|
180
|
-
|
|
181
|
-
### Step 4 — Persist `.ultra/delivery-report.json`
|
|
182
|
-
|
|
183
|
-
```jsonc
|
|
184
|
-
{
|
|
185
|
-
"timestamp": "<ISO8601>",
|
|
186
|
-
"version": "<X.Y.Z>",
|
|
187
|
-
"git_tag": "v<X.Y.Z>",
|
|
188
|
-
"git_commit": "<HEAD SHA>",
|
|
189
|
-
"change_id": "<archived-change-id-or-null>",
|
|
190
|
-
"change_archive_path": "<path-or-null>",
|
|
191
|
-
"convergence_ready": true,
|
|
192
|
-
"baseline_updates": ["<project-relative-path>"],
|
|
193
|
-
"changelog_updated": true,
|
|
194
|
-
"technical_debt_refreshed": true,
|
|
195
|
-
"build_success": true,
|
|
196
|
-
"pushed": true
|
|
197
|
-
}
|
|
198
|
-
```
|
|
199
|
-
|
|
200
|
-
### Step 5 — Report
|
|
201
|
-
|
|
202
|
-
Print a tight release summary: change id/archive, baseline files reconciled,
|
|
203
|
-
tag, commit, exact verification commands, outstanding technical-debt count,
|
|
204
|
-
and next suggested action. After release, daily work starts with `/ultra-change`.
|
|
205
|
-
|
|
206
|
-
## Deliverables Checklist (final)
|
|
207
|
-
|
|
208
|
-
- [ ] `/ultra-test` passed (verified via test-report.json)
|
|
209
|
-
- [ ] Uncommitted changes handled
|
|
210
|
-
- [ ] CHANGELOG + technical-debt refreshed (README if API changed)
|
|
211
|
-
- [ ] Production build exit 0
|
|
212
|
-
- [ ] Continuous change converged and archived (when present)
|
|
213
|
-
- [ ] Version bumped, tagged, pushed
|
|
214
|
-
- [ ] delivery-report.json written
|
|
215
|
-
|
|
216
|
-
## MCP → CLI fallback matrix
|
|
217
|
-
|
|
218
|
-
| Purpose | MCP tool | CLI fallback |
|
|
219
|
-
|---------|----------|--------------|
|
|
220
|
-
| Resolve dirty-tree action | none | current Host's native user-interaction surface |
|
|
221
|
-
| Override version bump | none | current Host's native user-interaction surface |
|
|
222
|
-
| Resolve/bind change | `change.list` / `change.get` | none; fail closed |
|
|
223
|
-
| Refresh context | `change.context` | none; fail closed |
|
|
224
|
-
| Deterministic closure | `change.converge` / `change.archive` | none; fail closed |
|
|
225
|
-
|
|
226
|
-
## What this skill DOES NOT do
|
|
227
|
-
|
|
228
|
-
- Does NOT replace `/ultra-test`; it re-runs the exact release evidence after
|
|
229
|
-
documentation and version changes so the shipped commit is verified
|
|
230
|
-
- Does NOT publish to npm / crates.io / PyPI (Phase 9 handles distribution)
|
|
231
|
-
- Does NOT directly mutate state.db or external provider state
|
|
232
|
-
|
|
233
|
-
## Integration
|
|
234
|
-
|
|
235
|
-
| | |
|
|
236
|
-
|---|---|
|
|
237
|
-
| **Input** | bound change (if any), test/review artifacts, current repo |
|
|
238
|
-
| **Output** | archived change, reconciled baseline, delivery report, git tag + remote push |
|
|
239
|
-
| **Next** | deploy/announce; next daily change begins with `/ultra-change` |
|
|
26
|
+
- Resolve every proposed item as approved or rejected.
|
|
27
|
+
- Apply each approved item to its declared baseline target, verify the edit, then mark
|
|
28
|
+
it applied.
|
|
29
|
+
- Preserve rejection reasons as decision evidence.
|
|
30
|
+
- Confirm previously applied items remain represented in the target document.
|
|
31
|
+
|
|
32
|
+
Reconcile accepted delta content and documentation impact into baseline documents.
|
|
33
|
+
Record updated paths or a specific no-change reason. Unknown documentation impact,
|
|
34
|
+
unresolved placeholders, and behavior that exists only in the delta block convergence.
|
|
35
|
+
|
|
36
|
+
## Verify the release candidate
|
|
37
|
+
|
|
38
|
+
Use a clean, reviewed release commit. Show any remaining diff and obtain explicit
|
|
39
|
+
authorization before staging or committing. Never stage unrelated user changes.
|
|
40
|
+
|
|
41
|
+
Run the exact repository commands needed for focused regression, relevant full tests,
|
|
42
|
+
static checks, production build, package/install/doctor smoke when distributed, the
|
|
43
|
+
public seam, and rollback or recovery sanity. Any post-verification edit invalidates
|
|
44
|
+
the affected evidence.
|
|
45
|
+
|
|
46
|
+
Compile final change context at the release commit with the convergence gate. It must
|
|
47
|
+
be ready before calling `change.converge`.
|
|
48
|
+
|
|
49
|
+
## Converge and archive
|
|
50
|
+
|
|
51
|
+
Submit structured evidence for the reviewed diff and seam, test signals, baseline and
|
|
52
|
+
delta, documentation, both independent review axes, and incident diagnosis when
|
|
53
|
+
applicable. Do not collapse review axes or replace exact signal fields with prose.
|
|
54
|
+
|
|
55
|
+
Resolve named blockers, rerun invalidated gates, then call `change.archive` with the
|
|
56
|
+
summary and baseline updates.
|
|
57
|
+
|
|
58
|
+
## Optional release
|
|
59
|
+
|
|
60
|
+
Only when release authorization is in scope:
|
|
61
|
+
|
|
62
|
+
1. determine the semantic version from compatibility impact;
|
|
63
|
+
2. update version and changelog;
|
|
64
|
+
3. rerun checks invalidated by version changes;
|
|
65
|
+
4. create a non-force commit and tag;
|
|
66
|
+
5. push and publish through the repository's authenticated workflow;
|
|
67
|
+
6. independently verify the remote commit, tag, release, and registry version.
|
|
68
|
+
|
|
69
|
+
Write the delivery report with the change id, archive status, commit, version, exact
|
|
70
|
+
commands, release identifiers, baseline updates, rollback notes, and timestamp.
|
|
71
|
+
|
|
72
|
+
Delivery is complete only when local and remote evidence agree and the worktree has no
|
|
73
|
+
unexplained scope. A local version bump is not publication evidence.
|