@namewta/speculo 0.7.3 → 0.7.5

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.
Files changed (199) hide show
  1. package/README.md +2 -2
  2. package/dist/src/migrations.js +190 -39
  3. package/dist/src/migrations.js.map +1 -1
  4. package/package.json +1 -1
  5. package/template/canonical/README.md +208 -63
  6. package/template/canonical/canonical-person-steelman-deliberation.md +518 -0
  7. package/template/canonical/canonical-specdev-engineering-cognitive-mentor.md +51 -15
  8. package/template/canonical/canonical-specdev-goal-plan.md +183 -116
  9. package/template/canonical/canonical-specdev-grill-with-docs.md +51 -15
  10. package/template/canonical/canonical-specdev-spec.md +61 -21
  11. package/template/canonical/canonical-specdev-tickets.md +83 -43
  12. package/template/canonical/canonical-specdev-wayfinder.md +51 -15
  13. package/template/skills/engineering-standards-builder/README.md +43 -0
  14. package/template/skills/engineering-standards-builder/SKILL.md +233 -0
  15. package/template/skills/engineering-standards-builder/examples/README.md +15 -0
  16. package/template/skills/engineering-standards-builder/examples/fallback/kotlin-gradle/build.gradle.kts +5 -0
  17. package/template/skills/engineering-standards-builder/examples/fallback/kotlin-gradle/expected.json +12 -0
  18. package/template/skills/engineering-standards-builder/examples/fallback/kotlin-gradle/src/main/kotlin/example/App.kt +2 -0
  19. package/template/skills/engineering-standards-builder/examples/go/service/.golangci.yml +3 -0
  20. package/template/skills/engineering-standards-builder/examples/go/service/cmd/api/main.go +3 -0
  21. package/template/skills/engineering-standards-builder/examples/go/service/expected.json +23 -0
  22. package/template/skills/engineering-standards-builder/examples/go/service/go.mod +3 -0
  23. package/template/skills/engineering-standards-builder/examples/go/service/internal/service/service.go +2 -0
  24. package/template/skills/engineering-standards-builder/examples/go/service/internal/service/service_test.go +3 -0
  25. package/template/skills/engineering-standards-builder/examples/java/spring-boot-maven/expected.json +22 -0
  26. package/template/skills/engineering-standards-builder/examples/java/spring-boot-maven/pom.xml +12 -0
  27. package/template/skills/engineering-standards-builder/examples/java/spring-boot-maven/src/main/java/dev/speculo/orders/OrdersApplication.java +7 -0
  28. package/template/skills/engineering-standards-builder/examples/java/spring-boot-maven/src/test/java/dev/speculo/orders/OrdersApplicationTest.java +3 -0
  29. package/template/skills/engineering-standards-builder/examples/polyglot/monorepo/.github/workflows/ci.yml +11 -0
  30. package/template/skills/engineering-standards-builder/examples/polyglot/monorepo/apps/web/package.json +11 -0
  31. package/template/skills/engineering-standards-builder/examples/polyglot/monorepo/apps/web/src/App.vue +2 -0
  32. package/template/skills/engineering-standards-builder/examples/polyglot/monorepo/apps/web/tsconfig.json +8 -0
  33. package/template/skills/engineering-standards-builder/examples/polyglot/monorepo/expected.json +22 -0
  34. package/template/skills/engineering-standards-builder/examples/polyglot/monorepo/package.json +11 -0
  35. package/template/skills/engineering-standards-builder/examples/polyglot/monorepo/pnpm-workspace.yaml +2 -0
  36. package/template/skills/engineering-standards-builder/examples/polyglot/monorepo/services/orders/pom.xml +12 -0
  37. package/template/skills/engineering-standards-builder/examples/polyglot/monorepo/services/orders/src/main/java/dev/speculo/orders/OrdersApplication.java +7 -0
  38. package/template/skills/engineering-standards-builder/examples/polyglot/monorepo/services/worker/go.mod +3 -0
  39. package/template/skills/engineering-standards-builder/examples/polyglot/monorepo/services/worker/main.go +2 -0
  40. package/template/skills/engineering-standards-builder/examples/rust/workspace/Cargo.toml +7 -0
  41. package/template/skills/engineering-standards-builder/examples/rust/workspace/crates/cli/Cargo.toml +8 -0
  42. package/template/skills/engineering-standards-builder/examples/rust/workspace/crates/cli/src/main.rs +1 -0
  43. package/template/skills/engineering-standards-builder/examples/rust/workspace/crates/core/Cargo.toml +5 -0
  44. package/template/skills/engineering-standards-builder/examples/rust/workspace/crates/core/src/lib.rs +3 -0
  45. package/template/skills/engineering-standards-builder/examples/rust/workspace/expected.json +14 -0
  46. package/template/skills/engineering-standards-builder/examples/rust/workspace/rust-toolchain.toml +3 -0
  47. package/template/skills/engineering-standards-builder/examples/typescript/react-vite/expected.json +21 -0
  48. package/template/skills/engineering-standards-builder/examples/typescript/react-vite/package.json +20 -0
  49. package/template/skills/engineering-standards-builder/examples/typescript/react-vite/src/App.test.tsx +2 -0
  50. package/template/skills/engineering-standards-builder/examples/typescript/react-vite/src/App.tsx +1 -0
  51. package/template/skills/engineering-standards-builder/examples/typescript/react-vite/src/main.tsx +3 -0
  52. package/template/skills/engineering-standards-builder/examples/typescript/react-vite/tsconfig.json +10 -0
  53. package/template/skills/engineering-standards-builder/examples/typescript/vue-vite/expected.json +22 -0
  54. package/template/skills/engineering-standards-builder/examples/typescript/vue-vite/package.json +21 -0
  55. package/template/skills/engineering-standards-builder/examples/typescript/vue-vite/src/App.test.ts +2 -0
  56. package/template/skills/engineering-standards-builder/examples/typescript/vue-vite/src/App.vue +7 -0
  57. package/template/skills/engineering-standards-builder/examples/typescript/vue-vite/src/main.ts +4 -0
  58. package/template/skills/engineering-standards-builder/examples/typescript/vue-vite/tsconfig.json +11 -0
  59. package/template/skills/engineering-standards-builder/examples/typescript/vue-vite/vite.config.ts +2 -0
  60. package/template/skills/engineering-standards-builder/manifest.txt +112 -0
  61. package/template/skills/engineering-standards-builder/references/go/00-detection-and-scope.md +37 -0
  62. package/template/skills/engineering-standards-builder/references/go/01-language-and-idioms.md +34 -0
  63. package/template/skills/engineering-standards-builder/references/go/02-modules-packages-and-layout.md +34 -0
  64. package/template/skills/engineering-standards-builder/references/go/03-errors-context-and-concurrency.md +38 -0
  65. package/template/skills/engineering-standards-builder/references/go/04-testing-tooling-quality-gates.md +46 -0
  66. package/template/skills/engineering-standards-builder/references/go/README.md +9 -0
  67. package/template/skills/engineering-standards-builder/references/java/00-detection-and-scope.md +40 -0
  68. package/template/skills/engineering-standards-builder/references/java/01-language-packages-and-api.md +35 -0
  69. package/template/skills/engineering-standards-builder/references/java/02-build-modules-and-dependencies.md +39 -0
  70. package/template/skills/engineering-standards-builder/references/java/03-errors-nullability-resources-concurrency.md +36 -0
  71. package/template/skills/engineering-standards-builder/references/java/04-testing-tooling-quality-gates.md +36 -0
  72. package/template/skills/engineering-standards-builder/references/java/README.md +10 -0
  73. package/template/skills/engineering-standards-builder/references/java/frameworks/spring-boot.md +74 -0
  74. package/template/skills/engineering-standards-builder/references/rules/00-governance-and-precedence.md +52 -0
  75. package/template/skills/engineering-standards-builder/references/rules/01-project-discovery.md +79 -0
  76. package/template/skills/engineering-standards-builder/references/rules/02-evidence-topology-and-scope.md +87 -0
  77. package/template/skills/engineering-standards-builder/references/rules/03-interview-and-decisions.md +77 -0
  78. package/template/skills/engineering-standards-builder/references/rules/04-architecture-and-dependency-boundaries.md +58 -0
  79. package/template/skills/engineering-standards-builder/references/rules/05-files-directories-and-naming.md +53 -0
  80. package/template/skills/engineering-standards-builder/references/rules/06-apis-errors-resources-and-concurrency.md +53 -0
  81. package/template/skills/engineering-standards-builder/references/rules/07-documentation-and-comments.md +46 -0
  82. package/template/skills/engineering-standards-builder/references/rules/08-testing-strategy.md +45 -0
  83. package/template/skills/engineering-standards-builder/references/rules/09-security-configuration-and-data.md +44 -0
  84. package/template/skills/engineering-standards-builder/references/rules/10-performance-observability-and-i18n.md +36 -0
  85. package/template/skills/engineering-standards-builder/references/rules/11-tooling-quality-gates-and-ci.md +69 -0
  86. package/template/skills/engineering-standards-builder/references/rules/12-git-review-and-delivery.md +46 -0
  87. package/template/skills/engineering-standards-builder/references/rules/13-adoption-exceptions-and-ratchets.md +60 -0
  88. package/template/skills/engineering-standards-builder/references/rules/14-generation-contract.md +105 -0
  89. package/template/skills/engineering-standards-builder/references/rules/15-validation-contract.md +65 -0
  90. package/template/skills/engineering-standards-builder/references/rules/16-language-adapter-contract.md +55 -0
  91. package/template/skills/engineering-standards-builder/references/rules/README.md +23 -0
  92. package/template/skills/engineering-standards-builder/references/rust/00-detection-and-scope.md +38 -0
  93. package/template/skills/engineering-standards-builder/references/rust/01-language-api-and-safety.md +35 -0
  94. package/template/skills/engineering-standards-builder/references/rust/02-crates-workspaces-and-layout.md +36 -0
  95. package/template/skills/engineering-standards-builder/references/rust/03-errors-ownership-and-concurrency.md +37 -0
  96. package/template/skills/engineering-standards-builder/references/rust/04-testing-tooling-quality-gates.md +44 -0
  97. package/template/skills/engineering-standards-builder/references/rust/README.md +9 -0
  98. package/template/skills/engineering-standards-builder/references/typescript/00-detection-and-scope.md +58 -0
  99. package/template/skills/engineering-standards-builder/references/typescript/01-language-and-type-system.md +49 -0
  100. package/template/skills/engineering-standards-builder/references/typescript/02-modules-packages-and-runtime-boundaries.md +49 -0
  101. package/template/skills/engineering-standards-builder/references/typescript/03-functions-async-errors-resources.md +42 -0
  102. package/template/skills/engineering-standards-builder/references/typescript/04-testing-tooling-quality-gates.md +51 -0
  103. package/template/skills/engineering-standards-builder/references/typescript/README.md +27 -0
  104. package/template/skills/engineering-standards-builder/references/typescript/app-types/cli.md +11 -0
  105. package/template/skills/engineering-standards-builder/references/typescript/app-types/library.md +11 -0
  106. package/template/skills/engineering-standards-builder/references/typescript/frameworks/react.md +71 -0
  107. package/template/skills/engineering-standards-builder/references/typescript/frameworks/vue.md +131 -0
  108. package/template/skills/engineering-standards-builder/references/typescript/runtimes/browser.md +15 -0
  109. package/template/skills/engineering-standards-builder/references/typescript/runtimes/electron.md +25 -0
  110. package/template/skills/engineering-standards-builder/references/typescript/runtimes/node.md +13 -0
  111. package/template/skills/engineering-standards-builder/scripts/discover-project.mjs +957 -0
  112. package/template/skills/engineering-standards-builder/scripts/self-test.mjs +203 -0
  113. package/template/skills/engineering-standards-builder/scripts/sync-manifest.mjs +105 -0
  114. package/template/skills/engineering-standards-builder/scripts/validate-builder.mjs +255 -0
  115. package/template/skills/engineering-standards-builder/scripts/validate-generated-skill.mjs +286 -0
  116. package/template/skills/engineering-standards-builder/templates/README.md +18 -0
  117. package/template/skills/engineering-standards-builder/templates/compatibility/agents-typescript--standards.md +6 -0
  118. package/template/skills/engineering-standards-builder/templates/compatibility/agents-typescript-standards.md +6 -0
  119. package/template/skills/engineering-standards-builder/templates/compatibility/claude-engineering-standards.md +6 -0
  120. package/template/skills/engineering-standards-builder/templates/compatibility/claude-typescript-standards.md +6 -0
  121. package/template/skills/engineering-standards-builder/templates/project-skill/SKILL.md.template +26 -0
  122. package/template/skills/engineering-standards-builder/templates/project-skill/references/project/00-project-profile.md.template +26 -0
  123. package/template/skills/engineering-standards-builder/templates/project-skill/references/project/01-module-map.md.template +27 -0
  124. package/template/skills/engineering-standards-builder/templates/project-skill/references/project/02-decisions-and-exceptions.md.template +31 -0
  125. package/template/skills/engineering-standards-builder/templates/project-skill/references/project/review-checklist.md.template +14 -0
  126. package/template/skills/migrate-runtime-state/references/migration-contract.md +3 -3
  127. package/template/skills/migrate-runtime-state/scripts/migrate-runtime-state.mjs +94 -12
  128. package/template/skills/source-code-zip-skill/SKILL.md +343 -0
  129. package/template/skills/source-code-zip-skill/scripts/zip_source_code.py +638 -0
  130. package/template/workflows/person/INDEX.md +1 -0
  131. package/template/workflows/person/S-steelman-deliberation/S-steelman-deliberation.md +218 -0
  132. package/template/workflows/person/S-steelman-deliberation/_templates/decision-template.md +51 -0
  133. package/template/workflows/person/S-steelman-deliberation/_templates/steelman-dossier-template.md +96 -0
  134. package/template/workflows/person/S-steelman-deliberation/deliberate.md +127 -0
  135. package/template/workflows/person/S-steelman-deliberation/evidence-gate.md +37 -0
  136. package/template/workflows/person/S-steelman-deliberation/judge.md +69 -0
  137. package/template/workflows/person/S-steelman-deliberation/tools/validate-steelman-change.mjs +697 -0
  138. package/template/workflows/specdev/I-implement/I-implement.md +27 -26
  139. package/template/workflows/specdev/I-implement/evidence-template.md +18 -12
  140. package/template/workflows/specdev/I-implement/execution-preflight.md +11 -9
  141. package/template/workflows/specdev/I-init-setup/I-init-setup.md +2 -2
  142. package/template/workflows/specdev/I-init-setup/change-status-template.json +3 -3
  143. package/template/workflows/specdev/I-init-setup/config-template.json +5 -2
  144. package/template/workflows/specdev/INDEX.md +6 -6
  145. package/template/workflows/specdev/P-goal-plan/P-goal-plan.md +16 -16
  146. package/template/workflows/specdev/P-goal-plan/completion-control.md +8 -8
  147. package/template/workflows/specdev/P-goal-plan/goal-plan-template.md +20 -14
  148. package/template/workflows/specdev/P-goal-plan/lead-orchestration.md +5 -5
  149. package/template/workflows/specdev/P-goal-plan/orchestration-protocol.md +13 -13
  150. package/template/workflows/specdev/P-goal-plan/planning-modes.md +27 -15
  151. package/template/workflows/specdev/P-prototype/ui-prototype.md +1 -1
  152. package/template/workflows/specdev/T-tickets/T-tickets.md +4 -4
  153. package/template/workflows/specdev/T-tickets/ticket-readiness.md +3 -3
  154. package/template/workflows/specdev/T-tickets/ticket-template.md +6 -6
  155. package/template/workflows/specdev/T-tickets/tickets-map-template.md +2 -2
  156. package/template/workflows/specdev/common/README.md +1 -1
  157. package/template/workflows/specdev/common/rules/change-completion.md +2 -2
  158. package/template/workflows/specdev/common/rules/evidence-and-verification.md +10 -6
  159. package/template/workflows/specdev/common/rules/path-ownership.md +4 -4
  160. package/template/workflows/specdev/common/schemas/change-status.schema.json +31 -4
  161. package/template/workflows/specdev/common/schemas/config.schema.json +12 -6
  162. package/template/workflows/specdev/common/schemas/goal-plan.schema.json +15 -6
  163. package/template/workflows/specdev/common/skills/dev-worktree/SKILL.md +3 -3
  164. package/template/workflows/specdev/common/skills/dev-worktree/references/finalize.md +1 -1
  165. package/template/workflows/specdev/common/skills/subagent-delivery/SKILL.md +4 -4
  166. package/template/workflows/specdev/common/skills/subagent-delivery/references/external-web-subagent.md +1 -1
  167. package/template/workflows/specdev/common/skills/subagent-delivery/references/native-subagent.md +4 -4
  168. package/template/workflows/specdev/common/tools/README.md +2 -1
  169. package/template/workflows/specdev/common/tools/validate-specdev.mjs +261 -66
  170. package/template/skills/typescript-standards-builder/README.md +0 -53
  171. package/template/skills/typescript-standards-builder/SKILL.md +0 -245
  172. package/template/skills/typescript-standards-builder/examples/sample-generated-tree.md +0 -30
  173. package/template/skills/typescript-standards-builder/examples/sample-interview-decisions.md +0 -26
  174. package/template/skills/typescript-standards-builder/manifest.txt +0 -29
  175. package/template/skills/typescript-standards-builder/references/00-governance-and-fixed-defaults.md +0 -77
  176. package/template/skills/typescript-standards-builder/references/01-project-discovery.md +0 -100
  177. package/template/skills/typescript-standards-builder/references/02-interview-workflow.md +0 -129
  178. package/template/skills/typescript-standards-builder/references/03-project-architecture-and-directory-layout.md +0 -84
  179. package/template/skills/typescript-standards-builder/references/04-file-directory-and-symbol-naming.md +0 -92
  180. package/template/skills/typescript-standards-builder/references/05-modules-imports-exports-and-dependencies.md +0 -63
  181. package/template/skills/typescript-standards-builder/references/06-typescript-type-system.md +0 -64
  182. package/template/skills/typescript-standards-builder/references/07-functions-async-errors-and-resources.md +0 -42
  183. package/template/skills/typescript-standards-builder/references/08-comments-jsdoc-and-documentation.md +0 -51
  184. package/template/skills/typescript-standards-builder/references/09-testing-strategy.md +0 -58
  185. package/template/skills/typescript-standards-builder/references/10-react-and-frontend.md +0 -39
  186. package/template/skills/typescript-standards-builder/references/11-node-cli-and-cross-platform.md +0 -31
  187. package/template/skills/typescript-standards-builder/references/12-formatting-lint-and-complexity.md +0 -58
  188. package/template/skills/typescript-standards-builder/references/13-configuration-dependencies-and-ci.md +0 -71
  189. package/template/skills/typescript-standards-builder/references/14-security-performance-and-i18n.md +0 -32
  190. package/template/skills/typescript-standards-builder/references/15-git-review-and-delivery.md +0 -28
  191. package/template/skills/typescript-standards-builder/references/16-adoption-exceptions-and-migration.md +0 -61
  192. package/template/skills/typescript-standards-builder/references/17-generation-contract.md +0 -104
  193. package/template/skills/typescript-standards-builder/references/README.md +0 -37
  194. package/template/skills/typescript-standards-builder/templates/agents-compat-skill/SKILL.md +0 -1
  195. package/template/skills/typescript-standards-builder/templates/claude-skill/SKILL.md +0 -1
  196. package/template/skills/typescript-standards-builder/templates/project-skill/SKILL.md.template +0 -34
  197. package/template/skills/typescript-standards-builder/templates/project-skill/references/00-project-profile.md.template +0 -17
  198. package/template/skills/typescript-standards-builder/templates/project-skill/references/10-review-checklist.md +0 -23
  199. package/template/skills/typescript-standards-builder/templates/project-skill/references/11-decisions-and-exceptions.md.template +0 -19
