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
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
# Original Ultra Builder Pro to CLI crosswalk
|
|
2
|
+
|
|
3
|
+
This document is the compatibility contract between the original
|
|
4
|
+
[`rocky2431/ultra-builder-pro`](https://github.com/rocky2431/ultra-builder-pro)
|
|
5
|
+
Claude Code harness and this multi-runtime CLI/MCP implementation. Comparisons and
|
|
6
|
+
migration rationale live here, not in runtime Skill prompts.
|
|
7
|
+
|
|
8
|
+
## Provenance
|
|
9
|
+
|
|
10
|
+
- Original baseline inspected at
|
|
11
|
+
[`a82a9d73efe14a2a94a6ac6aa1fd44ba905b2159`](https://github.com/rocky2431/ultra-builder-pro/tree/a82a9d73efe14a2a94a6ac6aa1fd44ba905b2159).
|
|
12
|
+
- The CLI repository was bootstrapped from the original harness at `6deca47`.
|
|
13
|
+
- The original delivery spine is six stages:
|
|
14
|
+
`init -> research -> plan -> dev -> test -> deliver`.
|
|
15
|
+
- `status` and `think` support that spine. The original review Skill is a mandatory
|
|
16
|
+
development/release gate even though it was not a separate slash command.
|
|
17
|
+
|
|
18
|
+
The compatibility target is semantic, not file-for-file. Host-specific Claude Code
|
|
19
|
+
mechanics are replaced only when the replacement preserves the observable workflow
|
|
20
|
+
contract and adds stronger authority, recovery, or portability.
|
|
21
|
+
|
|
22
|
+
## What the CLI preserves and strengthens
|
|
23
|
+
|
|
24
|
+
| Original capability | Current implementation | Compatibility result |
|
|
25
|
+
|---|---|---|
|
|
26
|
+
| Init gathers project facts, creates Ultra files, and establishes Git | `task.init_project` performs deterministic classification, scaffold, schema, Git bootstrap, read-back verification, and then stops | Preserved and strengthened. Init has its own completion boundary and never starts research implicitly. |
|
|
27
|
+
| Complete product and architecture research | `ultra-research` retains the 17 semantic areas as a coverage catalog with execute/verify/reuse/not-applicable/deferred dispositions | Preserved without questionnaire overload. Necessary reports, typed semantic records, source digests, and material decision checkpoints add durable evidence. |
|
|
28
|
+
| Planning converts accepted research into executable work with dependencies | `ultra-plan` persists complete change-owned task contracts and an exact dependency graph | Preserved and strengthened with topology, acceptance coverage, public seams, verification commands, and plan digests. |
|
|
29
|
+
| Development uses isolated Git work, TDD, verification, review, commit, and integration | `ultra-dev`, `session.*`, and the session runner create real worktrees and retain task/review/commit evidence | Preserved and strengthened. Process exit cannot complete a task; uncommitted or unintegrated worktrees cannot be deleted. |
|
|
30
|
+
| Test checks wiring, acceptance, regression, build, performance, security, and failures | `ultra-test` emits a change-bound immutable report covering each applicable dimension | Preserved and strengthened with HEAD, context, task-set, and report-digest validation. |
|
|
31
|
+
| Review challenges specification fidelity and engineering quality | `ultra-review` is a first-class stage with independent specification and engineering axes | Strengthened. A coordinated summary cannot replace either complete axis. |
|
|
32
|
+
| Delivery verifies clean readiness, documentation, build, and evidence | `ultra-deliver` requires current tasks, test, review, learning resolution, reconciliation, a local archive, and an immutable report | Preserved and strengthened. Publish, deploy, push, and other external effects remain separate explicitly authorized operations. |
|
|
33
|
+
| Status restores the current workflow position | `ultra-status` reads DB authority, Git, sessions, artifacts, decisions, allowed transitions, and any hard recovery requirement | Strengthened. The host recommends the semantic route; projections and Prompt prose cannot override state. |
|
|
34
|
+
| Thinking synchronizes owner and Agent intent | `ultra-think` plus `decision.*` persists one-question dialogue and artifact checkpoints | Strengthened. Observable facts are resolved first; only load-bearing owner choices block. |
|
|
35
|
+
|
|
36
|
+
## CLI-original capabilities
|
|
37
|
+
|
|
38
|
+
The following are deliberate extensions built on the original spine:
|
|
39
|
+
|
|
40
|
+
1. `.ultra/state.db` as the only lifecycle authority; Markdown and JSON are artifacts
|
|
41
|
+
or projections.
|
|
42
|
+
2. Typed MCP transitions for baseline, change, decision, workflow, task, session,
|
|
43
|
+
incident, projection, and evidence state.
|
|
44
|
+
3. Greenfield, brownfield, monorepo-scope, migrated, restore, and rebaseline paths.
|
|
45
|
+
4. `ultra-change` as the continuous post-baseline delta and convergence unit.
|
|
46
|
+
5. `ultra-doctor` plus backup-first migration, projection repair, incident reporting,
|
|
47
|
+
orphan recovery, and installed-asset provenance.
|
|
48
|
+
6. Context Manifest v3, Change/task authority digests, DB-derived breadcrumbs,
|
|
49
|
+
adaptive transitions, advisory context budgets, and fresh-context handoffs.
|
|
50
|
+
7. Approval-gated specification learning and baseline reconciliation.
|
|
51
|
+
8. Independent two-axis review and immutable test/review/delivery evidence.
|
|
52
|
+
9. Native adapters for Claude Code, OpenCode, Codex, and Kimi Code.
|
|
53
|
+
10. Explicit worktree admission, leases, heartbeats, crash evidence, circuit breaking,
|
|
54
|
+
dependency waves, and optional verified cleanup.
|
|
55
|
+
|
|
56
|
+
## Intentionally retired original baggage
|
|
57
|
+
|
|
58
|
+
These items are not compatibility losses:
|
|
59
|
+
|
|
60
|
+
- embedded prompt, transcript, observation, summary, or cross-session memory;
|
|
61
|
+
- an internal code graph or memory store;
|
|
62
|
+
- retired model runtimes and their prompts;
|
|
63
|
+
- retired command-proxy integrations;
|
|
64
|
+
- imported browser, deployment, framework, discovery, or third-party Skills;
|
|
65
|
+
- model-tier routing, confidence percentages, forced option counts, forced task
|
|
66
|
+
counts, automatic MVP selection, or silent scope reduction;
|
|
67
|
+
- handwritten `tasks.json` authority or direct specification dual-write;
|
|
68
|
+
- unsafe automatic push, release, merge, or worktree deletion.
|
|
69
|
+
|
|
70
|
+
External memory and graph providers own their content. Ultra may store only bounded
|
|
71
|
+
metadata references.
|
|
72
|
+
|
|
73
|
+
## Reference capability paths and gates
|
|
74
|
+
|
|
75
|
+
These paths show common capability order and hard prerequisites. They are not a
|
|
76
|
+
single mandatory pipeline: the host selects among MCP-reported allowed transitions,
|
|
77
|
+
while MCP requires one route only for a unique mechanical recovery invariant.
|
|
78
|
+
|
|
79
|
+
### New repository
|
|
80
|
+
|
|
81
|
+
```text
|
|
82
|
+
task.init_project
|
|
83
|
+
-> greenfield classification
|
|
84
|
+
-> Git bootstrap when absent
|
|
85
|
+
-> init read-back and completion
|
|
86
|
+
-> explicit full research with 17 coverage dispositions
|
|
87
|
+
-> selected execute/verify/reuse work and synthesis
|
|
88
|
+
-> owner-authorized local checkpoint commit when Git is unborn
|
|
89
|
+
-> baseline.record
|
|
90
|
+
-> baseline.converge
|
|
91
|
+
-> ultra-change
|
|
92
|
+
-> optional bounded research/plan -> dev tasks -> test -> review -> local deliver
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### Existing repository
|
|
96
|
+
|
|
97
|
+
```text
|
|
98
|
+
task.init_project
|
|
99
|
+
-> brownfield classification and selected scope
|
|
100
|
+
-> preserve current Git HEAD and dirty-state evidence
|
|
101
|
+
-> init read-back and completion
|
|
102
|
+
-> explicit adoption research with 17 coverage dispositions
|
|
103
|
+
-> characterization verification + known-red/gap ledger
|
|
104
|
+
-> baseline.record + owner approval
|
|
105
|
+
-> baseline.converge
|
|
106
|
+
-> first ultra-change
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### Earlier Ultra authority
|
|
110
|
+
|
|
111
|
+
```text
|
|
112
|
+
doctor/migrate with backup
|
|
113
|
+
-> migrated compatibility row
|
|
114
|
+
-> explicit brownfield re-adoption
|
|
115
|
+
-> current research and evidence convergence
|
|
116
|
+
-> normal change loop
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### Daily change
|
|
120
|
+
|
|
121
|
+
```text
|
|
122
|
+
status
|
|
123
|
+
-> change intent capture
|
|
124
|
+
-> material alignment only when unresolved
|
|
125
|
+
-> host-selected bounded research, plan, current dev work, think, or status
|
|
126
|
+
-> session.spawn creates the real task worktree
|
|
127
|
+
-> red/green/verify/review
|
|
128
|
+
-> local task commit and verified integration
|
|
129
|
+
-> safe session close
|
|
130
|
+
-> aggregate test -> review -> deliver
|
|
131
|
+
-> atomic baseline reconciliation
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## Breakpoint closure
|
|
135
|
+
|
|
136
|
+
| Prior breakpoint | Required invariant |
|
|
137
|
+
|---|---|
|
|
138
|
+
| Init was incorrectly held open until research and baseline convergence | Init completes only after classification, Git/scaffold setup, state creation, and read-back verification; research starts explicitly and owns baseline convergence. |
|
|
139
|
+
| A fresh project had `.ultra` but no Git | Auto init creates `main`, adds the symlink-safe `.ultra` ignore rule, and exposes `initial_commit_required`. |
|
|
140
|
+
| Initialized Git had no HEAD but baseline used a workspace hash | `unborn` is a persisted state; `baseline.record` fails with `BASELINE_GIT_HEAD_REQUIRED`. |
|
|
141
|
+
| Resume preserved an incorrect project name/type/stack | In-progress resume refreshes corrected metadata and records the change. |
|
|
142
|
+
| MCP session reservation and runner session were separate | `session.spawn` creates the actual worktree and the single authoritative session row. |
|
|
143
|
+
| Process exit zero marked a task completed | Exit success leaves the task `in_progress` until dev/test/review evidence converges. |
|
|
144
|
+
| Dependency waves advanced after transport exit | The plan pauses at the first non-terminal wave and resumes only after its DB tasks converge. |
|
|
145
|
+
| A crafted or merely exported plan could bypass current plan authority | Change-owned dispatch requires a healthy completed plan workflow and the exact current DB graph; malformed, cyclic, stale, duplicate-task, or cross-change plans fail before session creation. |
|
|
146
|
+
| Direct session or daemon spawn bypassed the current plan | Every change-owned admission and spawn revalidates current task-contract digests, task set, dependencies, and staleness before takeover or worktree creation. |
|
|
147
|
+
| A worker launched inside a worktree could create a second `.ultra/state.db` | Every session checkout links its ignored `.ultra` entry to central authority and receives non-overridable DB/root bindings; legacy repositories get a local `info/exclude` rule without tracked drift, while unsafe ignore or link state rolls back before worker launch. |
|
|
148
|
+
| Plan authority could drift between wave admission and actual spawn | The spawn-time gate converts this race into an authority pause without task-failure or circuit-breaker evidence. |
|
|
149
|
+
| Explicit auto-merge could integrate before workflow gates | A change-owned auto-merge requires the exact completion commit, ready dev evidence, a current task review, and clean committed Git work; otherwise the worktree is preserved. |
|
|
150
|
+
| Session close or auto-merge could delete uncommitted work | Close preserves by default; explicit cleanup verifies clean and integrated Git ancestry. |
|
|
151
|
+
| Daemon could create a worktree with no worker | Dispatch refuses to start without an explicit executable command. |
|
|
152
|
+
| Failure returned a task to pending without recovery evidence | Exit and spawn failures become `blocked` and record session-linked circuit-breaker evidence. |
|
|
153
|
+
| A late resume failure could leave refreshed DB metadata behind | Resume snapshots DB authority and generated projections, then restores both together with Git rollback. |
|
|
154
|
+
| A legacy schema migrated before a later resume failure | Resume restores the pre-migration backup, not the partially completed upgraded intermediate state. |
|
|
155
|
+
|
|
156
|
+
## Advancement rule
|
|
157
|
+
|
|
158
|
+
A stage advances only when its DB workflow definition reports every required step
|
|
159
|
+
current and the stage-specific verifier accepts the referenced outputs. A Prompt,
|
|
160
|
+
child-process exit, generated projection, or old document can never advance a stage.
|
|
161
|
+
On interruption, resume the same non-terminal workflow and current step. On authority
|
|
162
|
+
damage, route to doctor; on missing owner authority, route to think. Never open a
|
|
163
|
+
parallel run to escape a blocker.
|
package/docs/PLAN.zh-CN.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# ultra-builder-pro-cli — 历史执行计划与决策日志
|
|
2
2
|
|
|
3
|
-
> **2026-07-
|
|
3
|
+
> **2026-07-24 当前生效边界(D50-D60,覆盖下文旧 Phase 6/7 的内置图谱、memory 与 runtime 设计)**:
|
|
4
4
|
> Ultra Builder Pro 不再拥有 `memory.*`、recall、prompt/transcript/observation/summary
|
|
5
5
|
> 收集 hook 或私有 agent memory。跨会话记忆全部交给独立安装的 cloud-mem/claude-mem。
|
|
6
6
|
> 插件只保留 12 个 Ultra 公共 workflow(新增 daily `ultra-change` 与诊断
|
|
@@ -10,11 +10,11 @@
|
|
|
10
10
|
> Kimi Code 采用各自 native plugin 呈现,其他旧 runtime adapter 已退役。下文所有与此冲突的
|
|
11
11
|
> memory/hindsight 章节仅作为历史实施记录,不再是当前需求或运行时契约。
|
|
12
12
|
|
|
13
|
-
**当前状态**:v0.16.0
|
|
14
|
-
schema
|
|
15
|
-
|
|
16
|
-
acceptance coverage、
|
|
17
|
-
Context Spine
|
|
13
|
+
**当前状态**:v0.16.0 工作树;四宿主 native plugin、50 个 live MCP tool、
|
|
14
|
+
schema 18.0(21 表)、host-native adaptive decision dialogue、material artifact checkpoint、
|
|
15
|
+
adaptive capability graph、typed research coverage、complete Change Contract、
|
|
16
|
+
acceptance coverage、risk-selected test/review、verified learning/reconciliation provenance、
|
|
17
|
+
Context Spine v3 / transition breadcrumb / spec-learning、持续 change/context/convergence/doctor、incident debug lane、
|
|
18
18
|
checkpoint 恢复消费与跨宿主安装 provenance/doctor 已落地;npm 发布由
|
|
19
19
|
`v*.*.*` tag 触发。以下 Phase 0-9 正文保留为 2026-04 的实施历史,不再作为
|
|
20
20
|
当前 runtime 或发布状态的事实来源。
|
|
@@ -31,7 +31,7 @@ checkpoint 恢复消费与跨宿主安装 provenance/doctor 已落地;npm 发
|
|
|
31
31
|
- **Phase 4.6 拆 a/b**(R6 + D35):v0.1 只跑 smoke flow,full conformance 推 v0.2
|
|
32
32
|
- **Codex 第二轮结论**:"小改后开工"(tl;dr);本版已完成小改
|
|
33
33
|
|
|
34
|
-
**总决策数**:D1-
|
|
34
|
+
**总决策数**:D1-D60(当前边界以 D50-D60 为准)
|
|
35
35
|
**总风险数**:R1-R32(v0.3.1 新增 R25-R32 共 8 条)
|
|
36
36
|
|
|
37
37
|
---
|
|
@@ -347,7 +347,7 @@ ultra-builder-pro-cli/
|
|
|
347
347
|
| A2 | MCP server stdio 而非 HTTP | 4 runtime 全支持 stdio MCP;零端口、零防火墙问题 |
|
|
348
348
|
| A3 | 单源 schema(spec/)驱动三层 | 避免 "skill 说的 tool" 与 "MCP 实际的 tool" 不一致 |
|
|
349
349
|
| **A4** | **权威状态层 = SQLite + WAL**(`.ultra/state.db`);tasks.json / context md / activity-log.json / workflow-state 全部降级为投影 | Codex Q1:多文件多主写入最易炸;SQLite 提供事务 + 并发读;D18 |
|
|
350
|
-
| **A5** | **Session 标准单元 =
|
|
350
|
+
| **A5** | **Session 标准单元 = task/runtime lease + 真实独立 worktree + heartbeat + artifact dir**;由当前 host 或显式 worker 消费,process exit 不等于 task completion | D20 建立隔离单元,D56 修正空 worker 与退出即完成断点 |
|
|
351
351
|
| A6 | 事件流 = state-db `events` 表(append-only)+ MCP subscribe | 取代 activity-log.json 文件;state-db 统一权威源(D18) |
|
|
352
352
|
| A7 | Python hooks 沿用,Node shell out | 15 hook 重写 Node 要 2-3 周纯折腾;零价值 |
|
|
353
353
|
| A8 | orchestrator 是可选的常驻 Node daemon | 规则层可不依赖执行层独立跑;半自动 → 全自动平滑升级 |
|
|
@@ -1646,6 +1646,11 @@ Week 18 buffer(ship 中任何 Phase 的 25% 滑动吃掉)
|
|
|
1646
1646
|
| **D53** | **2026-07-17** | **Harness 缺口一次性闭环**:`incident` 成为带五段 `diagnosis.md` 结构门禁的 canonical debug lane;compact checkpoint 由 resume 消费、校验、择新并原子恢复;三宿主安装写 normalized provenance,`ubp --doctor` 只读校验 asset hash 与 plugin/hook/MCP/runtime contract | 将 GSD 的 debug/fresh context、GStack 的 checkpoint/readiness 与 ECC 的 doctor/provenance 思路收敛为 Ultra 自有契约;Memory 与图谱继续由外部 provider 所有,且不恢复任何已退役 surface |
|
|
1647
1647
|
| **D54** | **2026-07-18** | **老项目接入与非阻断门禁闭环**:schema 11.0 新增 greenfield/brownfield baseline authority 与 `baseline.start/record/get/converge`;`task.init_project` 自动识别新旧仓库;上下文文件数、token 和占比改为 advisory warning,active change 的 baseline 问题同样只告警,`change.converge` / delivery 恢复硬门禁 | 避免 Ultra 把既有项目当新产品,也避免必要的 IM incident 因四个大文件超预算而无法施工;限制只在损坏权威、缺少执行契约、证据陈旧和最终收敛边界阻断 |
|
|
1648
1648
|
| **D55** | **2026-07-18** | **新项目、老项目与旧版 Ultra 接入完成统一闭环**:schema 12.0 增加 repository branch/worktree digest、classification、gap ledger 与 incident bypass authority;`ultra-init` 自动分类、resume 只补缺失 scaffold、projection-only state 走支持的备份式 import、旧 DB 备份后升级、migrated baseline 必须显式 brownfield replacement;普通新 change 要求 ready baseline,已开工 change 保持可执行,紧急 incident 只允许有审批记录的 break-glass 并在 archive 写阻断 reconciliation gap | 老项目不再被重置或伪装成 greenfield/ready;历史任务、事件与文档可恢复迁移;健康项目可直接进入日常 change,损坏权威停在明确的 restore-or-rebaseline 决策边界 |
|
|
1649
|
+
| **D56** | **2026-07-24** | **以原始 `rocky2431/ultra-builder-pro` 为语义基线闭合 Git 与执行管线(覆盖 D48 的退出即完成语义)**:schema 17.0 增加 `unborn` Git authority;`task.init_project` 默认保留或建立 Git,resume 以 DB+projection snapshot 原子刷新进行中元数据;`session.spawn` 创建真实 worktree;进程成功不再越过 dev/test/review;spawn/exit 失败写 session-linked failure evidence;dependency wave 在首个未收敛任务处 pause,后续波次不启动;change-owned auto-merge 要求 exact completion commit、ready dev evidence 与 current task review;close 默认保留且仅在 clean+integrated 时删除;daemon 必须配置真实 worker | 原始 init/research/plan/dev/test/deliver 语义与 CLI 原创 DB/MCP/change/recovery 能力形成可恢复的单一管线;消除 scaffold 伪完成、无 HEAD baseline、双 session、空 worker、退出即完成、提前依赖推进、提前合并和 worktree 数据丢失 |
|
|
1650
|
+
| **D57** | **2026-07-24** | **当前宿主边界恢复为 Claude Code、OpenCode、Codex、Kimi Code(仅覆盖 D51 的宿主数量)**:四宿主均使用各自 native plugin/command/skill/MCP/hook 表示;Kimi 的 compact 动态注入限制保持显式 DEGRADED;已退役的模型 runtime、prompt 和模型路由保持删除 | 当前安装器、runtime assets、能力矩阵与 conformance tests 一致,不把 Kimi 支持误写成其他模型依赖,也不恢复任何已删除的外部 Skill、Memory 或命令代理 |
|
|
1651
|
+
| **D58** | **2026-07-24** | **所有 session 入口只能消费已批准且仍然 current 的 change plan**:`execute-plan` 校验 plan 结构、cycle、重复 task、change ownership、当前 DB task graph、已完成 plan workflow 及 artifact health;MCP admission/spawn 与 daemon 复用同一 task contract、dependency、staleness 和 plan-digest gate;所有检查都发生在 takeover 或 worktree mutation 之前 | 关闭 plan export、直接 MCP spawn 与 daemon 到实际执行之间的 authority 断点,保证 MCP/DB 的计划批准不能被手写 JSON、旧 artifact 或旁路入口绕过 |
|
|
1652
|
+
| **D59** | **2026-07-24** | **隔离 worktree 与中央 authority 分离但不分叉**:每个 session checkout 用 symlink-safe `.ultra` ignore 连接唯一中央 `.ultra`;旧仓库仅追加 repository-local `info/exclude`,不修改 tracked baseline;worker 获得不可覆盖的 DB/checkout/authority-root 环境;链接失败原子回滚;plan 在 wave admission 与 spawn 间漂移只 pause、不计 worker failure;旧 schema 的 late-resume 失败恢复迁移前备份 | 关闭自动 worker 在 worktree 中误建第二个 state.db、authority 链接被 Git 提交、竞态误触发 circuit breaker,以及旧版项目失败回滚停在半迁移状态的断点 |
|
|
1653
|
+
| **D60** | **2026-07-24** | **从硬管线升级为自适应能力图**:init 在分类、Git/scaffold 与 read-back 后独立完成且不隐式启动 research;17 项 research 改为 execute/verify/reuse/not-applicable/deferred coverage disposition;change 只捕获意图合同;plan approval 仅在 material decision 时需要;test/review 按风险选 profile;deliver 只做本地收敛归档,外部发布独立授权;MCP 只给 allowed/required transitions,宿主负责语义建议与 native question UI;Change 语义变更自动使任务与 Context v3 失效;schema 18 迁移旧 workflow state | 保留原始 Harness 的 research/plan/dev/test/review/deliver 能力与人机同步核心,同时消除 init/research 混合、固定 17 步执行、重复审批、唯一 next action、Hook 阻塞和新意图复用旧证据等机械化断点 |
|
|
1649
1654
|
|
|
1650
1655
|
---
|
|
1651
1656
|
|
|
@@ -1664,13 +1669,14 @@ Week 18 buffer(ship 中任何 Phase 的 25% 滑动吃掉)
|
|
|
1664
1669
|
+ event subscribe + 活跃会话可见;Phase 4.5 / D19。
|
|
1665
1670
|
- **execution-plan.json**:8A 产出的可审计规划 artifact(waves + ownership
|
|
1666
1671
|
+ conflict),驱动 8B 分派;D34。
|
|
1667
|
-
- **Orchestrator**:Phase 5+
|
|
1668
|
-
|
|
1672
|
+
- **Orchestrator**:Phase 5+ 引入的显式 worker 执行层;`execute-plan` 消费
|
|
1673
|
+
dependency waves,daemon 仅在 opt-in 且配置真实 executable 时轮询分派。
|
|
1669
1674
|
- **规则层 / 执行层**:§4.2;Phase 1-4 / Phase 4.5-8。
|
|
1670
|
-
- **Session**:GSD-2 模式升级版(D20
|
|
1671
|
-
heartbeat(存 sessions 表) + artifact dir
|
|
1675
|
+
- **Session**:GSD-2 模式升级版(D20/D56):真实独立 worktree + lease/
|
|
1676
|
+
heartbeat(存 sessions 表) + artifact dir;由当前 host 或显式 worker
|
|
1677
|
+
消费,进程退出不等于 task 完成。
|
|
1672
1678
|
- **state.db**:`.ultra/state.db` SQLite + WAL 数据库,所有 Ultra workflow
|
|
1673
|
-
状态的权威源;当前
|
|
1679
|
+
状态的权威源;当前 21 表,包含 baselines、changes、artifacts、
|
|
1674
1680
|
context_snapshots、spec_learning_candidates、trace_links、incidents、
|
|
1675
1681
|
projection_jobs 与 event_consumers;Phase 2 建立,D52-D54 扩展。
|
|
1676
1682
|
- **三层架构**:§4.1;skill(知识,只读发现)+ MCP(状态操作主路径)+
|
|
@@ -126,9 +126,9 @@ records. Uninstall refuses an unmanaged or conflicting root.
|
|
|
126
126
|
|
|
127
127
|
| Capability | Contract |
|
|
128
128
|
|---|---|
|
|
129
|
-
| Current state schema | `
|
|
129
|
+
| Current state schema | `18.0` |
|
|
130
130
|
| Runtime values | `claude`, `opencode`, `codex`, `kimi` |
|
|
131
|
-
| Upgrade from earlier schema | preserves runtime rows, adds Context Spine state through 10.0, authoritative baseline adoption in 11.0, repository evidence in 12.0, durable workflows in 13.0, continuous baseline revalidation in 14.0, typed research semantics and verified reconciliation in 15.0,
|
|
131
|
+
| Upgrade from earlier schema | preserves runtime rows, adds Context Spine state through 10.0, authoritative baseline adoption in 11.0, repository evidence in 12.0, durable workflows in 13.0, continuous baseline revalidation in 14.0, typed research semantics and verified reconciliation in 15.0, resumable owner-agent decision threads and workflow alignment gates in 16.0, explicit unborn-Git authority in 17.0, then adaptive transitions and legacy workflow normalization in 18.0 |
|
|
132
132
|
| Preservation gate | rows, IDs, indexes, foreign keys, telemetry, incidents, and migration history remain intact |
|
|
133
133
|
| Failure behavior | rollback; no partially upgraded authority database |
|
|
134
134
|
|
|
@@ -9,9 +9,9 @@ host and project owner. It is the operational companion to
|
|
|
9
9
|
|
|
10
10
|
| Surface | Owns | Must not own |
|
|
11
11
|
|---|---|---|
|
|
12
|
-
| Active host and owner | Product judgment, research content, implementation, review findings,
|
|
12
|
+
| Active host and owner | Product judgment, research content, implementation, review findings, and authorization for destructive or external effects | Durable workflow status or fabricated evidence digests |
|
|
13
13
|
| Skill | One reusable procedure and its evidence requirements | Project state, static product doctrine, host-specific tool fiction |
|
|
14
|
-
| MCP | IDs, transitions, task contracts, evidence references, output hashes, gate verdicts
|
|
14
|
+
| MCP | IDs, valid transitions, hard recovery requirements, task contracts, evidence references, output hashes, and gate verdicts | Semantic route selection, research prose, code generation, memory, or model calls |
|
|
15
15
|
| `.ultra/state.db` | Baseline, change, decision, task, workflow, session, event, incident, projection, and evidence authority | Prompts, transcripts, external memory, or code-graph payloads |
|
|
16
16
|
| Generated JSON and Markdown | Read-only projections and durable artifacts | Independent lifecycle authority |
|
|
17
17
|
| Hook | Compact DB-derived lifecycle observation, minimal event metadata, and projection protection | Generic engineering judgment, prompt/transcript capture, parallel lifecycle logs, or arbitrary edit blocking |
|
|
@@ -20,7 +20,8 @@ Prompt input can supply facts, content paths, reasons, owner decisions, and
|
|
|
20
20
|
evidence references. MCP reads the current repository and DB, validates those
|
|
21
21
|
inputs, hashes outputs, and derives status. Prompt input cannot override a task's
|
|
22
22
|
public seam, verification command, context references, workflow summary, gate
|
|
23
|
-
verdict, output digest, or
|
|
23
|
+
verdict, output digest, or transition validity. A host recommendation is never stored
|
|
24
|
+
as MCP authority.
|
|
24
25
|
|
|
25
26
|
Load-bearing owner choices are normalized through `decision.*`; Prompt prose is not
|
|
26
27
|
durable authority. The host acquires observable facts autonomously, exposes one
|
|
@@ -34,10 +35,12 @@ authority, and no new stage may start on an archived or cancelled change. Doctor
|
|
|
34
35
|
recovers a legacy change without this link into an explicitly blocked workflow;
|
|
35
36
|
it does not fabricate the missing provenance.
|
|
36
37
|
|
|
37
|
-
Ultra does not select an MVP. Product scope and delivery posture are owner
|
|
38
|
-
decisions.
|
|
39
|
-
|
|
40
|
-
|
|
38
|
+
Ultra does not select an MVP. Product scope and material delivery posture are owner
|
|
39
|
+
decisions. The seventeen research areas are a coverage catalog, not a forced
|
|
40
|
+
questionnaire. Initial greenfield and brownfield research must disposition every area
|
|
41
|
+
as `execute`, `verify_existing`, `reuse`, `not_applicable`, or accepted `deferred`;
|
|
42
|
+
only selected necessary work executes. Bounded change research records the same
|
|
43
|
+
selection rationale over its smaller scope.
|
|
41
44
|
|
|
42
45
|
## 2. How `ultra-init` classifies a repository
|
|
43
46
|
|
|
@@ -65,9 +68,22 @@ worktree digests and accepted dirty files are restricted to that scope.
|
|
|
65
68
|
|
|
66
69
|
Classification and readiness are separate. Initialization immediately creates
|
|
67
70
|
or resumes `.ultra/state.db`, installs only the required scaffold, records the
|
|
68
|
-
classification,
|
|
69
|
-
|
|
70
|
-
|
|
71
|
+
classification, and completes an `init` workflow after read-back verification. It
|
|
72
|
+
does not create a research run. A later explicit `ultra-research` invocation selects
|
|
73
|
+
`full` for greenfield or `adoption` for brownfield, records coverage dispositions, and
|
|
74
|
+
works toward baseline readiness. Empty templates are not an approved baseline.
|
|
75
|
+
|
|
76
|
+
With `git_mode: auto`, initialization preserves an existing repository and HEAD.
|
|
77
|
+
When Git is absent it initializes `main` and adds the symlink-safe `.ultra` rule to
|
|
78
|
+
`.gitignore`; an existing repository keeps its tracked ignore file unchanged. Init
|
|
79
|
+
does not create a commit, remote, tag, or push. The resulting `unborn` worktree state
|
|
80
|
+
is durable authority, not equivalent to a non-Git workspace. Full/adoption research
|
|
81
|
+
must obtain explicit approval for one local checkpoint commit before
|
|
82
|
+
`baseline.record`; until then `BASELINE_GIT_HEAD_REQUIRED` blocks convergence.
|
|
83
|
+
|
|
84
|
+
Init completion means only that local authority, Git state, scaffold, and
|
|
85
|
+
classification are usable. Baseline readiness is a separate research and convergence
|
|
86
|
+
outcome; failure there never reopens or blocks the completed init workflow.
|
|
71
87
|
|
|
72
88
|
## 3. Durable status machines
|
|
73
89
|
|
|
@@ -124,6 +140,40 @@ traceability, slice kind, public seam, exact verification command, acceptance
|
|
|
124
140
|
checks, context references, resolved documentation impact, owner, and valid
|
|
125
141
|
dependencies.
|
|
126
142
|
|
|
143
|
+
A semantic Change update marks all derived tasks stale. Clearing that marker requires
|
|
144
|
+
one complete execution-contract rebind through `task.update`; a marker-only clear is
|
|
145
|
+
rejected. MCP validates the resulting contract and appends
|
|
146
|
+
`task_contract_reconciled` with the current Change authority digest before a new plan
|
|
147
|
+
may converge.
|
|
148
|
+
|
|
149
|
+
A session process and a task have different status machines. Process exit zero closes
|
|
150
|
+
the execution transport but leaves the task `in_progress` until development,
|
|
151
|
+
integration, test, and review gates converge. Process failure marks the task `blocked`
|
|
152
|
+
and records failure/circuit evidence. `session.close` preserves the worktree by
|
|
153
|
+
default. Explicit removal succeeds only after Git proves it is clean and its commit is
|
|
154
|
+
integrated into the current checkout.
|
|
155
|
+
|
|
156
|
+
Dependency-wave automation advances only when every task in the current wave is
|
|
157
|
+
`completed` or `expanded` in the DB. A successful worker exit with open gates emits
|
|
158
|
+
`wave_paused` and `plan_paused`; it cannot start dependent work. Re-running the plan
|
|
159
|
+
resumes the first unfinished wave. Explicit auto-merge is additionally gated by task
|
|
160
|
+
completion, an exact completion commit, a ready dev workflow, a current task review,
|
|
161
|
+
clean committed work, and successful integration; otherwise the worktree remains
|
|
162
|
+
recoverable. Legacy tasks without change ownership retain their compatibility path,
|
|
163
|
+
but cannot satisfy the current change workflow contract.
|
|
164
|
+
|
|
165
|
+
Every session worktree resolves its ignored `.ultra` entry to the project authority
|
|
166
|
+
directory. Automated workers receive the central DB path and the isolated checkout
|
|
167
|
+
root separately; their supplied environment cannot override those bindings. If a
|
|
168
|
+
legacy `.ultra/` rule does not ignore the link itself, Ultra adds a repository-local
|
|
169
|
+
`info/exclude` entry without changing tracked files. A missing, tracked, still
|
|
170
|
+
unignored, or conflicting authority entry fails before the session row or worker is
|
|
171
|
+
created and the provisional worktree is removed. A process that already has
|
|
172
|
+
`UBP_SESSION_ID` must reuse that lease and worktree; nested spawn and worker-side close
|
|
173
|
+
are rejected, so the supervising parent alone settles the lease from the real process
|
|
174
|
+
exit. Authority drift detected after wave selection pauses the plan without recording
|
|
175
|
+
execution failure.
|
|
176
|
+
|
|
127
177
|
### Workflow run and step
|
|
128
178
|
|
|
129
179
|
```text
|
|
@@ -160,19 +210,19 @@ case. It never stores the conversation transcript.
|
|
|
160
210
|
|
|
161
211
|
## 4. Write and verification lifecycle
|
|
162
212
|
|
|
163
|
-
| Stage | Authoritative writes | Completion verification |
|
|
213
|
+
| Stage | Authoritative writes | Completion verification | Available continuation |
|
|
164
214
|
|---|---|---|---|
|
|
165
|
-
| `init` | Baseline classification/scope,
|
|
166
|
-
| `research` |
|
|
215
|
+
| `init` | Baseline classification/scope, Git bootstrap state, completed init run, initialization event, projection job | DB/schema opens, scaffold/projection and read-back succeed; existing Git is preserved or missing local Git is initialized | Explicitly chosen `research`, `status`, or `doctor`; an already-ready project may also enter `change` |
|
|
216
|
+
| `research` | Coverage dispositions, selected step evidence, material decision checkpoints, typed semantic records with source digests, immutable reports, output paths and SHA-256 digests | Every coverage area is dispositioned; only executed/verified/reused areas require work evidence; synthesis binds current specifications and distillate; all material decisions and digests are current | Baseline record/convergence for initial research; bounded change research returns to its owning change |
|
|
167
217
|
| baseline convergence | Spec/source/runtime refs, verification results, known failures, unknowns, gaps, branch/HEAD/worktree, approval | Full/adoption research complete; required discovery/product/architecture refs current; revision/worktree exact; blocking gaps resolved or explicitly accepted where allowed | `change` for every initial or daily outcome |
|
|
168
|
-
| `change` |
|
|
169
|
-
| `plan` |
|
|
170
|
-
| `dev` | Task/session transitions, step evidence, immutable implementation context, completion/review references | Task completed; no live session; task contract unchanged; starting context and review artifacts valid; completion commits remain ancestors of current HEAD | Next task, then aggregate `test` |
|
|
171
|
-
| `test` | Immutable checking context and `.ultra/reports/tests/<workflow-id>.json` |
|
|
172
|
-
| `review` | Immutable review context, `task`/`change`/`plan` mode, worker
|
|
173
|
-
| `deliver` | Convergence context, verified learning resolutions,
|
|
174
|
-
| `status` | None | Reads doctor, baseline, workflows, breadcrumb, tasks, sessions, Git, and DB-referenced reports |
|
|
175
|
-
| `doctor` | None by default; explicit repair writes only mechanical recovery state | Re-runs integrity, schema, workflow-output, projection, session, incident, archive, and install checks |
|
|
218
|
+
| `change` | Complete Change Contract, profile/risk rationale, research disposition, intent/delta artifacts, and a completed capture run; a decision thread only when material intent remains unresolved | Intent, acceptance, recovery, classification, and research disposition are complete and bound to the baseline | Host selects among bounded `research`, `plan`, current `dev`, `think`, or `status` using allowed transitions |
|
|
219
|
+
| `plan` | Selected planning evidence, complete change-owned task rows, acceptance coverage matrix, and change-bound `.ultra/execution-plan.json`; approval only for a material owner decision | Every Change acceptance id is owned by a task; trace targets, ownership, dependencies, topology, task contracts, and exported digest match current authority | Any dependency-ready task may enter `dev` |
|
|
220
|
+
| `dev` | Task/session transitions, real worktree, step evidence, immutable implementation context, completion/review references | Task completed; no live session; task contract unchanged; starting context and review artifacts valid; completion commits are integrated and remain ancestors of current HEAD | Next task, then aggregate `test` |
|
|
221
|
+
| `test` | Immutable checking context, an explicit risk-selected verification profile, and `.ultra/reports/tests/<workflow-id>.json` | Selected dimensions and acceptance pass; every excluded dimension has a rationale; report change/task set, HEAD, worktree, context, commands, blockers, and digests agree | `review` when passing, otherwise resume `dev`/`test` |
|
|
222
|
+
| `review` | Immutable review context, `task`/`change`/`plan` mode, risk-selected worker provenance, two mandatory specialist axes, and coordinated summary | Current diff/HEAD and context match; the complete worker roster is selected or skipped with rationale; completed workers match specialist artifacts; both axes complete; findings and axis verdicts derive the final verdict | `deliver` only from a passing `change` review, otherwise resume implementation or checking |
|
|
223
|
+
| `deliver` | Convergence context, verified learning resolutions, semantic reconciliation manifest, local change archive, and immutable delivery report | Tasks/test/change-review are current; baseline semantic updates are anchored; archive and baseline transaction agree; the report contains no release action | Report local completion or start the next `change`; publish/deploy/push are separate explicitly authorized operations |
|
|
224
|
+
| `status` | None | Reads doctor, baseline, workflows, breadcrumb, tasks, sessions, Git, and DB-referenced reports | Shows allowed transitions, any hard required transition, and a host-owned recommendation |
|
|
225
|
+
| `doctor` | None by default; explicit repair writes only mechanical recovery state | Re-runs integrity, schema, workflow-output, projection, session, incident, archive, and install checks | Mechanically required recovery when unique; otherwise a set of safe recovery capabilities |
|
|
176
226
|
|
|
177
227
|
Every mutating MCP operation appends an event and enqueues projection work when
|
|
178
228
|
the corresponding read-only view can change. Projection failure is recorded as
|
|
@@ -183,28 +233,30 @@ emitted by their owning DB mutation and never act as a substitute state transiti
|
|
|
183
233
|
## 5. Human-agent alignment lifecycle
|
|
184
234
|
|
|
185
235
|
The host first reads `decision.list` and resumes matching authority. It starts a new
|
|
186
|
-
thread only for a new decision cluster.
|
|
236
|
+
thread only for a new material decision cluster. Before asking, it must:
|
|
187
237
|
|
|
188
238
|
1. inspect repository, runtime, tests, specifications, and primary-source evidence;
|
|
189
239
|
2. resolve evidence-answerable facts without asking the owner;
|
|
190
|
-
3.
|
|
191
|
-
|
|
192
|
-
4.
|
|
193
|
-
|
|
240
|
+
3. normalize an unambiguous decision already present in the current user request
|
|
241
|
+
instead of asking for redundant confirmation;
|
|
242
|
+
4. ask only when the remaining choice changes intent, public behavior, compatibility,
|
|
243
|
+
security, material cost, external effects, or recovery. Use the host-native
|
|
244
|
+
question surface declared by `spec/interaction-contract.json`;
|
|
245
|
+
5. present the earliest dependent choice with a recommendation, credible alternatives,
|
|
246
|
+
evidence refs, and durable effects. Up to three independent low-load facts may be
|
|
247
|
+
grouped when that reduces inconsistency;
|
|
248
|
+
6. normalize the owner response with `decision.resolve`, explicit reversible
|
|
194
249
|
delegation with `decision.delegate`, or a consequence-bearing deferral with
|
|
195
250
|
`decision.defer`;
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
change-bound threads must bind an artifact. If a shared specification will keep
|
|
199
|
-
evolving, bind a stable per-thread decision projection rather than the mutable
|
|
200
|
-
working draft.
|
|
251
|
+
7. prepare a compact checkpoint only when a material decision cluster changes a
|
|
252
|
+
durable contract and interruption recovery needs an artifact-bound boundary.
|
|
201
253
|
|
|
202
254
|
`ultra-think` owns this interaction protocol. `ultra-research`, `ultra-change`, and
|
|
203
255
|
`ultra-plan` invoke it at their decision boundaries. `ultra-dev`, `ultra-test`,
|
|
204
256
|
`ultra-review`, and `ultra-deliver` stop and route back to the same thread when new
|
|
205
257
|
owner authority is required; they never answer on the owner's behalf. `ultra-status`
|
|
206
|
-
shows only the current decision and
|
|
207
|
-
checkpoint artifacts and recovery state.
|
|
258
|
+
shows only the current decision and transition set, while `ultra-doctor` diagnoses
|
|
259
|
+
stale checkpoint artifacts and recovery state.
|
|
208
260
|
|
|
209
261
|
When only a bound artifact changes, the same resolved thread is prepared and approved
|
|
210
262
|
again against the current digest; this is checkpoint renewal, not a fabricated decision
|
|
@@ -213,7 +265,7 @@ opens one replacement.
|
|
|
213
265
|
|
|
214
266
|
## 6. Context and prompt follow-through
|
|
215
267
|
|
|
216
|
-
`change.context` compiles an immutable Context Manifest
|
|
268
|
+
`change.context` compiles an immutable Context Manifest v3 snapshot. It combines:
|
|
217
269
|
|
|
218
270
|
- the bound baseline/change/task identity;
|
|
219
271
|
- a role and lifecycle gate;
|
|
@@ -221,13 +273,14 @@ opens one replacement.
|
|
|
221
273
|
- local file hashes, current HEAD, branch, and worktree digest;
|
|
222
274
|
- optional metadata-only external memory or graph references;
|
|
223
275
|
- advisory file/token/context-share budgets;
|
|
224
|
-
-
|
|
276
|
+
- the current Change and task authority digests;
|
|
277
|
+
- readiness blockers, `allowed_transitions`, and a `required_transition` only for a
|
|
278
|
+
unique hard-recovery path.
|
|
225
279
|
|
|
226
280
|
Critical stage workflows bind a matching snapshot as a durable output:
|
|
227
281
|
|
|
228
282
|
| Workflow | Required role | Required gate |
|
|
229
283
|
|---|---|---|
|
|
230
|
-
| `change` | `plan` or `implement` | `planning` or `implementation` |
|
|
231
284
|
| `dev` | `implement` | `implementation` |
|
|
232
285
|
| `test` | `check` | `verification` |
|
|
233
286
|
| `review` | `review` | `review` |
|
|
@@ -236,13 +289,18 @@ Critical stage workflows bind a matching snapshot as a durable output:
|
|
|
236
289
|
The snapshot path and digest are then carried into test, review, and delivery
|
|
237
290
|
reports. This prevents a later Prompt from claiming evidence gathered under a
|
|
238
291
|
different context. File and token budgets warn; they do not block legitimate
|
|
239
|
-
work. Missing authority, required refs, task contracts, outputs,
|
|
292
|
+
work. Missing authority, required refs, task contracts, outputs, required owner
|
|
293
|
+
decisions, or
|
|
240
294
|
current gate evidence do block.
|
|
241
295
|
|
|
242
296
|
## 7. Invalidation rules
|
|
243
297
|
|
|
244
298
|
- Changing a task contract invalidates contexts and gates that depended on the
|
|
245
299
|
former contract.
|
|
300
|
+
- Changing accepted Change intent, contract, classification, research disposition,
|
|
301
|
+
provider evidence, or documentation impact marks all derived tasks stale and
|
|
302
|
+
invalidates compiled contexts. Planning or task reconciliation must explicitly
|
|
303
|
+
clear staleness before execution.
|
|
246
304
|
- Changing required source/spec content invalidates the recorded output or
|
|
247
305
|
context digest.
|
|
248
306
|
- Changing a research semantic source invalidates that workflow even when its immutable
|
|
@@ -266,21 +324,25 @@ current gate evidence do block.
|
|
|
266
324
|
### New project
|
|
267
325
|
|
|
268
326
|
```text
|
|
269
|
-
ultra-init ->
|
|
270
|
-
->
|
|
327
|
+
ultra-init -> Git/scaffold/authority verification -> init completed
|
|
328
|
+
-> explicit ultra-research -> disposition 17 coverage areas -> selected evidence work
|
|
329
|
+
-> local checkpoint when Git is unborn -> baseline approval
|
|
330
|
+
-> ultra-change -> optional bounded research/plan -> dev -> risk-selected test/review
|
|
331
|
+
-> local deliver/archive
|
|
271
332
|
```
|
|
272
333
|
|
|
273
334
|
### Existing project
|
|
274
335
|
|
|
275
336
|
```text
|
|
276
|
-
ultra-init ->
|
|
277
|
-
->
|
|
278
|
-
->
|
|
337
|
+
ultra-init -> preserve Git/classify brownfield -> init completed
|
|
338
|
+
-> explicit adoption research -> disposition 17 coverage areas
|
|
339
|
+
-> selected characterization/known-red evidence -> gap ledger -> owner approval
|
|
340
|
+
-> first ultra-change -> optional bounded research/plan -> dev -> test/review -> deliver
|
|
279
341
|
```
|
|
280
342
|
|
|
281
343
|
Adoption records the system that exists. It does not force the owner to recreate
|
|
282
344
|
market, persona, or roadmap claims that cannot be supported; those remain
|
|
283
|
-
`Unknown` or explicit gaps
|
|
345
|
+
`Unknown`, `not_applicable`, accepted `deferred`, or explicit gaps with evidence.
|
|
284
346
|
|
|
285
347
|
### Earlier Ultra project
|
|
286
348
|
|
|
@@ -294,8 +356,9 @@ Migration preserves prior files and rows but never carries old approval forward.
|
|
|
294
356
|
### Daily maintenance
|
|
295
357
|
|
|
296
358
|
```text
|
|
297
|
-
ultra-status -> ultra-change capture
|
|
298
|
-
->
|
|
359
|
+
ultra-status -> ultra-change intent capture
|
|
360
|
+
-> host chooses bounded research, plan, current task, think, or status
|
|
361
|
+
-> dev -> risk-selected test -> review -> deliver -> reconciled baseline
|
|
299
362
|
```
|
|
300
363
|
|
|
301
364
|
Quick changes shorten the artifact burden only where the machine contract allows;
|
|
@@ -307,21 +370,22 @@ evidence rather than bypassing them.
|
|
|
307
370
|
|
|
308
371
|
| Entry | Owns | Normal handoff |
|
|
309
372
|
|---|---|---|
|
|
310
|
-
| `ultra-init` | classification, scope, scaffold,
|
|
311
|
-
| `ultra-research` | evidence acquisition,
|
|
312
|
-
| `ultra-think` | one
|
|
313
|
-
| `ultra-change` | outcome capture,
|
|
314
|
-
| `ultra-plan` |
|
|
373
|
+
| `ultra-init` | classification, scope, Git/scaffold bootstrap, and init verification | stops completed; exposes research/status/doctor and any already-valid change capability |
|
|
374
|
+
| `ultra-research` | coverage disposition, selected evidence acquisition, synthesis, and material research decisions | baseline convergence or return to the owning change |
|
|
375
|
+
| `ultra-think` | one material owner decision or read-only diagnosis | returns to the invoking capability after any needed checkpoint |
|
|
376
|
+
| `ultra-change` | outcome capture, Change Contract, risk/research routing | host selects research, plan, current dev work, think, or status |
|
|
377
|
+
| `ultra-plan` | task contracts, dependencies, acceptance coverage, optional material approval | any dependency-ready task through `ultra-dev` |
|
|
315
378
|
| `ultra-dev` | one task/session vertical slice and focused review | next `ultra-dev` task or aggregate `ultra-test` |
|
|
316
|
-
| `ultra-test` |
|
|
317
|
-
| `ultra-review` | independent specification and engineering
|
|
318
|
-
| `ultra-deliver` | convergence, reconciliation, archive,
|
|
319
|
-
| `ultra-status` | read-only
|
|
320
|
-
| `ultra-doctor` | read-only diagnosis and authorized mechanical recovery |
|
|
321
|
-
|
|
322
|
-
Every row
|
|
323
|
-
`ultra-doctor` when state or installed-runtime authority is unhealthy.
|
|
324
|
-
|
|
379
|
+
| `ultra-test` | risk-selected change acceptance and verification profile | `ultra-review` on pass, `ultra-dev`/`ultra-test` on failure |
|
|
380
|
+
| `ultra-review` | independent specification and engineering axes plus risk-selected workers | `ultra-deliver` on approval; otherwise implementation or checking |
|
|
381
|
+
| `ultra-deliver` | convergence, reconciliation, local archive, and delivery evidence | `ultra-status` or the next `ultra-change`; external release is separate |
|
|
382
|
+
| `ultra-status` | read-only authority and transition set | host recommendation among allowed transitions |
|
|
383
|
+
| `ultra-doctor` | read-only diagnosis and authorized mechanical recovery | required recovery only when unique; otherwise safe alternatives |
|
|
384
|
+
|
|
385
|
+
Every row permits `ultra-think` when material owner authority is missing and permits
|
|
386
|
+
`ultra-doctor` when state or installed-runtime authority is unhealthy. MCP makes one
|
|
387
|
+
of them required only when no safe alternative exists. Neither capability creates a
|
|
388
|
+
parallel workflow or substitutes a Prompt summary for DB state.
|
|
325
389
|
|
|
326
390
|
## 9. Recovery and diagnosis
|
|
327
391
|
|
package/hooks/pre_stop_check.py
CHANGED
|
@@ -35,13 +35,14 @@ def main() -> None:
|
|
|
35
35
|
allow_stop()
|
|
36
36
|
return
|
|
37
37
|
if breadcrumb and breadcrumb.get("change_id"):
|
|
38
|
+
allowed = ", ".join(breadcrumb.get("allowed_transitions") or []) or "none"
|
|
39
|
+
required = breadcrumb.get("required_transition") or "none"
|
|
38
40
|
print(
|
|
39
41
|
"[Ultra stop advisory] Active Ultra change remains open: "
|
|
40
42
|
f"change={breadcrumb['change_id']}, "
|
|
41
43
|
f"task={breadcrumb.get('task_id') or 'none'}, "
|
|
42
44
|
f"gate={breadcrumb.get('gate') or 'alignment'}, "
|
|
43
|
-
f"
|
|
44
|
-
f"Next: {breadcrumb.get('next_action') or 'Inspect Ultra status.'} "
|
|
45
|
+
f"allowed_transitions={allowed}, required_transition={required}. "
|
|
45
46
|
"Stop is allowed; resume or explicitly archive the change later.",
|
|
46
47
|
file=sys.stderr,
|
|
47
48
|
)
|