ultra-builder-pro-cli 0.14.0 → 0.16.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 +77 -1
- package/README.md +46 -24
- package/adapters/_shared/codex-assets.cjs +6 -2
- package/adapters/_shared/file-ops.cjs +6 -2
- package/adapters/_shared/handbook.cjs +2 -1
- package/adapters/claude.js +3 -2
- package/adapters/codex.js +1 -0
- package/adapters/kimi.js +3 -2
- package/adapters/opencode.js +3 -2
- package/agents/review-coordinator.md +9 -6
- package/commands/ultra-change.md +1 -1
- package/commands/ultra-plan.md +1 -1
- package/commands/ultra-research.md +1 -1
- package/commands/ultra-think.md +2 -2
- package/docs/AGENT-CONTEXT.md +43 -19
- package/docs/ARCHITECTURE.md +54 -13
- package/docs/PLAN.zh-CN.md +4 -2
- package/docs/ROADMAP.md +10 -4
- package/docs/RUNTIME-COMPAT-MATRIX.md +4 -4
- package/docs/STATE-DB-ACCESS-POLICY.md +33 -29
- package/docs/USER-HANDBOOK-CONTRACT.md +8 -2
- package/docs/WORKFLOW-LIFECYCLE.md +342 -0
- package/hooks/README.md +6 -1
- package/hooks/health_check.py +12 -3
- package/hooks/subagent_tracker.py +52 -77
- 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 +598 -85
- package/mcp-server/lib/context-spine.cjs +305 -25
- package/mcp-server/lib/decision-dialogue.cjs +713 -0
- package/mcp-server/lib/doctor.cjs +42 -3
- package/mcp-server/lib/init-project.cjs +210 -16
- package/mcp-server/lib/plan-store.cjs +4 -1
- package/mcp-server/lib/pricing.cjs +7 -10
- package/mcp-server/lib/project-breadcrumb.cjs +15 -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 +168 -8
- package/mcp-server/lib/state-ops.cjs +160 -9
- package/mcp-server/lib/workflow-state.cjs +2305 -0
- package/mcp-server/server.cjs +215 -15
- package/orchestrator/daemon.cjs +1 -2
- package/orchestrator/dispatch-rules.cjs +5 -31
- package/orchestrator/planner/plan-builder.cjs +21 -12
- package/package.json +13 -3
- package/skills/ultra-change/SKILL.md +94 -80
- package/skills/ultra-change/references/change-contract.md +36 -0
- package/skills/ultra-deliver/SKILL.md +76 -79
- package/skills/ultra-deliver/references/baseline-reconciliation.md +20 -0
- package/skills/ultra-dev/SKILL.md +62 -59
- package/skills/ultra-doctor/SKILL.md +61 -82
- package/skills/ultra-init/SKILL.md +101 -103
- package/skills/ultra-init/references/brownfield-adoption.md +2 -2
- package/skills/ultra-plan/SKILL.md +99 -85
- package/skills/ultra-plan/references/semantic-preflight.md +18 -0
- package/skills/ultra-research/SKILL.md +102 -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 +63 -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 -41
- package/skills/ultra-test/SKILL.md +54 -55
- package/skills/ultra-think/SKILL.md +26 -12
- package/skills/ultra-think/references/decision-dialogue.md +130 -0
- package/skills/ultra-verify/SKILL.md +1 -1
- package/skills/ultra-verify/references/{confidence-system.md → evidence-status.md} +3 -3
- package/spec/cli-protocol.md +17 -3
- package/spec/mcp-tools.yaml +683 -64
- 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 +140 -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 +228 -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 -149
- 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 -138
- package/adapters/tests/codex-hook.test.cjs +0 -142
- package/adapters/tests/codex.test.cjs +0 -430
- package/adapters/tests/kimi-hook.test.cjs +0 -149
- package/adapters/tests/kimi.test.cjs +0 -259
- package/adapters/tests/opencode.test.cjs +0 -357
- 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/plan-store.test.cjs +0 -132
- package/mcp-server/lib/prd-parser.test.cjs +0 -82
- package/mcp-server/lib/project-breadcrumb.test.cjs +0 -112
- 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 -169
- 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 -1467
- 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/plan-builder.test.cjs +0 -165
- 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,98 @@
|
|
|
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
|
-
#
|
|
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
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
missing
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
6
|
+
# Align, route, and maintain one continuous change
|
|
7
|
+
|
|
8
|
+
Use Ultra MCP for lifecycle writes. Keep external memory and code-graph content in
|
|
9
|
+
their providers; Ultra stores references only. Read
|
|
10
|
+
`../ultra-think/references/decision-dialogue.md` before forming a Change Contract.
|
|
11
|
+
|
|
12
|
+
## Capture and align the outcome
|
|
13
|
+
|
|
14
|
+
1. Read `system.doctor`, `baseline.get`, `change.list`, `change.breadcrumb`, and active
|
|
15
|
+
decision threads. Resume the matching change or alignment thread; do not duplicate
|
|
16
|
+
either authority.
|
|
17
|
+
2. New ordinary work requires a ready baseline. An incident on unhealthy authority
|
|
18
|
+
requires an explicit `baseline_bypass` reason and approver. Never infer approval
|
|
19
|
+
from urgency.
|
|
20
|
+
3. Inspect the current checkout before questioning the owner. Convert the request into
|
|
21
|
+
a working outcome, constraints, accepted facts, unknowns, and likely risk profile.
|
|
22
|
+
Resolve repository facts yourself.
|
|
23
|
+
4. Start a baseline-bound decision thread when the Change Contract contains a material
|
|
24
|
+
owner choice. Normalize explicit decisions already present in the user's request
|
|
25
|
+
without asking them to repeat themselves. Otherwise open one earliest decision,
|
|
26
|
+
present it with a recommendation and durable effect, and STOP.
|
|
27
|
+
5. Read `references/change-contract.md`. After all blocking decisions are resolved,
|
|
28
|
+
prepare one compact Change Contract checkpoint containing the outcome, executable
|
|
29
|
+
acceptance, non-goals, public seams, recovery contract, unresolved decisions,
|
|
30
|
+
documentation impact, profile rationale, material risk flags, and research
|
|
31
|
+
disposition. The owner approves the contract once; do not ask for a second equivalent
|
|
32
|
+
confirmation.
|
|
33
|
+
6. Select `quick`, `standard`, `major`, or `incident` from current scope and risk.
|
|
34
|
+
Escalate a proposed quick change when its contract carries material risk or research.
|
|
35
|
+
Write the compact approved alignment projection to
|
|
36
|
+
`.ultra/docs/alignment/<thread-id>.md`, confirm the decision checkpoint with that
|
|
37
|
+
artifact digest, then call `change.create` with `alignment_thread_id`. The create
|
|
38
|
+
operation materializes the authoritative Change Contract projections. Read the
|
|
39
|
+
normalized change and linked workflow back.
|
|
40
|
+
|
|
41
|
+
Do not create a decision thread for a fact the agent can inspect or a reversible
|
|
42
|
+
implementation detail already delegated by the accepted contract.
|
|
43
|
+
|
|
44
|
+
## Record the change workflow
|
|
45
|
+
|
|
46
|
+
Use `workflow.step` as evidence becomes durable:
|
|
47
|
+
|
|
48
|
+
- `bind-baseline`: current baseline id, revision, branch, and worktree evidence;
|
|
49
|
+
- `classify-change`: kind and rationale;
|
|
50
|
+
- `record-intent`: intent artifact, acceptance, scope, and resolved docs impact;
|
|
51
|
+
- `plan-change`: completed plan workflow and authoritative task ids;
|
|
52
|
+
- `compile-context`: current task-bound `change.context` manifest and digest;
|
|
53
|
+
- `verify-readiness`: ready breadcrumb with one executable next action.
|
|
54
|
+
|
|
55
|
+
Standard and major changes keep deltas under
|
|
56
|
+
`.ultra/changes/active/<id>/delta/` and an evidence-linked `plan.md`. Deltas describe
|
|
57
|
+
differences from the baseline; they are not a second baseline. Incidents maintain the
|
|
58
|
+
structured diagnosis artifact and recovery evidence.
|
|
59
|
+
|
|
60
|
+
When `research_disposition.status` is `bounded` or `required`, run `ultra-research`
|
|
61
|
+
with the exact recorded mode and selected steps before planning. Planning is blocked
|
|
62
|
+
until that change-bound research run is complete, current, and selection-equivalent.
|
|
63
|
+
Use `none` only when the Change Contract already has sufficient evidence.
|
|
64
|
+
|
|
65
|
+
Use `ultra-plan` to create complete DB-backed task contracts. Recompile
|
|
66
|
+
`change.context` after any task, HEAD, specification, or decision change. The task's DB
|
|
67
|
+
contract is authoritative; Prompt input may not override its seam or verification.
|
|
68
|
+
Required missing or stale refs block. Budget warnings guide narrower context but never
|
|
69
|
+
justify dropping necessary evidence or refusing legitimate work.
|
|
70
|
+
|
|
71
|
+
An ordinary active change remains executable only while its durable `bind-baseline`
|
|
72
|
+
evidence still names the current approved-ready baseline. HEAD, worktree, specification,
|
|
73
|
+
or source-evidence drift created after that binding is advisory until delivery
|
|
74
|
+
reconciliation. Adoption/migration state, missing approval or evidence, blocking gaps,
|
|
75
|
+
and any other structural baseline failure block tasks, context, and later stages. Only
|
|
76
|
+
the recorded incident break-glass authority can bypass that gate.
|
|
77
|
+
|
|
78
|
+
Call `workflow.complete` only after all change workflow steps are current. Return the
|
|
79
|
+
change id, kind, task set, context digest, blockers or warnings, workflow state, and the
|
|
80
|
+
breadcrumb's one route.
|
|
81
|
+
|
|
82
|
+
When implementation reveals a stable missing invariant, use
|
|
83
|
+
`change.learning_propose` and the approval/reject/apply transition. Unresolved learning
|
|
84
|
+
blocks delivery. An approved application must bind the declared target anchor, its
|
|
85
|
+
before and after digests, and current evidence before the proposal becomes `applied`.
|
|
86
|
+
|
|
87
|
+
## Automatic routing contract
|
|
88
|
+
|
|
89
|
+
Automatic means route, inspect, and recover automatically; it never means silently
|
|
90
|
+
choose an owner decision. The normal route is:
|
|
91
|
+
|
|
92
|
+
`capture → align → Change Contract checkpoint → change authority → bounded research when
|
|
93
|
+
needed → plan candidate → plan decision review → plan approval → ultra-dev → test →
|
|
94
|
+
review → deliver → baseline reconciliation`.
|
|
95
|
+
|
|
96
|
+
A quick change may omit research and use one task only when evidence proves the request
|
|
97
|
+
has no material unresolved decision or risk. An incident routes through reproduction,
|
|
98
|
+
hypothesis discrimination, recovery choice, fix, and verification before convergence.
|
|
@@ -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,84 @@
|
|
|
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
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
## Reconcile
|
|
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
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
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`, active
|
|
15
|
+
decision state, linked tasks, and current test/review workflows and artifacts. An
|
|
16
|
+
open decision, blocking deferral, or unconfirmed checkpoint prevents delivery.
|
|
17
|
+
2. Resume or start a `deliver` workflow linked to the change and baseline.
|
|
18
|
+
3. Require completed tasks, current context, a passing test report at full HEAD with a
|
|
19
|
+
verified public seam, and current independent `spec_fidelity` and
|
|
20
|
+
`engineering_standards` verdicts. Record `bind-evidence`.
|
|
21
|
+
|
|
22
|
+
Evidence from another revision, task set, change, or stale output is invalid. An
|
|
23
|
+
approved break-glass incident follows only its recorded recovery contract.
|
|
24
|
+
|
|
25
|
+
## Reconcile and verify
|
|
26
|
+
|
|
27
|
+
Resolve every specification-learning proposal. Apply an approved item to its declared
|
|
28
|
+
target and verify it before marking it applied; preserve rejection reasons. Reconcile
|
|
29
|
+
accepted delta and documentation impact into baseline documents, or record an exact
|
|
30
|
+
no-change reason. Record `reconcile-specifications`.
|
|
31
|
+
|
|
32
|
+
Read `references/baseline-reconciliation.md` and write the bound reconciliation
|
|
33
|
+
manifest inside the active change directory. It must record every baseline update as a
|
|
34
|
+
semantic add or update with a real source anchor, before/after digests, verification,
|
|
35
|
+
resolved gap ids, and resolved unknowns. A no-update delivery records one evidenced
|
|
36
|
+
semantic no-change reason.
|
|
37
|
+
|
|
38
|
+
Verify the release candidate with repository-native focused/regression checks,
|
|
39
|
+
type/lint/build where applicable, install/doctor smoke for distributed packages,
|
|
40
|
+
public seams, and rollback or recovery sanity. Compile final convergence context and
|
|
41
|
+
record its immutable manifest as the `verify-candidate` output. Any edit invalidates
|
|
42
|
+
affected evidence.
|
|
43
|
+
|
|
44
|
+
Call `change.converge` with only the change id. Do not submit verdicts or evidence
|
|
45
|
+
summaries: MCP derives development, test report, public seam, specification,
|
|
46
|
+
documentation, both review axes, and incident diagnosis evidence from DB-backed
|
|
47
|
+
workflows and current artifacts. Resolve named blockers and rerun invalidated gates. Record
|
|
48
|
+
`converge-authority` only when the change is ready.
|
|
49
|
+
|
|
50
|
+
Call `change.archive` with the summary, `reconciliation_path`, and baseline updates or
|
|
51
|
+
exact no-change reason.
|
|
52
|
+
Ordinary archive refreshes baseline revision and digests atomically and rolls back on
|
|
53
|
+
incomplete reconciliation. Record `archive-change`. For break-glass delivery, verify
|
|
54
|
+
the returned bypass and blocking reconciliation gap.
|
|
55
|
+
|
|
56
|
+
## Release only with authority
|
|
57
|
+
|
|
58
|
+
The `release-if-authorized` step is not permission. When publication is outside the
|
|
59
|
+
user's request, complete it with exactly one `release_authorization` decision containing
|
|
60
|
+
`authorized: false` and the reason. When explicitly authorized, record
|
|
61
|
+
`authorized: true`, `approved_by`, the exact release `scope`, and the reason; then
|
|
62
|
+
determine compatibility impact, update version and
|
|
63
|
+
changelog, rerun invalidated checks, create a non-force commit/tag, push, publish, and
|
|
64
|
+
verify remote commit, tag, release, and registry version independently.
|
|
65
|
+
If release authority is not already explicit, present that authorization as one compact
|
|
66
|
+
question and stop. Do not bundle release permission with unrelated delivery choices or
|
|
67
|
+
ask again when the current user request already grants the exact scope.
|
|
68
|
+
|
|
69
|
+
Write `.ultra/reports/delivery/<workflow-id>.json` atomically using
|
|
70
|
+
`ultra-delivery-report-v1`, with change/archive state, baseline id/status, full HEAD,
|
|
71
|
+
worktree digest, convergence-context digest, exact passing
|
|
72
|
+
checks, the explicit release authorization/performed decision, release identifiers
|
|
73
|
+
when applicable, structured evidence for every performed commit/push/tag/registry/
|
|
74
|
+
deployment action, rollback notes, and timestamp. The report authorization must match
|
|
75
|
+
the DB-recorded decision. Record `verify-delivery` with that
|
|
76
|
+
output and call `workflow.complete` only after the change is archived and local and
|
|
77
|
+
remote evidence agree for every authorized action. MCP derives the delivery summary
|
|
78
|
+
from this report rather than a Prompt claim.
|
|
79
|
+
|
|
80
|
+
Return workflow id, archive and baseline state, evidence digests, commit/release facts,
|
|
81
|
+
recovery notes, residual risks, and one next route. Successful delivery routes to
|
|
82
|
+
`ultra-status` for the final authoritative view or `ultra-change` for the next accepted
|
|
83
|
+
outcome. Stale gates return to their owning workflow; a new owner choice routes to
|
|
84
|
+
`ultra-think`; broken authority routes to `ultra-doctor`.
|
|
@@ -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,66 @@
|
|
|
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
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
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`, active decision state, `task.get`, workflow
|
|
15
|
+
state, dependencies, active sessions, Git HEAD, and worktree scope. If the
|
|
16
|
+
breadcrumb names an open decision or unconfirmed checkpoint, return to
|
|
17
|
+
`ultra-think` and do not edit code.
|
|
18
|
+
2. Resume an existing `dev` workflow or call `workflow.start` with `change_id` and
|
|
19
|
+
`task_id`. Startup fails when the DB-backed task execution contract is incomplete or
|
|
20
|
+
owned by another change.
|
|
21
|
+
3. Record `bind-task` with task, dependency, branch, and worktree evidence.
|
|
22
|
+
4. Compile `change.context` for `implement`. It derives public seam, verification, and
|
|
23
|
+
required refs from the task row. Record its immutable manifest as the
|
|
24
|
+
`compile-context` output only when ready. That starting snapshot remains historical
|
|
25
|
+
task evidence; later task commits do not invalidate it when its commit stays on the
|
|
26
|
+
current ancestry and the task contract is unchanged.
|
|
27
|
+
5. Run session admission before spawning an isolated session. Do not open a second
|
|
28
|
+
active lease without the documented resume, takeover, or abandon decision.
|
|
29
|
+
|
|
30
|
+
## Red, green, verify
|
|
31
|
+
|
|
32
|
+
1. Reproduce the behavior or establish a characterization signal before logic edits.
|
|
33
|
+
Record `establish-feedback-loop` with the exact failing command and observed result.
|
|
34
|
+
2. Set the task `in_progress`; implement the smallest complete vertical slice through
|
|
35
|
+
the declared public seam. Preserve unrelated worktree changes.
|
|
36
|
+
3. Keep application judgment and edits in the host. Do not write projections, raw DB,
|
|
37
|
+
workflow output digests, or evidence state by hand.
|
|
38
|
+
4. Refactor only inside the accepted slice while the focused signal stays green.
|
|
39
|
+
When implementation exposes a product, compatibility, security, cost, or recovery
|
|
40
|
+
choice outside the accepted task contract, preserve the evidence, open one decision
|
|
41
|
+
through the shared dialogue protocol, and stop. Do not convert implementation
|
|
42
|
+
convenience into an owner decision.
|
|
43
|
+
5. Record `implement-slice`, then run focused, adjacent, static/build, public-seam,
|
|
44
|
+
error, and recovery checks proportional to risk. Record exact evidence under
|
|
45
|
+
`verify-slice`.
|
|
46
|
+
6. Run `ultra-review` at the current diff. Record both independent verdict axes under
|
|
47
|
+
`review-slice`; unresolved blocking findings return to implementation.
|
|
48
|
+
|
|
49
|
+
## Complete or recover
|
|
50
|
+
|
|
51
|
+
Close the admitted session with `session.close` after its final heartbeat and verify
|
|
52
|
+
that no running lease remains for the task. Then update the task to `completed` only
|
|
53
|
+
after acceptance, verification, documentation, and review are current. Record
|
|
54
|
+
`record-completion` with commands, results, changed paths, commit when authorized, and
|
|
55
|
+
context/review references; then call `workflow.complete`. The MCP refuses dev
|
|
56
|
+
convergence while the task is incomplete or a session is still running.
|
|
57
|
+
|
|
58
|
+
On interruption or an external blocker, record the current step as `blocked`, update
|
|
59
|
+
the task consistently, and preserve the session and evidence. Resume the same run;
|
|
60
|
+
completed steps remain durable. Any code or contract change invalidates affected test,
|
|
61
|
+
review, or context evidence.
|
|
62
|
+
|
|
63
|
+
Return the task outcome, public seam, changed paths, exact checks, review results,
|
|
64
|
+
workflow id, session state, residual risks, and one next route. Route another ready
|
|
65
|
+
task to `ultra-dev`; route a fully implemented change to aggregate `ultra-test`;
|
|
66
|
+
route a new owner choice to `ultra-think`; route broken authority to `ultra-doctor`.
|