@@ -3,19 +3,19 @@ id: specdev/implement
3
3
  type: workflow-entry
4
4
  workflow: specdev
5
5
  name: 实现
6
- description: 基于 Ready Ticket 或获批小型 Spec 执行设计检查、TDD、动态派单、双轴审查、Ticket worktree commit、候选合并验证和 Lead Evidence 回写。
7
- keywords: [实现, TDD, Lead, subagent, worktree, candidate-merge, 代码审查, 证据]
6
+ description: 基于 Ready Ticket 或获批小型 Spec 执行设计检查、TDD、动态派单、双轴审查、按 Goal Plan 选择的 current workspace 或 Ticket worktree 提交、直接父分支或候选合并验证和 Lead Evidence 回写。
7
+ keywords: [实现, TDD, Lead, subagent, worktree, current workspace, direct-parent, candidate-merge, 代码审查, 证据]
8
8
  ---
9
9
 
10
10
  # 实现
11
11
 
12
- 本 work 保留模块设计检查、design-it-twice、TDD 红绿循环、双轴审查和证据治理。Ticket 模式固定使用来源 worktree、实现 commit parent-candidate 集成;Lead 根据实际情况自行实现或动态派单。
12
+ 本 work 保留模块设计检查、design-it-twice、TDD 红绿循环、双轴审查和证据治理。Ticket 模式按 Goal Plan `ticket_workspace_policy` 选择 current workspace 串行直接父分支或独立 worktree candidate-merge;Lead 根据实际情况自行实现或动态派单。
13
13
 
