ultra-builder-pro-cli 0.13.0 → 0.15.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/.ultra-template/docs/research/README.md +11 -7
- package/.ultra-template/specs/architecture.md +36 -36
- package/.ultra-template/specs/discovery.md +46 -33
- package/.ultra-template/specs/product.md +38 -29
- package/.ultra-template/specs/research-distillate.md +48 -0
- package/.ultra-template/tasks/contexts/TEMPLATE.md +11 -28
- package/CHANGELOG.md +86 -1
- package/README.md +40 -26
- package/adapters/_shared/codex-assets.cjs +29 -165
- package/adapters/_shared/file-ops.cjs +6 -2
- package/adapters/_shared/runtime-assets.cjs +1 -0
- package/adapters/claude.js +3 -2
- package/adapters/codex.js +1 -0
- package/adapters/kimi.js +3 -2
- package/adapters/opencode.js +33 -122
- package/agents/review-coordinator.md +9 -6
- package/docs/AGENT-CONTEXT.md +21 -11
- package/docs/ARCHITECTURE.md +41 -13
- package/docs/PLAN.zh-CN.md +3 -2
- package/docs/ROADMAP.md +9 -5
- package/docs/RUNTIME-COMPAT-MATRIX.md +6 -6
- package/docs/STATE-DB-ACCESS-POLICY.md +27 -25
- package/docs/WORKFLOW-LIFECYCLE.md +266 -0
- package/hooks/README.md +6 -1
- package/hooks/active_task_context.py +22 -50
- package/hooks/context_spine.py +61 -332
- package/hooks/health_check.py +29 -18
- package/hooks/pre_stop_check.py +28 -33
- package/hooks/subagent_tracker.py +54 -85
- package/hooks/workflow_checkpoint.py +39 -47
- package/hooks/workflow_context.py +4 -9
- package/hooks/workflow_resume.py +48 -128
- package/mcp-server/breadcrumb.cjs +22 -0
- package/mcp-server/hook-event.cjs +34 -0
- package/mcp-server/lib/archive-journal.cjs +17 -5
- package/mcp-server/lib/baseline-workflow.cjs +158 -18
- package/mcp-server/lib/change-workflow.cjs +550 -85
- package/mcp-server/lib/context-spine.cjs +242 -24
- package/mcp-server/lib/doctor.cjs +33 -3
- package/mcp-server/lib/init-project.cjs +210 -16
- package/mcp-server/lib/plan-store.cjs +4 -1
- package/mcp-server/lib/prd-parser.cjs +14 -41
- package/mcp-server/lib/pricing.cjs +7 -10
- package/mcp-server/lib/project-breadcrumb.cjs +145 -0
- package/mcp-server/lib/projector.cjs +57 -3
- package/mcp-server/lib/spec-learning.cjs +79 -2
- package/mcp-server/lib/state-db.cjs +145 -8
- package/mcp-server/lib/state-ops.cjs +160 -9
- package/mcp-server/lib/task-expander.cjs +9 -38
- package/mcp-server/lib/workflow-state.cjs +2292 -0
- package/mcp-server/server.cjs +182 -50
- package/orchestrator/daemon.cjs +1 -2
- package/orchestrator/dispatch-rules.cjs +5 -31
- package/orchestrator/planner/plan-builder.cjs +21 -12
- package/package.json +14 -6
- package/skills/cc-collab/SKILL.md +2 -2
- package/skills/codex-collab/SKILL.md +2 -3
- package/skills/ultra-change/SKILL.md +53 -68
- package/skills/ultra-change/references/change-contract.md +36 -0
- package/skills/ultra-deliver/SKILL.md +69 -79
- package/skills/ultra-deliver/references/baseline-reconciliation.md +20 -0
- package/skills/ultra-dev/SKILL.md +54 -59
- package/skills/ultra-doctor/SKILL.md +40 -71
- package/skills/ultra-init/SKILL.md +96 -103
- package/skills/ultra-init/references/brownfield-adoption.md +2 -2
- package/skills/ultra-plan/SKILL.md +79 -75
- package/skills/ultra-plan/references/semantic-preflight.md +18 -0
- package/skills/ultra-research/SKILL.md +87 -60
- package/skills/ultra-research/references/00-problem-validation.md +36 -0
- package/skills/ultra-research/references/01-opportunity-discovery.md +33 -0
- package/skills/ultra-research/references/02-market-assessment.md +30 -0
- package/skills/ultra-research/references/03-competitive-landscape.md +31 -0
- package/skills/ultra-research/references/04-product-strategy.md +32 -0
- package/skills/ultra-research/references/05-assumptions-validation.md +31 -0
- package/skills/ultra-research/references/10-user-personas.md +29 -0
- package/skills/ultra-research/references/11-user-scenarios.md +28 -0
- package/skills/ultra-research/references/20-user-stories.md +30 -0
- package/skills/ultra-research/references/21-features-scope.md +29 -0
- package/skills/ultra-research/references/22-success-metrics.md +28 -0
- package/skills/ultra-research/references/30-architecture-context.md +30 -0
- package/skills/ultra-research/references/31-solution-strategy.md +28 -0
- package/skills/ultra-research/references/32-building-blocks.md +28 -0
- package/skills/ultra-research/references/40-deployment.md +29 -0
- package/skills/ultra-research/references/41-quality-risks.md +28 -0
- package/skills/ultra-research/references/99-synthesis.md +35 -0
- package/skills/ultra-review/SKILL.md +57 -73
- package/skills/ultra-review/references/review-modes.md +27 -0
- package/skills/ultra-review/references/unified-schema.md +25 -0
- package/skills/ultra-review/scripts/review_wait.py +40 -3
- package/skills/ultra-status/SKILL.md +41 -45
- package/skills/ultra-test/SKILL.md +48 -55
- package/skills/ultra-verify/SKILL.md +22 -31
- package/skills/ultra-verify/references/{confidence-system.md → evidence-status.md} +3 -3
- package/skills/ultra-verify/scripts/verify_wait.py +54 -54
- package/spec/cli-protocol.md +7 -2
- package/spec/mcp-tools.yaml +422 -73
- package/spec/schemas/baseline-reconciliation.v1.schema.json +73 -0
- package/spec/schemas/delivery-report.v1.schema.json +111 -0
- package/spec/schemas/mcp-tools.schema.json +1 -1
- package/spec/schemas/state-db.sql +82 -1
- package/spec/schemas/tasks.v4.5.schema.json +8 -1
- package/spec/schemas/test-report.v1.schema.json +194 -0
- package/ultra-tools/cli.cjs +1 -1
- package/ultra-tools/commands/migrate.cjs +3 -3
- package/ultra-tools/commands/status.cjs +213 -12
- package/.ultra-template/delivery-report.json +0 -9
- package/.ultra-template/test-report.json +0 -8
- package/adapters/_shared/tests/file-ops.test.cjs +0 -54
- package/adapters/_shared/tests/frontmatter.test.cjs +0 -47
- package/adapters/_shared/tests/handbook.test.cjs +0 -101
- package/adapters/_shared/tests/path-rewrite.test.cjs +0 -60
- package/adapters/_shared/tests/provenance.test.cjs +0 -133
- package/adapters/_shared/tests/resolve-target.test.cjs +0 -75
- package/adapters/_shared/tests/runtime-assets.test.cjs +0 -131
- package/adapters/_shared/tests/settings-merge.test.cjs +0 -85
- package/adapters/_shared/tests/validate.test.cjs +0 -30
- package/adapters/tests/claude.test.cjs +0 -137
- package/adapters/tests/codex-hook.test.cjs +0 -115
- package/adapters/tests/codex.test.cjs +0 -423
- package/adapters/tests/kimi-hook.test.cjs +0 -122
- package/adapters/tests/kimi.test.cjs +0 -259
- package/adapters/tests/opencode.test.cjs +0 -371
- package/mcp-server/lib/archive-journal.test.cjs +0 -35
- package/mcp-server/lib/baseline-workflow.test.cjs +0 -477
- package/mcp-server/lib/change-workflow.test.cjs +0 -971
- package/mcp-server/lib/context-spine.test.cjs +0 -93
- package/mcp-server/lib/doctor.test.cjs +0 -148
- package/mcp-server/lib/llm-client.cjs +0 -157
- package/mcp-server/lib/llm-client.test.cjs +0 -156
- package/mcp-server/lib/plan-store.test.cjs +0 -132
- package/mcp-server/lib/prd-parser.test.cjs +0 -171
- package/mcp-server/lib/runtime-state.test.cjs +0 -92
- package/mcp-server/lib/spec-learning.test.cjs +0 -67
- package/mcp-server/lib/state-db.test.cjs +0 -314
- package/mcp-server/lib/task-expander.test.cjs +0 -324
- package/mcp-server/lib/topo.test.cjs +0 -158
- package/mcp-server/tests/circuit-breaker.test.cjs +0 -125
- package/mcp-server/tests/commit-hash-flow.test.cjs +0 -117
- package/mcp-server/tests/concurrency-update.test.cjs +0 -96
- package/mcp-server/tests/concurrency.test.cjs +0 -112
- package/mcp-server/tests/db-ops.test.cjs +0 -121
- package/mcp-server/tests/init-project.test.cjs +0 -393
- package/mcp-server/tests/migrate.test.cjs +0 -232
- package/mcp-server/tests/projector.test.cjs +0 -162
- package/mcp-server/tests/server-contract.test.cjs +0 -1471
- package/mcp-server/tests/staleness.test.cjs +0 -190
- package/mcp-server/tests/state-db.test.cjs +0 -106
- package/mcp-server/tests/state-ops.test.cjs +0 -449
- package/mcp-server/tests/tagged-tasks.test.cjs +0 -163
- package/mcp-server/tests/telemetry.test.cjs +0 -219
- package/orchestrator/planner/expand-prompt.cjs +0 -62
- package/orchestrator/planner/expand-prompt.test.cjs +0 -52
- package/orchestrator/planner/plan-builder.test.cjs +0 -165
- package/orchestrator/planner/prd-prompt.cjs +0 -44
- package/orchestrator/planner/prd-prompt.test.cjs +0 -30
- package/orchestrator/tests/auto-merge.test.cjs +0 -216
- package/orchestrator/tests/daemon.test.cjs +0 -311
- package/orchestrator/tests/dispatch-rules.test.cjs +0 -124
- package/orchestrator/tests/parallel-orchestrator.test.cjs +0 -233
- package/orchestrator/tests/phase-8b-gate.test.cjs +0 -183
- package/orchestrator/tests/recovery.test.cjs +0 -190
- package/orchestrator/tests/session-runner.test.cjs +0 -314
- package/orchestrator/tests/skill-miner.test.cjs +0 -147
- package/orchestrator/tests/worktree-manager.test.cjs +0 -148
- package/skills/ultra-research/references/architecture.md +0 -38
- package/skills/ultra-research/references/problem-product.md +0 -39
- package/skills/ultra-research/references/quality-delivery.md +0 -34
- package/skills/ultra-research/references/synthesis.md +0 -38
- package/skills/ultra-research/references/users-scope.md +0 -40
- package/ultra-tools/legacy-memory.test.cjs +0 -80
- package/ultra-tools/status-command.test.cjs +0 -181
- package/ultra-tools/system-command.test.cjs +0 -309
|
@@ -1,84 +1,69 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ultra-change
|
|
3
|
-
description: Open or resume
|
|
3
|
+
description: Open or resume one bounded post-baseline change and connect its intent, delta, task plan, fresh context, and convergence evidence. Use when handling daily feature work, fixes, redesigns, or incidents after an Ultra baseline exists.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# Maintain one continuous change
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
Use Ultra MCP for lifecycle writes. Keep external memory and code-graph content in
|
|
9
|
+
their providers; Ultra stores references only.
|
|
10
10
|
|
|
11
|
-
##
|
|
11
|
+
## Bind or create
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
1. Read `system.doctor`, `baseline.get`, `change.list`, and `change.breadcrumb`.
|
|
14
|
+
2. Resume the change matching the requested outcome. Require an id when several could
|
|
15
|
+
match; do not create a duplicate packet.
|
|
16
|
+
3. New ordinary work requires a ready baseline. An incident on unhealthy authority
|
|
17
|
+
requires an explicit `baseline_bypass` reason and approver. Never infer approval
|
|
18
|
+
from urgency.
|
|
19
|
+
4. Read `references/change-contract.md`. Persist the complete outcome, executable
|
|
20
|
+
acceptance, non-goals, public seams, recovery contract, unresolved decisions,
|
|
21
|
+
documentation impact, profile rationale, material risk flags, and research
|
|
22
|
+
disposition. Do not derive these fields from a title or free-form intent later.
|
|
23
|
+
5. Select `quick`, `standard`, `major`, or `incident` from current scope and risk.
|
|
24
|
+
Escalate a proposed quick change when its contract carries material risk or research.
|
|
25
|
+
Then call `change.create` or `change.update` and read the normalized record back.
|
|
26
|
+
6. Resume or start the linked `change` workflow with `workflow.list`/`workflow.start`.
|
|
16
27
|
|
|
17
|
-
##
|
|
28
|
+
## Record the change workflow
|
|
18
29
|
|
|
19
|
-
|
|
20
|
-
- Create ordinary work only when the baseline is healthy and `ready`.
|
|
21
|
-
- Resume a change that was already active when baseline drift appears; record the
|
|
22
|
-
condition as a warning and restore baseline readiness before ordinary convergence.
|
|
23
|
-
- Create an `incident` on an unhealthy baseline only with an explicit
|
|
24
|
-
`baseline_bypass` containing the reason and approver.
|
|
25
|
-
- Route every other missing, migrated, incomplete, or stale baseline to `ultra-init`.
|
|
26
|
-
2. Call `change.list` and `change.breadcrumb`.
|
|
27
|
-
- Resume the single change that matches the requested outcome.
|
|
28
|
-
- Require an explicit id when several changes could match.
|
|
29
|
-
- Create a new change only when no existing packet represents the same outcome.
|
|
30
|
-
3. Capture the observable outcome, acceptance, non-goals, affected public seam,
|
|
31
|
-
documentation impact, and unresolved decisions.
|
|
32
|
-
4. Classify the change as `quick`, `standard`, `major`, or `incident`. Ask only for a
|
|
33
|
-
material product, risk, or recovery decision that repository evidence cannot answer.
|
|
34
|
-
5. Call `change.create` with a stable kebab-case id, or `change.update` when resuming.
|
|
35
|
-
For incident break-glass, persist the approved reason in `baseline_bypass`; never
|
|
36
|
-
infer approval from urgency.
|
|
37
|
-
6. Write the minimum artifact set required by the classification:
|
|
30
|
+
Use `workflow.step` as evidence becomes durable:
|
|
38
31
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
context-manifest.json # generated projection
|
|
46
|
-
spec-learning.json # generated projection
|
|
47
|
-
verification.md # generated projection
|
|
48
|
-
```
|
|
32
|
+
- `bind-baseline`: current baseline id, revision, branch, and worktree evidence;
|
|
33
|
+
- `classify-change`: kind and rationale;
|
|
34
|
+
- `record-intent`: intent artifact, acceptance, scope, and resolved docs impact;
|
|
35
|
+
- `plan-change`: completed plan workflow and authoritative task ids;
|
|
36
|
+
- `compile-context`: current task-bound `change.context` manifest and digest;
|
|
37
|
+
- `verify-readiness`: ready breadcrumb with one executable next action.
|
|
49
38
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
one outcome, bounded ownership, dependencies, a live public seam, an exact
|
|
55
|
-
verification command, and documentation impact.
|
|
56
|
-
8. Compile `change.context` for the next role and gate. Include only required
|
|
57
|
-
references and the task execution contract. Missing required references, digest or
|
|
58
|
-
HEAD drift, an absent public seam or verification command, and unknown
|
|
59
|
-
documentation impact are blockers. File count, token estimate, and context-share
|
|
60
|
-
thresholds are advisory warnings: narrow reads or split the slice when useful, but
|
|
61
|
-
never raise a threshold merely to make the warning disappear or refuse necessary
|
|
62
|
-
incident context.
|
|
63
|
-
9. Call `change.breadcrumb` and return its single next action.
|
|
39
|
+
Standard and major changes keep deltas under
|
|
40
|
+
`.ultra/changes/active/<id>/delta/` and an evidence-linked `plan.md`. Deltas describe
|
|
41
|
+
differences from the baseline; they are not a second baseline. Incidents maintain the
|
|
42
|
+
structured diagnosis artifact and recovery evidence.
|
|
64
43
|
|
|
65
|
-
|
|
44
|
+
When `research_disposition.status` is `bounded` or `required`, run `ultra-research`
|
|
45
|
+
with the exact recorded mode and selected steps before planning. Planning is blocked
|
|
46
|
+
until that change-bound research run is complete, current, and selection-equivalent.
|
|
47
|
+
Use `none` only when the Change Contract already has sufficient evidence.
|
|
66
48
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
49
|
+
Use `ultra-plan` to create complete DB-backed task contracts. Recompile
|
|
50
|
+
`change.context` after any task, HEAD, specification, or decision change. The task's DB
|
|
51
|
+
contract is authoritative; Prompt input may not override its seam or verification.
|
|
52
|
+
Required missing or stale refs block. Budget warnings guide narrower context but never
|
|
53
|
+
justify dropping necessary evidence or refusing legitimate work.
|
|
72
54
|
|
|
73
|
-
|
|
55
|
+
An ordinary active change remains executable only while its durable `bind-baseline`
|
|
56
|
+
evidence still names the current approved-ready baseline. HEAD, worktree, specification,
|
|
57
|
+
or source-evidence drift created after that binding is advisory until delivery
|
|
58
|
+
reconciliation. Adoption/migration state, missing approval or evidence, blocking gaps,
|
|
59
|
+
and any other structural baseline failure block tasks, context, and later stages. Only
|
|
60
|
+
the recorded incident break-glass authority can bypass that gate.
|
|
74
61
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
caused by the active change is reconciled at archive.
|
|
62
|
+
Call `workflow.complete` only after all change workflow steps are current. Return the
|
|
63
|
+
change id, kind, task set, context digest, blockers or warnings, workflow state, and the
|
|
64
|
+
breadcrumb's one route.
|
|
79
65
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
no-change reason; failed ordinary reconciliation rolls back state and artifacts.
|
|
66
|
+
When implementation reveals a stable missing invariant, use
|
|
67
|
+
`change.learning_propose` and the approval/reject/apply transition. Unresolved learning
|
|
68
|
+
blocks delivery. An approved application must bind the declared target anchor, its
|
|
69
|
+
before and after digests, and current evidence before the proposal becomes `applied`.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Change Contract and profile
|
|
2
|
+
|
|
3
|
+
Create one contract before planning. Keep every field specific enough to verify and
|
|
4
|
+
stable enough to survive a fresh session.
|
|
5
|
+
|
|
6
|
+
## Contract
|
|
7
|
+
|
|
8
|
+
- `outcome`: one externally observable result.
|
|
9
|
+
- `acceptance`: stable ids with a criterion and exact verification for each accepted
|
|
10
|
+
behavior.
|
|
11
|
+
- `non_goals`: explicit boundaries that prevent accidental scope growth.
|
|
12
|
+
- `public_seams`: entry points or outputs through which acceptance is observed.
|
|
13
|
+
- `recovery`: a bounded reversal or recovery strategy and its verification.
|
|
14
|
+
- `unresolved_decisions`: stable ids, summary, blocking state, and owner when known.
|
|
15
|
+
|
|
16
|
+
Resolve every blocking decision before planning. Keep non-blocking uncertainty visible
|
|
17
|
+
in the task and verification contracts.
|
|
18
|
+
|
|
19
|
+
## Profile
|
|
20
|
+
|
|
21
|
+
- `quick`: one low-risk task, no material risk flags, and no research dependency.
|
|
22
|
+
- `standard`: a bounded change with multiple tasks or ordinary integration risk.
|
|
23
|
+
- `major`: a broad or consequential change with material contract, migration,
|
|
24
|
+
authorization, security, multi-module, external-integration, or release impact.
|
|
25
|
+
- `incident`: urgent diagnosis and recovery with a reproducible symptom. Baseline
|
|
26
|
+
break-glass still requires a recorded approver and recovery contract.
|
|
27
|
+
|
|
28
|
+
Record a profile rationale and every applicable risk flag. Select the smallest profile
|
|
29
|
+
whose guarantees cover the real blast radius; never use profile labels as estimates.
|
|
30
|
+
|
|
31
|
+
## Research disposition
|
|
32
|
+
|
|
33
|
+
Use `none` with a rationale when accepted evidence is sufficient. Use `bounded` or
|
|
34
|
+
`required` with a supported mode and the exact selected semantic steps when product,
|
|
35
|
+
behavior, architecture, deployment, or risk facts remain load-bearing. The recorded
|
|
36
|
+
selection is the planning gate.
|
|
@@ -1,87 +1,77 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ultra-deliver
|
|
3
|
-
description: Converge verified
|
|
3
|
+
description: Converge one verified Ultra change, reconcile specification learning and baseline authority, archive recoverably, and optionally release when explicitly authorized. Use when current test and independent review evidence are ready for delivery.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Converge and deliver
|
|
6
|
+
# Converge and deliver one change
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
Use host judgment for release scope and authorization. Use Ultra MCP for evidence
|
|
9
|
+
binding, workflow state, convergence, baseline reconciliation, archive recovery, and
|
|
10
|
+
output digests.
|
|
10
11
|
|
|
11
12
|
## Bind current evidence
|
|
12
13
|
|
|
13
|
-
1.
|
|
14
|
-
current
|
|
15
|
-
2.
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
2. update version and changelog;
|
|
78
|
-
3. rerun checks invalidated by version changes;
|
|
79
|
-
4. create a non-force commit and tag;
|
|
80
|
-
5. push and publish through the repository's authenticated workflow;
|
|
81
|
-
6. independently verify the remote commit, tag, release, and registry version.
|
|
82
|
-
|
|
83
|
-
Write the delivery report with the change id, archive status, commit, version, exact
|
|
84
|
-
commands, release identifiers, baseline updates, rollback notes, and timestamp.
|
|
85
|
-
|
|
86
|
-
Delivery is complete only when local and remote evidence agree and the worktree has no
|
|
87
|
-
unexplained scope. A local version bump is not publication evidence.
|
|
14
|
+
1. Read `system.doctor`, `baseline.get`, `change.get`, `change.breadcrumb`, linked
|
|
15
|
+
tasks, and current test/review workflows and artifacts.
|
|
16
|
+
2. Resume or start a `deliver` workflow linked to the change and baseline.
|
|
17
|
+
3. Require completed tasks, current context, a passing test report at full HEAD with a
|
|
18
|
+
verified public seam, and current independent `spec_fidelity` and
|
|
19
|
+
`engineering_standards` verdicts. Record `bind-evidence`.
|
|
20
|
+
|
|
21
|
+
Evidence from another revision, task set, change, or stale output is invalid. An
|
|
22
|
+
approved break-glass incident follows only its recorded recovery contract.
|
|
23
|
+
|
|
24
|
+
## Reconcile and verify
|
|
25
|
+
|
|
26
|
+
Resolve every specification-learning proposal. Apply an approved item to its declared
|
|
27
|
+
target and verify it before marking it applied; preserve rejection reasons. Reconcile
|
|
28
|
+
accepted delta and documentation impact into baseline documents, or record an exact
|
|
29
|
+
no-change reason. Record `reconcile-specifications`.
|
|
30
|
+
|
|
31
|
+
Read `references/baseline-reconciliation.md` and write the bound reconciliation
|
|
32
|
+
manifest inside the active change directory. It must record every baseline update as a
|
|
33
|
+
semantic add or update with a real source anchor, before/after digests, verification,
|
|
34
|
+
resolved gap ids, and resolved unknowns. A no-update delivery records one evidenced
|
|
35
|
+
semantic no-change reason.
|
|
36
|
+
|
|
37
|
+
Verify the release candidate with repository-native focused/regression checks,
|
|
38
|
+
type/lint/build where applicable, install/doctor smoke for distributed packages,
|
|
39
|
+
public seams, and rollback or recovery sanity. Compile final convergence context and
|
|
40
|
+
record its immutable manifest as the `verify-candidate` output. Any edit invalidates
|
|
41
|
+
affected evidence.
|
|
42
|
+
|
|
43
|
+
Call `change.converge` with only the change id. Do not submit verdicts or evidence
|
|
44
|
+
summaries: MCP derives development, test report, public seam, specification,
|
|
45
|
+
documentation, both review axes, and incident diagnosis evidence from DB-backed
|
|
46
|
+
workflows and current artifacts. Resolve named blockers and rerun invalidated gates. Record
|
|
47
|
+
`converge-authority` only when the change is ready.
|
|
48
|
+
|
|
49
|
+
Call `change.archive` with the summary, `reconciliation_path`, and baseline updates or
|
|
50
|
+
exact no-change reason.
|
|
51
|
+
Ordinary archive refreshes baseline revision and digests atomically and rolls back on
|
|
52
|
+
incomplete reconciliation. Record `archive-change`. For break-glass delivery, verify
|
|
53
|
+
the returned bypass and blocking reconciliation gap.
|
|
54
|
+
|
|
55
|
+
## Release only with authority
|
|
56
|
+
|
|
57
|
+
The `release-if-authorized` step is not permission. When publication is outside the
|
|
58
|
+
user's request, complete it with exactly one `release_authorization` decision containing
|
|
59
|
+
`authorized: false` and the reason. When explicitly authorized, record
|
|
60
|
+
`authorized: true`, `approved_by`, the exact release `scope`, and the reason; then
|
|
61
|
+
determine compatibility impact, update version and
|
|
62
|
+
changelog, rerun invalidated checks, create a non-force commit/tag, push, publish, and
|
|
63
|
+
verify remote commit, tag, release, and registry version independently.
|
|
64
|
+
|
|
65
|
+
Write `.ultra/reports/delivery/<workflow-id>.json` atomically using
|
|
66
|
+
`ultra-delivery-report-v1`, with change/archive state, baseline id/status, full HEAD,
|
|
67
|
+
worktree digest, convergence-context digest, exact passing
|
|
68
|
+
checks, the explicit release authorization/performed decision, release identifiers
|
|
69
|
+
when applicable, structured evidence for every performed commit/push/tag/registry/
|
|
70
|
+
deployment action, rollback notes, and timestamp. The report authorization must match
|
|
71
|
+
the DB-recorded decision. Record `verify-delivery` with that
|
|
72
|
+
output and call `workflow.complete` only after the change is archived and local and
|
|
73
|
+
remote evidence agree for every authorized action. MCP derives the delivery summary
|
|
74
|
+
from this report rather than a Prompt claim.
|
|
75
|
+
|
|
76
|
+
Return workflow id, archive and baseline state, evidence digests, commit/release facts,
|
|
77
|
+
recovery notes, residual risks, and one next route.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Baseline reconciliation manifest
|
|
2
|
+
|
|
3
|
+
Write a JSON file inside `.ultra/changes/active/<change-id>/` with
|
|
4
|
+
`$schema: "ultra-baseline-reconciliation-v1"`.
|
|
5
|
+
|
|
6
|
+
Bind `change_id`, `baseline_id`, and `baseline_updates` exactly to the archive request.
|
|
7
|
+
Include:
|
|
8
|
+
|
|
9
|
+
- `semantic_changes`: stable id, `add` or `update`, project-relative `source_ref` using
|
|
10
|
+
`path#anchor`, the prior baseline digest or `null`, and the current file digest;
|
|
11
|
+
- `resolved_gap_ids`: existing baseline gaps closed by this delivery;
|
|
12
|
+
- `resolved_unknowns`: exact existing unknown summaries closed by this delivery;
|
|
13
|
+
- `verification`: named checks with exact commands, `pass`, and bounded evidence;
|
|
14
|
+
- `semantic_no_change_reason`: an evidence-backed reason when `baseline_updates` is
|
|
15
|
+
empty.
|
|
16
|
+
|
|
17
|
+
Every updated file needs a semantic change record and current anchor. The before digest
|
|
18
|
+
must match baseline authority and the after digest must match the file. Keep the
|
|
19
|
+
manifest with the change so archive recovery can replay the same transaction after an
|
|
20
|
+
interrupted filesystem move.
|
|
@@ -1,63 +1,58 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ultra-dev
|
|
3
|
-
description: Execute one authoritative Ultra task through a
|
|
3
|
+
description: Execute one authoritative Ultra task through a fresh-context, test-driven, review-backed live-path slice with resumable DB state. Use when a planned task is ready to implement, resume, or recover after a blocker or interrupted session.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
`
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
## Completion evidence
|
|
60
|
-
|
|
61
|
-
Report the task and change ids, changed paths, baseline signal, passing commands,
|
|
62
|
-
public-seam result, review session, specification-learning candidates, and one next
|
|
63
|
-
action. Leave the task in progress or blocked when required evidence is missing.
|
|
6
|
+
# Implement one executable task
|
|
7
|
+
|
|
8
|
+
Bind exactly one task and change. Use the host for code reasoning and edits; use Ultra
|
|
9
|
+
MCP for workflow state, context authority, task/session transitions, evidence, and
|
|
10
|
+
recovery.
|
|
11
|
+
|
|
12
|
+
## Start or resume
|
|
13
|
+
|
|
14
|
+
1. Read `system.doctor`, `change.breadcrumb`, `task.get`, workflow state, dependencies,
|
|
15
|
+
active sessions, Git HEAD, and worktree scope.
|
|
16
|
+
2. Resume an existing `dev` workflow or call `workflow.start` with `change_id` and
|
|
17
|
+
`task_id`. Startup fails when the DB-backed task execution contract is incomplete or
|
|
18
|
+
owned by another change.
|
|
19
|
+
3. Record `bind-task` with task, dependency, branch, and worktree evidence.
|
|
20
|
+
4. Compile `change.context` for `implement`. It derives public seam, verification, and
|
|
21
|
+
required refs from the task row. Record its immutable manifest as the
|
|
22
|
+
`compile-context` output only when ready. That starting snapshot remains historical
|
|
23
|
+
task evidence; later task commits do not invalidate it when its commit stays on the
|
|
24
|
+
current ancestry and the task contract is unchanged.
|
|
25
|
+
5. Run session admission before spawning an isolated session. Do not open a second
|
|
26
|
+
active lease without the documented resume, takeover, or abandon decision.
|
|
27
|
+
|
|
28
|
+
## Red, green, verify
|
|
29
|
+
|
|
30
|
+
1. Reproduce the behavior or establish a characterization signal before logic edits.
|
|
31
|
+
Record `establish-feedback-loop` with the exact failing command and observed result.
|
|
32
|
+
2. Set the task `in_progress`; implement the smallest complete vertical slice through
|
|
33
|
+
the declared public seam. Preserve unrelated worktree changes.
|
|
34
|
+
3. Keep application judgment and edits in the host. Do not write projections, raw DB,
|
|
35
|
+
workflow output digests, or evidence state by hand.
|
|
36
|
+
4. Refactor only inside the accepted slice while the focused signal stays green.
|
|
37
|
+
5. Record `implement-slice`, then run focused, adjacent, static/build, public-seam,
|
|
38
|
+
error, and recovery checks proportional to risk. Record exact evidence under
|
|
39
|
+
`verify-slice`.
|
|
40
|
+
6. Run `ultra-review` at the current diff. Record both independent verdict axes under
|
|
41
|
+
`review-slice`; unresolved blocking findings return to implementation.
|
|
42
|
+
|
|
43
|
+
## Complete or recover
|
|
44
|
+
|
|
45
|
+
Close the admitted session with `session.close` after its final heartbeat and verify
|
|
46
|
+
that no running lease remains for the task. Then update the task to `completed` only
|
|
47
|
+
after acceptance, verification, documentation, and review are current. Record
|
|
48
|
+
`record-completion` with commands, results, changed paths, commit when authorized, and
|
|
49
|
+
context/review references; then call `workflow.complete`. The MCP refuses dev
|
|
50
|
+
convergence while the task is incomplete or a session is still running.
|
|
51
|
+
|
|
52
|
+
On interruption or an external blocker, record the current step as `blocked`, update
|
|
53
|
+
the task consistently, and preserve the session and evidence. Resume the same run;
|
|
54
|
+
completed steps remain durable. Any code or contract change invalidates affected test,
|
|
55
|
+
review, or context evidence.
|
|
56
|
+
|
|
57
|
+
Return the task outcome, public seam, changed paths, exact checks, review results,
|
|
58
|
+
workflow id, session state, residual risks, and one next route.
|