@namewta/speculo 2.0.4 → 2.0.6
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/package.json +1 -1
- package/template/canonical/canonical-specdev-goal-plan.md +2272 -1069
- package/template/canonical/canonical-specdev-grill-with-docs.md +2164 -661
- package/template/canonical/canonical-specdev-spec.md +2163 -660
- package/template/canonical/canonical-specdev-tickets.md +2095 -574
- package/template/canonical/canonical-specdev-wayfinder.md +2339 -836
- package/template/references/coordination/coordination-contract.md +8 -6
- package/template/references/coordination/modes/cli.md +1 -1
- package/template/references/coordination/modes/herdr.md +2 -2
- package/template/references/coordination/modes/orca.md +3 -3
- package/template/references/coordination/report-template.md +18 -0
- package/template/references/coordination/result-and-recovery.md +4 -4
- package/template/references/coordination/session-files.md +49 -56
- package/template/references/coordination/task-brief.md +7 -7
- package/template/references/coordination/task-template.md +25 -0
- package/template/references/retrospective/references/friction-taxonomy.md +1 -1
- package/template/references/writing-for-agents/references/project-skill-maintenance.md +29 -0
- package/template/references/writing-for-agents/writing-contract.md +2 -0
- package/template/workflows/specdev/SKILL.md +1 -1
- package/template/workflows/specdev/common/README.md +1 -1
- package/template/workflows/specdev/common/rules/artifact-contract.md +1 -1
- package/template/workflows/specdev/common/rules/change-completion.md +6 -6
- package/template/workflows/specdev/common/rules/domain-runtime.md +2 -2
- package/template/workflows/specdev/common/rules/evidence-and-verification.md +17 -34
- package/template/workflows/specdev/common/rules/execution-policy.md +24 -16
- package/template/workflows/specdev/common/rules/operating-governance.md +1 -1
- package/template/workflows/specdev/common/rules/parent-implementation-orchestration.md +4 -2
- package/template/workflows/specdev/common/rules/path-ownership.md +9 -7
- package/template/workflows/specdev/common/rules/path-reference-contract.md +1 -1
- package/template/workflows/specdev/common/rules/workflow-routing.md +1 -1
- package/template/workflows/specdev/common/rules/workflow-state-and-lifecycle.md +7 -3
- package/template/workflows/specdev/common/schemas/execution-context.schema.json +67 -0
- package/template/workflows/specdev/common/schemas/execution-record.schema.json +154 -0
- package/template/workflows/specdev/common/schemas/goal-plan.schema.json +15 -55
- package/template/workflows/specdev/common/schemas/implementation-plan.schema.json +15 -55
- package/template/workflows/specdev/common/schemas/retro-approval.schema.json +44 -0
- package/template/workflows/specdev/common/schemas/retro-archive.schema.json +99 -0
- package/template/workflows/specdev/common/schemas/retro-execution.schema.json +112 -0
- package/template/workflows/specdev/common/schemas/retro-upgrade.schema.json +163 -0
- package/template/workflows/specdev/common/schemas/retrospective.schema.json +119 -14
- package/template/workflows/specdev/common/schemas/session-locator.schema.json +15 -0
- package/template/workflows/specdev/common/skills/code-review/references/review-evidence.md +3 -3
- package/template/workflows/specdev/common/skills/code-review/references/source-discovery.md +2 -0
- package/template/workflows/specdev/common/skills/code-review/references/working-tree-review.md +1 -1
- package/template/workflows/specdev/common/skills/dev-worktree/SKILL.md +15 -34
- package/template/workflows/specdev/common/skills/dev-worktree/references/create.md +27 -56
- package/template/workflows/specdev/common/skills/dev-worktree/references/finalize.md +10 -54
- package/template/workflows/specdev/common/tools/README.md +16 -0
- package/template/workflows/specdev/common/tools/delivery-artifacts.mjs +5 -5
- package/template/workflows/specdev/common/tools/execution-context.mjs +104 -0
- package/template/workflows/specdev/common/tools/plan-contract.mjs +3 -1
- package/template/workflows/specdev/common/tools/review-evidence.mjs +2 -2
- package/template/workflows/specdev/common/tools/tests/engineering.test.mjs +2 -2
- package/template/workflows/specdev/common/tools/tests/review-fixture.mjs +4 -4
- package/template/workflows/specdev/common/tools/ticket-control.mjs +17 -12
- package/template/workflows/specdev/common/tools/validate-handoff.mjs +108 -0
- package/template/workflows/specdev/common/tools/validate-retro.mjs +331 -0
- package/template/workflows/specdev/common/tools/validate-specdev.mjs +135 -105
- package/template/workflows/specdev/specdev-a-archive-and-consolidate/SKILL.md +2 -1
- package/template/workflows/specdev/specdev-a-archive-and-consolidate/references/operation-contract.md +2 -0
- package/template/workflows/specdev/specdev-a-archive-and-consolidate/references/retro-archive.md +27 -0
- package/template/workflows/specdev/specdev-c-code-review/SKILL.md +1 -1
- package/template/workflows/specdev/specdev-i-implement/SKILL.md +3 -3
- package/template/workflows/specdev/specdev-i-implement/assets/evidence-template.md +39 -31
- package/template/workflows/specdev/specdev-i-implement/references/execution-preflight.md +16 -16
- package/template/workflows/specdev/specdev-i-implement/references/implementation-procedure.md +21 -37
- package/template/workflows/specdev/specdev-i-implement/references/merge-conflict-protocol.md +8 -18
- package/template/workflows/specdev/specdev-p-goal-plan/SKILL.md +3 -3
- package/template/workflows/specdev/specdev-p-goal-plan/assets/goal-plan-template.md +23 -26
- package/template/workflows/specdev/specdev-p-goal-plan/references/completion-control.md +11 -14
- package/template/workflows/specdev/specdev-p-goal-plan/references/lead-orchestration.md +12 -33
- package/template/workflows/specdev/specdev-p-goal-plan/references/map-control.md +1 -1
- package/template/workflows/specdev/specdev-p-goal-plan/references/multi-change-plan.md +11 -16
- package/template/workflows/specdev/specdev-p-goal-plan/references/multi-conflict-and-drift.md +2 -2
- package/template/workflows/specdev/specdev-p-goal-plan/references/multi-execution-loop.md +6 -6
- package/template/workflows/specdev/specdev-p-goal-plan/references/orchestration-protocol.md +13 -44
- package/template/workflows/specdev/specdev-p-goal-plan/references/planning-modes.md +18 -25
- package/template/workflows/specdev/specdev-p-goal-plan/references/single-change-plan.md +16 -16
- package/template/workflows/specdev/specdev-r-retro/SKILL.md +15 -11
- package/template/workflows/specdev/specdev-r-retro/assets/retro-template.md +26 -14
- package/template/workflows/specdev/specdev-r-retro/assets/upgrade-plan-template.md +41 -0
- package/template/workflows/specdev/specdev-r-retro/references/development-retrospective.md +42 -0
- package/template/workflows/specdev/specdev-r-retro/references/records.md +47 -0
- package/template/workflows/specdev/specdev-r-retro/references/skill-upgrade.md +13 -0
- package/template/workflows/specdev/specdev-t-tickets/SKILL.md +2 -0
- package/template/workflows/specdev/specdev-t-tickets/assets/ticket-template.md +1 -1
- package/template/workflows/specdev/specdev-t-tickets/assets/tickets-map-template.md +6 -6
- package/template/workflows/specdev/specdev-t-tickets/references/planning-procedure.md +2 -2
- package/template/workflows/specdev/specdev-t-tickets/references/ticket-readiness.md +3 -3
|
@@ -20,13 +20,13 @@ metadata:
|
|
|
20
20
|
|
|
21
21
|
## 当前票的执行入口
|
|
22
22
|
|
|
23
|
-
执行先读取 <Path>{roots.workflows}/specdev/common/rules/execution-policy.md</Path
|
|
23
|
+
执行先读取 <Path>{roots.workflows}/specdev/common/rules/execution-policy.md</Path>,确定输入,分别选择票据调度、Agent 编排和 change 工作区;完整获批 Spec 不因范围较大而强制拆票,已有 Ready Ticket 不强制补 Goal。执行必须读取 `<Path>{roots.workflows}/specdev/specdev-i-implement/references/implementation-procedure.md</Path>` 和 `<Path>{roots.workflows}/specdev/specdev-i-implement/references/execution-preflight.md</Path>`;执行过程按当前阶段路由设计、TDD、双轴审查和 Evidence;预检单独拥有 Git、workspace、Ready 与授权检查。两者必读,分支参考只在对应 workspace/风险/阶段进入时加载。
|
|
24
24
|
|
|
25
25
|
UI Ticket 或 Direct Spec 必须读取 <Path>{roots.workflows}/specdev/common/rules/design-contract.md</Path> 与当前批准 DESIGN,核验 design_ref(revision/digest/pages/acceptance)、原型和基线。页面任务按已批准规则实现,不重新选择模板;实际实现证据写入 `Design Conformance`,原型截图不替代生产页面验证。
|
|
26
26
|
|
|
27
27
|
1. 核验 Ready、授权、owner、真实源与 map 基线;新增计划型票按 `<Path>{roots.workflows}/specdev/common/rules/skill-invocation.md</Path>` 实际调用绑定能力并记录证据。票缺调用契约时先由 Lead 补齐,不猜测。
|
|
28
28
|
2. 保持 codebase-design、design-it-twice 和 TDD 的适用门禁;进入对应实现步骤再读其 reference。派单时调用 共享编排方法;Lead 是唯一 SpecDev 状态写入者。
|
|
29
|
-
3. Ticket 和 Direct Spec
|
|
29
|
+
3. Ticket 和 Direct Spec 的全部执行者复用选定 change 工作区;票据调度和 Agent 编排分别决定。E2E 由 Lead 在稳定输入上验收;checkpoint 可为实际 commit 或工作副本快照,提交/合并按明确授权执行。
|
|
30
30
|
4. 安全、并发、公共接口、数据迁移或用户要求全面审查时展开 `<Path>{roots.workflows}/specdev/common/skills/code-review/references/risk-review.md</Path>`;不为省上下文删减必要检查或限制发现数量。
|
|
31
31
|
5. 写 Evidence、运行适用校验并回读后才推进状态;必需 Skill 失败、验收失败、越界或归属冲突暂停本票及依赖它的分支。无关工作仍由总控继续,不接管他人事务。
|
|
32
32
|
|
|
@@ -44,6 +44,6 @@ UI Ticket 或 Direct Spec 必须读取 <Path>{roots.workflows}/specdev/common/ru
|
|
|
44
44
|
|
|
45
45
|
进入实现或审查时读取 <Path>{roots.references}/coordination/coordination-contract.md</Path>;未明确指定时按当前宿主正常执行,App、CLI 等均可,subagent/agent team 属于宿主能力。明确指定 CLI 交互、Herdr 等方式时按选择执行并展开对应参考;编排与 current/worktree 独立,已有授权和选择直接复用。只读取所选工具的当前指南,不固定工具或模型。
|
|
46
46
|
|
|
47
|
-
`lead` 上下文维护原业务状态和 Evidence;`task`
|
|
47
|
+
`lead` 上下文维护原业务状态和 Evidence;`task` 上下文处理指定目标、阶段及授权写集,返回候选、findings、检查和未验证项,不修改正式 Ticket/Map/Goal/Evidence,不递归启动 Goal 或擅自跨 CLI 派单。同票可按要求协作,写集和共享资源仍须唯一 owner。
|
|
48
48
|
|
|
49
49
|
P 在已授权 run/resume 中完成当前实现、审查、验证和同范围修复后继续下一 Ready 任务,不逐票询问“继续”。只读分析或 plan 不执行。双轴审查必须由未参与本范围实现的 Agent 执行,默认派遣一位原生 subagent;已有编排选择沿用于 review,不能由实现者或参与实现的 Lead 自审替代。
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
# Evidence: <Ticket ID> — <Ticket title>
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
本模板记录选定 change-workspace 上的实际实现与验证,不预造 source/candidate/result。Direct Spec 写 evidence/direct-spec.md;所有执行者复用 README 的 Execution Context,提交与合并仅记录实际获授权的结果。
|
|
4
4
|
|
|
5
5
|
- **Change:** `<change>`
|
|
6
6
|
- **Ticket:** `<Path>{roots.state}/specdev/changes/{change}/ticket/{ticket-file}.md</Path>`
|
|
7
7
|
- **Spec:** `<Path>{roots.state}/specdev/changes/{change}/spec.md</Path>`
|
|
8
8
|
- **Goal Plan:** `<Path>{roots.state}/specdev/changes/{change}/goal-plan.md</Path>` / 不适用
|
|
9
9
|
- **Lead:** `<owner-or-session-locator>`
|
|
10
|
-
-
|
|
11
|
-
-
|
|
10
|
+
- **工作区:** `<Path>{roots.state}/specdev/changes/{change}/README.md</Path>` 的 execution-context 锚点(唯一实际 workspace/branch/base)
|
|
11
|
+
- **固定交付:** 实际 commit 或工作副本快照/审查输入 locator
|
|
12
12
|
- **状态:** review / done / blocked / deviated / cancelled
|
|
13
13
|
|
|
14
14
|
## 1. 实现摘要
|
|
@@ -17,16 +17,16 @@
|
|
|
17
17
|
|
|
18
18
|
## 2. Lead Dispatch And Candidate Return
|
|
19
19
|
|
|
20
|
-
- **执行选择与来源:**
|
|
21
|
-
- **Implementation
|
|
20
|
+
- **执行选择与来源:** ticket_execution=auto/serial/parallel;单 Agent/subagent/team/指定工具的要求来源;README 工作区引用;验证尝试上限缺省 3
|
|
21
|
+
- **Implementation owners:** 实际实现及修复者身份;同票多人时列明各自写集
|
|
22
22
|
- **Dispatch Packet/checkpoint:** Lead direct / `<locator + immutable checkpoint>`
|
|
23
|
-
- **文件交接(实际外部派遣时):** `<Path>{roots.state}/specdev/changes/{change}/sessions/{session}/{task}/TASK.md</Path>` 与 `<Path>{roots.state}/specdev/changes/{change}/sessions/{session}/{task}/REPORT.md</Path>`;绑定稳定 change 身份与 change 根相对 locator,修正交付引用新任务及旧报告;Lead direct 不创建空目录
|
|
24
|
-
- **允许动作:**
|
|
25
|
-
- **返回:**
|
|
23
|
+
- **文件交接(实际外部派遣时):** `<Path>{roots.state}/specdev/changes/{change}/sessions/{session}/{task}/TASK.md</Path>` 与 `<Path>{roots.state}/specdev/changes/{change}/sessions/{session}/{task}/REPORT.md</Path>`,以及实际存在的 `<Path>{roots.state}/specdev/changes/{change}/sessions/{session}/{task}/session-locator.json</Path>`;绑定稳定 change 身份与 change 根相对 locator,修正交付引用新任务及旧报告;Lead direct 不创建空目录
|
|
24
|
+
- **允许动作:** 授权路径写入、检查;commit/merge 仅明确授权时
|
|
25
|
+
- **返回:** checkpoint/快照、dirty 状态、实际实现者、修改路径、命令/退出码、未验证项与恢复条件
|
|
26
26
|
- **Lead 独立核对:** pass / fail;实际读取与命令摘要
|
|
27
27
|
- **只读 Agent findings:** 无 / 固定输入、来源、结论、Lead 核对
|
|
28
28
|
|
|
29
|
-
任务执行者 不写本 Evidence;以上内容由 Lead 从实际 workspace、Git 和返回事实整理。有文件交接时依 <Path>{roots.references}/coordination/session-files.md</Path>
|
|
29
|
+
任务执行者 不写本 Evidence;以上内容由 Lead 从实际 workspace、Git 和返回事实整理。有文件交接时依 <Path>{roots.references}/coordination/session-files.md</Path> 只保存交接文件指针和 Lead 独立核验,不复制正文;REPORT 的 completed 不是本 Evidence 的 done。先读报告聚焦交接,细节不足再沿对应定位文件的 path,结合 TASK 内容检索;地址不重复写入 Evidence。突然中断无报告时记录未知事实与原工具查询结果,不补造成功回报。
|
|
30
30
|
|
|
31
31
|
## 3. 修改范围与路径所有权
|
|
32
32
|
|
|
@@ -48,11 +48,11 @@
|
|
|
48
48
|
|
|
49
49
|
## 5. Workspace Verification
|
|
50
50
|
|
|
51
|
-
|
|
51
|
+
在 README 选定的 change-workspace 记录适用检查;冻结审查/整体测试输入前协调相关 writer 停写。
|
|
52
52
|
|
|
53
53
|
| 命令或步骤 | 运行环境 | 结果 | 摘要 |
|
|
54
54
|
|---|---|---|---|
|
|
55
|
-
| ... |
|
|
55
|
+
| ... | change-workspace | pass / fail / not-run | ... |
|
|
56
56
|
|
|
57
57
|
- **失败后修复与重跑:** 无 / ...
|
|
58
58
|
- **未运行检查:** 无 / 原因与风险
|
|
@@ -78,26 +78,15 @@
|
|
|
78
78
|
|
|
79
79
|
## 7. Integration Verification
|
|
80
80
|
|
|
81
|
-
|
|
81
|
+
Lead 在选定 change-workspace 对固定交付执行适用集成/回归和 E2E。记录命令、退出码、真实观察、输入与运行环境。E2E disposition 为 required 或 not-required: reason;required 未执行/失败不得完成。提交、合并和发布单独列实际授权与结果,不是默认每票门。
|
|
82
82
|
|
|
83
|
-
|
|
84
|
-
|---|---|
|
|
85
|
-
| Parent before SHA | `<sha>` |
|
|
86
|
-
| Implementation/source SHA | `<sha>` / `<sha>` |
|
|
87
|
-
| Candidate branch/workspace | current / `<branch>` / `not-applicable` |
|
|
88
|
-
| Method/conflicts | direct-parent / fast-forward / merge-commit;无 / paths |
|
|
89
|
-
| Integration checks | 命令、运行环境 `current-workspace`、结果 |
|
|
90
|
-
| E2E disposition | required / not-required: reason |
|
|
91
|
-
| E2E result | pending / passed / failed / not-required;场景与证据 |
|
|
92
|
-
| Parent result/re-read | `<sha>`;HEAD/tree/ancestor 核对 |
|
|
93
|
-
|
|
94
|
-
集成失败时明确父 HEAD 是否推进、失败命令、旧 SHA 和恢复条件。
|
|
83
|
+
实际运行后在本文件建立 `verification` 锚点,含 `Result: passed|failed`、`Observed: <真实观察>`,有命令时记录 `Command` 与 `Exit`。required E2E 单独可回读段另记 `Owner: <实际 Lead>`。不能以模板标题或 passed 结论自证运行。
|
|
95
84
|
|
|
96
85
|
### Failure History And Lead Recovery
|
|
97
86
|
|
|
98
|
-
| 轮次 | 阶段 | Checkpoint/
|
|
87
|
+
| 轮次 | 阶段 | Checkpoint/snapshot | 失败事实 | 下一轮变化 |
|
|
99
88
|
|---|---|---|---|---|
|
|
100
|
-
| ... | implementation / review /
|
|
89
|
+
| ... | implementation / review / workspace-verification | `<sha-or-locator>` | blocker、命令与摘要 | 首次失败待定 / Lead 决定 |
|
|
101
90
|
|
|
102
91
|
- **共同失败模式:** not-applicable / ...
|
|
103
92
|
- **最可能原因:** not-applicable / ...
|
|
@@ -117,9 +106,9 @@
|
|
|
117
106
|
- **残余风险/已知限制:** 无 / ...
|
|
118
107
|
- **后续 Ticket:** 无 / `<ticket-id>`
|
|
119
108
|
- **监控或回滚触发:** 不适用 / ...
|
|
120
|
-
-
|
|
121
|
-
-
|
|
122
|
-
-
|
|
109
|
+
- **已授权 Git 交付:** 实际执行的 commit/merge 或 not-requested
|
|
110
|
+
- **最终交付 checkpoint/快照:** `<actual-locator>`
|
|
111
|
+
- **工作区引用:** `<Path>{roots.state}/specdev/changes/{change}/README.md</Path>` 的 execution-context 锚点
|
|
123
112
|
- **Evidence:** `<Path>{roots.state}/specdev/changes/{change}/evidence/{ticket-id}.md</Path>`
|
|
124
113
|
|
|
125
114
|
## Skill Execution Records
|
|
@@ -148,11 +137,30 @@
|
|
|
148
137
|
|
|
149
138
|
## Workspace Execution Record
|
|
150
139
|
|
|
151
|
-
|
|
140
|
+
实际开始时保存唯一 JSON object,遵循 <Path>{roots.workflows}/specdev/common/schemas/execution-record.schema.json</Path>。不预造空记录:
|
|
141
|
+
|
|
142
|
+
```json
|
|
143
|
+
{
|
|
144
|
+
"schema_version": 1,
|
|
145
|
+
"ticket_id": "T-01",
|
|
146
|
+
"workspace_context": "README.md#execution-context",
|
|
147
|
+
"implementation_owners": ["native:actual-implementer"],
|
|
148
|
+
"status": "active",
|
|
149
|
+
"checkpoint": null,
|
|
150
|
+
"verification": {
|
|
151
|
+
"status": "pending",
|
|
152
|
+
"evidence": null,
|
|
153
|
+
"e2e": {"required": false, "status": "not-required", "reason": "填写实际依据", "evidence": null}
|
|
154
|
+
},
|
|
155
|
+
"attempts": 0
|
|
156
|
+
}
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
Direct Spec 用 `purpose: direct-spec`、`change: <实际 change>` 替代 ticket_id。status 为 active/review/verified/blocked/cancelled;verified 要求实际检查、独立双轴审查和 E2E 全部通过。checkpoint 指向原 Independent Review 的完整固定输入,如 `evidence/T-01.md#review-input`,verification.evidence 指向真实观察段;不复制快照或工作区字段。记录所有实际实现及修复者,正式 Evidence 只由 Lead 写入。旧活动记录先由原 owner 显式整理,历史原文保留。
|
|
152
160
|
|
|
153
161
|
## Acceptance Verification
|
|
154
162
|
|
|
155
|
-
|
|
163
|
+
Ticket 完成时按本票 contract_ids、Direct Spec 完成时按全部 Spec AC 填写本节 JSON array,每个 AC 恰一项。字段为 `id`(AC-N)、`result: passed`、`method`、`source`、`observed`;实际执行命令时增加 `command` 与 `exit: 0`。引用外部 `evidence` 文件时须提供真实匹配的 `sha256`;原 Evidence 内联实际观察不另造文件。没有执行的项不伪造 passed。普通 README 轻量模式仍用 README verification 表,二者不重复维护。
|
|
156
164
|
|
|
157
165
|
## 独立审查记录的填写
|
|
158
166
|
|
|
@@ -11,28 +11,28 @@
|
|
|
11
11
|
- [ ] 所有 `blocked_by` Ticket 为 done 且 Evidence 存在。
|
|
12
12
|
- [ ] UI Ticket 的 design_ref revision/digest/pages/acceptance 与已批准 change DESIGN 一致,prototype/基线引用未漂移;实际 UI 文件范围不能通过省略 ui_change 绕过。
|
|
13
13
|
- [ ] Spec、ADR、Ticket 与 Goal Plan 无冲突;旧 Goal Plan schema 必须重跑 P-goal-plan。
|
|
14
|
-
- [ ] Goal Plan(若存在)为
|
|
14
|
+
- [ ] Goal Plan(若存在)为 lead-directed,票据策略为 auto/serial/parallel;max_parallel_tickets 与实际实现者人数限制分别核对,来源可回读。
|
|
15
15
|
- [ ] 当前代码入口、接口、路径和父分支仍与 Ticket 假设一致。
|
|
16
|
-
- [ ] writable/shared paths
|
|
17
|
-
- [ ]
|
|
18
|
-
- [ ]
|
|
19
|
-
- [ ]
|
|
20
|
-
- [ ]
|
|
16
|
+
- [ ] writable/shared paths 和语义资源有唯一 owner;并行候选无冲突,serial 时没有另一张 in_progress/review 票。
|
|
17
|
+
- [ ] 实现已授权;提交、合并、push/PR/deploy 等仅在本次实际需要且已有明确授权时执行,不作为默认每票门。
|
|
18
|
+
- [ ] README 的 Execution Context 与实际 change 工作区、branch、base、owner 一致;本票执行记录引用它,缺失时由 Lead 先登记真实上下文。
|
|
19
|
+
- [ ] 派遣 Packet 绑定本票、选定 change 工作区、固定输入与具体写集;多个协作者各有明确范围,不写正式状态。
|
|
20
|
+
- [ ] 检查在 change-workspace 运行;独立审查和整体验收前协调相关 writer 停写,E2E 由 Lead 拥有。
|
|
21
21
|
- [ ] 验证命令/环境可用,关键静默失败风险有受控反向验证。
|
|
22
22
|
- [ ] Deep Ticket 批准点已满足。
|
|
23
|
-
- [ ]
|
|
23
|
+
- [ ] 属于父实现时:revision、组合 ID、dependency/serialization、实际 workspace 和票据配额一致;父计划引用成员工作区,不能改选或新增。
|
|
24
24
|
|
|
25
25
|
## Direct Spec 硬检查
|
|
26
26
|
|
|
27
27
|
- [ ] 用户已授权按当前规格实现;独立 Spec 已就绪(ready_for_tickets=true),目标、行为、风险门与验收完整;README 替代规格时仍满足轻量边界。不要求单一行为或低风险,确需独立调度/依赖 DAG 才拆票。
|
|
28
|
-
- [ ]
|
|
28
|
+
- [ ] Direct Spec 的执行者复用 change 唯一工作区,写集无冲突;SpecDev 正式工件只由 Lead 写入。
|
|
29
29
|
- [ ] 目标、IN/OUT、可写范围、不变量、验证与验收完整。
|
|
30
30
|
- [ ] Direct Spec 涉及 UI 时读取批准 DESIGN 并冻结版本、页面/状态与原型摘要;无 UI 不要求此项。
|
|
31
31
|
- [ ] 实施前 Git checkpoint、dirty 状态和现有用户改动已记录,不覆盖无关改动。
|
|
32
|
-
- [ ]
|
|
33
|
-
- [ ]
|
|
32
|
+
- [ ] 已读命中 Skill,适用检查与 E2E 环境可执行,E2E owner 为 Lead,验证输入可冻结回读。
|
|
33
|
+
- [ ] 未获提交授权时固定工作副本快照;选 worktree 不额外要求 commit/merge 授权。
|
|
34
34
|
|
|
35
|
-
- [ ]
|
|
35
|
+
- [ ] Direct Spec 执行记录以 purpose/change 标识,引用唯一 Execution Context;不与未处置 Ticket 执行记录混用。
|
|
36
36
|
|
|
37
37
|
## 失效分类
|
|
38
38
|
|
|
@@ -42,12 +42,12 @@
|
|
|
42
42
|
- **map-context-stale**:总体实施背景、项目 Skill 矩阵、Ticket 覆盖或 Skill 路径失效;停止项目写入并返回 T-tickets 更新 Map。
|
|
43
43
|
- **design-invalid / design-drift**:UI 批准缺失、revision/digest/原型/基线不一致或页面合同失效;停止受影响实现并返回 P-prototype,不能由 I 改写 DESIGN 消除偏差。
|
|
44
44
|
- **spec-invalid / adr-conflict**:返回对应上游 owner。
|
|
45
|
-
- **checkpoint-drift
|
|
46
|
-
- **workspace-contract-invalid
|
|
47
|
-
- **workspace-strategy-invalid
|
|
45
|
+
- **checkpoint-drift**:固定输入与实际变更不一致;停止受影响验收,重新冻结并重验,不新建 worktree。
|
|
46
|
+
- **workspace-contract-invalid**:工作区、branch、基线、owner 或授权无法核对;停止受影响写入并保留现场。
|
|
47
|
+
- **workspace-strategy-invalid**:上下文冲突、额外工作区或非法调度策略;由原 owner 整理后恢复。
|
|
48
48
|
- **delivery-unverified**:候选、provider 声明或附件不能独立核对;保持 unverified。
|
|
49
|
-
- **e2e-owner-invalid
|
|
50
|
-
- **
|
|
49
|
+
- **e2e-owner-invalid**:适用 E2E 未在稳定交付上由 Lead 验收;修正验证安排。
|
|
50
|
+
- **delivery-checkpoint-invalid**:完成证据未覆盖真实交付;保留最后可信快照并阻塞本票。
|
|
51
51
|
- **parent-plan-stale**:父 Implementation Map revision、成员 Ticket、serialization、workspace 策略、全局实现配额或 repository/ref 已变化;停止当前派单并返回 P-goal-plan 重算。
|
|
52
52
|
|
|
53
53
|
## 验证范围与失败保证
|
package/template/workflows/specdev/specdev-i-implement/references/implementation-procedure.md
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
# 实现
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
本 work 保留模块设计检查、design-it-twice、TDD 红绿循环、双轴审查和证据治理。Ticket 与 Direct Spec
|
|
4
|
+
本 work 保留模块设计检查、design-it-twice、TDD 红绿循环、双轴审查和证据治理。Ticket 与 Direct Spec 按 <Path>{roots.workflows}/specdev/common/rules/execution-policy.md</Path> 分别决定票据调度、Agent 编排与 change 工作区;同一 change 的实现者复用选定工作区。
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
若属于未完成父实现,读取 <Path>{roots.workflows}/specdev/common/rules/parent-implementation-orchestration.md</Path> 和父 Map/Plan;继承跨 change dependency/serialization、组合身份、票据上限和整体 Gate,引用成员实际工作区。
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
## 执行模式
|
|
10
10
|
|
|
11
11
|
### Ticket 模式(默认)
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
使用下节规定的输入顺序。父计划提供跨 change Gate 与调度约束,子计划提供本 change 约束,不能相互放宽。无计划时当前 I Lead 按原 Ticket 和 README 执行上下文安排,不要求补造 Goal。
|
|
14
14
|
|
|
15
15
|
### Direct Spec 模式
|
|
16
16
|
|
|
17
|
-
完整获批 Spec
|
|
17
|
+
完整获批 Spec 可直接实现,先核对范围、各写集 owner、不变量、AC、验证及批准/恢复门。工作区和协作方式分别选择;确需独立调度、DAG、逐票追踪或用户要求时才返回 T。README 替代规格仍限轻量边界。
|
|
18
18
|
|
|
19
19
|
### Documentation 分支
|
|
20
20
|
|
|
21
|
-
Ready documentation Ticket 或获批 Direct Spec 需要维护项目文档时读取 <Path>{roots.workflows}/specdev/specdev-i-implement/references/documentation-procedure.md</Path>。继续执行下方全部适用预检、workspace、
|
|
21
|
+
Ready documentation Ticket 或获批 Direct Spec 需要维护项目文档时读取 <Path>{roots.workflows}/specdev/specdev-i-implement/references/documentation-procedure.md</Path>。继续执行下方全部适用预检、workspace、checkpoint、双轴审查、Evidence 和完成步骤;仅纯说明变更的代码红绿循环由可运行示例/类型/链接/生成与事实验证替代。prompt/tool/CLI/UI 文案属于可见行为,不能按纯说明豁免。
|
|
22
22
|
|
|
23
23
|
## 输入
|
|
24
24
|
|
|
@@ -59,22 +59,17 @@ Git 已处于 merge/rebase 冲突时,先加载 `<Path>{roots.workflows}/specde
|
|
|
59
59
|
|
|
60
60
|
预检参考拥有 Ready、依赖证据、真实 Skill、计划版本、owner、权限、Git 状态与 workspace 的完整检查,不在此复写。
|
|
61
61
|
|
|
62
|
-
|
|
62
|
+
通过预检后,复用 change README 中选定的工作区;明确要求创建/恢复 worktree 时以 `purpose=change, operation=create|restore` 调用 <Path>{roots.workflows}/specdev/common/skills/dev-worktree/SKILL.md</Path>。Lead 先保存真实 Execution Context,再将本票设为 in_progress、在原 Evidence 登记 active 执行记录。无票沿 Direct Spec Evidence,不创建票据。
|
|
63
63
|
|
|
64
|
-
|
|
64
|
+
**完成标准**:工作区、基线、owner 与授权符合预检;所有票据复用同一 change workspace,串并行按独立策略决定。
|
|
65
65
|
|
|
66
66
|
### 2. Lead 决定自行实现或动态派单
|
|
67
67
|
|
|
68
|
-
|
|
68
|
+
按 <Path>{roots.workflows}/specdev/common/rules/execution-policy.md</Path>,用户/项目/当前 Work 要求优先,Lead 根据任务事实和宿主能力安排单 Agent、subagent 或团队。同票协作不改变 serial 票据顺序;跨票并行仍须 DAG 与写集/资源无冲突。只读探索不占票据执行槽。
|
|
69
69
|
|
|
70
|
-
-
|
|
71
|
-
- 父实现编排存在时,派单与返回都使用 `<member-change>::<ticket-id>`,并占用父 Plan 的 task/serialization/integration slot;
|
|
72
|
-
- review/research/test-observation agent 不设置 SpecDev 数字上限,但保持只读;
|
|
73
|
-
- implementation Packet 绑定唯一执行 workspace、checkpoint、路径、非 E2E 检查与已授权 commit 返回;Ticket 提供 Map/项目 Skill/本票,Direct Spec 提供完整规格/项目 Skill/AC,不补造票;
|
|
74
|
-
- 任务执行者 不写 SpecDev 工件、Evidence、父分支或 E2E 结果;
|
|
75
|
-
- Lead 自行实现时仍遵循相同 worktree、commit 与返回事实合同。
|
|
70
|
+
派单读取 <Path>{roots.references}/coordination/task-brief.md</Path>;外部 CLI/Herdr/Orca 按 <Path>{roots.references}/coordination/session-files.md</Path> 保存冻结 TASK/正式 REPORT 和派遣后可选 session-locator.json;新派遣在投递前与回收时分别运行交接校验的 dispatch/return 阶段,原 Evidence 只导航与验收。Packet 绑定同一 change workspace、票据/规格、实际写集、固定输入、验证与停止条件。多个实现者明确细分写集;Git index 操作由 Lead 协调串行,不暂存他人改动。
|
|
76
71
|
|
|
77
|
-
|
|
72
|
+
**完成标准**:实现者与路径归属可回读,正式状态仍只由 Lead 写入,派遣不创建额外 worktree。
|
|
78
73
|
|
|
79
74
|
### 3. 设计检查
|
|
80
75
|
|
|
@@ -104,20 +99,13 @@ UI 的模板、视觉语言、共享组件及交互规则由批准 DESIGN 锁定
|
|
|
104
99
|
|
|
105
100
|
涉及错误、取消、并发或资源释放时,按 <Path>{roots.workflows}/specdev/common/rules/error-handling.md</Path> 和 <Path>{roots.workflows}/specdev/common/rules/test-reliability.md</Path> 验证实际状态与清理完成。注册、Worker、CLI、配置和发布路径要覆盖真正入口;删除旧测试前核对全部风险承接,不因为新接口测试存在就删除。
|
|
106
101
|
|
|
107
|
-
### 5. 实现检查、
|
|
102
|
+
### 5. 实现检查、checkpoint 与 Lead 接收
|
|
108
103
|
|
|
109
|
-
|
|
104
|
+
实现者在选定 change 工作区运行 Ticket/Spec 规定的单元、组件、静态、类型、lint/build 等适用检查,记录命令、退出码、实际改动与未验证项。E2E Gate 留给 Lead。提交只在已有具体授权时执行;没有授权时以工作副本快照冻结实际交付。
|
|
110
105
|
|
|
111
|
-
-
|
|
112
|
-
- 审计 writable/shared/read-only 路径和新/既有/环境失败;
|
|
113
|
-
- 在已授权时创建引用 Ticket ID 的实现 commit;current 模式 commit 直接落在父分支,required 模式落在 Ticket branch;
|
|
114
|
-
- 返回 commit、dirty 状态、实际路径、命令/结果、未运行项和恢复条件。
|
|
106
|
+
Lead 按 <Path>{roots.references}/coordination/result-and-recovery.md</Path> 回读工具、真实 writer、Git/dirty 状态、diff、路径与命令事实。验收前协调相关 writer 停写;无改动且权威事实表明无需实现时 cancelled,不造 empty commit。未完成工作不以 Evidence-only Done 代替。
|
|
115
107
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
Direct Spec 的 implementation owner 在所选工作区运行规格要求的非 E2E 检查,审计获批写集,在已授权时创建引用 change 的非空 commit;Lead 按共享返回合同重读候选。required 必须形成 source commit,current 未授权提交则保留真实 checkpoint/dirty 交付事实。无需改动时记录事实并取消直接实现,不创建 empty commit。记录实际路径、命令结果、未运行项和恢复条件。
|
|
119
|
-
|
|
120
|
-
**完成标准**:required 模式 Ticket worktree clean 且 `source_checkpoint` 精确等于 branch tip;current 模式 workspace clean 且 Ticket `result_sha` 精确等于父分支上的 implementation commit;或 Direct Spec 的所选 workspace、checkpoint、路径和获批规格一致;required 来源必须 clean 且 source checkpoint 等于 branch tip。
|
|
108
|
+
**完成标准**:实际改动可定位,授权路径及原有用户改动保全;固定 checkpoint 或快照覆盖本票交付。共享工作区其他票的改动不计入本票。
|
|
121
109
|
|
|
122
110
|
### 6. 双轴审查
|
|
123
111
|
|
|
@@ -132,25 +120,21 @@ Direct Spec 的 implementation owner 在所选工作区运行规格要求的非
|
|
|
132
120
|
|
|
133
121
|
Direct Spec current 未提交时按 <Path>{roots.workflows}/specdev/common/skills/code-review/references/working-tree-review.md</Path> 固定实际交付快照;HEAD 不能代表未提交内容,也不因审查而自动取得 commit 授权。
|
|
134
122
|
|
|
135
|
-
### 7.
|
|
136
|
-
|
|
137
|
-
`required` Ticket/Direct Spec 模式中,Lead 以相应 `purpose=ticket|direct-spec, operation=finalize` 调用 dev-worktree,并读取 `<Path>{roots.workflows}/specdev/common/skills/dev-worktree/references/finalize.md</Path>`。该参考唯一维护最新父分支 candidate 的组合、检查、失败/漂移、重建、fast-forward、回读与尝试上限过程。验证失败或父 HEAD 漂移,父分支不推进;不能凭来源检查通过标记 Done。
|
|
138
|
-
|
|
139
|
-
E2E 是否需要由 Ticket/Goal Plan 的实际跨边界风险决定,不限于 UI;不适用必须记录原因。
|
|
123
|
+
### 7. 最终验证与适用 E2E
|
|
140
124
|
|
|
141
|
-
|
|
125
|
+
Lead 在同一 change 工作区按 <Path>{roots.workflows}/specdev/common/skills/dev-worktree/references/finalize.md</Path> 核验固定交付、集成/回归和适用 E2E。此方法 current/worktree 均适用,不创建候选 checkout、不自动提交或合并。无提交授权时先按 <Path>{roots.workflows}/specdev/common/skills/code-review/references/working-tree-review.md</Path> 固定工作副本输入。
|
|
142
126
|
|
|
143
|
-
|
|
127
|
+
最终输入变化、冲突修正或多单元组合时,按 <Path>{roots.workflows}/specdev/common/skills/code-review/references/review-evidence.md</Path> 补充整体独立审查;单票记录不能代替全部交付的验收。
|
|
144
128
|
|
|
145
|
-
|
|
129
|
+
同一 blocker 反复出现且无新证据,或 attempts 达到有效上限时,保留当前工作区、checkpoint 和失败历史,将本票 blocked 并返回有效 Lead。Lead 记录共同失败模式、可能原因、下一轮实质改变和 owner/路由后才可重置 attempts。父 Lead 可继续其他不受影响的 Ready 票;不通过新开 worktree 或仅更换 Agent 绕过停止点。
|
|
146
130
|
|
|
147
131
|
### 8. Evidence、状态与完成
|
|
148
132
|
|
|
149
|
-
Lead 使用
|
|
133
|
+
Lead 使用 <Path>{roots.workflows}/specdev/specdev-i-implement/assets/evidence-template.md</Path> 写本票原 Evidence;无票写 evidence/direct-spec.md。执行记录引用 README 唯一工作区,保存实际实现者、固定审查输入、检查、E2E、失败历史及恢复,不复制工作区生命周期或虚构集成链。
|
|
150
134
|
|
|
151
135
|
UI Evidence 必须包含 `## Design Conformance`,列出 design_ref 的准确 digest、pages 与 acceptance ID,逐项连接实现位置、真实浏览器任务、桌面/窄屏截图和状态观察。对照批准原型说明允许的实现差异;未知与未通过项保持未验证,不能仅凭原型证据完成实施。
|
|
152
136
|
|
|
153
|
-
Ticket
|
|
137
|
+
Ticket 正常状态:ready → in_progress → review → done。done 要求执行记录 verified、实际改动/AC、独立双轴审查和适用验证通过;无每票 commit/父分支推进要求。blocked/deviated/cancelled 沿原语义,Direct Spec 由原 I owner 按 <Path>{roots.workflows}/specdev/common/rules/change-completion.md</Path> 完成。
|
|
154
138
|
|
|
155
139
|
按实际存在的负责位置更新:Ticket/Evidence 拥有本票进度,Goal 拥有整体 Gate 与集成,Map/README 只导航;轻量输入把当前清单与验证写原 README,Direct Spec 不创建缺失的 Ticket/Map/Goal Plan。最后一个计划内 Ticket 完成后,Goal Plan 的 Lead 按 change completion 关闭;无 Goal Plan 的当前 I owner 承担同一门禁。需要远程 reconcile 或把已完成 Ticket 投影为 GitHub Issue 时返回 T-triage,否则进入 Archive。
|
|
156
140
|
|
|
@@ -167,7 +151,7 @@ node <Path>{roots.workflows}/specdev/common/tools/validate-specdev.mjs</Path> \
|
|
|
167
151
|
|
|
168
152
|
### 9. 返回
|
|
169
153
|
|
|
170
|
-
|
|
154
|
+
返回 Ticket 状态或 Direct Spec Outcome、原 Evidence、README 工作区引用、真实 checkpoint/快照、E2E、未验证项和下一路由。已授权且实际发生的 Git 交付另列;不把 verified 描述成已提交/已合并。
|
|
171
155
|
|
|
172
156
|
## 计划型票扩展
|
|
173
157
|
|
package/template/workflows/specdev/specdev-i-implement/references/merge-conflict-protocol.md
CHANGED
|
@@ -1,21 +1,11 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Git 冲突处置
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
仅在当前工作区已有 merge/rebase 冲突或明确授权的 Git 集成发生冲突时读取;普通票据实现不创建 candidate worktree 或自动合并。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
1. 读取实际 Git 操作状态、原 owner、目标、基线、授权和冲突文件,不将未知现场视作本次操作。
|
|
6
|
+
2. 暂停重叠写集,保留未提交用户/其他票改动及可恢复 checkpoint。解决冲突须在原写集内保持双方已批准意图。
|
|
7
|
+
3. 需要改变 Spec/ADR、安全/迁移/验收或越过 owner 时停止并返回真正 owner;未知 merge/rebase 不自动 abort。
|
|
8
|
+
4. 只有与当前操作匹配的授权包含相应暂存、提交或 abort 时才执行;任何操作不扩展到其他 branch/worktree 或远端。
|
|
9
|
+
5. 修正者属于实现者,不能自审;在选定工作区冻结实际结果,补充独立双轴审查和受影响验证,再记录结果。
|
|
6
10
|
|
|
7
|
-
|
|
8
|
-
2. 从 commit、source、Spec、Ticket、ADR、测试和调用者追溯双方意图;信息不足时不猜产品行为。
|
|
9
|
-
3. 对每个 hunk 写出双方意图、共同约束和唯一可推导结果;需要新行为或上层决定时停止并登记 deviation。
|
|
10
|
-
4. 在授权路径内解决文本,运行受影响的非 E2E 检查;candidate checkout 中按 finalize 合同运行父状态检查/E2E。
|
|
11
|
-
5. 匹配的 local candidate integration 授权包含 `git add`、candidate merge commit、必要的 `git merge --abort` 和 transient candidate checkout/branch 生命周期;不扩展到来源 branch/worktree cleanup 或远端动作。
|
|
12
|
-
6. 需要改变 Spec/ADR、安全/迁移决定、越过 owner 或无法同时保持既有意图时,在 Lead-created candidate 中执行 `git merge --abort`,记录 blocker 并保留来源 worktree;未知普通冲突现场不擅自 abort。
|
|
13
|
-
7. 重读 Git 状态、parents 与 diff,确认无 marker、无未声明路径、双方合同及验证仍成立。
|
|
14
|
-
|
|
15
|
-
## 完成标准
|
|
16
|
-
|
|
17
|
-
- 每个 hunk 可追溯到既有意图;
|
|
18
|
-
- 新产品决定没有藏在冲突解决中;
|
|
19
|
-
- 验证记录命令、运行环境、退出码和摘要;
|
|
20
|
-
- Git 副作用来自明确的 candidate integration 或其他逐动作授权;
|
|
21
|
-
- 完成/暂停可以从 Git、原计划/README 与 Evidence 恢复。
|
|
11
|
+
**完成标准**:实际 Git 状态、交付和证据一致;失败保留现场,不创建额外工作区或删除来源分支。
|
|
@@ -39,8 +39,8 @@ metadata:
|
|
|
39
39
|
## 执行底线
|
|
40
40
|
|
|
41
41
|
- 先冻结 Outcome、权威来源、用户指定的交付数量、范围、Definition of Done 和失败停止条件;按风险确定 DAG/Gate/Wave,不用文档长度替代质量。
|
|
42
|
-
- 固定 `lead-directed
|
|
43
|
-
-
|
|
42
|
+
- 固定 `lead-directed`,Lead 拥有状态和验收,不固定实现团队。ticket_execution 默认 auto;max_parallel_tickets 计量票据,显式 concurrent_implementation_limit 计量实现者;策略来源写 Execution Policy Source。派单读取 <Path>{roots.workflows}/specdev/specdev-p-goal-plan/references/lead-orchestration.md</Path>。
|
|
43
|
+
- 保留 change 已选工作区,未指定复用 current;明确要求才创建一个 change worktree。串并行、派遣和审查不增建工作区,提交/合并按实际授权执行。
|
|
44
44
|
- `plan` 只形成计划,缺少执行授权是计划中可见的待满足条件,不等于获准执行。运行前逐项核对真实授权;文档中的“已批准”不构成授权。
|
|
45
45
|
- 当前票必须调用所绑定的真实 Skill,不能以“读过入口”替代;先读取 `<Path>{roots.workflows}/specdev/common/rules/skill-invocation.md</Path>`。缺失必需 Skill、引用或验收证据时阻塞本票及依赖它的分支。
|
|
46
46
|
- 他人 owner、资源或事务冲突仅暂停受影响的依赖闭包;继续独立已授权工作,不抢占、解锁或覆盖他人内容。正式记忆仍只走原网关。
|
|
@@ -66,6 +66,6 @@ node <Path>{roots.workflows}/specdev/common/tools/ticket-control.mjs</Path> --ma
|
|
|
66
66
|
|
|
67
67
|
进入实现或审查时读取 <Path>{roots.references}/coordination/coordination-contract.md</Path>;未明确指定时按当前宿主正常执行,App、CLI 等均可,subagent/agent team 属于宿主能力。明确指定 CLI 交互、Herdr 等方式时按选择执行并展开对应参考;编排与 current/worktree 独立,已有授权和选择直接复用。只读取所选工具的当前指南,不固定工具或模型。
|
|
68
68
|
|
|
69
|
-
`lead` 上下文维护原业务状态和 Evidence;`task` 上下文只处理 Lead 指定目标和阶段,执行同一方法并返回候选、findings、检查和未验证项,不修改正式 Ticket、Map、Goal、Evidence,不递归启动 Goal 或擅自跨 CLI
|
|
69
|
+
`lead` 上下文维护原业务状态和 Evidence;`task` 上下文只处理 Lead 指定目标和阶段,执行同一方法并返回候选、findings、检查和未验证项,不修改正式 Ticket、Map、Goal、Evidence,不递归启动 Goal 或擅自跨 CLI 派单;宿主原生协作遵守原写集和共享资源 owner 约束。未曝光到宿主列表不影响读取真实入口。
|
|
70
70
|
|
|
71
71
|
P 在已授权 run/resume 中完成当前实现、审查、验证和同范围修复后继续下一 Ready 任务,不逐票询问“继续”。只读分析或 plan 不执行。双轴审查必须由未参与本范围实现的 Agent 执行,默认派遣一位原生 subagent;已有编排选择沿用于 review,不能由实现者或参与实现的 Lead 自审替代。
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
---
|
|
2
|
-
schema_version:
|
|
2
|
+
schema_version: 8
|
|
3
3
|
artifact: goal-plan
|
|
4
4
|
change: <YYYY-MM-DD-topic>
|
|
5
5
|
status: draft
|
|
6
6
|
modes: []
|
|
7
7
|
orchestration: lead-directed
|
|
8
8
|
lead: <owner-or-session-locator>
|
|
9
|
-
concurrent_implementation_limit: 3
|
|
10
9
|
integration_attempt_limit: 3
|
|
11
|
-
|
|
12
|
-
integration_gate: direct-parent
|
|
10
|
+
ticket_execution: auto
|
|
13
11
|
ready_for_execution: false
|
|
14
12
|
---
|
|
15
13
|
|
|
@@ -85,36 +83,35 @@ ready_for_execution: false
|
|
|
85
83
|
|
|
86
84
|
| 项目 | 决定 | 事实依据 |
|
|
87
85
|
|---|---|---|
|
|
88
|
-
| Lead | `<owner-or-session-locator>` | 唯一 SpecDev 状态、Evidence
|
|
89
|
-
|
|
|
90
|
-
|
|
|
91
|
-
|
|
|
92
|
-
|
|
|
86
|
+
| Lead | `<owner-or-session-locator>` | 唯一 SpecDev 状态、Evidence 与交付验收 owner |
|
|
87
|
+
| Ticket scheduling | `ticket_execution: auto`;有明确票据上限时增加 max_parallel_tickets | DAG、路径/资源、用户与项目要求 |
|
|
88
|
+
| Implementation agents | 有明确要求才记录 concurrent_implementation_limit;核对已有 config/宿主人数限制 | 不从票数或工作区数量推导 |
|
|
89
|
+
| Integration attempts | `<integration_attempt_limit>` | 检查失败后的 Lead 复盘上限 |
|
|
90
|
+
| Read-only agents | 不额外占票据槽,review 中的票仍计入 | 当前 Work 的独立审查/工具要求仍生效 |
|
|
91
|
+
| Dispatch | execution-time dynamic | 单 Agent、subagent 或团队按事实选择 |
|
|
93
92
|
|
|
94
|
-
###
|
|
93
|
+
### Change Workspace and Verification
|
|
95
94
|
|
|
96
|
-
|
|
95
|
+
工作区实际事实只在 change README 的 Execution Context,所有票据和执行者复用。未指定时使用 current,明确要求才创建/复用一个 change worktree。父计划只导航成员选择;串并行不改变工作区数量。
|
|
97
96
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
当 `ticket_workspace_policy: required` 时,Ticket 使用独立 source worktree;source worktree 不运行 E2E,Lead 在最新父分支的 candidate 状态运行集成检查和适用 E2E,通过且父 HEAD 未漂移后才推进父分支。
|
|
97
|
+
serial 完成当前票的实现、审查和验证后开始下一票;auto/parallel 推进无冲突 Ready 票。shared owner、Git index 操作与全局验证协调串行。验收固定真实 commit 或未提交快照;Lead-owned E2E 在稳定 change-workspace 上执行,不创建 candidate checkout。
|
|
101
98
|
|
|
102
99
|
### Authorization Matrix
|
|
103
100
|
|
|
104
101
|
| 动作 | 状态 | 目标与条件 |
|
|
105
102
|
|---|---|---|
|
|
106
|
-
|
|
|
107
|
-
|
|
|
108
|
-
|
|
|
109
|
-
|
|
|
110
|
-
|
|
|
111
|
-
| Push / PR / remote merge | allowed / not-authorized |
|
|
112
|
-
| Branch/worktree cleanup | allowed / not-authorized |
|
|
103
|
+
| Change workspace implementation | allowed / not-authorized | 授权范围和唯一写集 owner |
|
|
104
|
+
| Change worktree creation | allowed / not-requested | 一个 change 的明确选择,不从并行继承 |
|
|
105
|
+
| Change workspace verification | allowed / not-authorized | 固定输入、独立审查与 Lead E2E |
|
|
106
|
+
| Implementation commit | allowed / not-requested | 仅明确要求且获授权时执行 |
|
|
107
|
+
| Merge / parent update | allowed / not-requested | 具体目标与交付约定,不是每票默认门 |
|
|
108
|
+
| Push / PR / remote merge | allowed / not-authorized | 不从实现授权继承 |
|
|
109
|
+
| Branch/worktree cleanup | allowed / not-authorized | 精确授权目标,保全可恢复产物 |
|
|
113
110
|
| Deploy / migration / production actions | allowed / not-authorized | 逐动作、目标和条件 |
|
|
114
111
|
|
|
115
112
|
### Evidence Return
|
|
116
113
|
|
|
117
|
-
任务执行者 只返回候选事实与
|
|
114
|
+
任务执行者 只返回候选事实与 checkpoint/快照;Lead 独立核对并写 Evidence、状态和最终验收。
|
|
118
115
|
|
|
119
116
|
## 5. Constraints, Risk and Recovery
|
|
120
117
|
|
|
@@ -122,7 +119,7 @@ ready_for_execution: false
|
|
|
122
119
|
|
|
123
120
|
### Verification Integrity
|
|
124
121
|
|
|
125
|
-
|
|
122
|
+
记录判卷接缝、基线、禁止的伪绿色方式,以及选定 change 工作区内每票与整体交付的验证边界。
|
|
126
123
|
|
|
127
124
|
### Migration or Release Sequence
|
|
128
125
|
|
|
@@ -136,13 +133,13 @@ ready_for_execution: false
|
|
|
136
133
|
|
|
137
134
|
### Current Status
|
|
138
135
|
|
|
139
|
-
只记录本 Goal 独有的当前 Wave/Gate、跨票验收、整体阻塞与下一步;相关 Ticket
|
|
136
|
+
只记录本 Goal 独有的当前 Wave/Gate、跨票验收、整体阻塞与下一步;相关 Ticket、固定 checkpoint/快照与逐票验证只导航原 Ticket/Evidence,不复制状态或结果;不使用主观百分比。
|
|
140
137
|
|
|
141
138
|
### Pending Decisions and Blockers
|
|
142
139
|
|
|
143
140
|
### Resume Protocol
|
|
144
141
|
|
|
145
|
-
恢复时读取 Goal Plan、当前 Ticket 和原 Evidence 的 Workspace Execution Record
|
|
142
|
+
恢复时读取 Goal Plan、README 的 Execution Context、当前 Ticket 和原 Evidence 的 Workspace Execution Record,并核对选定工作区、实际 Git 与 writer;从最后可信 checkpoint/快照及未决事项继续。
|
|
146
143
|
|
|
147
144
|
## Assumptions
|
|
148
145
|
|
|
@@ -151,4 +148,4 @@ ready_for_execution: false
|
|
|
151
148
|
|
|
152
149
|
## Execution Policy Source
|
|
153
150
|
|
|
154
|
-
|
|
151
|
+
记录用户/项目约定的可回读出处;说明 ticket_execution、可选票据上限、明确人数限制和验证尝试上限。缺少人数或票数要求时不填固定数字;工作区引用 change README。轻量无票 Goal 继续使用必要清单和验收,不预造运行记录。
|