14
14
  ## 执行模式
15
15
 
16
16
  ### Ticket 模式(默认)
17
17
 
18
- 读取 Ready Ticket、Tickets Map 和可选 Goal Plan。存在 Goal Plan 时使用其中的 Lead;没有 Goal Plan 时,当前主会话作为该 Ticket 的 Lead。每个 Ticket 都建立独立 worktree,无论实现者是 Lead 还是 implementation subagent
18
+ 读取 Ready Ticket、Tickets Map 和可选 Goal Plan。存在 Goal Plan 时使用其中的 Lead 与 workspace 策略;没有 Goal Plan 时,当前主会话作为该 Ticket 的 Lead,并按 Direct Spec 规则执行,不推断 worktree 策略。`required` 模式每个 Ticket 建立独立 worktree;`current` 模式所有 Ticket 严格串行,使用当前分支和当前 workspace
19
19
 
20
20
  ### Direct Spec 模式
21
21
 
@@ -45,33 +45,33 @@ Git 已处于 merge/rebase 冲突时,先加载 `<Path>{roots.workflows}/specde
45
45
 
46
46
  ## 流程
47
47
 
48
- ### 1. 执行前预检与来源 worktree
48
+ ### 1. 执行前预检与 workspace
49
49
 
50
50
  加载 `<Path>{roots.workflows}/specdev/I-implement/execution-preflight.md</Path>`。
51
51
 
52
52
  Ticket 模式:
53
53
 
54
54
  1. 验证 Ready、依赖 Evidence、Spec/ADR/Goal Plan、一致性、路径 owner 和验证接缝;
55
- 2. 确认 Goal Plan schema v4(若存在)、Leadimplementation agent 上限与授权;
56
- 3. `purpose=ticket, operation=create|restore` 调用 `<Path>{roots.workflows}/specdev/common/skills/dev-worktree/SKILL.md</Path>`;
57
- 4. Lead 把 Ticket 设为 `in_progress`,change worktree 记录设为 `active`;
55
+ 2. 确认 Goal Plan schema v6(若存在)、Lead、动态 implementation/integration 上限与授权;
56
+ 3. `required` 模式以 `purpose=ticket, operation=create|restore` 调用 `<Path>{roots.workflows}/specdev/common/skills/dev-worktree/SKILL.md</Path>`;`current` 模式读取当前 branch、HEAD、dirty 状态并确认没有其他 Ticket implementation writer;
57
+ 4. Lead 把 Ticket 设为 `in_progress`;`required` 模式将 change worktree 记录设为 `active`,`current` 模式建立 current workspace 执行记录;
58
58
  5. 当前代码使合同失效时停止并返回对应上游 owner。
59
59
 
60
60
  Direct Spec 模式验证用户批准、轻量合同和 current workspace 唯一写入 owner;不创建虚假 Ticket/worktree 状态。
61
61
 
62
- **完成标准**:Ticket 来源 worktree、基线、owners、权限与实际 Git 一致;Direct Spec 的小型边界可判定。
62
+ **完成标准**:按策略完成 workspace、基线、owners、权限与实际 Git 一致;current 模式只有一个 implementation writer 且 Ticket 串行可恢复。
63
63
 
64
64
  ### 2. Lead 决定自行实现或动态派单
65
65
 
66
- Ticket 模式下,Lead 根据 Ticket 独立性、路径冲突、上下文、风险和平台能力决定。派单时以 `operation=dispatch` 调用 `<Path>{roots.workflows}/specdev/common/skills/subagent-delivery/SKILL.md</Path>`。Direct Spec 模式由 Lead 作为 current workspace 唯一写入 owner;可以派遣只读 review/research/test-observation agent,不派遣 implementation subagent 写 current workspace。
66
+ Ticket 模式下,Lead 根据 Ticket 独立性、路径冲突、上下文、风险和平台能力决定。派单时以 `operation=dispatch` 调用 `<Path>{roots.workflows}/specdev/common/skills/subagent-delivery/SKILL.md</Path>`。`current` 模式仍可派遣一个 implementation subagent 写当前 workspace,但必须等待其返回、Lead 验收并形成 commit 后才进入下一个 Ticket;`required` 模式 implementation subagent 绑定独立 Ticket worktree。Direct Spec 模式由 Lead 作为 current workspace 唯一写入 owner,不派遣 implementation subagent 写入。
67
67
 
68
- - implementation subagent 同时最多取 Goal Plan/config/平台上限的最小值且不超过三个;Lead 不计入;
68
+ - implementation subagent 同时取 Goal Plan/config/平台能力的共同上限;current 模式保持单 writer 串行安全不变量;Lead 不计入;
69
69
  - review/research/test-observation agent 不设置 SpecDev 数字上限,但保持只读;
70
- - implementation Packet 绑定唯一 Ticket worktree、checkpoint、路径、非 E2E 检查与 commit 返回;
70
+ - implementation Packet 按策略绑定唯一 Ticket workspace 或 current workspace、checkpoint、路径、非 E2E 检查与 commit 返回;
71
71
  - subagent 不写 SpecDev 工件、Evidence、父分支或 E2E 结果;
72
72
  - Lead 自行实现时仍遵循相同 worktree、commit 与返回事实合同。
73
73
 
74
- **完成标准**:只有一个 implementation owner 写当前 Ticket worktree,或 Direct Spec 只有 Lead 写 current workspace;所有 SpecDev 写入仍由 Lead 拥有。
74
+ **完成标准**:current 模式只有一个 implementation owner 写当前 workspace;required 模式只有一个 owner 写当前 Ticket worktreeDirect Spec 只有 Lead 写 current workspace;所有 SpecDev 写入仍由 Lead 拥有。
75
75
 
76
76
  ### 3. 设计检查
77
77
 
@@ -97,22 +97,22 @@ Ticket 模式下,Lead 根据 Ticket 独立性、路径冲突、上下文、风
97
97
 
98
98
  ### 5. 实现检查、commit 与 Lead 接收
99
99
 
100
- Ticket 模式的 implementation owner 在来源 worktree:
100
+ Ticket 模式的 implementation owner Goal Plan 策略在当前 workspace 或来源 worktree:
101
101
 
102
102
  - 运行 Ticket 要求的单元、组件、静态、类型、lint/build 等非 E2E 检查;
103
103
  - 审计 writable/shared/read-only 路径和新/既有/环境失败;
104
- - 在已授权时创建引用 Ticket ID 的实现 commit;
104
+ - 在已授权时创建引用 Ticket ID 的实现 commit;current 模式 commit 直接落在父分支,required 模式落在 Ticket branch;
105
105
  - 返回 commit、dirty 状态、实际路径、命令/结果、未运行项和恢复条件。
106
106
 
107
- Ticket 模式中,Lead 以 `operation=accept` 调用 subagent-delivery,重读 Git 状态、branch tip、commit、diff 和命令事实。无改动时将 Ticket 改为 `cancelled` 并记录原因;不得 empty commit 或 Evidence-only Done。来源 worktree 不运行 E2E
107
+ Ticket 模式中,Lead 以 `operation=accept` 调用 subagent-delivery,重读 Git 状态、branch tip、commit、diff 和命令事实。无改动时将 Ticket 改为 `cancelled` 并记录原因;不得 empty commit 或 Evidence-only Done。required 模式来源 worktree 不运行 E2E;current 模式适用 E2E 留给 Lead 的 direct-parent 验证。
108
108
 
109
109
  Direct Spec 模式由 Lead 在 current workspace 运行轻量合同要求的定向非 E2E 检查,审计获批可写范围,并在获得 implementation commit 授权后创建引用 change 的非空 commit;无需改动时记录事实并取消直接实现,不创建 empty commit。记录实施前基线、最终 checkpoint、dirty 状态、实际路径、命令结果、未运行项和恢复条件。
110
110
 
111
- **完成标准**:Ticket worktree clean 且 `source_checkpoint` 精确等于 branch tip;或 Direct Spec 的 current workspace checkpoint、路径和轻量合同一致。
111
+ **完成标准**:required 模式 Ticket worktree clean 且 `source_checkpoint` 精确等于 branch tip;current 模式 workspace clean 且 Ticket `result_sha` 精确等于父分支上的 implementation commit;或 Direct Spec 的 current workspace checkpoint、路径和轻量合同一致。
112
112
 
113
113
  ### 6. 双轴审查
114
114
 
115
- 调用 `<Path>{roots.workflows}/specdev/common/skills/code-review/SKILL.md</Path>`。Ticket 模式以 `base_sha` 与 `source_checkpoint` 为固定点;Direct Spec 以实施前基线与 current workspace 最终 checkpoint 为固定点:
115
+ 调用 `<Path>{roots.workflows}/specdev/common/skills/code-review/SKILL.md</Path>`。required Ticket `base_sha` 与 `source_checkpoint` 为固定点;current Ticket 以 Ticket 实施前基线与 implementation commit 为固定点;Direct Spec 以实施前基线与 current workspace 最终 checkpoint 为固定点:
116
116
 
117
117
  - 标准轴:正确性、模块设计、错误、安全、性能、并发、资源、测试与可维护性;
118
118
  - 规范轴:Spec/Ticket IN/OUT、实现合同、路径所有权、验证矩阵与 Goal Gate。
@@ -123,7 +123,7 @@ Direct Spec 模式由 Lead 在 current workspace 运行轻量合同要求的定
123
123
 
124
124
  ### 7. 最终集成与适用 E2E
125
125
 
126
- Ticket 模式中,Lead 以 `purpose=ticket, operation=finalize` 调用 dev-worktree:
126
+ `required` Ticket 模式中,Lead 以 `purpose=ticket, operation=finalize` 调用 dev-worktree:
127
127
 
128
128
  1. 在最新父分支的 Lead-owned candidate checkout 组合 source commit;
129
129
  2. 运行受影响集成/回归、项目父状态检查和 Ticket 标记 required 的 E2E;
@@ -134,13 +134,13 @@ Ticket 模式中,Lead 以 `purpose=ticket, operation=finalize` 调用 dev-work
134
134
 
135
135
  E2E 是否需要由 Ticket/Goal Plan 的实际跨边界风险决定,不限于 UI;不适用必须记录原因。
136
136
 
137
- Direct Spec 模式跳过 source worktree、candidate merge 和父分支推进。Lead current workspace 运行轻量合同要求的适用回归与 E2E,记录运行环境、命令、退出码和摘要;E2E 不得派给其他 agent。失败时不声明完成,保留最后可信 checkpoint 和恢复条件。全部通过后重读 Git 状态与最终 checkpoint。
137
+ `current` Ticket 模式跳过 source worktree、candidate merge 和 candidate checkout。Lead 在当前 workspace 运行 Ticket 要求的适用集成/回归与 E2E,记录运行环境、命令、退出码和摘要;E2E 不得派给其他 agent。失败时不声明完成,保留 Ticket commit、父 HEAD 和恢复条件。全部通过后重读父 HEAD/tree 并记录 `result_sha`。Direct Spec 模式同样跳过 source worktree、candidate merge 和父分支推进。
138
138
 
139
139
  ### 8. Evidence、状态与完成
140
140
 
141
- Lead 使用 `<Path>{roots.workflows}/specdev/I-implement/evidence-template.md</Path>` 写入 Ticket Evidence;Direct Spec 按该模板的 Direct Spec 适配说明写 `<Path>{roots.state}/specdev/changes/{change}/evidence/direct-spec.md</Path>`。Ticket Evidence 包含 source/candidate/result SHA、派单/返回、两层验证、双轴审查、E2E disposition、路径审计、偏差和残余风险;Direct Spec Evidence 使用实施前基线与 current workspace 最终 checkpoint,不伪造 Ticket/worktree/candidate 字段。
141
+ Lead 使用 `<Path>{roots.workflows}/specdev/I-implement/evidence-template.md</Path>` 写入 Ticket Evidence;Direct Spec 按该模板的 Direct Spec 适配说明写 `<Path>{roots.state}/specdev/changes/{change}/evidence/direct-spec.md</Path>`。Ticket Evidence 按策略记录 implementation/source、适用 candidate/result SHA、派单/返回、两层验证、双轴审查、E2E disposition、路径审计、偏差和残余风险;Direct Spec Evidence 使用实施前基线与 current workspace 最终 checkpoint,不伪造 Ticket/worktree/candidate 字段。
142
142
 
143
- Ticket 正常状态:`ready → in_progress → review → done`。`done` 要求 change worktree 已完成集成(`integrated`,或集成后已清理的 `removed`)、父 HEAD=result SHA 且包含 source commit。阻塞使用 `blocked`,契约偏差使用 `deviated`,无需改动使用 `cancelled`。Direct Spec 由当前 I-implement owner 按 `<Path>{roots.workflows}/specdev/common/rules/change-completion.md</Path>` 关闭 change。
143
+ Ticket 正常状态:`ready → in_progress → review → done`。`required` 的 `done` 要求 change worktree 已完成集成(`integrated` `removed`)、父 HEAD=result SHA 且包含 source commit;`current` 的 `done` 要求 current workspace clean、direct-parent 验证通过且父 HEAD=result SHA。阻塞使用 `blocked`,契约偏差使用 `deviated`,无需改动使用 `cancelled`。Direct Spec 由当前 I-implement owner 按 `<Path>{roots.workflows}/specdev/common/rules/change-completion.md</Path>` 关闭 change。
144
144
 
145
145
  按存在和当前模式同步 Ticket、Tickets Map、Goal Plan、`<Path>{roots.state}/specdev/changes/{change}/.status.json</Path>` 和全局状态;Direct Spec 不创建缺失的 Ticket/Map/Goal Plan。最后一个计划内 Ticket 完成后,Goal Plan 的 Lead 按 change completion 关闭;无 Goal Plan 的当前 I owner 承担同一门禁。需要远程 reconcile 时返回 T-triage,否则进入 Archive。
146
146
 
@@ -149,19 +149,20 @@ Ticket 正常状态:`ready → in_progress → review → done`。`done` 要
149
149
  ```bash
