@namewta/speculo 0.7.1 → 0.7.3
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/README.md +2 -1
- package/dist/src/migrations.js +604 -23
- package/dist/src/migrations.js.map +1 -1
- package/package.json +1 -1
- package/template/canonical/canonical-specdev-engineering-cognitive-mentor.md +171 -277
- package/template/canonical/canonical-specdev-goal-plan.md +714 -833
- package/template/canonical/canonical-specdev-grill-with-docs.md +172 -278
- package/template/canonical/canonical-specdev-spec.md +199 -315
- package/template/canonical/canonical-specdev-tickets.md +405 -398
- package/template/canonical/canonical-specdev-wayfinder.md +170 -276
- package/template/skills/migrate-runtime-state/SKILL.md +6 -6
- package/template/skills/migrate-runtime-state/references/migration-contract.md +9 -3
- package/template/skills/migrate-runtime-state/scripts/migrate-runtime-state.mjs +322 -33
- package/template/skills/optimize-codex-config/SKILL.md +81 -0
- package/template/skills/optimize-codex-config/references/configuration-contract.md +103 -0
- package/template/skills/optimize-codex-config/references/troubleshooting.md +79 -0
- package/template/skills/optimize-codex-config/scripts/audit-codex-config.mjs +747 -0
- package/template/workflows/specdev/I-implement/I-implement.md +97 -142
- package/template/workflows/specdev/I-implement/evidence-template.md +60 -48
- package/template/workflows/specdev/I-implement/execution-preflight.md +29 -19
- package/template/workflows/specdev/I-implement/merge-conflict-protocol.md +12 -11
- package/template/workflows/specdev/I-init-setup/I-init-setup.md +4 -5
- package/template/workflows/specdev/I-init-setup/change-status-template.json +14 -1
- package/template/workflows/specdev/I-init-setup/config-template.json +3 -5
- package/template/workflows/specdev/I-init-setup/status-template.json +1 -1
- package/template/workflows/specdev/INDEX.md +12 -8
- package/template/workflows/specdev/P-goal-plan/P-goal-plan.md +76 -93
- package/template/workflows/specdev/P-goal-plan/completion-control.md +26 -44
- package/template/workflows/specdev/P-goal-plan/goal-plan-template.md +43 -31
- package/template/workflows/specdev/P-goal-plan/lead-orchestration.md +34 -0
- package/template/workflows/specdev/P-goal-plan/orchestration-protocol.md +31 -42
- package/template/workflows/specdev/P-goal-plan/planning-modes.md +42 -61
- package/template/workflows/specdev/T-tickets/T-tickets.md +6 -3
- package/template/workflows/specdev/T-tickets/ticket-readiness.md +5 -3
- package/template/workflows/specdev/T-tickets/ticket-template.md +8 -1
- package/template/workflows/specdev/T-tickets/tickets-map-template.md +5 -4
- package/template/workflows/specdev/_state/status.json +1 -1
- package/template/workflows/specdev/common/README.md +2 -2
- package/template/workflows/specdev/common/rules/change-completion.md +17 -19
- package/template/workflows/specdev/common/rules/deviation-control.md +1 -1
- package/template/workflows/specdev/common/rules/evidence-and-verification.md +27 -37
- package/template/workflows/specdev/common/rules/path-ownership.md +21 -23
- package/template/workflows/specdev/common/rules/readiness-and-depth.md +1 -1
- package/template/workflows/specdev/common/schemas/change-status.schema.json +136 -195
- package/template/workflows/specdev/common/schemas/config.schema.json +9 -11
- package/template/workflows/specdev/common/schemas/goal-plan.schema.json +24 -6
- package/template/workflows/specdev/common/schemas/status.schema.json +7 -63
- package/template/workflows/specdev/common/skills/dev-worktree/SKILL.md +42 -21
- package/template/workflows/specdev/common/skills/dev-worktree/references/create.md +48 -18
- package/template/workflows/specdev/common/skills/dev-worktree/references/finalize.md +47 -12
- package/template/workflows/specdev/common/skills/subagent-delivery/SKILL.md +34 -30
- package/template/workflows/specdev/common/skills/subagent-delivery/references/external-web-subagent.md +10 -23
- package/template/workflows/specdev/common/skills/subagent-delivery/references/native-subagent.md +14 -25
- package/template/workflows/specdev/common/tools/validate-specdev.mjs +507 -117
- package/template/workflows/specdev/I-implement/delegated-evidence-template.md +0 -11
- package/template/workflows/specdev/P-goal-plan/delegated-execution-template.md +0 -33
- package/template/workflows/specdev/P-goal-plan/delegated-execution.md +0 -53
|
@@ -1,9 +1,22 @@
|
|
|
1
1
|
{
|
|
2
|
-
"schema_version":
|
|
2
|
+
"schema_version": 5,
|
|
3
3
|
"artifact": "change-status",
|
|
4
4
|
"change": "<YYYY-MM-DD-topic>",
|
|
5
5
|
"change_status": "active",
|
|
6
6
|
"current_work": null,
|
|
7
|
+
"works_run": [],
|
|
8
|
+
"claimed_investigations": [],
|
|
9
|
+
"execution_authorization": {
|
|
10
|
+
"implementation_commit": {"status": "not-authorized", "source": null, "granted_at": null, "scope": "Ticket source commits"},
|
|
11
|
+
"local_candidate_integration": {"status": "not-authorized", "source": null, "granted_at": null, "scope": "Lead-owned local parent candidate integration and parent update"},
|
|
12
|
+
"source_cleanup": {"status": "not-authorized", "source": null, "granted_at": null, "scope": "Source worktree and branch cleanup"}
|
|
13
|
+
},
|
|
14
|
+
"leadership": {
|
|
15
|
+
"current": "<owner-or-session-locator>",
|
|
16
|
+
"epoch": 1,
|
|
17
|
+
"assigned_at": "<ISO-8601>",
|
|
18
|
+
"history": []
|
|
19
|
+
},
|
|
7
20
|
"created_at": "<ISO-8601>",
|
|
8
21
|
"updated_at": "<ISO-8601>",
|
|
9
22
|
"completed_at": null,
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
{
|
|
2
|
-
"schema_version":
|
|
2
|
+
"schema_version": 4,
|
|
3
3
|
"interaction_language": "zh-CN",
|
|
4
4
|
"artifact_language": "zh-CN",
|
|
5
5
|
"git": {
|
|
6
|
-
"
|
|
7
|
-
"default_branch": null,
|
|
8
|
-
"worktree_for_parallel": true
|
|
6
|
+
"default_branch": null
|
|
9
7
|
},
|
|
10
8
|
"execution": {
|
|
11
|
-
"
|
|
9
|
+
"max_implementation_agents": 3,
|
|
12
10
|
"deep_ticket_human_approval": true,
|
|
13
11
|
"shared_path_owner": "explicit"
|
|
14
12
|
},
|
|
@@ -70,7 +70,7 @@ Archive 归档历史并将经验证知识提升为当前长期知识
|
|
|
70
70
|
- 活跃 change:`<Path>{roots.state}/specdev/changes/</Path>`
|
|
71
71
|
- 历史归档:`<Path>{roots.state}/specdev/archive/</Path>`
|
|
72
72
|
|
|
73
|
-
刷新时 CLI 在 `<Path>{roots.state}/back/</Path>` 保留最近一次旧配置与完整 runtime state,并对 v0.7+ 状态执行兼容迁移。若 `<Path>{roots.state}/migration.json</Path>` 存在且为 pending,所有 SpecDev Works 必须在读取 workflow state 前停止;只有 `<Path>{roots.commands}/migrate-runtime-state.md</Path>`
|
|
73
|
+
刷新时 CLI 在 `<Path>{roots.state}/back/</Path>` 保留最近一次旧配置与完整 runtime state,并对 v0.7+ 状态执行兼容迁移。若 `<Path>{roots.state}/migration.json</Path>` 存在且为 pending,所有 SpecDev Works 必须在读取 workflow state 前停止;只有 `<Path>{roots.commands}/migrate-runtime-state.md</Path>` 可以读取备份并在用户确认后修复。`<Path>{roots.state}/back/</Path>`、`<Path>{roots.state}/install.json</Path>` 与 `<Path>{roots.state}/migration.json</Path>` 均不属于 SpecDev 写入 namespace。
|
|
74
74
|
|
|
75
75
|
初始化设置 work 首次运行时生成配置并创建空的永久 namespace:
|
|
76
76
|
|
|
@@ -122,6 +122,8 @@ Archive 归档历史并将经验证知识提升为当前长期知识
|
|
|
122
122
|
10. **恢复依赖权威工件**:跨 Work 或 Agent 边界时同步 active change 的 `current_work`,成功完成后去重更新 `works_run`,返回下一 Work 和权威工件的完整路径。
|
|
123
123
|
11. **本地执行权威**:远程 Issue/PR/URL 只作为来源或完成投影;Spec、Ticket、Map、Goal Plan、Evidence 和状态始终以本地工件为准。
|
|
124
124
|
12. **完成与归档分离**:本地完成按 change completion 合同决定;远程 close 失败不回滚完成,但必须 reconcile 或 waive 后才归档。
|
|
125
|
+
13. **Lead 与隔离正交**:Lead 固定拥有 SpecDev 状态、Evidence 与父分支;是否派遣 subagent 由 Lead 动态决定。每个实现 Ticket 都使用独立 worktree,Agent 身份不决定是否隔离。
|
|
126
|
+
14. **候选先验收**:source worktree 只产生实现 commit 与非 E2E 证据;Lead 在 parent-candidate 状态运行集成检查和适用 E2E,通过后才推进父分支。
|
|
125
127
|
|
|
126
128
|
共享规则:
|
|
127
129
|
|
|
@@ -145,11 +147,11 @@ Archive 归档历史并将经验证知识提升为当前长期知识
|
|
|
145
147
|
6. 只加载当前步骤需要的 work 子文件和共享规则。
|
|
146
148
|
7. 完成后写入产物、运行适用校验、更新状态和 `works_run`。
|
|
147
149
|
|
|
148
|
-
Change 从 active/blocked 转为 completed 时加载 `<Path>{roots.workflows}/specdev/common/rules/change-completion.md</Path
|
|
150
|
+
Change 从 active/blocked 转为 completed 时加载 `<Path>{roots.workflows}/specdev/common/rules/change-completion.md</Path>`:有 Goal Plan 时由其中唯一 Lead 拥有转换;无 Goal Plan 的 Ticket/Direct Spec 由当前 I owner 拥有;非实现型终点由最终验收工件 owner 拥有。Archive 不补造 completed。
|
|
149
151
|
|
|
150
152
|
## 状态字段
|
|
151
153
|
|
|
152
|
-
`<Path>{roots.state}/specdev/status.json</Path>` 使用全局 schema v4;Spec
|
|
154
|
+
`<Path>{roots.state}/specdev/status.json</Path>` 使用全局 schema v4;Spec/Ticket/Tickets Map 继续使用各自 schema v3,config、Goal Plan 和 `<Path>{roots.state}/specdev/changes/{change}/.status.json</Path>` 使用 schema v4:
|
|
153
155
|
|
|
154
156
|
- `schema_version`(数字):全局状态 schema 版本,固定为 `4`。
|
|
155
157
|
- `workflow`(字符串):workflow 标识,固定为 `"specdev"`。
|
|
@@ -162,7 +164,9 @@ Change 从 active/blocked 转为 completed 时加载 `<Path>{roots.workflows}/sp
|
|
|
162
164
|
|
|
163
165
|
`active[].change` 必须唯一,且不得同时出现在 `archived`。开始 Work 时设置 `current_work`;暂停或可恢复阻塞时保留;成功完成时加入 `works_run` 并清空;取消时清空但不加入。逐次时间、结果和审计证据由 change 自有状态、Work 主产物、Evidence 或 LOG 承载,不写入全局索引。
|
|
164
166
|
|
|
165
|
-
`<Path>{roots.state}/specdev/
|
|
167
|
+
`<Path>{roots.state}/specdev/config.json</Path>` 的 `execution.max_implementation_agents` 为 `1..3`,默认 `3`,仅限制 implementation subagent 且不含 Lead;只读 review/research/test-observation agent 不设 SpecDev 数字上限。
|
|
168
|
+
|
|
169
|
+
`<Path>{roots.state}/specdev/changes/{change}/.status.json</Path>` 的 `worktrees` 保存 Ticket 级 `base_sha`、父分支、workspace/implementation/integration owner、portable source workspace、source checkpoint、parent-candidate branch/workspace、candidate/result SHA、验证、E2E disposition 与生命周期状态。每个实现 Ticket 都有一条记录;父分支只有在 candidate passed 后推进。`removed` 是 `integrated` 后来源 branch/worktree 完成清理的终态,必须保留全部集成与 E2E 证据。
|
|
166
170
|
|
|
167
171
|
领域状态枚举:
|
|
168
172
|
|
|
@@ -171,7 +175,7 @@ Change 从 active/blocked 转为 completed 时加载 `<Path>{roots.workflows}/sp
|
|
|
171
175
|
- Investigation status:`open | closed`
|
|
172
176
|
- Investigation resolution:`answered | out-of-scope | superseded | cancelled | null`
|
|
173
177
|
- Planning Depth:`lite | standard | deep`
|
|
174
|
-
- Worktree:`planned | active | review | integrated | removed | blocked`
|
|
178
|
+
- Worktree:`planned | active | review | integrating | integrated | removed | blocked`
|
|
175
179
|
|
|
176
180
|
## 路径分配
|
|
177
181
|
|
|
@@ -182,7 +186,7 @@ Change 从 active/blocked 转为 completed 时加载 `<Path>{roots.workflows}/sp
|
|
|
182
186
|
|
|
183
187
|
## 副作用边界
|
|
184
188
|
|
|
185
|
-
|
|
189
|
+
未经用户明确授权不得提交、推送、合并、删除来源 branch/worktree、部署、发布、移动归档、写入/关闭远程 Issue 或执行不可逆迁移。Ready Goal Plan/Ticket 执行必须明确取得 implementation commit 与 local candidate integration/父分支更新授权;该授权包含 transient candidate checkout/branch 生命周期,不扩展到来源 cleanup、远端或生产动作。只读探索、change 工件生成和已授权验证可以进行。远程开发投影仅由 Triage reconcile 执行;Retro command 的 Speculo 反馈 Issue 是独立 command 边界。敏感值不得写入 `<Path>{roots.state}/specdev/</Path>`。
|
|
186
190
|
|
|
187
191
|
## 场景路由
|
|
188
192
|
|
|
@@ -212,9 +216,9 @@ Change 从 active/blocked 转为 completed 时加载 `<Path>{roots.workflows}/sp
|
|
|
212
216
|
- **D-diagnose-bugs** — 诊断 Bug:先建立会在精确症状上变红的紧凑反馈回路,再通过最小化、排名假设和单变量探针确认根因,输出修复契约而不实施生产修复。
|
|
213
217
|
- **E-engineering-cognitive-mentor** — 工程认知导师:面向 Bug、项目源码、需求技术方案、架构设计与陌生技术领域的非执行型认知指导 Work;以证据、因果 Why、候选方案对比和逐轮澄清帮助用户形成可复述理解,并将完整问答轨迹持续持久化到当前 change。
|
|
214
218
|
- **G-grill-with-docs** — 设计访谈(带文档):以完整 frontier 逐轮推进设计树,直到每个决策分支都已关闭并获得用户共识,同时持续维护当前 change 的设计树、日志、领域上下文和架构决策。
|
|
215
|
-
- **I-implement** — 实现:基于 Ready Ticket
|
|
219
|
+
- **I-implement** — 实现:基于 Ready Ticket 或获批小型 Spec 执行设计检查、TDD、动态派单、双轴审查、Ticket worktree commit、候选合并验证和 Lead Evidence 回写。
|
|
216
220
|
- **I-init-setup** — 初始化设置:初始化 SpecDev 的语言、配置、全局状态、本地 change 追踪、领域知识布局、验证命令和并发治理。
|
|
217
|
-
- **P-goal-plan** —
|
|
221
|
+
- **P-goal-plan** — 目标规划:在跨 Ticket 协调复杂度需要时,以固定 Lead、动态派单、DAG/Gate 和候选合并门禁生成决策完备且可恢复的执行计划。
|
|
218
222
|
- **P-prototype** — 原型:在获授权的临时 branch/worktree 中构建一次性 Logic 或 UI 原型,回答一个明确设计问题并持久化答案、资产定位和清理状态。
|
|
219
223
|
- **R-review-architecture** — 架构审查:从用户指定范围或 Git 热点扫描代码库的深化机会,以持久化可视化 HTML 呈现候选,并对用户选择的一个方案运行设计树访谈。
|
|
220
224
|
- **S-spec** — 编写 Spec:综合已知事实、设计决定、诊断与代码现状,产出以外部行为和验收合同为权威的 Ready Spec。
|
|
@@ -3,15 +3,15 @@ id: specdev/goal-plan
|
|
|
3
3
|
type: workflow-entry
|
|
4
4
|
workflow: specdev
|
|
5
5
|
name: 目标规划
|
|
6
|
-
description:
|
|
7
|
-
keywords: [目标规划,
|
|
6
|
+
description: 在跨 Ticket 协调复杂度需要时,以固定 Lead、动态派单、DAG/Gate 和候选合并门禁生成决策完备且可恢复的执行计划。
|
|
7
|
+
keywords: [目标规划, Lead, Subagent, DAG, Gate, Wave, worktree, candidate-merge, 证据]
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# 目标规划
|
|
11
11
|
|
|
12
|
-
Goal Plan
|
|
12
|
+
Goal Plan 只拥有单个 Ticket 无法独立决定的事情:整体 Outcome、跨 Ticket 顺序与并发、共享所有权、里程碑 Gate、动态派单边界、父分支集成、迁移/发布顺序、偏差升级和恢复。Ticket 继续拥有局部实现合同。
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
每次 Goal Plan 都采用 `lead-directed`:当前主会话是唯一 Lead,负责计划、SpecDev 状态、Evidence、派单、候选验收、父分支集成和最终回复。Lead 可以根据实际依赖与平台能力动态派遣 subagent,不需要用户预选协作模式。Agent 编排与 worktree 隔离是正交关系;每个进入 I-implement 的 Ticket 都必须拥有独立 worktree,无论由 Lead 还是 implementation subagent 实现。
|
|
15
15
|
|
|
16
16
|
产物写入 `<Path>{roots.state}/specdev/changes/{change}/goal-plan.md</Path>`。
|
|
17
17
|
|
|
@@ -21,12 +21,12 @@ Lead/subagent 是可选的委派分支,不是 Goal Plan 的固有角色。每
|
|
|
21
21
|
|
|
22
22
|
- 多个 Ticket 可以或需要并行;
|
|
23
23
|
- 存在 shared path、共享合同或集中 owner;
|
|
24
|
-
- 存在 Deep Ticket、expand-contract
|
|
25
|
-
-
|
|
26
|
-
- Ticket DAG
|
|
24
|
+
- 存在 Deep Ticket、expand-contract、迁移、兼容窗口或不可逆步骤;
|
|
25
|
+
- 存在多个 Gate、外部审批、发布窗口或高事故半径;
|
|
26
|
+
- Ticket DAG 的关键路径、汇合点或恢复策略无法由 Tickets Map 安全表达;
|
|
27
27
|
- 用户明确要求正式跨 Ticket Plan。
|
|
28
28
|
|
|
29
|
-
|
|
29
|
+
少量、线性、低风险的 Ready Tickets 可以跳过本 work,由 I-implement 逐 Ticket 建立 worktree 并执行。没有 Ticket 的获批小型 Direct Spec 不受 Ticket worktree 合同约束;一旦需要切片,先运行 T-tickets。
|
|
30
30
|
|
|
31
31
|
## 输入
|
|
32
32
|
|
|
@@ -39,89 +39,78 @@ Lead/subagent 是可选的委派分支,不是 Goal Plan 的固有角色。每
|
|
|
39
39
|
|
|
40
40
|
按存在情况读取:
|
|
41
41
|
|
|
42
|
-
-
|
|
43
|
-
-
|
|
44
|
-
-
|
|
45
|
-
-
|
|
46
|
-
-
|
|
47
|
-
-
|
|
42
|
+
- 当前 change 架构决策:`<Path>{roots.state}/specdev/changes/{change}/ADR.md</Path>`
|
|
43
|
+
- 当前 change 领域上下文:`<Path>{roots.state}/specdev/changes/{change}/CONTEXT.md</Path>`
|
|
44
|
+
- 当前 change 设计日志:`<Path>{roots.state}/specdev/changes/{change}/LOG.md</Path>`
|
|
45
|
+
- 当前 change 诊断:`<Path>{roots.state}/specdev/changes/{change}/diagnosis.md</Path>`
|
|
46
|
+
- 永久架构决策:`<Path>{roots.state}/specdev/adr/</Path>`
|
|
47
|
+
- 永久领域上下文:`<Path>{roots.state}/specdev/context/</Path>`
|
|
48
|
+
- 用户提供的合同、标准、参考实现、环境限制、发布窗口和批准策略。
|
|
48
49
|
|
|
49
|
-
Spec 或 Tickets Map
|
|
50
|
+
永久目录可以为空,静默继续。缺少 Spec 或 Tickets Map 时返回 `<Path>{roots.workflows}/specdev/S-spec/S-spec.md</Path>` 或 `<Path>{roots.workflows}/specdev/T-tickets/T-tickets.md</Path>`;当前 ADR/CONTEXT 缺失且规划依赖对应决定时返回 `<Path>{roots.workflows}/specdev/G-grill-with-docs/G-grill-with-docs.md</Path>`,不在 Goal Plan 中补造上游权威。
|
|
50
51
|
|
|
51
52
|
## 流程
|
|
52
53
|
|
|
53
|
-
### 1.
|
|
54
|
+
### 1. 验证上游与执行边界
|
|
54
55
|
|
|
55
56
|
加载 `<Path>{roots.workflows}/specdev/P-goal-plan/planning-modes.md</Path>`:
|
|
56
57
|
|
|
57
|
-
1. 验证 Spec
|
|
58
|
-
2.
|
|
59
|
-
3. 识别
|
|
60
|
-
4.
|
|
61
|
-
5.
|
|
62
|
-
6.
|
|
63
|
-
7. 不熟悉的外部标准或依赖使用 `<Path>{roots.workflows}/specdev/common/skills/research/SKILL.md</Path>`。
|
|
58
|
+
1. 验证 Spec、Tickets、合同覆盖、DAG、路径所有权和 Deep Ticket 完整性;
|
|
59
|
+
2. 只读探索影响调度的代码与项目事实;
|
|
60
|
+
3. 识别 migration、high-assurance、reference-conformance、release-coordination 等适用模式;
|
|
61
|
+
4. 从 config 读取 `max_implementation_agents`,将实际上限写入 `implementation_agent_limit`;本计划可以降低但不得超过 `3`,Lead 不计入;
|
|
62
|
+
5. 确认实现 commit 与本地候选集成已获授权;缺一项则计划保持 blocked;
|
|
63
|
+
6. 只询问无法发现且会改变 Gate、Wave、owner、迁移、批准或验收的问题。
|
|
64
64
|
|
|
65
|
-
|
|
65
|
+
**完成标准**:所有计划内 Ticket Ready;Lead、授权、实现并发上限和父分支可判定;没有用 Goal Plan 掩盖上游缺口。
|
|
66
66
|
|
|
67
|
-
### 2.
|
|
67
|
+
### 2. 构建 Outcome、DAG、Wave 与 Gate
|
|
68
68
|
|
|
69
69
|
加载 `<Path>{roots.workflows}/specdev/P-goal-plan/orchestration-protocol.md</Path>`:
|
|
70
70
|
|
|
71
|
-
1.
|
|
72
|
-
2.
|
|
73
|
-
3. 为 shared path
|
|
74
|
-
4.
|
|
75
|
-
5.
|
|
76
|
-
6.
|
|
71
|
+
1. 压缩 Outcome、成功/伪完成、非目标和权威来源;
|
|
72
|
+
2. 从 Ticket frontmatter 构建 DAG、关键路径、扇出与汇合点;
|
|
73
|
+
3. 为 shared path、共享合同和集中修改指定唯一 owner;
|
|
74
|
+
4. 将依赖满足且项目写路径不相交的 Ticket 分入 Wave;
|
|
75
|
+
5. 为合同稳定、垂直路径、迁移完成、发布就绪等状态定义 Gate;
|
|
76
|
+
6. 为每个 Ticket 记录开始条件、worktree、验证层级、Evidence 目标、集成顺序和失败恢复。
|
|
77
77
|
|
|
78
|
-
**完成标准**:DAG、Wave、Gate 与 Tickets Map
|
|
78
|
+
**完成标准**:DAG、Wave、Gate 与 Tickets Map 一致;每个 Ticket 有唯一项目写 owner、worktree 合同和可验证集成出口。
|
|
79
79
|
|
|
80
|
-
### 3.
|
|
80
|
+
### 3. 固定 Lead 编排与动态派单合同
|
|
81
81
|
|
|
82
|
-
|
|
82
|
+
加载 `<Path>{roots.workflows}/specdev/P-goal-plan/lead-orchestration.md</Path>`,并以 `operation=plan` 调用 `<Path>{roots.workflows}/specdev/common/skills/subagent-delivery/SKILL.md</Path>`:
|
|
83
83
|
|
|
84
|
-
1.
|
|
85
|
-
2.
|
|
86
|
-
3.
|
|
87
|
-
4.
|
|
88
|
-
5.
|
|
84
|
+
1. 固定 Lead 的可恢复 owner/session locator;
|
|
85
|
+
2. 声明 implementation subagent 最多同时三个,Lead 不计入;
|
|
86
|
+
3. 不为只读 review/research/test-observation agent 写 SpecDev 数字上限;
|
|
87
|
+
4. 固定只有 Lead 写 SpecDev 工件与状态;
|
|
88
|
+
5. 定义执行期动态 Dispatch Packet、候选返回和 Lead 验收;
|
|
89
|
+
6. provider、模型和具体派单在 Ticket 开始时按事实选择,不在 Goal Plan 中预分配。
|
|
89
90
|
|
|
90
|
-
|
|
91
|
+
**完成标准**:Lead 可以在恢复后重建派单边界;任何 subagent 都不能成为第二个 SpecDev 状态写入者或父分支 integration owner。
|
|
91
92
|
|
|
92
|
-
### 4.
|
|
93
|
+
### 4. 定义完成、证据与恢复
|
|
93
94
|
|
|
94
95
|
加载 `<Path>{roots.workflows}/specdev/P-goal-plan/completion-control.md</Path>`:
|
|
95
96
|
|
|
96
|
-
1.
|
|
97
|
-
2.
|
|
98
|
-
3.
|
|
99
|
-
4.
|
|
100
|
-
5.
|
|
101
|
-
6.
|
|
97
|
+
1. 定义整体 Definition of Done 和每个 Gate 的关闭证据;
|
|
98
|
+
2. 固化不可协商约束与允许的局部实现自由;
|
|
99
|
+
3. 为每个 Ticket 明确 source-worktree 检查与 parent-candidate 检查;
|
|
100
|
+
4. E2E 按 Ticket 实际跨边界风险标记 required 或 not-required;
|
|
101
|
+
5. 定义候选失败、父 HEAD 漂移、偏差、暂停、批准和恢复动作;
|
|
102
|
+
6. 定义 change 完成、远程 reconcile、残余风险和回滚要求。
|
|
102
103
|
|
|
103
|
-
|
|
104
|
+
**完成标准**:每个完成声明映射到不可变 commit、候选/父分支 SHA、命令、Evidence 或人工批准。
|
|
104
105
|
|
|
105
|
-
### 5.
|
|
106
|
+
### 5. 写入、同步与验证
|
|
106
107
|
|
|
107
|
-
使用 `<Path>{roots.workflows}/specdev/P-goal-plan/goal-plan-template.md</Path>` 写入
|
|
108
|
+
使用 `<Path>{roots.workflows}/specdev/P-goal-plan/goal-plan-template.md</Path>` 写入 Goal Plan:
|
|
108
109
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
3. Gates and Completion Evidence;
|
|
114
|
-
4. Execution and Integration Protocol;
|
|
115
|
-
5. Constraints, Risk and Recovery;
|
|
116
|
-
6. Progress and Decisions。
|
|
117
|
-
|
|
118
|
-
用户选择委派时,在第 4 节加入 `<Path>{roots.workflows}/specdev/P-goal-plan/delegated-execution-template.md</Path>` 的完整内容;没有选择时不加入任何委派痕迹。Ticket 较多时在 Execution Graph 内增加速查表,不创建独立的第二套状态来源。
|
|
119
|
-
|
|
120
|
-
### 6. 同步与验证
|
|
121
|
-
|
|
122
|
-
1. 将 Wave、Gate 和 owner 投影同步到 `<Path>{roots.state}/specdev/changes/{change}/tickets-map.md</Path>`;
|
|
123
|
-
2. 对照 `<Path>{roots.workflows}/specdev/common/schemas/goal-plan.schema.json</Path>`;schema 不记录角色分支;
|
|
124
|
-
3. 运行:
|
|
110
|
+
1. 只保留适用 planning modes,不创建条件性 topology addendum;
|
|
111
|
+
2. 将 Wave、Gate 和 owner 投影同步到 Tickets Map;
|
|
112
|
+
3. 对照 `<Path>{roots.workflows}/specdev/common/schemas/goal-plan.schema.json</Path>`;
|
|
113
|
+
4. 运行:
|
|
125
114
|
|
|
126
115
|
```bash
|
|
127
116
|
node <Path>{roots.workflows}/specdev/common/tools/validate-specdev.mjs</Path> \
|
|
@@ -129,43 +118,37 @@ node <Path>{roots.workflows}/specdev/common/tools/validate-specdev.mjs</Path> \
|
|
|
129
118
|
<Path>{roots.state}/specdev/changes/{change}</Path>
|
|
130
119
|
```
|
|
131
120
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
6. 向用户汇报规划模式、关键路径、Wave、Gate、shared owner、迁移策略、主要风险和 Ready 状态;选择委派时再汇报交付通道与 Lead;
|
|
121
|
+
5. 原子更新 Goal Plan、Tickets Map、全局/current change 状态并重新读取;
|
|
122
|
+
6. 向用户报告 Outcome、关键路径、Wave/Gate、Lead、实现 agent 上限、shared owner、E2E disposition、迁移与主要风险;
|
|
135
123
|
7. 未经用户要求,不自动进入实现。
|
|
136
124
|
|
|
137
125
|
## 决策完备标准
|
|
138
126
|
|
|
139
|
-
每份 Goal Plan
|
|
140
|
-
|
|
141
|
-
- 跨 Ticket 先后、并发 Wave 和关键汇合点;
|
|
142
|
-
- shared path 与共享合同的 owner;
|
|
143
|
-
- Gate 开启、关闭和证据;
|
|
144
|
-
- 迁移、兼容、收缩、发布和回滚顺序;
|
|
145
|
-
- Evidence 返回、集成、偏差、暂停和批准路径。
|
|
127
|
+
每份 Goal Plan 必须让 Lead 无需重新决定:
|
|
146
128
|
|
|
147
|
-
|
|
129
|
+
- Outcome、权威来源和整体完成;
|
|
130
|
+
- 跨 Ticket 先后、Wave、Gate 和关键汇合点;
|
|
131
|
+
- shared path 与共享合同 owner;
|
|
132
|
+
- implementation subagent 上限及动态派单边界;
|
|
133
|
+
- 每 Ticket worktree、source commit、候选验证和父分支推进规则;
|
|
134
|
+
- E2E disposition、偏差、暂停、批准和恢复路径。
|
|
148
135
|
|
|
149
|
-
Goal Plan
|
|
136
|
+
Goal Plan 不复制 Ticket 的局部施工路线、全部文件预测或逐项验收清单。
|
|
150
137
|
|
|
151
138
|
## 完成标准
|
|
152
139
|
|
|
153
|
-
-
|
|
154
|
-
-
|
|
155
|
-
-
|
|
156
|
-
-
|
|
157
|
-
-
|
|
158
|
-
- Tickets Map
|
|
159
|
-
- 无未批准高影响假设或硬停止问题;
|
|
160
|
-
- `<Path>{roots.workflows}/specdev/common/tools/validate-specdev.mjs</Path>` 无 error;
|
|
161
|
-
- 用户收到摘要和下一步选择。
|
|
140
|
+
- Goal Plan schema v4 且 `ready_for_execution` 与状态一致;
|
|
141
|
+
- Lead 唯一,最多三个 implementation subagent,review/research agent 不受 SpecDev 数字限制;
|
|
142
|
+
- 每个实现 Ticket 都有 worktree、commit、candidate-merge 和 Evidence 出口;
|
|
143
|
+
- source worktree 不承担 E2E,适用 E2E 只由 Lead 在 parent-candidate 状态运行;
|
|
144
|
+
- 计划只保留当前固定 Lead 与 candidate-merge 合同,不携带条件性编排附录;
|
|
145
|
+
- validator 无 error,Tickets Map 投影同步,用户收到下一步选择。
|
|
162
146
|
|
|
163
147
|
## 子文件引用
|
|
164
148
|
|
|
165
149
|
- 规划模式与输入门禁:`<Path>{roots.workflows}/specdev/P-goal-plan/planning-modes.md</Path>`
|
|
166
|
-
- DAG、Wave、Gate
|
|
167
|
-
-
|
|
168
|
-
-
|
|
169
|
-
- Goal Plan
|
|
170
|
-
-
|
|
171
|
-
- Agent 交付合同:`<Path>{roots.workflows}/specdev/common/skills/subagent-delivery/SKILL.md</Path>`,仅用户选择委派时调用
|
|
150
|
+
- DAG、Wave、Gate 与集成队列:`<Path>{roots.workflows}/specdev/P-goal-plan/orchestration-protocol.md</Path>`
|
|
151
|
+
- Lead 与动态派单:`<Path>{roots.workflows}/specdev/P-goal-plan/lead-orchestration.md</Path>`
|
|
152
|
+
- 完成、证据与恢复:`<Path>{roots.workflows}/specdev/P-goal-plan/completion-control.md</Path>`
|
|
153
|
+
- Goal Plan 模板:`<Path>{roots.workflows}/specdev/P-goal-plan/goal-plan-template.md</Path>`
|
|
154
|
+
- Agent 交付合同:`<Path>{roots.workflows}/specdev/common/skills/subagent-delivery/SKILL.md</Path>`
|
|
@@ -1,58 +1,40 @@
|
|
|
1
|
-
# Goal Plan
|
|
1
|
+
# Goal Plan 完成、证据与恢复
|
|
2
2
|
|
|
3
|
-
## 1.
|
|
3
|
+
## 1. 整体 Definition of Done
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
至少要求:
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
- Spec 验收合同全部有通过 Evidence 或明确批准的 deferred;
|
|
8
|
+
- 所有非 cancelled Ticket 都有 source commit、通过的 candidate 和父分支 result SHA;
|
|
9
|
+
- shared path、接口、数据、兼容、迁移、调用点与回滚合同闭合;
|
|
10
|
+
- 项目定向检查、受影响回归、类型检查、lint/build 和适用 E2E 无未经批准退化;
|
|
11
|
+
- change 状态、Ticket、Map、Goal Plan、Evidence 与实际 Git 状态一致;
|
|
12
|
+
- 没有未集成 source checkpoint、活动 integration candidate 或未决高影响偏差。
|
|
8
13
|
|
|
9
|
-
|
|
14
|
+
无需改动的 Ticket 必须转为 `cancelled` 并记录来源事实;不得用 Evidence-only Done 或 empty commit 关闭。
|
|
10
15
|
|
|
11
|
-
|
|
12
|
-
- 所有 Spec 验收合同和外部符合性要求有 Evidence;
|
|
13
|
-
- 项目类型检查、静态检查、测试、lint、构建、适用 CI 和受影响 E2E 完成,基线没有未经批准的退化;
|
|
14
|
-
- 可静默失效的关键门禁完成受控反向验证并恢复绿色;
|
|
15
|
-
- 迁移、兼容、调用点清零、监控、回滚和不可逆批准完成;
|
|
16
|
-
- 无未批准偏差、未处置高风险残余问题或伪装成通过的 `unverified` 声明;
|
|
17
|
-
- Ticket、Map、Goal Plan、Evidence、代码事实和状态一致。
|
|
16
|
+
## 2. 两层验证
|
|
18
17
|
|
|
19
|
-
|
|
18
|
+
- `source-worktree`:implementation owner 运行 Ticket 要求的单元、组件、静态、类型、lint/build 等非 E2E 检查;
|
|
19
|
+
- `parent-candidate`:Lead 运行受影响集成/回归和 Ticket 标记 required 的 E2E。
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
Evidence 必须记录命令运行环境。任何在 source worktree 声称的 E2E pass 都无效;subagent 返回的测试结果在 Lead 核对前保持候选状态。
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
## 3. Gate 关闭
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
- Goal Plan 含完整委派附录时,由 Lead 在独立验收后完成 change。
|
|
25
|
+
Lead 在每个 Gate 汇总覆盖 Evidence、接口/数据/兼容状态、candidate/result SHA、适用 E2E、反向验证、偏差、风险和批准。Gate 不以“完成若干 Ticket”作为唯一关闭条件。
|
|
27
26
|
|
|
28
|
-
|
|
27
|
+
## 4. 失败与恢复
|
|
29
28
|
|
|
30
|
-
|
|
29
|
+
- source 检查失败:保留 worktree,继续当前 Ticket;
|
|
30
|
+
- candidate 冲突或检查失败:父分支不动,integration 记 `failed`,Ticket 回到 `in_progress`/`blocked`;
|
|
31
|
+
- 父 HEAD 漂移:integration 记 `stale`,从最新父分支重建并重跑;
|
|
32
|
+
- E2E required 失败:父分支不动,保留失败命令、candidate SHA 和恢复条件;
|
|
33
|
+
- 命中当次 Dispatch Packet/候选协议的停止条件、继续修正已无合理收益或需要新产品决定:停止受影响 Wave,按 deviation control 返回契约 owner;
|
|
34
|
+
- Lead 会话变化:读取 Goal Plan、Ticket、change worktree 状态与最新 Evidence,从最后不可变 checkpoint 恢复。
|
|
31
35
|
|
|
32
|
-
|
|
36
|
+
## 5. Change 完成 owner
|
|
33
37
|
|
|
34
|
-
|
|
38
|
+
Lead 是 Goal Plan change 的唯一完成 owner。没有 Goal Plan 的单 Ticket/Direct Spec 由当前 I-implement owner 按 change completion 规则完成。Archive 不补造完成证据。
|
|
35
39
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
## 6. 风险与恢复
|
|
39
|
-
|
|
40
|
-
每个高风险项写明触发信号、事故半径、预防、检测、恢复、owner 和批准点。迁移或发布计划必须给出回滚不可行时的前向恢复方案。
|
|
41
|
-
|
|
42
|
-
恢复时依次读取 Goal Plan、当前 Ticket、最新 Evidence 和 change 状态,从最后已验证事实继续,不重复询问已确认事项,也不创建额外进度或阻塞文件。委派专属的 checkpoint、locator 和修正轮次由委派附录管理。
|
|
43
|
-
|
|
44
|
-
## 7. 进度与决策回报
|
|
45
|
-
|
|
46
|
-
使用可核验状态,不使用主观百分比:
|
|
47
|
-
|
|
48
|
-
```text
|
|
49
|
-
WAVE_STATUS wave=<n> ready=<ids> active=<ids> done=<ids> blocked=<ids>
|
|
50
|
-
GATE_STATUS gate=<name> state=open|closed evidence=<paths> risks=<summary>
|
|
51
|
-
TICKET_STATUS id=<id> state=<state> evidence=<path> deviation=<none|id>
|
|
52
|
-
BLOCKER id=<id> owner=<owner> needed=<decision-or-input> impact=<scope>
|
|
53
|
-
DECISION id=<id> owner=<owner> status=pending|approved|rejected impact=<scope>
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
委派 Goal Plan 的交付状态格式由委派协议提供,不加入普通 Goal Plan。
|
|
57
|
-
|
|
58
|
-
**完成标准**:进度可由权威工件恢复;普通计划由最后一个 Implement 完成,委派计划由 Lead 完成;所有通过、阻塞和未验证声明均能定位到具体 Evidence 与代码事实。
|
|
40
|
+
**完成标准**:所有通过、阻塞、取消和未验证声明均定位到权威工件、命令与 Git checkpoint;失败不会推进父分支或 Done。
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
---
|
|
2
|
-
schema_version:
|
|
2
|
+
schema_version: 5
|
|
3
3
|
artifact: goal-plan
|
|
4
4
|
change: <YYYY-MM-DD-topic>
|
|
5
5
|
status: draft
|
|
6
|
-
modes: [
|
|
6
|
+
modes: []
|
|
7
|
+
orchestration: lead-directed
|
|
8
|
+
lead: <owner-or-session-locator>
|
|
9
|
+
implementation_agent_limit: 3
|
|
10
|
+
ticket_workspace_policy: required
|
|
11
|
+
integration_gate: candidate-merge
|
|
7
12
|
ready_for_execution: false
|
|
8
13
|
---
|
|
9
14
|
|
|
@@ -28,10 +33,11 @@ ready_for_execution: false
|
|
|
28
33
|
| 优先级 | 来源 | 负责内容 | 冲突处理 |
|
|
29
34
|
|---|---|---|---|
|
|
30
35
|
| 1 | 用户最新明确决定 | 产品取舍与批准 | 更新真正拥有该决策的工件 |
|
|
31
|
-
| 2 | `<Path>{roots.state}/specdev/changes/{change}/ADR.md</Path>` | 当前 change
|
|
32
|
-
| 3 | `<Path>{roots.state}/specdev/changes/{change}/
|
|
33
|
-
| 4 | `<Path>{roots.state}/specdev/changes/{change}/
|
|
34
|
-
| 5 |
|
|
36
|
+
| 2 | `<Path>{roots.state}/specdev/changes/{change}/ADR.md</Path>` 与 `<Path>{roots.state}/specdev/changes/{change}/CONTEXT.md</Path>` | 当前 change 架构决定与领域语义 | 返回 `<Path>{roots.workflows}/specdev/G-grill-with-docs/G-grill-with-docs.md</Path>` 更新真正 owner |
|
|
37
|
+
| 3 | `<Path>{roots.state}/specdev/adr/</Path>` 与 `<Path>{roots.state}/specdev/context/</Path>` | 已毕业的永久决定与领域知识 | 当前 change 替代时在 `<Path>{roots.state}/specdev/changes/{change}/ADR.md</Path>` 与 `<Path>{roots.state}/specdev/changes/{change}/LOG.md</Path>` 明示 |
|
|
38
|
+
| 4 | `<Path>{roots.state}/specdev/changes/{change}/spec.md</Path>` | 外部行为、范围与验收 | 下游不得改写 |
|
|
39
|
+
| 5 | `<Path>{roots.state}/specdev/changes/{change}/ticket/</Path>` | 单 Ticket 契约 | Goal Plan 只编排 |
|
|
40
|
+
| 6 | `<Path>{roots.state}/specdev/changes/{change}/diagnosis.md</Path>` 与当前代码/运行事实 | 已验证根因、现状与可行性 | 冲突时触发偏差并返回真正 owner |
|
|
35
41
|
|
|
36
42
|
## 2. Execution Graph
|
|
37
43
|
|
|
@@ -43,14 +49,14 @@ ready_for_execution: false
|
|
|
43
49
|
|
|
44
50
|
### Waves and Ownership
|
|
45
51
|
|
|
46
|
-
| Wave | Ticket | 前置条件 | 项目写路径 | Shared owner |
|
|
52
|
+
| Wave | Ticket | 前置条件 | 项目写路径 | Shared owner | Gate/集成序号 |
|
|
47
53
|
|---|---|---|---|---|---|
|
|
48
54
|
|
|
49
55
|
### Ticket Quick Reference
|
|
50
56
|
|
|
51
|
-
| ID |
|
|
52
|
-
|
|
53
|
-
| T-01 |
|
|
57
|
+
| ID | 可观察产出 | Dependencies | Worktree | Implementation owner | E2E disposition | Evidence |
|
|
58
|
+
|---|---|---|---|---|---|---|
|
|
59
|
+
| T-01 | ... | — | `specdev-worktree/T-01` | Lead / dynamic dispatch | required / not-required: reason | `<Path>{roots.state}/specdev/changes/{change}/evidence/T-01.md</Path>` |
|
|
54
60
|
|
|
55
61
|
## 3. Gates and Completion Evidence
|
|
56
62
|
|
|
@@ -58,7 +64,7 @@ ready_for_execution: false
|
|
|
58
64
|
|
|
59
65
|
### Gates
|
|
60
66
|
|
|
61
|
-
| Gate | 开启条件 | 关闭证据 | 阻塞范围 |
|
|
67
|
+
| Gate | 开启条件 | 关闭证据 | 阻塞范围 | Lead/批准人 | 失败恢复 |
|
|
62
68
|
|---|---|---|---|---|---|
|
|
63
69
|
|
|
64
70
|
### Contract and Reference Coverage
|
|
@@ -68,34 +74,44 @@ ready_for_execution: false
|
|
|
68
74
|
|
|
69
75
|
## 4. Execution and Integration Protocol
|
|
70
76
|
|
|
71
|
-
###
|
|
77
|
+
### Lead Orchestration
|
|
72
78
|
|
|
73
|
-
|
|
|
74
|
-
|
|
79
|
+
| 项目 | 决定 | 事实依据 |
|
|
80
|
+
|---|---|---|
|
|
81
|
+
| Lead | `<owner-or-session-locator>` | 唯一 SpecDev 状态、Evidence 与父分支 owner |
|
|
82
|
+
| Implementation subagents | `<= 3`,Lead 不计入 | config、依赖和平台能力的最小值 |
|
|
83
|
+
| Read-only agents | 无 SpecDev 数字上限 | review/research/test-observation,不写状态 |
|
|
84
|
+
| Dispatch | execution-time dynamic | provider/模型/派单按 Ticket 事实选择 |
|
|
85
|
+
|
|
86
|
+
### Ticket Workspace and Candidate Integration
|
|
87
|
+
|
|
88
|
+
| Ticket | Parent/base | Worktree/branch | Source checks | Source commit | Candidate checks/E2E | Parent result |
|
|
89
|
+
|---|---|---|---|---|---|---|
|
|
90
|
+
|
|
91
|
+
集成按表中顺序串行进行。source worktree 不运行 E2E;Lead 在最新父分支的 candidate 状态运行集成检查和适用 E2E,通过且父 HEAD 未漂移后才推进父分支。
|
|
75
92
|
|
|
76
93
|
### Authorization Matrix
|
|
77
94
|
|
|
78
95
|
| 动作 | 状态 | 目标与条件 |
|
|
79
96
|
|---|---|---|
|
|
80
|
-
|
|
|
81
|
-
|
|
|
82
|
-
|
|
|
83
|
-
|
|
|
84
|
-
|
|
|
97
|
+
| Ticket worktree local changes | allowed / not-authorized | 限 writable/shared owner 合同 |
|
|
98
|
+
| Implementation commit | allowed / not-authorized | 每 Ticket 必需;缺失则 Plan blocked |
|
|
99
|
+
| Local candidate integration and parent update | allowed / not-authorized | Lead-only;缺失则 Plan blocked |
|
|
100
|
+
| Push / PR / remote merge | allowed / not-authorized | 不从本计划本地授权继承 |
|
|
101
|
+
| Branch/worktree cleanup | allowed / not-authorized | 成功集成不自动继承 |
|
|
102
|
+
| Deploy / migration / production actions | allowed / not-authorized | 逐动作、目标和条件 |
|
|
85
103
|
|
|
86
|
-
### Evidence Return
|
|
104
|
+
### Evidence Return
|
|
87
105
|
|
|
88
|
-
|
|
106
|
+
subagent 只返回候选事实与 commit;Lead 独立核对并写 Evidence、状态和最终验收。
|
|
89
107
|
|
|
90
108
|
## 5. Constraints, Risk and Recovery
|
|
91
109
|
|
|
92
110
|
### Non-negotiable Constraints
|
|
93
111
|
|
|
94
|
-
每条包含来源和违反后果;局部实现自由进入 Guidance。
|
|
95
|
-
|
|
96
112
|
### Verification Integrity
|
|
97
113
|
|
|
98
|
-
|
|
114
|
+
记录判卷接缝、基线、禁止的伪绿色方式,以及 source/candidate 两层验证边界。
|
|
99
115
|
|
|
100
116
|
### Migration or Release Sequence
|
|
101
117
|
|
|
@@ -109,18 +125,14 @@ ready_for_execution: false
|
|
|
109
125
|
|
|
110
126
|
### Current Status
|
|
111
127
|
|
|
112
|
-
记录 Wave/Gate、Ticket
|
|
128
|
+
记录 Wave/Gate、Ticket、source/candidate/result SHA、最近验证和未验证项;不使用主观百分比。
|
|
113
129
|
|
|
114
130
|
### Pending Decisions and Blockers
|
|
115
131
|
|
|
116
|
-
记录失败命令、已通过行为、owner 和恢复条件。
|
|
117
|
-
|
|
118
132
|
### Resume Protocol
|
|
119
133
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
### Reporting Format
|
|
134
|
+
恢复时读取 Goal Plan、当前 Ticket、change worktree 状态和最新 Evidence;从最后通过的父分支 result 或待修正 source checkpoint 继续。
|
|
123
135
|
|
|
124
136
|
## Assumptions
|
|
125
137
|
|
|
126
|
-
|
|
138
|
+
只记录低影响且可验证的假设。存在高影响假设时 `ready_for_execution` 必须为 `false`。
|