ultra-builder-pro-cli 0.16.0 → 0.17.1
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/reports/templates/delivery-report.json +17 -0
- package/.ultra-template/reports/templates/test-report.json +18 -0
- package/.ultra-template/specs/research-distillate.md +4 -3
- package/CHANGELOG.md +95 -0
- package/README.md +54 -24
- package/adapters/_shared/codex-assets.cjs +10 -5
- package/adapters/_shared/handbook.cjs +1 -1
- package/adapters/_shared/interaction-contract.cjs +61 -0
- package/adapters/claude.js +1 -1
- package/adapters/opencode.js +1 -1
- package/bin/orchestrator.js +175 -19
- package/commands/ultra-change.md +1 -1
- package/commands/ultra-deliver.md +3 -3
- package/commands/ultra-init.md +1 -1
- package/commands/ultra-plan.md +1 -1
- package/commands/ultra-research.md +2 -2
- package/commands/ultra-review.md +10 -0
- package/commands/ultra-status.md +1 -1
- package/commands/ultra-test.md +1 -1
- package/docs/AGENT-CONTEXT.md +11 -8
- package/docs/ARCHITECTURE.md +67 -9
- package/docs/LEGACY-CLI-CROSSWALK.md +163 -0
- package/docs/PLAN.zh-CN.md +19 -13
- package/docs/RUNTIME-COMPAT-MATRIX.md +2 -2
- package/docs/WORKFLOW-LIFECYCLE.md +123 -59
- package/hooks/pre_stop_check.py +3 -2
- package/mcp-server/lib/baseline-workflow.cjs +84 -16
- package/mcp-server/lib/change-workflow.cjs +55 -35
- package/mcp-server/lib/context-spine.cjs +171 -105
- package/mcp-server/lib/git-bootstrap.cjs +240 -0
- package/mcp-server/lib/init-project.cjs +178 -41
- package/mcp-server/lib/project-breadcrumb.cjs +14 -14
- package/mcp-server/lib/state-db.cjs +257 -10
- package/mcp-server/lib/state-ops.cjs +64 -1
- package/mcp-server/lib/workflow-state.cjs +300 -205
- package/mcp-server/server.cjs +58 -34
- package/orchestrator/auto-merge.cjs +19 -0
- package/orchestrator/daemon.cjs +104 -0
- package/orchestrator/parallel-orchestrator.cjs +371 -49
- package/orchestrator/session-runner.cjs +354 -25
- package/package.json +2 -1
- package/skills/ultra-change/SKILL.md +69 -94
- package/skills/ultra-deliver/SKILL.md +37 -65
- package/skills/ultra-dev/SKILL.md +50 -52
- package/skills/ultra-doctor/SKILL.md +34 -49
- package/skills/ultra-init/SKILL.md +78 -105
- package/skills/ultra-plan/SKILL.md +78 -99
- package/skills/ultra-research/SKILL.md +99 -113
- package/skills/ultra-review/SKILL.md +38 -53
- package/skills/ultra-review/references/review-modes.md +5 -3
- package/skills/ultra-review/references/unified-schema.md +26 -6
- package/skills/ultra-review/scripts/review_wait.py +12 -0
- package/skills/ultra-status/SKILL.md +34 -44
- package/skills/ultra-test/SKILL.md +61 -54
- package/skills/ultra-think/SKILL.md +37 -51
- package/skills/ultra-think/references/decision-dialogue.md +87 -111
- package/spec/cli-protocol.md +35 -0
- package/spec/mcp-tools.yaml +145 -28
- package/spec/schemas/delivery-report.v1.schema.json +1 -46
- package/spec/schemas/state-db.sql +8 -2
- package/spec/schemas/test-report.v1.schema.json +45 -14
- package/ultra-tools/cli.cjs +1 -1
- package/ultra-tools/commands/session.cjs +10 -3
- package/ultra-tools/commands/status.cjs +19 -14
- package/ultra-tools/commands/system.cjs +2 -2
- package/ultra-tools/commands/task.cjs +3 -0
|
@@ -1,117 +1,103 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ultra-research
|
|
3
|
-
description:
|
|
3
|
+
description: Build or refresh an evidence-backed product and architecture baseline with model-selected semantic coverage and low-load user alignment. Use when initialization, brownfield adoption, or an active change has a real evidence gap.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
3.
|
|
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
|
-
| `30-architecture-context` | `references/30-architecture-context.md` |
|
|
47
|
-
| `31-solution-strategy` | `references/31-solution-strategy.md` |
|
|
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
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
Present the recorded revision, worktree snapshot, known failures, blockers, and gaps.
|
|
106
|
-
Only after explicit owner approval call `baseline.converge`. Reuse the final research
|
|
107
|
-
checkpoint approval when it names this exact recorded revision, worktree snapshot,
|
|
108
|
-
known failures, blockers, and gaps; do not ask for an equivalent approval again. If
|
|
109
|
-
that snapshot changed, prepare one refreshed checkpoint instead. Accept known-red or a
|
|
110
|
-
dirty worktree only when that exact snapshot was approved. Convergence must verify the
|
|
111
|
-
completed full/adoption research run and current output digests.
|
|
112
|
-
|
|
113
|
-
Return a compact checkpoint: workflow id, completed/selected semantic coverage,
|
|
114
|
-
current decision or blocker, baseline state, open gaps, approval state, and one route.
|
|
115
|
-
Do not print all seventeen report paths unless requested; they remain discoverable
|
|
116
|
-
through workflow state. A ready initial baseline routes to `ultra-change`; bounded
|
|
117
|
-
change research returns to its breadcrumb and then `ultra-plan` when ready.
|
|
6
|
+
# Research with adaptive coverage
|
|
7
|
+
|
|
8
|
+
The host model owns investigation, synthesis, and coverage judgment. Ultra MCP owns the
|
|
9
|
+
run, evidence references, semantic records, artifact digests, freshness, and
|
|
10
|
+
convergence. The seventeen areas are a coverage catalog, not a mandatory questionnaire
|
|
11
|
+
or a fixed sequence of user conversations.
|
|
12
|
+
|
|
13
|
+
Read `../ultra-think/references/decision-dialogue.md` before asking a material question.
|
|
14
|
+
|
|
15
|
+
## Bind authority
|
|
16
|
+
|
|
17
|
+
1. Read `system.doctor`, `baseline.get`, active decisions, and existing research runs.
|
|
18
|
+
2. Resume the matching active, blocked, or ready run. Do not create parallel authority.
|
|
19
|
+
3. If none exists, select:
|
|
20
|
+
- `full` for a greenfield baseline;
|
|
21
|
+
- `adoption` for a brownfield baseline;
|
|
22
|
+
- a bounded mode only for a recorded active-change research disposition.
|
|
23
|
+
4. Before `workflow.start`, inspect current code, docs, tests, runtime, and prior
|
|
24
|
+
artifacts. Provide one disposition for every catalog area in `full` or `adoption`:
|
|
25
|
+
- `execute`: produce fresh evidence;
|
|
26
|
+
- `verify_existing`: verify a current artifact against its source;
|
|
27
|
+
- `reuse`: reuse evidence that is still current;
|
|
28
|
+
- `not_applicable`: exclude with an evidence reference and rationale;
|
|
29
|
+
- `deferred`: record the consequence and owner acceptance when deferral changes the
|
|
30
|
+
accepted scope or leaves material risk.
|
|
31
|
+
|
|
32
|
+
`99-synthesis` must execute, verify, or reuse. A missing disposition is a coverage
|
|
33
|
+
error; a non-executed area with evidence is not an incomplete workflow.
|
|
34
|
+
|
|
35
|
+
## Coverage catalog
|
|
36
|
+
|
|
37
|
+
Load only the reference for a step that must execute, verify, or reuse:
|
|
38
|
+
|
|
39
|
+
| Area | Reference | Area | Reference |
|
|
40
|
+
|---|---|---|---|
|
|
41
|
+
| `00-problem-validation` | `references/00-problem-validation.md` | `01-opportunity-discovery` | `references/01-opportunity-discovery.md` |
|
|
42
|
+
| `02-market-assessment` | `references/02-market-assessment.md` | `03-competitive-landscape` | `references/03-competitive-landscape.md` |
|
|
43
|
+
| `04-product-strategy` | `references/04-product-strategy.md` | `05-assumptions-validation` | `references/05-assumptions-validation.md` |
|
|
44
|
+
| `10-user-personas` | `references/10-user-personas.md` | `11-user-scenarios` | `references/11-user-scenarios.md` |
|
|
45
|
+
| `20-user-stories` | `references/20-user-stories.md` | `21-features-scope` | `references/21-features-scope.md` |
|
|
46
|
+
| `22-success-metrics` | `references/22-success-metrics.md` | `30-architecture-context` | `references/30-architecture-context.md` |
|
|
47
|
+
| `31-solution-strategy` | `references/31-solution-strategy.md` | `32-building-blocks` | `references/32-building-blocks.md` |
|
|
48
|
+
| `40-deployment` | `references/40-deployment.md` | `41-quality-risks` | `references/41-quality-risks.md` |
|
|
49
|
+
| `99-synthesis` | `references/99-synthesis.md` | | |
|
|
50
|
+
|
|
51
|
+
## Investigate and interact
|
|
52
|
+
|
|
53
|
+
For each active area:
|
|
54
|
+
|
|
55
|
+
1. Resolve observable facts from the checkout, runtime, tests, existing specifications,
|
|
56
|
+
and primary sources. Separate `Observed`, `Verified`, `Decided`, and `Unknown`.
|
|
57
|
+
2. Ask the user only for a material intent, scope, compatibility, risk, or recovery
|
|
58
|
+
decision that evidence cannot answer. Use the host's native question UI when
|
|
59
|
+
available. Present the recommendation and effect; avoid a questionnaire or a dump
|
|
60
|
+
of the hidden research queue.
|
|
61
|
+
3. Process dependent decisions one at a time. A small group of independent,
|
|
62
|
+
low-cognitive-load facts may be asked together when the host UI supports it.
|
|
63
|
+
4. Normalize explicit user intent without redundant confirmation. Create durable
|
|
64
|
+
decision state only when a project-bound decision must survive interruption.
|
|
65
|
+
5. Update the smallest relevant baseline specification or active-change research
|
|
66
|
+
artifact. Do not copy prompts, transcripts, provider payloads, or internal chain of
|
|
67
|
+
thought.
|
|
68
|
+
|
|
69
|
+
For every required workflow step, write
|
|
70
|
+
`.ultra/docs/research/<workflow-id>/<step-id>.md` with `Evidence`,
|
|
71
|
+
`Specification updates`, and `Decisions and unknowns`. Call `workflow.step` with
|
|
72
|
+
bounded evidence, the report output, and typed semantic records. Reused or verified
|
|
73
|
+
evidence must still produce a current report and digest. Block the same step when
|
|
74
|
+
required evidence or owner authority is missing.
|
|
75
|
+
|
|
76
|
+
At synthesis, bind the current `discovery.md`, `product.md`, `architecture.md`, and
|
|
77
|
+
`research-distillate.md` for initial/adoption research.
|
|
78
|
+
|
|
79
|
+
## Baseline convergence
|
|
80
|
+
|
|
81
|
+
After `workflow.complete`, initial or adoption research calls `baseline.record` with
|
|
82
|
+
the current repository scope and revision, specification refs, evidence, real
|
|
83
|
+
verification results, unknowns, gap ledger, classification, and external provider
|
|
84
|
+
metadata references.
|
|
85
|
+
|
|
86
|
+
If Git is initialized but unborn, present the exact local checkpoint paths and purpose
|
|
87
|
+
for user authorization, then create only that local commit. Never create a remote,
|
|
88
|
+
tag, or push through research. If authorization or identity is missing, preserve the
|
|
89
|
+
run as blocked with `BASELINE_GIT_HEAD_REQUIRED`.
|
|
90
|
+
|
|
91
|
+
Call `baseline.converge` only when the user has accepted the exact baseline snapshot,
|
|
92
|
+
known failures, blocking gaps, and scope. Reuse an unambiguous current approval; do not
|
|
93
|
+
ask twice. MCP must reject stale research, drift, missing evidence, and unaccepted
|
|
94
|
+
failures.
|
|
95
|
+
|
|
96
|
+
Reuse the final research checkpoint approval during baseline convergence; do not ask
|
|
97
|
+
for an equivalent approval again. After initial or adoption convergence,
|
|
98
|
+
`ultra-change` becomes an available transition. Bounded change research returns to
|
|
99
|
+
its owning Change authority.
|
|
100
|
+
|
|
101
|
+
Return a compact coverage summary by disposition, current evidence or decision
|
|
102
|
+
blocker, baseline state, gaps, and allowed transitions. The host chooses the semantic
|
|
103
|
+
recommendation; MCP supplies only valid and required transitions.
|
|
@@ -1,71 +1,56 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ultra-review
|
|
3
|
-
description:
|
|
3
|
+
description: Independently review one current Ultra plan, task diff, or aggregate change on specification fidelity and engineering standards. Use when current evidence needs a review gate or focused risk analysis.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Review one
|
|
6
|
+
# Review one bounded scope
|
|
7
7
|
|
|
8
|
-
Keep two verdict axes
|
|
8
|
+
Keep two independent verdict axes:
|
|
9
9
|
|
|
10
|
-
- `spec_fidelity`: accepted intent,
|
|
11
|
-
- `engineering_standards`: correctness, safety, tests,
|
|
12
|
-
|
|
10
|
+
- `spec_fidelity`: accepted intent, behavior, documentation impact, and public seams;
|
|
11
|
+
- `engineering_standards`: correctness, safety, tests, integration, maintainability,
|
|
12
|
+
observability, and recovery.
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
Neither axis can compensate for the other.
|
|
15
15
|
|
|
16
|
-
## Bind
|
|
16
|
+
## Bind evidence
|
|
17
17
|
|
|
18
|
-
1. Read `references/review-modes.md
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
and task set.
|
|
26
|
-
4. Compile `change.context` for `review` using only accepted intent, delta, task
|
|
27
|
-
contracts, tests, public seams, and diff paths. Record `compile-context` only when
|
|
28
|
-
ready, with the immutable context manifest as the step output.
|
|
29
|
-
5. Create `.ultra/reviews/<session-id>/` with mode, change id, exact task ids, full HEAD,
|
|
30
|
-
worktree digest, diff range, scope metadata, and pending verdicts.
|
|
18
|
+
1. Read `references/review-modes.md` and select `plan`, `task`, or `change` from the
|
|
19
|
+
actual review request.
|
|
20
|
+
2. Bind one explicit diff or plan artifact, full HEAD, worktree digest, task set,
|
|
21
|
+
acceptance, and current decision state.
|
|
22
|
+
3. Resume or start the review workflow and record `bind-diff`.
|
|
23
|
+
4. Compile `change.context` for `review` and record the immutable manifest under
|
|
24
|
+
`compile-context`.
|
|
31
25
|
|
|
32
|
-
|
|
26
|
+
An empty, ambiguous, or stale scope cannot pass.
|
|
33
27
|
|
|
34
|
-
|
|
35
|
-
smallest necessary engineering workers using the mode and risk matrix; a change review
|
|
36
|
-
for delivery runs every applicable role. Record every selected and skipped role with a
|
|
37
|
-
scope-specific rationale. Invoke them through the current host's native bounded-worker
|
|
38
|
-
mechanism. Keep workers independent and pass only the current diff plus their role
|
|
39
|
-
context.
|
|
28
|
+
## Select workers by risk
|
|
40
29
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
30
|
+
Always run `review-spec`. Select the smallest engineering worker set that covers the
|
|
31
|
+
actual diff and risk. Record every selected and excluded worker with a specific
|
|
32
|
+
rationale; do not run every specialist ceremonially.
|
|
44
33
|
|
|
45
|
-
|
|
34
|
+
Invoke workers through the current host's native bounded-worker mechanism and pass
|
|
35
|
+
only their role, current scope, and relevant evidence. Workers are read-only and may
|
|
36
|
+
not decide owner choices or edit source.
|
|
46
37
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
38
|
+
Resolve `references/unified-schema.md` from this Skill directory and pass its absolute
|
|
39
|
+
path as `SCHEMA_PATH`. Validate specialist artifacts with
|
|
40
|
+
`scripts/review_wait.py`. Record outputs under `review-specification`,
|
|
41
|
+
`review-engineering`, and `coordinate-findings`.
|
|
50
42
|
|
|
51
|
-
The coordinator preserves every
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
If a finding exposes a new owner choice, preserve it as a finding and route the primary
|
|
55
|
-
agent to `ultra-think`; a review worker must not open, answer, or hide that decision.
|
|
43
|
+
The coordinator preserves every finding unchanged in `SUMMARY.json`; it may group
|
|
44
|
+
duplicate root causes only in the human summary. A new material owner choice remains a
|
|
45
|
+
finding and routes to the interaction protocol.
|
|
56
46
|
|
|
57
|
-
##
|
|
47
|
+
## Complete
|
|
58
48
|
|
|
59
|
-
Recheck
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
`SUMMARY.json` to match their complete finding set. Prompt claims and a lossy
|
|
64
|
-
coordinator summary cannot replace either axis. Any code, test, spec, or contract edit
|
|
65
|
-
invalidates affected review evidence and requires a new or resumed run.
|
|
49
|
+
Recheck HEAD, worktree, context digest, diff, task set, acceptance, artifact schemas,
|
|
50
|
+
and both axes. Record `verify-review-gate`, then call `workflow.complete`. MCP derives
|
|
51
|
+
the durable verdict and rejects missing specialists, lossy coordination, stale
|
|
52
|
+
artifacts, or prompt-supplied conclusions.
|
|
66
53
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
`ultra-test`; a new owner choice returns to `ultra-think`; an approved current change
|
|
71
|
-
review routes to `ultra-deliver`.
|
|
54
|
+
Any relevant code, test, specification, or contract edit invalidates the affected
|
|
55
|
+
review evidence. Return both verdict axes, blocking findings, reviewed scope, worker
|
|
56
|
+
selection rationale, artifact digests, and allowed transitions.
|
|
@@ -22,6 +22,8 @@ may be skipped with a concrete rationale.
|
|
|
22
22
|
|
|
23
23
|
## Selection record
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
Disposition the complete specialist roster: `review-spec`, `review-code`,
|
|
26
|
+
`review-tests`, `review-errors`, `review-design`, and `review-comments`. Record each as
|
|
27
|
+
`selected` or `skipped` with a rationale tied to the mode, changed paths, public seam,
|
|
28
|
+
and risk flags. A role is applicable when its evidence could change either verdict
|
|
29
|
+
axis. Tool availability alone is not a selection reason.
|
|
@@ -87,9 +87,9 @@ preference as a defect. Preserve the source specialist's severity during coordin
|
|
|
87
87
|
}
|
|
88
88
|
},
|
|
89
89
|
"workers": {
|
|
90
|
-
"completed": ["review-code", "review-tests"],
|
|
90
|
+
"completed": ["review-spec", "review-code", "review-tests"],
|
|
91
91
|
"failed": [],
|
|
92
|
-
"skipped": []
|
|
92
|
+
"skipped": ["review-errors", "review-design", "review-comments"]
|
|
93
93
|
},
|
|
94
94
|
"worker_selection": [
|
|
95
95
|
{
|
|
@@ -97,6 +97,26 @@ preference as a defect. Preserve the source specialist's severity during coordin
|
|
|
97
97
|
"status": "selected",
|
|
98
98
|
"rationale": "The specification axis is required for every review mode."
|
|
99
99
|
},
|
|
100
|
+
{
|
|
101
|
+
"worker": "review-code",
|
|
102
|
+
"status": "selected",
|
|
103
|
+
"rationale": "The runtime diff changes executable behavior."
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"worker": "review-tests",
|
|
107
|
+
"status": "selected",
|
|
108
|
+
"rationale": "The accepted behavior depends on changed test evidence."
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"worker": "review-errors",
|
|
112
|
+
"status": "skipped",
|
|
113
|
+
"rationale": "The diff does not change an error, fallback, or recovery path."
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"worker": "review-design",
|
|
117
|
+
"status": "skipped",
|
|
118
|
+
"rationale": "The bounded change does not alter module or data-flow boundaries."
|
|
119
|
+
},
|
|
100
120
|
{
|
|
101
121
|
"worker": "review-comments",
|
|
102
122
|
"status": "skipped",
|
|
@@ -112,10 +132,10 @@ preference as a defect. Preserve the source specialist's severity during coordin
|
|
|
112
132
|
`findings` must contain every specialist finding unchanged. Group duplicates only in
|
|
113
133
|
the human-readable summary; never delete or merge machine-readable records.
|
|
114
134
|
|
|
115
|
-
`mode` is `task`, `change`, or `plan`. `worker_selection` contains
|
|
116
|
-
|
|
117
|
-
`workers.completed` plus `workers.failed`; its skipped set
|
|
118
|
-
`review-spec` is always selected and completed.
|
|
135
|
+
`mode` is `task`, `change`, or `plan`. `worker_selection` contains each member of the
|
|
136
|
+
six-worker roster exactly once with a scope-specific selected or skipped rationale.
|
|
137
|
+
Its selected set equals `workers.completed` plus `workers.failed`; its skipped set
|
|
138
|
+
equals `workers.skipped`. `review-spec` is always selected and completed.
|
|
119
139
|
|
|
120
140
|
The overall verdict is `APPROVE` only when both axes pass, artifacts are complete and
|
|
121
141
|
current, and no P0 or P1 finding remains. Use `REQUEST_CHANGES` for a failed axis or
|
|
@@ -25,6 +25,14 @@ AXIS_VERDICTS = {"PASS", "FAIL", "INCOMPLETE"}
|
|
|
25
25
|
OVERALL_VERDICTS = {"APPROVE", "REQUEST_CHANGES", "INCOMPLETE"}
|
|
26
26
|
REVIEW_MODES = {"task", "change", "plan"}
|
|
27
27
|
SELECTION_STATUSES = {"selected", "skipped"}
|
|
28
|
+
REVIEW_WORKERS = {
|
|
29
|
+
"review-spec",
|
|
30
|
+
"review-code",
|
|
31
|
+
"review-tests",
|
|
32
|
+
"review-errors",
|
|
33
|
+
"review-design",
|
|
34
|
+
"review-comments",
|
|
35
|
+
}
|
|
28
36
|
ARTIFACT_STEM = re.compile(r"^[a-z][a-z0-9-]*$")
|
|
29
37
|
FINDING_FIELDS = {
|
|
30
38
|
"id", "axis", "severity", "category", "title", "file", "line", "trigger",
|
|
@@ -240,6 +248,10 @@ def validate_summary(data):
|
|
|
240
248
|
return "selected workers must equal completed and failed workers"
|
|
241
249
|
if skipped != set(workers["skipped"]):
|
|
242
250
|
return "skipped worker selection must match workers.skipped"
|
|
251
|
+
if seen_workers != REVIEW_WORKERS:
|
|
252
|
+
missing = sorted(REVIEW_WORKERS - seen_workers)
|
|
253
|
+
extra = sorted(seen_workers - REVIEW_WORKERS)
|
|
254
|
+
return f"worker_selection must disposition the complete roster; missing={missing}, extra={extra}"
|
|
243
255
|
if "review-spec" not in selected or "review-spec" not in set(workers["completed"]):
|
|
244
256
|
return "review-spec must be selected and completed"
|
|
245
257
|
findings = data.get("findings")
|
|
@@ -1,64 +1,54 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ultra-status
|
|
3
|
-
description:
|
|
3
|
+
description: Read authoritative Ultra health, workflows, decisions, changes, tasks, evidence freshness, and valid transitions. Use when the user asks what is complete, blocked, stale, or currently possible.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# Report authoritative state
|
|
7
7
|
|
|
8
|
-
This
|
|
9
|
-
|
|
8
|
+
This Skill is read-only. Never fall back to generated task JSON, prose, or context
|
|
9
|
+
frontmatter when DB authority is missing or degraded.
|
|
10
10
|
|
|
11
|
-
## Read
|
|
11
|
+
## Read
|
|
12
12
|
|
|
13
|
-
1.
|
|
14
|
-
2.
|
|
15
|
-
|
|
16
|
-
3.
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
7. Read test, review, and delivery artifacts only when referenced by DB workflow state;
|
|
22
|
-
compare their recorded digest and revision with current authority.
|
|
13
|
+
1. Run `system.doctor` without repair.
|
|
14
|
+
2. Read baseline classification, revision, worktree, research provenance, gaps, and
|
|
15
|
+
health.
|
|
16
|
+
3. Read current decision state without exposing hidden future questions.
|
|
17
|
+
4. Read active, blocked, and ready workflows and their current steps.
|
|
18
|
+
5. Read breadcrumb, changes, tasks, sessions, and current Git state.
|
|
19
|
+
6. Read test, review, and delivery artifacts only through DB references and verify
|
|
20
|
+
their digests and revisions.
|
|
23
21
|
|
|
24
|
-
If
|
|
25
|
-
|
|
22
|
+
If authority is unreadable, report the unavailable panel and the required doctor or
|
|
23
|
+
init transition. Do not mutate, compile context, repair, or release.
|
|
26
24
|
|
|
27
|
-
##
|
|
25
|
+
## Interpret transitions
|
|
28
26
|
|
|
29
|
-
|
|
27
|
+
MCP reports:
|
|
30
28
|
|
|
31
|
-
-
|
|
32
|
-
-
|
|
33
|
-
|
|
34
|
-
- active/blocked research: `ultra-research` at its exact `current_step`;
|
|
35
|
-
- ready research with unconverged baseline: finalize research, record, approve, and
|
|
36
|
-
converge through `ultra-research`;
|
|
37
|
-
- active plan/change/dev/test/review/deliver run: its matching workflow at the exact
|
|
38
|
-
step or blocker;
|
|
39
|
-
- ready baseline with no change: `ultra-change` to persist the requested outcome before
|
|
40
|
-
any planning;
|
|
41
|
-
- archived change with fresh evidence: report completion without inventing more work.
|
|
29
|
+
- `allowed_transitions`: mechanically valid capabilities;
|
|
30
|
+
- `required_transition`: the sole recovery route only when a hard invariant permits no
|
|
31
|
+
safe alternative.
|
|
42
32
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
## Output
|
|
33
|
+
The host model recommends among allowed transitions using the user's current goal,
|
|
34
|
+
workflow evidence, and cost of interruption. Do not present the recommendation as DB
|
|
35
|
+
authority. A healthy project may validly allow research, change, thinking, or status at
|
|
36
|
+
the same time.
|
|
48
37
|
|
|
49
38
|
Report:
|
|
50
39
|
|
|
51
40
|
```text
|
|
52
|
-
Ultra: <healthy|degraded> · <branch>@<head> · worktree <
|
|
41
|
+
Ultra: <healthy|degraded> · <branch>@<head|unborn|non-git> · worktree <state>
|
|
53
42
|
Baseline: <mode>/<status> · research=<run/status> · gaps=<open>/<blocking>
|
|
54
|
-
Workflow: <kind/id/status> · step=<current|
|
|
55
|
-
Decision: <
|
|
43
|
+
Workflow: <kind/id/status> · step=<current|complete> · outputs=<fresh|stale>
|
|
44
|
+
Decision: <current|checkpoint|none>
|
|
56
45
|
Change: <id/status|none> · Task: <id/status|none> · Sessions: <active>
|
|
57
|
-
Evidence: test=<state> · review=<
|
|
58
|
-
Blockers: <
|
|
59
|
-
Warnings: <
|
|
60
|
-
|
|
46
|
+
Evidence: test=<state> · review=<axes> · delivery=<state>
|
|
47
|
+
Blockers: <codes or none>
|
|
48
|
+
Warnings: <codes or none>
|
|
49
|
+
Allowed transitions: <capabilities>
|
|
50
|
+
Required transition: <capability or none>
|
|
51
|
+
Host recommendation: <capability and concise rationale>
|
|
61
52
|
```
|
|
62
53
|
|
|
63
|
-
Separate verified facts,
|
|
64
|
-
compile context, repair, or release from this Skill.
|
|
54
|
+
Separate verified facts, host inference, and unavailable evidence.
|