150
150
  node <Path>{roots.workflows}/specdev/common/tools/validate-specdev.mjs</Path> \
151
151
  --stage implement \
152
+ --repo <project-root> \
152
153
  <Path>{roots.state}/specdev/changes/{change}</Path>
153
154
  ```
154
155
 
155
156
  ### 9. 返回
156
157
 
157
- Ticket 模式返回 Ticket/change 状态、Evidence 完整路径、source workspace、source/candidate/result SHA、父分支、E2E disposition、未验证项和下一路由。Direct Spec 返回 change 状态、`<Path>{roots.state}/specdev/changes/{change}/evidence/direct-spec.md</Path>`、current workspace、实施前/最终 checkpoint、适用 E2E 和下一路由。push、PR、remote merge、deploy、migration、生产动作及来源 branch/worktree cleanup 只在独立授权时执行。
158
+ Ticket 模式返回 Ticket/change 状态、Evidence 完整路径、workspace locatorimplementation/source、适用 candidate/result SHA、父分支、E2E disposition、未验证项和下一路由。Direct Spec 返回 change 状态、`<Path>{roots.state}/specdev/changes/{change}/evidence/direct-spec.md</Path>`、current workspace、实施前/最终 checkpoint、适用 E2E 和下一路由。push、PR、remote merge、deploy、migration、生产动作及来源 branch/worktree cleanup 只在独立授权时执行。
158
159
 
159
160
  ## 完成标准
160
161
 
161
- - Ticket 模式的 worktree、实现 commit、双轴审查和 candidate gate 完整;Direct Spec 的轻量合同、current workspace checkpoint、双轴审查和最终验证完整;
162
- - source worktree E2ETicket 适用 E2E 由 Lead 在 parent-candidate 运行,Direct Spec 适用 E2E 由 Lead 在 current workspace 运行;
162
+ - Ticket 模式按策略完成 current workspace/direct-parent 或 worktree/implementation commit/candidate gateDirect Spec 的轻量合同、current workspace checkpoint、双轴审查和最终验证完整;
163
+ - current Ticket 的适用 E2E 由 Lead 在 current workspace 运行;required Ticket 的适用 E2E 由 Lead 在 parent-candidate 运行;Direct Spec 适用 E2E 由 Lead 在 current workspace 运行;
163
164
  - Lead 独立核对并写全部 SpecDev 工件;
164
- - Ticket 父分支只推进到通过的 candidateTicket Done 与实际 Git 一致;Direct Spec 的完成状态与 current workspace 最终 checkpoint 一致;
165
+ - current Ticket 父分支只推进到通过的 direct-parent 验证 commit;required Ticket 父分支只推进到通过的 candidate;两者 Ticket Done 都必须与实际 Git 一致;Direct Spec 的完成状态与 current workspace 最终 checkpoint 一致;
165
166
  - 实际路径、验证、偏差和状态可由 Evidence 恢复;
166
167
  - validator 无 error。
167
168
 
@@ -1,14 +1,14 @@
1
1
  # Evidence: <Ticket ID> — <Ticket title>
2
2
 
3
- Direct Spec 使用本模板时写入 `<Path>{roots.state}/specdev/changes/{change}/evidence/direct-spec.md</Path>`:Ticket、Goal Plan、source worktree 与 candidate 字段写“不适用:Direct Spec”,以实施前基线和 current workspace 最终 checkpoint 代替 source/candidate/result 链;第 5、7 节分别记录 current workspace 定向检查和 Lead 最终回归/E2E,不伪造 Ticket 状态。
3
+ 本模板按 Goal Plan 的 workspace/integration 策略记录实际验证环境;不适用的环境明确写 `not-applicable`,不伪造 source、candidate 或 result 链。Direct Spec 使用本模板时写入 `<Path>{roots.state}/specdev/changes/{change}/evidence/direct-spec.md</Path>`,以实施前基线和最终 checkpoint 代替 Ticket 集成链。
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
- - **Source worktree/branch:** `<workspace_ref>` / `<branch>`
11
- - **Base/source/candidate/result SHA:** `<sha>` / `<sha>` / `<sha>` / `<sha>`
10
+ - **Workspace/branch:** `<workspace_ref>` / `<branch>`
11
+ - **Base/implementation-or-source/candidate/result SHA:** `<sha>` / `<sha>` / `<sha>` / `<sha>`
12
12
  - **状态:** review / done / blocked / deviated / cancelled
13
13
 
14
14
  ## 1. 实现摘要
@@ -44,18 +44,22 @@ subagent 不写本 Evidence;以上内容由 Lead 从实际 workspace、Git 和
44
44
 
45
45
  每个 Ticket 验收项恰好落到一行。
46
46
 
47
- ## 5. Source-worktree 验证
47
+ ## 5. Workspace Verification
48
+
49
+ 按 Goal Plan 记录 current workspace 或 source worktree 检查,并注明运行环境。
48
50
 
49
51
  | 命令或步骤 | 运行环境 | 结果 | 摘要 |
50
52
  |---|---|---|---|
51
- | ... | source-worktree | pass / fail / not-run | ... |
53
+ | ... | current-workspace | pass / fail / not-run | ... |
52
54
 
53
55
  - **失败后修复与重跑:** 无 / ...
54
56
  - **未运行检查:** 无 / 原因与风险
55
- - **E2E:** 禁止在 source-worktree 声明 pass;此处固定为 not-run: parent-candidate-owned
57
+ - **E2E:** Goal Plan E2E disposition 记录;未在本环境运行时说明 owner 与原因
56
58
 
57
59
  ## 6. 双轴审查
58
60
 
61
+ 标准轴与规范轴保持独立,分别记录固定输入、结果和修正。
62
+
59
63
  ### 标准轴
60
64
 
61
65
  - **固定输入:** `<base_sha>..<source_checkpoint>`
@@ -70,20 +74,22 @@ subagent 不写本 Evidence;以上内容由 Lead 从实际 workspace、Git 和
70
74
 
71
75
  两个轴隔离并按上述顺序记录。
72
76
 
73
- ## 7. Parent-candidate 集成验证
77
+ ## 7. Integration Verification
78
+
79
+ 按 Goal Plan 记录 direct-parent 或 parent-candidate 集成;未采用的字段写 `null` 或 `not-applicable`。
74
80
 
75
81
  | 项目 | 结果 |
76
82
  |---|---|
77
83
  | Parent before SHA | `<sha>` |
78
- | Source/candidate SHA | `<sha>` / `<sha>` |
79
- | Candidate branch/workspace | `<branch>` / `<workspace_ref>` |
80
- | Method/conflicts | fast-forward / merge-commit;无 / paths |
81
- | Candidate checks | 命令、运行环境 `parent-candidate`、结果 |
84
+ | Implementation/source SHA | `<sha>` / `<sha>` |
85
+ | Candidate branch/workspace | current / `<branch>` / `not-applicable` |
86
+ | Method/conflicts | direct-parent / fast-forward / merge-commit;无 / paths |
87
+ | Integration checks | 命令、运行环境 `current-workspace`、结果 |
82
88
  | E2E disposition | required / not-required: reason |
83
89
  | E2E result | pending / passed / failed / not-required;场景与证据 |
84
90
  | Parent result/re-read | `<sha>`;HEAD/tree/ancestor 核对 |
85
91
 
86
- Candidate failed/stale 时明确父分支未推进、失败命令、旧 candidate SHA 和恢复条件。
92
+ 集成失败时明确父 HEAD 是否推进、失败命令、旧 SHA 和恢复条件。
87
93
 
88
94
  ## 8. 偏差与决策
89
95
 
@@ -5,13 +5,13 @@
5
5
  - [ ] Ticket frontmatter 可解析,`ready: true`,`status: ready`。
6
6
  - [ ] 所有 `blocked_by` Ticket 为 done 且 Evidence 存在。
7
7
  - [ ] Spec、ADR、Ticket 与 Goal Plan 无冲突;旧 Goal Plan schema 必须重跑 P-goal-plan。
8
- - [ ] Goal Plan(若存在)为 `lead-directed`,Lead 可恢复,implementation agent limit 为 `1..3`。
8
+ - [ ] Goal Plan(若存在)为 `lead-directed`,workspace/integration 策略为 `current/direct-parent` 或 `required/candidate-merge`,Lead 可恢复,implementation/integration 上限不超过 config 与平台能力。
9
9
  - [ ] 当前代码入口、接口、路径和父分支仍与 Ticket 假设一致。
10
- - [ ] writable/shared paths 有唯一 owner,当前 Wave 无项目写冲突。
11
- - [ ] implementation commit local candidate integration/父分支更新已授权;push/PR/remote/deploy 等保持独立。
12
- - [ ] dev-worktree 记录 schema v4,`base_sha`、父分支、owners、branch、`workspace_ref`、integration 与 E2E disposition 完整。
13
- - [ ] implementation subagent 若被派遣,Packet 绑定上述 worktree/checkpoint;subagent 不写 SpecDev 状态。
14
- - [ ] 来源检查明确为非 E2E;required E2E 有 parent-candidate 场景与预期。
10
+ - [ ] writable/shared paths 有唯一 owner;current 模式的 Ticket 顺序已固定且没有其他 active implementation writer。
11
+ - [ ] implementation commit 与当前策略对应的 direct-parent 或 local candidate integration/父分支更新已授权;push/PR/remote/deploy 等保持独立。
12
+ - [ ] required 模式的 dev-worktree 记录 schema v6,`base_sha`、父分支、owners、branch、`workspace_ref`、integration 与 E2E disposition 完整;current 模式的 current workspace 记录使用 `workspace_ref: current`、`branch: parent_branch` 和 direct-parent integration。
13
+ - [ ] implementation subagent 若被派遣,Packet 绑定唯一 Ticket workspace 或 current workspace/checkpoint;subagent 不写 SpecDev 状态。
14
+ - [ ] current 模式 source 检查在 current workspace 且不宣称 E2E;required 模式 source 检查明确为非 E2E,required E2E 有 parent-candidate 场景与预期。
15
15
  - [ ] 验证命令/环境可用,关键静默失败风险有受控反向验证。
16
16
  - [ ] Deep Ticket 批准点已满足。
17
17
 
@@ -30,7 +30,9 @@
30
30
  - **local-implementation**:局部实现调整不改变契约;记录后继续。
31
31
  - **ticket-invalid**:范围、接口、依赖、验证或路径合同失效;停止并修 Ticket。
32
32
  - **spec-invalid / adr-conflict**:返回对应上游 owner。
33
- - **checkpoint-drift**:来源/父分支/派单 checkpoint 漂移;由 Lead重建 worktree candidate。
34
- - **workspace-contract-invalid**:缺少父分支、owner、locator、source/candidate/result 字段或授权;停止并修状态/计划。
33
+ - **checkpoint-drift**:current/来源/父分支/派单 checkpoint 漂移;由 Lead 重建执行记录或 required 模式的 worktree/candidate。
34
+ - **workspace-contract-invalid**:缺少父分支、owner、locator、implementation/source/适用 result 字段或授权;停止并修状态/计划。
35
+ - **workspace-strategy-invalid**:Goal Plan 的 workspace/integration 组合非法,或 current 模式出现并发 implementation writer;停止并修状态/计划。
35
36
  - **delivery-unverified**:候选、provider 声明或附件不能独立核对;保持 unverified。
36
- - **e2e-owner-invalid**:E2E 被安排在 source worktree 或非 Lead owner;停止并修 Ticket/Goal Plan。
37
+ - **e2e-owner-invalid**:required 模式 E2E 被安排在 source worktree,或任一模式不是 Lead owner;停止并修 Ticket/Goal Plan。
38
+ - **direct-parent-invalid**:current 模式的 Ticket commit、父 HEAD、验证或 Evidence 不一致;保留最后可信 commit 并阻塞当前 Ticket。
@@ -53,7 +53,7 @@ keywords: [初始化, 配置, status, tracking, 验证命令]
53
53
  仅在上下文未提供时询问:
54
54
 
55
55
  - 交互语言与持久化工件语言;
56
- - implementation subagent 上限(`1..3`,默认 `3`,Lead 不计入);
56
+ - implementation subagent、集成尝试次数和原型变体上限(初始化时写入 config,Lead 不计入);
57
57
  - Deep Ticket 的迁移、发布和不可逆操作是否必须人工批准;
58
58
 
59
59
  不询问可由仓库事实回答的文件位置、脚本名或默认分支。
@@ -82,7 +82,7 @@ keywords: [初始化, 配置, status, tracking, 验证命令]
82
82
  - `<Path>{roots.state}/specdev/research/</Path>`
83
83
  - `<Path>{roots.state}/specdev/archive/</Path>`
84
84
 
85
- 若全局状态或 config 已存在,先检查各自 `schema_version`。版本未知、JSON 不可解析或状态与当前 workflow 契约不一致时,停止当前 Work,并提示用户运行 `speculo init` 建立备份与 pending marker,再运行 `migrate-runtime-state` command 对账修复;不得在 Work 内迁移、兼容或猜测旧状态。只有状态不存在时才从 schema v4 模板创建。
85
+ 若全局状态或 config 已存在,先检查各自 `schema_version`。版本未知、JSON 不可解析或状态与当前 workflow 契约不一致时,停止当前 Work,并提示用户运行 `speculo init` 建立备份与 pending marker,再运行 `migrate-runtime-state` command 对账修复;不得在 Work 内迁移、兼容或猜测旧状态。只有状态不存在时才从当前 schema 模板创建。
86
86
 
87
87
  从模板生成:
88
88
 
@@ -1,5 +1,5 @@
1
1
  {
2
- "schema_version": 5,
2
+ "schema_version": 6,
3
3
  "artifact": "change-status",
4
4
  "change": "<YYYY-MM-DD-topic>",
5
5
  "change_status": "active",
@@ -7,8 +7,8 @@
7
7
  "works_run": [],
8
8
  "claimed_investigations": [],
9
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"},
10
+ "implementation_commit": {"status": "not-authorized", "source": null, "granted_at": null, "scope": "Ticket implementation commits"},
11
+ "local_candidate_integration": {"status": "not-authorized", "source": null, "granted_at": null, "scope": "Lead-owned local direct-parent or candidate integration and parent update"},
12
12
  "source_cleanup": {"status": "not-authorized", "source": null, "granted_at": null, "scope": "Source worktree and branch cleanup"}
13
13
  },
14
14
  "leadership": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "schema_version": 4,
2
+ "schema_version": 5,
3
3
  "interaction_language": "zh-CN",
4
4
  "artifact_language": "zh-CN",
5
5
  "git": {
@@ -7,6 +7,7 @@
7
7
  },
8
8
  "execution": {
9
9
  "max_implementation_agents": 3,
10
+ "max_integration_attempts": 3,
10
11
  "deep_ticket_human_approval": true,
11
12
  "shared_path_owner": "explicit"
12
13
  },
@@ -19,6 +20,8 @@
19
20
  "planning": {
20
21
  "default_depth": "standard",
21
22
  "require_ready_gate": true,
22
- "require_evidence": true
23
+ "require_evidence": true,
24
+ "ui_prototype_default_variants": 3,
25
+ "ui_prototype_max_variants": 5
23
26
  }
24
27
  }
@@ -122,8 +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
+ 13. **Lead 与隔离正交**:Lead 固定拥有 SpecDev 状态、Evidence 与父分支;是否派遣 subagent 由 Lead 动态决定。Goal Plan 创建时询问 Ticket 是否开启 worktree,默认不开启;选择只作用于当前 Goal Plan。
126
+ 14. **策略化验收**:current 模式使用当前 workspace 严格串行、direct-parent 验证;required 模式使用 source worktree parent-candidate。只有 required 模式创建独立 Ticket worktree。
127
127
 
128
128
  共享规则:
129
129
 
@@ -151,7 +151,7 @@ Change 从 active/blocked 转为 completed 时加载 `<Path>{roots.workflows}/sp
151
151
 
152
152
  ## 状态字段
153
153
 
154
- `<Path>{roots.state}/specdev/status.json</Path>` 使用全局 schema v4;Spec/Ticket/Tickets Map 继续使用各自 schema v3,configGoal Plan `<Path>{roots.state}/specdev/changes/{change}/.status.json</Path>` 使用 schema v4
154
+ `<Path>{roots.state}/specdev/status.json</Path>` 使用全局 schema v5;Spec/Ticket/Tickets Map 继续使用各自 schema v3,config 使用 schema v5,Goal Plan 使用 schema v6,`<Path>{roots.state}/specdev/changes/{change}/.status.json</Path>` 使用 schema v6
155
155
 
156
156
  - `schema_version`(数字):全局状态 schema 版本,固定为 `4`。
157
157
  - `workflow`(字符串):workflow 标识,固定为 `"specdev"`。
@@ -164,9 +164,9 @@ Change 从 active/blocked 转为 completed 时加载 `<Path>{roots.workflows}/sp
164
164
 
165
165
  `active[].change` 必须唯一,且不得同时出现在 `archived`。开始 Work 时设置 `current_work`;暂停或可恢复阻塞时保留;成功完成时加入 `works_run` 并清空;取消时清空但不加入。逐次时间、结果和审计证据由 change 自有状态、Work 主产物、Evidence 或 LOG 承载,不写入全局索引。
166
166
 
167
- `<Path>{roots.state}/specdev/config.json</Path>` 的 `execution.max_implementation_agents` `1..3`,默认 `3`,仅限制 implementation subagent 且不含 Lead;只读 review/research/test-observation agent 不设 SpecDev 数字上限。
167
+ `<Path>{roots.state}/specdev/config.json</Path>` 的 `execution.max_implementation_agents`、`max_integration_attempts` planning 原型变体字段均为可配置正整数,初始化时写入默认值;仅 implementation subagent 受前者约束且不含 Lead,current workspace 仍保持单 writer 串行安全不变量;只读 review/research/test-observation agent 不设 SpecDev 数字上限。
168
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 证据。
169
+ `<Path>{roots.state}/specdev/changes/{change}/.status.json</Path>` 的 `worktrees` 保存 Ticket 级 `base_sha`、父分支、workspace/implementation/integration owner、workspace locatorimplementation/source checkpoint、适用 candidate/result SHA、验证、E2E disposition 与生命周期状态。current 记录使用 `workspace_ref=current` 和 direct-parent;required 记录使用 source/parent-candidate。每个实现 Ticket 都有一条记录;父分支只有在对应策略的验证通过后推进。`removed` 是 required 集成后来源 branch/worktree 完成清理的终态,必须保留全部集成与 E2E 证据。
170
170
 
171
171
  领域状态枚举:
172
172
 
@@ -186,7 +186,7 @@ Change 从 active/blocked 转为 completed 时加载 `<Path>{roots.workflows}/sp
186
186
 
187
187
  ## 副作用边界
188
188
 
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>`。
189
+ 未经用户明确授权不得提交、推送、合并、删除来源 branch/worktree、部署、发布、移动归档、写入/关闭远程 Issue 或执行不可逆迁移。Ready Goal Plan/Ticket 执行必须明确取得 implementation commit 与所选 direct-parent/candidate integration/父分支更新授权;required 模式该授权包含 transient candidate checkout/branch 生命周期,不扩展到来源 cleanup、远端或生产动作。只读探索、change 工件生成和已授权验证可以进行。远程开发投影仅由 Triage reconcile 执行;Retro command 的 Speculo 反馈 Issue 是独立 command 边界。敏感值不得写入 `<Path>{roots.state}/specdev/</Path>`。
190
190
 
191
191
  ## 场景路由
192
192
 
@@ -11,7 +11,7 @@ keywords: [目标规划, Lead, Subagent, DAG, Gate, Wave, worktree, candidate-me
11
11
 
12
12
  Goal Plan 只拥有单个 Ticket 无法独立决定的事情:整体 Outcome、跨 Ticket 顺序与并发、共享所有权、里程碑 Gate、动态派单边界、父分支集成、迁移/发布顺序、偏差升级和恢复。Ticket 继续拥有局部实现合同。
13
13
 
14
- 每次 Goal Plan 都采用 `lead-directed`:当前主会话是唯一 Lead,负责计划、SpecDev 状态、Evidence、派单、候选验收、父分支集成和最终回复。Lead 可以根据实际依赖与平台能力动态派遣 subagent,不需要用户预选协作模式。Agent 编排与 worktree 隔离是正交关系;每个进入 I-implement Ticket 都必须拥有独立 worktree,无论由 Lead 还是 implementation subagent 实现。
14
+ 每次 Goal Plan 都采用 `lead-directed`:当前主会话是唯一 Lead,负责计划、SpecDev 状态、Evidence、派单、验收、父分支推进和最终回复。形成 Goal Plan 时必须询问是否开启 worktree 开发,默认不开启;选择写入当前 Goal Plan,不修改全局配置。不开启时 Ticket 严格串行,允许动态派遣 implementation subagent,但同一时间只有一个 implementation owner 可写当前 workspace;开启时沿用每 Ticket 独立 worktree 与 candidate-merge。
15
15
 
16
16
  产物写入 `<Path>{roots.state}/specdev/changes/{change}/goal-plan.md</Path>`。
17
17
 
@@ -26,7 +26,7 @@ Goal Plan 只拥有单个 Ticket 无法独立决定的事情:整体 Outcome、
26
26
  - Ticket DAG 的关键路径、汇合点或恢复策略无法由 Tickets Map 安全表达;
27
27
  - 用户明确要求正式跨 Ticket Plan。
28
28
 
29
- 少量、线性、低风险的 Ready Tickets 可以跳过本 work,由 I-implement Ticket 建立 worktree 并执行。没有 Ticket 的获批小型 Direct Spec 不受 Ticket worktree 合同约束;一旦需要切片,先运行 T-tickets。
29
+ 少量、线性、低风险的 Ready Tickets 可以跳过本 work,由 I-implement 按当前 Goal Plan workspace 策略执行。没有 Ticket 的获批小型 Direct Spec 不受 Ticket workspace 合同约束;一旦需要切片,先运行 T-tickets。
30
30
 
31
31
  ## 输入
32
32
 
@@ -58,8 +58,8 @@ Goal Plan 只拥有单个 Ticket 无法独立决定的事情:整体 Outcome、
58
58
  1. 验证 Spec、Tickets、合同覆盖、DAG、路径所有权和 Deep Ticket 完整性;
59
59
  2. 只读探索影响调度的代码与项目事实;
60
60
  3. 识别 migration、high-assurance、reference-conformance、release-coordination 等适用模式;
61
- 4. 从 config 读取 `max_implementation_agents`,将实际上限写入 `implementation_agent_limit`;本计划可以降低但不得超过 `3`,Lead 不计入;
62
- 5. 确认实现 commit 与本地候选集成已获授权;缺一项则计划保持 blocked;
61
+ 4. 从 config 读取 `max_implementation_agents` `max_integration_attempts`,将实际值快照到 `implementation_agent_limit` 与 `integration_attempt_limit`;本计划可以降低但不得超过 config 或平台能力,Lead 不计入;
62
+ 5. 根据 workspace 策略确认实现 commit direct-parent/candidate integration 已获授权;缺一项则计划保持 blocked;
63
63
  6. 只询问无法发现且会改变 Gate、Wave、owner、迁移、批准或验收的问题。
64
64
 
65
65
  **完成标准**:所有计划内 Ticket Ready;Lead、授权、实现并发上限和父分支可判定;没有用 Goal Plan 掩盖上游缺口。
@@ -71,9 +71,9 @@ Goal Plan 只拥有单个 Ticket 无法独立决定的事情:整体 Outcome、
71
71
  1. 压缩 Outcome、成功/伪完成、非目标和权威来源;
72
72
  2. 从 Ticket frontmatter 构建 DAG、关键路径、扇出与汇合点;
73
73
  3. 为 shared path、共享合同和集中修改指定唯一 owner;
74
- 4. 将依赖满足且项目写路径不相交的 Ticket 分入 Wave;
74
+ 4. 将依赖满足且项目写路径不相交的 Ticket 分入 Wave;current 模式仍按依赖顺序串行执行,不得把 Wave 当作并发授权;
75
75
  5. 为合同稳定、垂直路径、迁移完成、发布就绪等状态定义 Gate;
76
- 6. 为每个 Ticket 记录开始条件、worktree、验证层级、Evidence 目标、集成顺序和失败恢复。
76
+ 6. 为每个 Ticket 记录开始条件、workspace 策略、验证层级、Evidence 目标、集成顺序和失败恢复。
77
77
 
78
78
  **完成标准**:DAG、Wave、Gate 与 Tickets Map 一致;每个 Ticket 有唯一项目写 owner、worktree 合同和可验证集成出口。
79
79
 
@@ -82,9 +82,9 @@ Goal Plan 只拥有单个 Ticket 无法独立决定的事情:整体 Outcome、
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
84
  1. 固定 Lead 的可恢复 owner/session locator;
85
- 2. 声明 implementation subagent 最多同时三个,Lead 不计入;
85
+ 2. 声明 implementation subagent 的 config/平台约束上限,Lead 不计入;
86
86
  3. 不为只读 review/research/test-observation agent 写 SpecDev 数字上限;
87
- 4. 固定只有 Lead SpecDev 工件与状态;
87
+ 4. current 模式固定只有一个 implementation writer 写项目路径,Lead 仍是唯一 SpecDev 工件与状态写入者;required 模式 implementation owner 写自己的 Ticket worktree;
88
88
  5. 定义执行期动态 Dispatch Packet、候选返回和 Lead 验收;
89
89
  6. provider、模型和具体派单在 Ticket 开始时按事实选择,不在 Goal Plan 中预分配。
90
90
 
@@ -96,9 +96,9 @@ Goal Plan 只拥有单个 Ticket 无法独立决定的事情:整体 Outcome、
96
96
 
97
97
  1. 定义整体 Definition of Done 和每个 Gate 的关闭证据;
98
98
  2. 固化不可协商约束与允许的局部实现自由;
99
- 3. 为每个 Ticket 明确 source-worktree 检查与 parent-candidate 检查;
99
+ 3. workspace 策略为每个 Ticket 明确 current-workspace/direct-parent 检查或 source-worktree/parent-candidate 检查;
100
100
  4. E2E 按 Ticket 实际跨边界风险标记 required 或 not-required;
101
- 5. 定义候选失败、父 HEAD 漂移、偏差、暂停、批准和恢复动作;
101
+ 5. 定义 direct-parent 验证失败、candidate 冲突/失败、父 HEAD 漂移、偏差、暂停、批准和恢复动作;
102
102
  6. 定义 change 完成、远程 reconcile、残余风险和回滚要求。
103
103
 
104
104
  **完成标准**:每个完成声明映射到不可变 commit、候选/父分支 SHA、命令、Evidence 或人工批准。
@@ -130,18 +130,18 @@ node <Path>{roots.workflows}/specdev/common/tools/validate-specdev.mjs</Path> \
130
130
  - 跨 Ticket 先后、Wave、Gate 和关键汇合点;
131
131
  - shared path 与共享合同 owner;
132
132
  - implementation subagent 上限及动态派单边界;
133
- - 每 Ticket worktreesource commit、候选验证和父分支推进规则;
133
+ - 每 Ticket workspaceimplementation commit、对应验证和父分支推进规则;
134
134
  - E2E disposition、偏差、暂停、批准和恢复路径。
135
135
 
136
136
  Goal Plan 不复制 Ticket 的局部施工路线、全部文件预测或逐项验收清单。
137
137
 
138
138
  ## 完成标准
139
139
 
140
- - Goal Plan schema v4 且 `ready_for_execution` 与状态一致;
141
- - Lead 唯一,最多三个 implementation subagentreview/research agent 不受 SpecDev 数字限制;
142
- - 每个实现 Ticket 都有 worktree、commit、candidate-merge 和 Evidence 出口;
143
- - source worktree 不承担 E2E,适用 E2E 只由 Lead 在 parent-candidate 状态运行;
144
- - 计划只保留当前固定 Lead candidate-merge 合同,不携带条件性编排附录;
140
+ - Goal Plan schema v6 且 `ready_for_execution` 与状态一致;
141
+ - Lead 唯一,implementation subagent 上限来自 config/平台能力,review/research agent 不受 SpecDev 数字限制;
142
+ - 每个实现 Ticket 都有 workspace、commit、对应 integration gate 和 Evidence 出口;
143
+ - current 模式不创建 source/candidate worktree,适用 E2E Lead 在 current workspace 运行;required 模式保持 source/parent-candidate 边界;
144
+ - 计划只保留当前固定 Lead 与选定 workspace/integration 合同;
145
145
  - validator 无 error,Tickets Map 投影同步,用户收到下一步选择。
146
146
 
147
147
  ## 子文件引用
@@ -5,20 +5,20 @@
5
5
  至少要求:
6
6
 
7
7
  - Spec 验收合同全部有通过 Evidence 或明确批准的 deferred;
8
- - 所有非 cancelled Ticket 都有 source commit、通过的 candidate 和父分支 result SHA;
8
+ - current 模式的非 cancelled Ticket 都有 implementation commit、通过的 direct-parent 验证和父分支 result SHA;required 模式都有 source commit、通过的 candidate 和父分支 result SHA;
9
9
  - shared path、接口、数据、兼容、迁移、调用点与回滚合同闭合;
10
10
  - 项目定向检查、受影响回归、类型检查、lint/build 和适用 E2E 无未经批准退化;
11
11
  - change 状态、Ticket、Map、Goal Plan、Evidence 与实际 Git 状态一致;
12
- - 没有未集成 source checkpoint、活动 integration candidate 或未决高影响偏差。
12
+ - 没有未集成 implementation/source checkpoint、活动 integration candidate 或未决高影响偏差。
13
13
 
14
14
  无需改动的 Ticket 必须转为 `cancelled` 并记录来源事实;不得用 Evidence-only Done 或 empty commit 关闭。
15
15
 
16
16
  ## 2. 两层验证
17
17
 
18
- - `source-worktree`:implementation owner 运行 Ticket 要求的单元、组件、静态、类型、lint/build 等非 E2E 检查;
19
- - `parent-candidate`:Lead 运行受影响集成/回归和 Ticket 标记 required E2E
18
+ - `current-workspace`:current 模式 implementation owner 运行 Ticket 要求的检查,Lead 在同一 workspace 运行受影响集成/回归和适用 E2E
19
+ - `source-worktree`/`parent-candidate`:required 模式由 implementation owner Lead 分别运行非 E2E 与集成/E2E 检查。
20
20
 
21
- Evidence 必须记录命令运行环境。任何在 source worktree 声称的 E2E pass 都无效;subagent 返回的测试结果在 Lead 核对前保持候选状态。
21
+ Evidence 必须记录命令运行环境。required 模式任何在 source worktree 声称的 E2E pass 都无效;subagent 返回的测试结果在 Lead 核对前保持候选状态。
22
22
 
23
23
  ## 3. Gate 关闭
24
24
 
@@ -26,10 +26,10 @@ Lead 在每个 Gate 汇总覆盖 Evidence、接口/数据/兼容状态、candida
26
26
 
27
27
  ## 4. 失败与恢复
28
28
 
29
- - source 检查失败:保留 worktree,继续当前 Ticket;
30
- - candidate 冲突或检查失败:父分支不动,integration 记 `failed`,Ticket 回到 `in_progress`/`blocked`;
29
+ - current/source 检查失败:保留当前 workspace 或 source worktree,继续当前 Ticket;
30
+ - direct-parent/candidate 冲突或检查失败:父分支不动,integration 记 `failed`,Ticket 回到 `in_progress`/`blocked`;
31
31
  - 父 HEAD 漂移:integration 记 `stale`,从最新父分支重建并重跑;
32
- - E2E required 失败:父分支不动,保留失败命令、candidate SHA 和恢复条件;
32
+ - E2E required 失败:父分支不动,保留失败命令、适用 checkpoint 和恢复条件;
33
33
  - 命中当次 Dispatch Packet/候选协议的停止条件、继续修正已无合理收益或需要新产品决定:停止受影响 Wave,按 deviation control 返回契约 owner;
34
34
  - Lead 会话变化:读取 Goal Plan、Ticket、change worktree 状态与最新 Evidence,从最后不可变 checkpoint 恢复。
35
35
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- schema_version: 5
2
+ schema_version: 6
3
3
  artifact: goal-plan
4
4
  change: <YYYY-MM-DD-topic>
5
5
  status: draft
@@ -7,8 +7,9 @@ modes: []
7
7
  orchestration: lead-directed
8
8
  lead: <owner-or-session-locator>
9
9
  implementation_agent_limit: 3
10
- ticket_workspace_policy: required
11
- integration_gate: candidate-merge
10
+ integration_attempt_limit: 3
11
+ ticket_workspace_policy: current
12
+ integration_gate: direct-parent
12
13
  ready_for_execution: false
13
14
  ---
14
15
 
@@ -54,9 +55,9 @@ ready_for_execution: false
54
55
 
55
56
  ### Ticket Quick Reference
56
57
 
57
- | ID | 可观察产出 | Dependencies | Worktree | Implementation owner | E2E disposition | Evidence |
58
+ | ID | 可观察产出 | Dependencies | Workspace | Implementation owner | E2E disposition | Evidence |
58
59
  |---|---|---|---|---|---|---|
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>` |
60
+ | T-01 | ... | — | `current`(required 模式为 `specdev-worktree/<change>/T-01`) | Lead / dynamic dispatch | required / not-required: reason | `<Path>{roots.state}/specdev/changes/{change}/evidence/T-01.md</Path>` |
60
61
 
61
62
  ## 3. Gates and Completion Evidence
62
63
 
@@ -79,24 +80,29 @@ ready_for_execution: false
79
80
  | 项目 | 决定 | 事实依据 |
80
81
  |---|---|---|
81
82
  | Lead | `<owner-or-session-locator>` | 唯一 SpecDev 状态、Evidence 与父分支 owner |
82
- | Implementation subagents | `<= 3`,Lead 不计入 | config、依赖和平台能力的最小值 |
83
+ | Implementation subagents | `<implementation_agent_limit>`,Lead 不计入 | Goal Plan 快照、依赖和平台能力的最小值 |
84
+ | Integration attempts | `<integration_attempt_limit>` | Goal Plan 创建时从 config 快照 |
83
85
  | Read-only agents | 无 SpecDev 数字上限 | review/research/test-observation,不写状态 |
84
86
  | Dispatch | execution-time dynamic | provider/模型/派单按 Ticket 事实选择 |
85
87
 
86
- ### Ticket Workspace and Candidate Integration
88
+ ### Ticket Workspace and Integration
87
89
 
88
- | Ticket | Parent/base | Worktree/branch | Source checks | Source commit | Candidate checks/E2E | Parent result |
90
+ | Ticket | Parent/base | Workspace/branch | Source checks | Implementation commit | Integration checks/E2E | Parent result |
89
91
  |---|---|---|---|---|---|---|
90
92
 
91
- 集成按表中顺序串行进行。source worktree 不运行 E2ELead 在最新父分支的 candidate 状态运行集成检查和适用 E2E,通过且父 HEAD 未漂移后才推进父分支。
93
+ `ticket_workspace_policy: current` 时,Ticket 必须严格串行。Lead 每次只允许一个 implementation owner 写入当前 workspace;完成非 E2E 检查并形成 commit 后,Lead 在同一父分支/current workspace 运行适用集成检查和 E2E,验证通过后将该 Ticket 的 `result_sha` 记录为其 implementation commit,再开始下一个 Ticket。不得创建 source/candidate worktree。
94
+
95
+ 当 `ticket_workspace_policy: required` 时,Ticket 使用独立 source worktree;source worktree 不运行 E2E,Lead 在最新父分支的 candidate 状态运行集成检查和适用 E2E,通过且父 HEAD 未漂移后才推进父分支。
92
96
 
93
97
  ### Authorization Matrix
94
98
 
95
99
  | 动作 | 状态 | 目标与条件 |
96
100
  |---|---|---|
97
- | Ticket worktree local changes | allowed / not-authorized | writable/shared owner 合同 |
101
+ | Current workspace Ticket changes | allowed / not-authorized | current 模式;严格串行,单一 implementation writer |
102
+ | Ticket worktree local changes | allowed / not-authorized | 仅 required 模式;限 writable/shared owner 合同 |
98
103
  | Implementation commit | allowed / not-authorized | 每 Ticket 必需;缺失则 Plan blocked |
99
- | Local candidate integration and parent update | allowed / not-authorized | Lead-only;缺失则 Plan blocked |
104
+ | Local direct-parent verification and parent update | allowed / not-authorized | 仅 current 模式;Lead 核对 Ticket commit 后继续 |
105
+ | Local candidate integration and parent update | allowed / not-authorized | 仅 required 模式;Lead-only;缺失则 Plan blocked |
100
106
  | Push / PR / remote merge | allowed / not-authorized | 不从本计划本地授权继承 |
101
107
  | Branch/worktree cleanup | allowed / not-authorized | 成功集成不自动继承 |
102
108
  | Deploy / migration / production actions | allowed / not-authorized | 逐动作、目标和条件 |
@@ -111,7 +117,7 @@ subagent 只返回候选事实与 commit;Lead 独立核对并写 Evidence、
111
117
 
112
118
  ### Verification Integrity
113
119
 
114
- 记录判卷接缝、基线、禁止的伪绿色方式,以及 source/candidate 两层验证边界。
120
+ 记录判卷接缝、基线、禁止的伪绿色方式,以及 current/direct-parent 或 source/candidate 两层验证边界。
115
121
 
116
122
  ### Migration or Release Sequence
117
123
 
@@ -125,13 +131,13 @@ subagent 只返回候选事实与 commit;Lead 独立核对并写 Evidence、
125
131
 
126
132
  ### Current Status
127
133
 
128
- 记录 Wave/Gate、Ticket、source/candidate/result SHA、最近验证和未验证项;不使用主观百分比。
134
+ 记录 Wave/Gate、Ticket、implementation/source、适用 candidateresult SHA、最近验证和未验证项;不使用主观百分比。
129
135
 
130
136
  ### Pending Decisions and Blockers
131
137
 
132
138
  ### Resume Protocol
133
139
 
134
- 恢复时读取 Goal Plan、当前 Ticket、change worktree 状态和最新 Evidence;从最后通过的父分支 result 或待修正 source checkpoint 继续。
140
+ 恢复时读取 Goal Plan、当前 Ticket、change workspace 状态和最新 Evidence;从最后通过的父分支 result 或待修正 implementation/source checkpoint 继续。
135
141
 
136
142
  ## Assumptions
137
143