@namewta/speculo 0.3.4 → 0.5.0

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 (125) hide show
  1. package/README.md +4 -5
  2. package/package.json +1 -1
  3. package/template/canonical/canonical-specdev-engineering-cognitive-mentor.md +5 -0
  4. package/template/canonical/canonical-specdev-goal-plan.md +366 -59
  5. package/template/canonical/canonical-specdev-grill-with-docs.md +153 -104
  6. package/template/canonical/canonical-specdev-spec.md +5 -0
  7. package/template/canonical/canonical-specdev-tickets.md +5 -0
  8. package/template/canonical/canonical-specdev-wayfinder.md +171 -249
  9. package/template/commands/docs-sync.md +3 -3
  10. package/template/skills/docs-sync/SKILL.md +4 -3
  11. package/template/skills/docs-sync/assets/report-template.md +1 -0
  12. package/template/skills/docs-sync/references/agents/agent-writing.md +75 -0
  13. package/template/skills/{agents-md-builder/references → docs-sync/references/agents}/claude-redirect.md +1 -1
  14. package/template/skills/docs-sync/references/agents-contract.md +23 -1
  15. package/template/skills/typescript-standards-builder/README.md +53 -0
  16. package/template/skills/typescript-standards-builder/SKILL.md +245 -0
  17. package/template/skills/typescript-standards-builder/examples/sample-generated-tree.md +30 -0
  18. package/template/skills/typescript-standards-builder/examples/sample-interview-decisions.md +26 -0
  19. package/template/skills/typescript-standards-builder/manifest.txt +29 -0
  20. package/template/skills/typescript-standards-builder/references/00-governance-and-fixed-defaults.md +77 -0
  21. package/template/skills/typescript-standards-builder/references/01-project-discovery.md +100 -0
  22. package/template/skills/typescript-standards-builder/references/02-interview-workflow.md +129 -0
  23. package/template/skills/typescript-standards-builder/references/03-project-architecture-and-directory-layout.md +84 -0
  24. package/template/skills/typescript-standards-builder/references/04-file-directory-and-symbol-naming.md +92 -0
  25. package/template/skills/typescript-standards-builder/references/05-modules-imports-exports-and-dependencies.md +63 -0
  26. package/template/skills/typescript-standards-builder/references/06-typescript-type-system.md +64 -0
  27. package/template/skills/typescript-standards-builder/references/07-functions-async-errors-and-resources.md +42 -0
  28. package/template/skills/typescript-standards-builder/references/08-comments-jsdoc-and-documentation.md +51 -0
  29. package/template/skills/typescript-standards-builder/references/09-testing-strategy.md +58 -0
  30. package/template/skills/typescript-standards-builder/references/10-react-and-frontend.md +39 -0
  31. package/template/skills/typescript-standards-builder/references/11-node-cli-and-cross-platform.md +31 -0
  32. package/template/skills/typescript-standards-builder/references/12-formatting-lint-and-complexity.md +58 -0
  33. package/template/skills/typescript-standards-builder/references/13-configuration-dependencies-and-ci.md +71 -0
  34. package/template/skills/typescript-standards-builder/references/14-security-performance-and-i18n.md +32 -0
  35. package/template/skills/typescript-standards-builder/references/15-git-review-and-delivery.md +28 -0
  36. package/template/skills/typescript-standards-builder/references/16-adoption-exceptions-and-migration.md +61 -0
  37. package/template/skills/typescript-standards-builder/references/17-generation-contract.md +104 -0
  38. package/template/skills/typescript-standards-builder/references/README.md +37 -0
  39. package/template/skills/typescript-standards-builder/templates/agents-compat-skill/SKILL.md +1 -0
  40. package/template/skills/typescript-standards-builder/templates/claude-skill/SKILL.md +1 -0
  41. package/template/skills/typescript-standards-builder/templates/project-skill/SKILL.md.template +34 -0
  42. package/template/skills/typescript-standards-builder/templates/project-skill/references/00-project-profile.md.template +17 -0
  43. package/template/skills/typescript-standards-builder/templates/project-skill/references/10-review-checklist.md +23 -0
  44. package/template/skills/typescript-standards-builder/templates/project-skill/references/11-decisions-and-exceptions.md.template +19 -0
  45. package/template/workflows/specdev/G-grill-with-docs/G-grill-with-docs.md +78 -73
  46. package/template/workflows/specdev/G-grill-with-docs/design-tree-template.json +9 -0
  47. package/template/workflows/specdev/G-grill-with-docs/grilling-protocol.md +16 -35
  48. package/template/workflows/specdev/G-grill-with-docs/log-format.md +2 -0
  49. package/template/workflows/specdev/I-implement/I-implement.md +12 -10
  50. package/template/workflows/specdev/I-implement/design-it-twice.md +45 -6
  51. package/template/workflows/specdev/I-implement/evidence-template.md +7 -0
  52. package/template/workflows/specdev/I-implement/execution-preflight.md +6 -0
  53. package/template/workflows/specdev/INDEX.md +11 -4
  54. package/template/workflows/specdev/P-goal-plan/P-goal-plan.md +23 -10
  55. package/template/workflows/specdev/P-goal-plan/completion-control.md +20 -7
  56. package/template/workflows/specdev/P-goal-plan/goal-plan-template.md +55 -3
  57. package/template/workflows/specdev/P-goal-plan/orchestration-protocol.md +42 -38
  58. package/template/workflows/specdev/P-goal-plan/planning-modes.md +36 -2
  59. package/template/workflows/specdev/R-review-architecture/R-review-architecture.md +67 -80
  60. package/template/workflows/specdev/R-review-architecture/architecture-report-contract.md +123 -0
  61. package/template/workflows/specdev/R-review-architecture/architecture-review-report-template.html +103 -55
  62. package/template/workflows/specdev/R-review-architecture/architecture-review-template.md +20 -29
  63. package/template/workflows/specdev/W-wayfinder/W-wayfinder.md +76 -147
  64. package/template/workflows/specdev/W-wayfinder/investigation-ticket-template.md +8 -53
  65. package/template/workflows/specdev/W-wayfinder/local-tracker-contract.md +36 -0
  66. package/template/workflows/specdev/W-wayfinder/solution-comment-template.md +17 -0
  67. package/template/workflows/specdev/W-wayfinder/wayfinder-map-template.md +12 -65
  68. package/template/workflows/specdev/common/README.md +4 -0
  69. package/template/workflows/specdev/common/rules/artifact-contract.md +5 -0
  70. package/template/workflows/specdev/common/rules/codebase-design.md +148 -0
  71. package/template/workflows/specdev/common/schemas/design-tree.schema.json +35 -0
  72. package/template/workflows/specdev/common/schemas/wayfinder-ticket.schema.json +19 -0
  73. package/template/workflows/specdev/common/skills/subagent-delivery/SKILL.md +61 -0
  74. package/template/workflows/specdev/common/skills/subagent-delivery/references/external-web-subagent.md +32 -0
  75. package/template/workflows/specdev/common/skills/subagent-delivery/references/github-checkpoints.md +24 -0
  76. package/template/workflows/specdev/common/skills/subagent-delivery/references/native-subagent.md +35 -0
  77. package/template/workflows/specdev/common/skills/subagent-delivery/references/source-package.md +17 -0
  78. package/template/workflows/specdev/common/tools/validate-specdev.mjs +226 -5
  79. package/template/skills/agents-md-builder/SKILL.md +0 -30
  80. package/template/skills/typescript-engineering-standards/README.md +0 -36
  81. package/template/skills/typescript-engineering-standards/SKILL.md +0 -158
  82. package/template/skills/typescript-engineering-standards/examples/comment-patterns.md +0 -47
  83. package/template/skills/typescript-engineering-standards/examples/naming-patterns.md +0 -42
  84. package/template/skills/typescript-engineering-standards/examples/project-layouts.md +0 -75
  85. package/template/skills/typescript-engineering-standards/examples/review-output-example.md +0 -25
  86. package/template/skills/typescript-engineering-standards/examples/type-modeling-patterns.md +0 -66
  87. package/template/skills/typescript-engineering-standards/manifest.txt +0 -33
  88. package/template/skills/typescript-engineering-standards/references/00-standard-levels-and-precedence.md +0 -51
  89. package/template/skills/typescript-engineering-standards/references/01-project-architecture-and-directory-layout.md +0 -105
  90. package/template/skills/typescript-engineering-standards/references/02-file-directory-and-symbol-naming.md +0 -117
  91. package/template/skills/typescript-engineering-standards/references/03-modules-imports-exports-and-dependencies.md +0 -111
  92. package/template/skills/typescript-engineering-standards/references/04-typescript-type-system.md +0 -150
  93. package/template/skills/typescript-engineering-standards/references/05-functions-async-errors-and-resources.md +0 -142
  94. package/template/skills/typescript-engineering-standards/references/06-comments-jsdoc-and-documentation.md +0 -104
  95. package/template/skills/typescript-engineering-standards/references/07-testing-strategy.md +0 -84
  96. package/template/skills/typescript-engineering-standards/references/08-react-and-frontend.md +0 -91
  97. package/template/skills/typescript-engineering-standards/references/09-node-cli-and-cross-platform.md +0 -92
  98. package/template/skills/typescript-engineering-standards/references/10-formatting-lint-and-complexity.md +0 -107
  99. package/template/skills/typescript-engineering-standards/references/11-configuration-dependencies-and-ci.md +0 -86
  100. package/template/skills/typescript-engineering-standards/references/12-security-performance-and-i18n.md +0 -65
  101. package/template/skills/typescript-engineering-standards/references/13-git-review-and-delivery.md +0 -79
  102. package/template/skills/typescript-engineering-standards/references/14-adoption-exceptions-and-migration.md +0 -84
  103. package/template/skills/typescript-engineering-standards/references/15-orca-derived-observations.md +0 -54
  104. package/template/skills/typescript-engineering-standards/references/README.md +0 -45
  105. package/template/skills/typescript-engineering-standards/templates/.editorconfig +0 -12
  106. package/template/skills/typescript-engineering-standards/templates/AGENTS.typescript.md +0 -21
  107. package/template/skills/typescript-engineering-standards/templates/code-review-checklist.md +0 -37
  108. package/template/skills/typescript-engineering-standards/templates/package-scripts.json +0 -11
  109. package/template/skills/typescript-engineering-standards/templates/prettier.json +0 -6
  110. package/template/skills/typescript-engineering-standards/templates/pull-request-template.md +0 -37
  111. package/template/skills/typescript-engineering-standards/templates/tsconfig.base.json +0 -17
  112. package/template/skills/typescript-engineering-standards/templates/tsconfig.project-references.json +0 -8
  113. package/template/workflows/specdev/I-implement/codebase-design-glossary.md +0 -12
  114. package/template/workflows/specdev/I-implement/deepening.md +0 -17
  115. /package/template/skills/{agents-md-builder/references → docs-sync/references/agents}/content-contract.md +0 -0
  116. /package/template/skills/{agents-md-builder/references → docs-sync/references/agents}/evidence-collection.md +0 -0
  117. /package/template/skills/{agents-md-builder/references → docs-sync/references/agents}/manifest-discovery.md +0 -0
  118. /package/template/skills/{agents-md-builder/references → docs-sync/references/agents}/role-classification.md +0 -0
  119. /package/template/skills/{agents-md-builder/references → docs-sync/references/agents}/templates/aggregator-AGENTS.md +0 -0
  120. /package/template/skills/{agents-md-builder/references → docs-sync/references/agents}/templates/capability-module-AGENTS.md +0 -0
  121. /package/template/skills/{agents-md-builder/references → docs-sync/references/agents}/templates/contract-module-AGENTS.md +0 -0
  122. /package/template/skills/{agents-md-builder/references → docs-sync/references/agents}/templates/repo-root-AGENTS.md +0 -0
  123. /package/template/skills/{agents-md-builder/references → docs-sync/references/agents}/templates/runnable-app-AGENTS.md +0 -0
  124. /package/template/skills/{agents-md-builder/references → docs-sync/references/agents}/templates/scripts-docs-AGENTS.md +0 -0
  125. /package/template/skills/{agents-md-builder/references → docs-sync/references/agents}/writing-style.md +0 -0
@@ -3,27 +3,38 @@ id: specdev/grill-with-docs
3
3
  type: workflow-entry
4
4
  workflow: specdev
5
5
  name: 设计访谈(带文档)
6
- description: 通过一次一问的设计访谈打磨方案,同时持续维护设计日志、领域上下文和架构决策。
7
- keywords: [设计访谈, ADR, LOG, CONTEXT, 决策, 领域建模]
6
+ description: 以完整 frontier 逐轮推进设计树,直到每个决策分支都已关闭并获得用户共识,同时持续维护设计树、日志、领域上下文和架构决策。
7
+ keywords: [设计访谈, grilling, design-tree, frontier, ADR, LOG, CONTEXT, 决策, 领域建模]
8
8
  ---
9
9
 
10
10
  # 设计访谈(带文档)
11
11
 
12
- work 保留原有的 grilling 访谈与 domain-modeling 双重能力:访谈负责沿决策树逐分支达成共识,领域建模负责在决策结晶时同步维护设计轨迹、术语与架构决策。未经用户确认,不进入实现。
12
+ 不留情面地访谈用户,直到达成共识。把这件事映射为一棵**设计树(design tree)**:每个决策都会分出挂在它下面的后续决策。
13
13
 
14
- ## 输入与权威
14
+ 按**轮次**推进这棵树。**前沿(frontier)** 是所有前置条件已经确定的决策——那些现在就能问、不必猜测尚未得到答案的问题。每轮询问完整 frontier;用户的答案会重塑设计树并解除下一层问题的阻塞。
15
15
 
16
- 开始前按需读取:
16
+ 本 work 还负责把访谈持久化:设计树保存可恢复状态,LOG 保存讨论轨迹,CONTEXT 保存当前领域真相,ADR 保存长期架构决定。持久化不构成实现授权;在用户确认共识前不进入实现。
17
17
 
18
- - 全局配置:`<Path>{roots.state}/specdev/config.json</Path>`
19
- - 永久架构决策:`<Path>{roots.state}/specdev/adr/</Path>`
20
- - 永久领域上下文:`<Path>{roots.state}/specdev/context/</Path>`
21
- - 原始请求:`<Path>{roots.state}/specdev/changes/{change}/source-issue.md</Path>`
22
- - 分诊结果:`<Path>{roots.state}/specdev/changes/{change}/triage.md</Path>`
23
- - Bug 诊断:`<Path>{roots.state}/specdev/changes/{change}/diagnosis.md</Path>`
24
- - 当前 Spec(如已存在):`<Path>{roots.state}/specdev/changes/{change}/spec.md</Path>`
25
- - 工件职责规则:`<Path>{roots.workflows}/specdev/common/rules/artifact-contract.md</Path>`
26
- - 规划原则:`<Path>{roots.workflows}/specdev/common/rules/planning-principles.md</Path>`
18
+ ## 输入与产物
19
+
20
+ 按存在情况读取:
21
+
22
+ - `<Path>{roots.state}/specdev/config.json</Path>`
23
+ - `<Path>{roots.state}/specdev/adr/</Path>`
24
+ - `<Path>{roots.state}/specdev/context/</Path>`
25
+ - `<Path>{roots.state}/specdev/changes/{change}/source-issue.md</Path>`
26
+ - `<Path>{roots.state}/specdev/changes/{change}/triage.md</Path>`
27
+ - `<Path>{roots.state}/specdev/changes/{change}/diagnosis.md</Path>`
28
+ - `<Path>{roots.state}/specdev/changes/{change}/spec.md</Path>`
29
+ - `<Path>{roots.workflows}/specdev/common/rules/artifact-contract.md</Path>`
30
+ - `<Path>{roots.workflows}/specdev/common/rules/planning-principles.md</Path>`
31
+
32
+ 本 work 拥有:
33
+
34
+ - `<Path>{roots.state}/specdev/changes/{change}/design-tree.json</Path>`
35
+ - `<Path>{roots.state}/specdev/changes/{change}/LOG.md</Path>`
36
+ - `<Path>{roots.state}/specdev/changes/{change}/CONTEXT.md</Path>`
37
+ - `<Path>{roots.state}/specdev/changes/{change}/ADR.md</Path>`
27
38
 
28
39
  不存在的可选输入静默跳过,不把缺失文件伪装成已知事实。
29
40
 
@@ -31,99 +42,93 @@ keywords: [设计访谈, ADR, LOG, CONTEXT, 决策, 领域建模]
31
42
 
32
43
  ### 1. 启动或恢复 change
33
44
 
34
- 创建或恢复 `<Path>{roots.state}/specdev/changes/{change}/</Path>`,其中 `{change}` 使用 `<YYYY-MM-DD>-<topic>`。
35
-
36
- 首次启动时创建:
37
-
38
- - 生命周期状态:`<Path>{roots.state}/specdev/changes/{change}/.status.json</Path>`(首次创建时使用 `<Path>{roots.workflows}/specdev/I-init-setup/change-status-template.json</Path>`)
39
- - 架构决策:`<Path>{roots.state}/specdev/changes/{change}/ADR.md</Path>`
40
- - 设计日志:`<Path>{roots.state}/specdev/changes/{change}/LOG.md</Path>`
41
- - 领域上下文:`<Path>{roots.state}/specdev/changes/{change}/CONTEXT.md</Path>`
45
+ 创建或恢复 `<Path>{roots.state}/specdev/changes/{change}/</Path>`。首次启动时创建 `<Path>{roots.state}/specdev/changes/{change}/.status.json</Path>`、`<Path>{roots.state}/specdev/changes/{change}/ADR.md</Path>`、`<Path>{roots.state}/specdev/changes/{change}/LOG.md</Path>`、`<Path>{roots.state}/specdev/changes/{change}/CONTEXT.md</Path>`,并以 `<Path>{roots.workflows}/specdev/G-grill-with-docs/design-tree-template.json</Path>` 为模板创建 `<Path>{roots.state}/specdev/changes/{change}/design-tree.json</Path>`。
42
46
 
43
- 创建和更新格式分别遵循:
47
+ 分别使用:
44
48
 
45
49
  - `<Path>{roots.workflows}/specdev/G-grill-with-docs/adr-format.md</Path>`
46
50
  - `<Path>{roots.workflows}/specdev/G-grill-with-docs/log-format.md</Path>`
47
51
  - `<Path>{roots.workflows}/specdev/G-grill-with-docs/context-format.md</Path>`
52
+ - `<Path>{roots.workflows}/specdev/common/schemas/design-tree.schema.json</Path>`
48
53
 
49
- 恢复已有 change 时必须先读取现有三份文档,避免重复询问已经确认的问题。
54
+ 恢复时先读取四份工件,按 design tree 的节点状态恢复,避免重复询问已关闭问题。
50
55
 
51
- **完成标准**:change 目录、生命周期状态和三份设计文档均可读取;已知结论与未决问题已建立初始摘要。
56
+ **完成标准**:四份工件均可读取;节点依赖无环,所有 LOG 指针存在,当前 frontier 可确定。
52
57
 
53
- ### 2. 探索可发现事实
58
+ ### 2. 查找事实
54
59
 
55
- 在提问前只读探索相关代码、配置、接口、schema、测试、历史 ADR 和相邻实现。将未知项分为:
60
+ 查找*事实*是 Agent 的工作,永远不是用户的。先探索相关代码、配置、接口、schema、测试、历史 ADR 和相邻实现。
56
61
 
57
- - 可发现事实:继续探索,不询问用户;
58
- - 高影响偏好或取舍:进入访谈;
59
- - 低影响实现细节:记录为实现者可自行决定,不升级为产品决策。
62
+ 当前沿问题需要来自环境的事实时,派遣独立探索去查找。不要阻塞等待:一次进行中的探索是一个未解决的前置条件,所以只有它下游的问题等待结果;现在就继续处理 frontier 的其余部分。不熟悉的外部技术使用 `<Path>{roots.workflows}/specdev/common/skills/research/SKILL.md</Path>`。
60
63
 
61
- 若涉及不熟悉的外部技术、第三方 API、标准或版本行为,调用 `<Path>{roots.workflows}/specdev/common/skills/research/SKILL.md</Path>`,并把研究结论的来源和置信度写入 `<Path>{roots.state}/specdev/changes/{change}/LOG.md</Path>`。
64
+ 将未知项分为:
62
65
 
63
- ### 3. 一次一问的设计访谈
66
+ - 可发现事实:探索或研究,不询问用户;
67
+ - 高影响决策:进入设计树;
68
+ - 低影响实现细节:记录为实现者可自行决定,不制造决策节点。
64
69
 
65
- 加载 `<Path>{roots.workflows}/specdev/G-grill-with-docs/grilling-protocol.md</Path>`。每轮只处理一个会实质改变设计的问题:
70
+ **完成标准**:每个候选问题已分类;用户只接收无法从环境发现的真实决策。
66
71
 
67
- 1. 陈述已知事实与证据;
68
- 2. 提出唯一关键问题;
69
- 3. 给出 2–4 个真实选项、权衡和推荐默认值;
70
- 4. 等待用户确认、拒绝或延后;
71
- 5. 将结果立即追加到 `<Path>{roots.state}/specdev/changes/{change}/LOG.md</Path>`。
72
+ ### 3. 建立设计树
72
73
 
73
- 不得把多个独立决策塞进同一个问题;不得为了填模板询问不会改变方案的细节;不得在用户尚未确认前执行实现。
74
+ 围绕目标、角色、范围、主要流程、状态与失败、数据与接口、兼容与迁移、安全与隐私、性能与可观测性、验证与验收建立适用节点。
74
75
 
75
- **完成标准**:决策树已覆盖目标、角色、范围、主要流程、状态与失败、数据与接口、兼容与迁移、安全与隐私、性能与可观测性、验证与验收等适用分支。
76
+ 每个节点包含稳定 `D-###`、标题、问题、依赖、推荐答案和状态。只有问题本身已经可以精确陈述时才创建节点;依赖尚未确定的节点可以存在,但不进入 frontier。
76
77
 
77
- ### 4. 同步领域文档
78
+ **完成标准**:每个高影响已知决策有且只有一个节点;每条依赖指向真实上游节点;没有默默采用的高影响假设。
78
79
 
79
- 加载 `<Path>{roots.workflows}/specdev/G-grill-with-docs/domain-modeling-rules.md</Path>`,按固定顺序同步:
80
+ ### 4. 逐轮推进完整 frontier
80
81
 
81
- 1. 先把所有确认、延后、拒绝和替代结论写入 `<Path>{roots.state}/specdev/changes/{change}/LOG.md</Path>`;
82
- 2. 再把当前仍真实的术语、不变量、示例、反例和代码映射写入 `<Path>{roots.state}/specdev/changes/{change}/CONTEXT.md</Path>`;
83
- 3. 最后把满足 ADR 条件的长期架构决策写入 `<Path>{roots.state}/specdev/changes/{change}/ADR.md</Path>`。
82
+ 加载 `<Path>{roots.workflows}/specdev/G-grill-with-docs/grilling-protocol.md</Path>`。每轮原子增加 `round`,重读设计树并计算完整 frontier。按协议格式给每个问题编号并附推荐答案,然后等待用户回答。
84
83
 
85
- 历史轨迹不得写入领域上下文;尚未确认的选项不得写成已接受 ADR;已有 ADR 被替代时必须建立 supersedes 链,不重写历史。
84
+ 用户回答后:
86
85
 
87
- ### 5. 收敛与就绪判断
86
+ 1. 为每个回答更新对应节点;
87
+ 2. 每个节点各追加一条 LOG,不把多个决定压成一条;
88
+ 3. 根据回答增加、删除或重新连接后续节点;
89
+ 4. 重新计算 frontier,进入下一轮。
88
90
 
89
- 访谈结束时必须能明确:
91
+ 一个答案依赖本轮仍开放问题的提问属于后续轮次。用户延后且该决定会影响外部行为、公共接口、数据、安全、兼容、迁移或验收时,保持 blocked,不把它伪装成共识。
90
92
 
91
- - 目标、目标用户、成功标准;
92
- - IN、REUSE、OUT;
93
- - 主要行为路径、失败行为与状态转换;
94
- - 公共接口、数据、不变量、兼容和迁移影响;
95
- - 安全、隐私、性能、可靠性和可观测性要求;
96
- - 验证接缝和可观察验收方式;
97
- - 剩余未知项及其影响。
93
+ **完成标准**:本轮开始时的完整 frontier 每个节点都有回答、明确延后或阻塞记录;所有状态已原子写入并重读。
98
94
 
99
- 仍存在会改变外部行为、范围、公共接口、数据、安全、兼容、迁移或验收的未决问题时,将 `<Path>{roots.state}/specdev/changes/{change}/.status.json</Path>` 标为 `blocked` 或保持 `active`,不得伪装为 Ready。
95
+ ### 5. 同步领域模型
100
96
 
101
- ### 6. 停止与路由
97
+ 加载 `<Path>{roots.workflows}/specdev/G-grill-with-docs/domain-modeling-rules.md</Path>`。每轮先写 LOG,再把已确认且当前仍真实的术语、不变量、示例、反例和代码映射同步到 CONTEXT,最后把满足 ADR 条件的长期架构决定写入 ADR。
102
98
 
103
- 向用户汇报三份文档的新增/修改条目、已锁定决策、延后事项和风险。根据成熟度明确给出下一步:
99
+ 历史轨迹只留在 LOG;未确认选项不写成已接受 ADR;已有 ADR 被替代时建立 supersedes 链。同步文档用于记录共识生长过程,不授权产品实现。
100
+
101
+ **完成标准**:LOG、CONTEXT、ADR 和 design tree 无冲突;每个提升结论都有用户回答或事实来源。
102
+
103
+ ### 6. 共识确认与路由
104
+
105
+ frontier 为空时,向用户确认设计树的每个分支均已走过且已经达成共识。用户指出遗漏时新增节点并继续;只有明确确认后把 design tree 标为 `consensus`。
106
+
107
+ 随后按成熟度路由:
104
108
 
105
109
  - 通常进入 `<Path>{roots.workflows}/specdev/S-spec/S-spec.md</Path>`;
106
- - 外部行为已经完全明确时可进入 `<Path>{roots.workflows}/specdev/T-tickets/T-tickets.md</Path>`;
107
- - 极小、局部且已经具备批准执行契约的工作,可在用户确认后进入 `<Path>{roots.workflows}/specdev/I-implement/I-implement.md</Path>`;
110
+ - 外部行为已经完全明确时进入 `<Path>{roots.workflows}/specdev/T-tickets/T-tickets.md</Path>`;
111
+ - 获批的极小局部工作可进入 `<Path>{roots.workflows}/specdev/I-implement/I-implement.md</Path>`;
108
112
  - 路径或关键事实仍未知时进入 `<Path>{roots.workflows}/specdev/W-wayfinder/W-wayfinder.md</Path>`。
109
113
 
110
- 同步 `<Path>{roots.state}/specdev/status.json</Path>` `current_work`、`work_history` 和当前 change 状态,返回三份权威工件及下一 Work 的完整路径。
111
-
112
- 不得在本 work 中自动读取实现源码并开始修改代码。
114
+ 同步 workflow/change 状态,返回四份权威工件和下一 work 的完整路径。不自动执行下一 work。
113
115
 
114
116
  ## 完成标准
115
117
 
116
- - `<Path>{roots.state}/specdev/changes/{change}/LOG.md</Path>` 已记录全部设计结论和状态变化;
117
- - `<Path>{roots.state}/specdev/changes/{change}/CONTEXT.md</Path>` 只包含当前领域真相;
118
- - `<Path>{roots.state}/specdev/changes/{change}/ADR.md</Path>` 只包含满足条件的架构决策;
119
- - 高影响未决问题已关闭或明确标记为阻塞;
120
- - 状态、权威工件和下一 Work 路径已返回;
121
- - 下一 work 已明确,但未自动执行实现。
118
+ - 设计树的每个适用分支都已走过,没有高影响事项被默默假定;
119
+ - 每轮询问的是完整 frontier,依赖未关闭的问题没有提前出现;
120
+ - 可发现事实由 Agent 查找,没有转交用户;
121
+ - design tree 通过 schema,LOG 指针完整;
122
+ - CONTEXT 只包含当前领域真相,ADR 只包含满足条件的架构决定;
123
+ - frontier 为空且用户明确确认共识;
124
+ - 状态、权威工件和下一 work 路径已返回;
125
+ - 未执行产品实现。
122
126
 
123
127
  ## 子文件引用
124
128
 
125
- - 访谈协议:`<Path>{roots.workflows}/specdev/G-grill-with-docs/grilling-protocol.md</Path>`
126
- - 领域建模规则:`<Path>{roots.workflows}/specdev/G-grill-with-docs/domain-modeling-rules.md</Path>`
129
+ - 质询协议:`<Path>{roots.workflows}/specdev/G-grill-with-docs/grilling-protocol.md</Path>`
130
+ - 设计树模板:`<Path>{roots.workflows}/specdev/G-grill-with-docs/design-tree-template.json</Path>`
131
+ - 领域建模:`<Path>{roots.workflows}/specdev/G-grill-with-docs/domain-modeling-rules.md</Path>`
127
132
  - ADR 格式:`<Path>{roots.workflows}/specdev/G-grill-with-docs/adr-format.md</Path>`
128
- - 领域上下文格式:`<Path>{roots.workflows}/specdev/G-grill-with-docs/context-format.md</Path>`
129
- - 设计日志格式:`<Path>{roots.workflows}/specdev/G-grill-with-docs/log-format.md</Path>`
133
+ - CONTEXT 格式:`<Path>{roots.workflows}/specdev/G-grill-with-docs/context-format.md</Path>`
134
+ - LOG 格式:`<Path>{roots.workflows}/specdev/G-grill-with-docs/log-format.md</Path>`
@@ -0,0 +1,9 @@
1
+ {
2
+ "schema_version": 1,
3
+ "artifact": "design-tree",
4
+ "change": "{change}",
5
+ "status": "active",
6
+ "round": 0,
7
+ "nodes": []
8
+ }
9
+
@@ -1,45 +1,26 @@
1
- # 设计访谈协议
1
+ # 设计树质询协议
2
2
 
3
- 目标是关闭会影响产品行为、架构边界、风险或验收的关键决策,不是把所有可能问题都问一遍。
3
+ 不留情面地访谈用户,直到达成共识。把这件事映射为一棵**设计树(design tree)**:每个决策都会分出挂在它下面的后续决策。
4
4
 
5
- ## 1. 开始前先发现事实
5
+ 按**轮次**推进这棵树。**前沿(frontier)** 是所有前置条件已经确定的决策——那些你现在就能问、不必猜测还没听到的答案的问题。在一轮中问完整条前沿:给每个问题编号,并附上你的推荐答案。然后等待用户的回答,再进入下一轮。
6
6
 
7
- 先读取代码、配置、测试、现有 Spec、ADR、CONTEXT 和 LOG。可从环境获得的事实不得转交给用户回答;只有偏好、风险承受度、业务取舍或互斥目标需要用户决策。
7
+ 每个问题按如下格式呈现:
8
8
 
9
- ## 2. 决策树
9
+ ```
10
+ ❓ **Q1** - **<问题标题>**:<问题正文,可以是多个段落,包括多个选项>
10
11
 
11
- 按风险和信息缺口覆盖,不机械提问:
12
+ ➡️ <你的推荐答案>
13
+ ```
12
14
 
13
- 1. 用户问题与成功状态;
14
- 2. 参与者、权限与主要流程;
15
- 3. 范围边界和明确非目标;
16
- 4. 状态、数据、不变量与失败模式;
17
- 5. 接口、兼容、迁移和发布;
18
- 6. 安全、隐私、性能、可观测性;
19
- 7. 验收与验证接缝。
15
+ 每一轮用户的回答都会重塑这棵树——已确定的决策把前沿向外推,解除依赖它们的阻塞问题。重新计算前沿,然后问下一轮。一个答案依赖本轮仍在开放中的问题的提问,属于*更晚的*轮次,而不是本轮。
20
16
 
21
- ## 3. 每轮只关闭一个关键决定
17
+ 查找*事实*是你的工作,永远不是用户的。当前沿问题需要来自环境的事实(文件系统、工具等)时,派遣一个子 agent 去查找——不要就任何你自己能查到的东西去问用户。不要阻塞等待:一次正在进行的探索是一个未解决的前置条件,所以只有它下游的问题需要等子 agent 报告——现在就把前沿的其余部分问完。*决策*是用户的——把每个决策摆到他们面前并等待。
22
18
 
23
- 每轮格式:
19
+ 当前沿为空时,会话结束:设计树的每个分支都已走过,没有任何东西被默默假定。在用户确认我们已达成共识之前,不要对结果采取行动。
24
20
 
25
- 1. **已知事实:** 简短说明当前共识和证据;
26
- 2. **唯一问题:** 不使用复合问题;
27
- 3. **可行选项:** 只列实质不同的方案;
28
- 4. **权衡:** 对范围、体验、架构、风险和未来成本的影响;
29
- 5. **推荐:** 明确给出默认建议及原因;
30
- 6. **用户结论:** confirmed / deferred / rejected;
31
- 7. **落盘:** 更新 LOG,并按需要更新 ADR 或 CONTEXT。
21
+ ## SpecDev 持久化适配
32
22
 
33
- ## 4. 记录规则
34
-
35
- - 所有已确认或显式延后的决策写入 `<Path>{roots.state}/specdev/changes/{change}/LOG.md</Path>`;
36
- - 长期架构决策追加到 `<Path>{roots.state}/specdev/changes/{change}/ADR.md</Path>`;
37
- - 稳定领域知识追加或合并到 `<Path>{roots.state}/specdev/changes/{change}/CONTEXT.md</Path>`;
38
- - 不因追求“文档完整”而复制同一事实;工件冲突按 `<Path>{roots.workflows}/specdev/common/rules/artifact-contract.md</Path>` 裁决。
39
-
40
- ## 5. 停止条件
41
-
42
- - 关键决策已关闭,足以进入 Spec;或
43
- - 用户明确延后,且该延后不会伪装成 Ready;或
44
- - 缺少外部信息,change 标 blocked;或
45
- - 继续提问只会产生低影响实现细节,应交给 Ticket 或实现阶段决定。
23
+ - 设计树当前状态写入 `<Path>{roots.state}/specdev/changes/{change}/design-tree.json</Path>`,结构遵循 `<Path>{roots.workflows}/specdev/common/schemas/design-tree.schema.json</Path>`。
24
+ - 每个已回答、延后或拒绝的节点追加一条 `<Path>{roots.state}/specdev/changes/{change}/LOG.md</Path>` 记录,并把 `LOG-###` 写回节点的 `log_ref`。
25
+ - 每轮开始前原子更新 `round`,重读设计树后计算 frontier:`status=open` 且全部 `depends_on` 节点为 `answered` 的节点集合。
26
+ - LOG、设计树及已确认的 CONTEXT/ADR 同步只用于恢复和领域建模,不构成实现授权。只有 frontier 为空且用户确认共识后才路由下游 work。
@@ -2,6 +2,8 @@
2
2
 
3
3
  ```markdown
4
4
  ## LOG-### — <时间> — <主题>
5
+ - **设计树节点:** D-### / 不适用
6
+ - **轮次与依赖:** round <n> / D-###, D-### / 无
5
7
  - **状态:** confirmed / deferred / rejected / superseded
6
8
  - **问题:** 本条只记录一个决策或未知
7
9
  - **事实与来源:** 代码、测试、用户确认或外部规范
@@ -9,7 +9,7 @@ keywords: [实现, TDD, 代码审查, 模块设计, 证据, ticket]
9
9
 
10
10
  # 实现
11
11
 
12
- 本 work 保留原有完整实现能力:深层模块设计检查、接缝和依赖分类、design-it-twice、TDD 红→绿垂直循环、标准轴与规范轴审查、项目级验证、提交和状态更新。治理升级增加 Ready、路径所有权、Evidence 和偏差门禁,但不把实现退化为机械照单执行。
12
+ 本 work 保留原有完整实现能力:深模块设计检查、接缝和依赖分类、design-it-twice、TDD 红→绿垂直循环、标准轴与规范轴审查、项目级验证、提交和状态更新。治理升级增加 Ready、路径所有权、Evidence 和偏差门禁,但不把实现退化为机械照单执行。
13
13
 
14
14
  ## 执行模式
15
15
 
@@ -23,6 +23,8 @@ keywords: [实现, TDD, 代码审查, 模块设计, 证据, ticket]
23
23
 
24
24
  Ticket 模式适用于多 Ticket、Standard/Deep、并行、迁移或需要完整证据治理的工作。
25
25
 
26
+ 若 Goal Plan 的 Delivery Contract 选择 `native-subagent` 或 `external-web-subagent`,这是 Ticket 模式的 delegated execution 分支。Lead 在派单、恢复或验收候选交付时调用 `<Path>{roots.workflows}/specdev/common/skills/subagent-delivery/SKILL.md</Path>`;Worker 的局部实现仍完整遵循本 work,不由 provider 改写。
27
+
26
28
  ### Direct Spec 模式(保留原能力)
27
29
 
28
30
  极小、局部、单一行为且不需要独立 Ticket DAG 的工作,可以在用户明确批准后直接基于:
@@ -61,6 +63,7 @@ Ticket 模式检查:
61
63
  - Ticket 与 Spec/ADR/Goal Plan 无冲突;
62
64
  - 可写、只读、共享路径明确且无并发冲突;
63
65
  - 并行执行时,Ticket 的 worktree 记录为 `active`,`base_sha` 与派单一致;
66
+ - delegated execution 时,派单块的 execution model、Lead、checkpoint、workspace/session locator、路径合同、修正上限和授权矩阵与当前事实一致;
64
67
  - 验证命令和 Evidence 位置可用;
65
68
  - 当前代码事实没有使核心契约失效。
66
69
 
@@ -76,10 +79,7 @@ Direct Spec 模式检查:
76
79
 
77
80
  ### 2. 设计检查
78
81
 
79
- 加载:
80
-
81
- - `<Path>{roots.workflows}/specdev/I-implement/codebase-design-glossary.md</Path>`
82
- - `<Path>{roots.workflows}/specdev/I-implement/deepening.md</Path>`
82
+ 加载 `<Path>{roots.workflows}/specdev/common/rules/codebase-design.md</Path>`,并严格使用其中的模块、接口、深度、接缝、适配器、杠杆和局部性术语。
83
83
 
84
84
  在写代码前检查:
85
85
 
@@ -91,7 +91,7 @@ Direct Spec 模式检查:
91
91
  - 测试应在哪个稳定接缝观察行为;
92
92
  - Ticket/Spec 已锁定的公共契约是否被保持。
93
93
 
94
- 存在多个局部接口设计且不改变已锁定契约时,可以运行 `<Path>{roots.workflows}/specdev/I-implement/design-it-twice.md</Path>`。若方案会改变外部行为、公共接口、数据、兼容、安全或范围,返回规划工件,不使用 design-it-twice 绕过决策。
94
+ 存在多个局部接口设计且不改变已锁定契约时,可以运行 `<Path>{roots.workflows}/specdev/I-implement/design-it-twice.md</Path>`。若设计摩擦已经超出当前 Ticket 范围,返回 `<Path>{roots.workflows}/specdev/R-review-architecture/R-review-architecture.md</Path>`;若方案会改变产品行为、公共接口、数据、兼容、安全或范围,返回 `<Path>{roots.workflows}/specdev/G-grill-with-docs/G-grill-with-docs.md</Path>` 或相应规划工件,不使用 design-it-twice 绕过决策。
95
95
 
96
96
  若不熟悉外部库、框架 API 或依赖能力边界,调用 `<Path>{roots.workflows}/specdev/common/skills/research/SKILL.md</Path>`。
97
97
 
@@ -159,6 +159,8 @@ Direct Spec 模式写入:
159
159
 
160
160
  Evidence 必须包含实际修改范围、命令与结果、验收逐条映射、未运行项、偏差、残余风险和提交引用。
161
161
 
162
+ delegated execution 还必须记录 execution model、provider、派单与最终 checkpoint、workspace/session locator、候选交付核对、修正轮次和未验证声明。Lead 使用 `<Path>{roots.workflows}/specdev/common/skills/subagent-delivery/SKILL.md</Path>` 的 `operation=execute` 分支完成核对;provider 自报结果不能直接标记为 `pass`。
163
+
162
164
  Ticket 状态依次为 `ready → in_progress → review → done`;阻塞使用 `blocked`,实际实现与批准契约不一致使用 `deviated`。验证无法运行或存在未批准偏差时不得标 `done`。
163
165
 
164
166
  同步:
@@ -177,12 +179,12 @@ Ticket 状态依次为 `ready → in_progress → review → done`;阻塞使
177
179
  5. 返回 Ticket ID 与状态、Evidence 完整路径、`workspace_ref`、commit 或 PR 引用,以及仅在用户界面交互受影响时由 Lead 执行的待办 E2E;
178
180
  6. Direct Spec 模式返回 change、状态和 `<Path>{roots.state}/specdev/changes/{change}/evidence/direct-spec.md</Path>`。
179
181
 
180
- 若由 Lead 编排,遵循 `<Path>{roots.workflows}/specdev/P-goal-plan/orchestration-protocol.md</Path>` 的 Evidence 返回协议。
182
+ 若由 Lead 编排,遵循 `<Path>{roots.workflows}/specdev/P-goal-plan/orchestration-protocol.md</Path>` 的 Evidence 返回协议;delegated execution 同时返回稳定 workspace/session locator、最终 checkpoint、修正轮次和未验证项。
181
183
 
182
184
  ## 完成标准
183
185
 
184
186
  - 执行前预检通过;
185
- - 设计检查保留深层模块、接缝和依赖分类能力;
187
+ - 设计检查严格使用共享术语,并保留深模块、接缝、适配器和依赖分类能力;
186
188
  - 每个行为通过真实红→绿循环实现;
187
189
  - 定向与适用回归验证完成;
188
190
  - 双轴审查通过;
@@ -196,11 +198,11 @@ Ticket 状态依次为 `ready → in_progress → review → done`;阻塞使
196
198
  ## 子文件引用
197
199
 
198
200
  - 执行前预检:`<Path>{roots.workflows}/specdev/I-implement/execution-preflight.md</Path>`
199
- - 代码库设计术语:`<Path>{roots.workflows}/specdev/I-implement/codebase-design-glossary.md</Path>`
200
- - 深化与依赖策略:`<Path>{roots.workflows}/specdev/I-implement/deepening.md</Path>`
201
+ - 代码库设计规则:`<Path>{roots.workflows}/specdev/common/rules/codebase-design.md</Path>`
201
202
  - Design It Twice:`<Path>{roots.workflows}/specdev/I-implement/design-it-twice.md</Path>`
202
203
  - TDD 规则:`<Path>{roots.workflows}/specdev/I-implement/tdd-rules.md</Path>`
203
204
  - TDD 示例:`<Path>{roots.workflows}/specdev/I-implement/tdd-examples.md</Path>`
204
205
  - 代码注释规则:`<Path>{roots.workflows}/specdev/common/rules/code-commenting-rule.md</Path>`
205
206
  - 双轴审查:`<Path>{roots.workflows}/specdev/I-implement/code-review-process.md</Path>`
206
207
  - Evidence 模板:`<Path>{roots.workflows}/specdev/I-implement/evidence-template.md</Path>`
208
+ - Agent 交付合同:`<Path>{roots.workflows}/specdev/common/skills/subagent-delivery/SKILL.md</Path>`
@@ -1,9 +1,48 @@
1
- # Design It Twice
1
+ # 设计两次
2
2
 
3
- 只在 Ticket 允许局部设计自由、且两个方案会显著影响模块深度或测试接缝时使用。
3
+ 当用户想要为选定的深化候选探索替代接口时,使用此并行子 Agent 模式。基于 "Design It Twice"(Ousterhout)— 你的第一个想法不太可能是最好的。
4
4
 
5
- 1. 在不改代码的情况下提出两个最小接口草图。
6
- 2. 比较调用者复杂度、信息隐藏、错误语义、迁移成本和测试策略。
7
- 3. 选择更深、更局部、与 Ticket 契约一致的方案,并记录为局部实现决定。
5
+ 使用 `<Path>{roots.workflows}/specdev/common/rules/codebase-design.md</Path>` 中的词汇 — **module**(模块)、**interface**(接口)、**seam**(接缝)、**adapter**(适配器)、**leverage**(杠杆)。
8
6
 
9
- 若选择会改变公共接口、数据、兼容、范围或验收,停止并升级到 Ticket/ADR,而不是自行选择。
7
+ ## 流程
8
+
9
+ ### 1. 界定问题空间
10
+
11
+ 在启动子 Agent 之前,为选定候选编写一份面向用户的问题空间说明:
12
+
13
+ - 任何新接口需要满足的约束条件
14
+ - 它将依赖的依赖项,以及它们属于哪个类别(参见 `<Path>{roots.workflows}/specdev/common/rules/codebase-design.md</Path>` 的“依赖类别”)
15
+ - 一个粗略的示例代码草图来使约束具体化 — 不是提案,只是让约束变得具体的一种方式
16
+
17
+ 将此展示给用户,然后立即进入第 2 步。用户在子 Agent 并行工作时阅读和思考。
18
+
19
+ ### 2. 启动子 Agent
20
+
21
+ 使用 Agent 工具并行启动 3+ 个子 Agent。每个子 Agent 必须为深化后的模块生成一个**截然不同的**接口。
22
+
23
+ 为每个子 Agent 提供一份独立的技术简报(文件路径、耦合细节、来自共享设计规则的依赖类别、接缝背后的内容)。简报独立于第 1 步中面向用户的问题空间说明。给每个 Agent 一个不同的设计约束:
24
+
25
+ - Agent 1:"最小化接口 — 目标 1–3 个入口点。最大化每个入口点的杠杆。"
26
+ - Agent 2:"最大化灵活性 — 支持多种用例和扩展。"
27
+ - Agent 3:"为最常见的调用方优化 — 让默认情况变得简单。"
28
+ - Agent 4(如适用):"围绕接缝设计端口与适配器,以处理跨接缝依赖。"
29
+
30
+ 在简报中同时包含共享设计规则的词汇和 CONTEXT 词汇,以便每个子 Agent 能使用架构语言和项目的领域语言一致地命名事物。
31
+
32
+ 每个子 Agent 输出:
33
+
34
+ 1. 接口(类型、方法、参数 — 以及不变量、排序、错误模式)
35
+ 2. 使用示例,展示调用方如何使用它
36
+ 3. 实现在接缝背后隐藏了什么
37
+ 4. 依赖策略和适配器
38
+ 5. 权衡 — 哪里杠杆高,哪里杠杆薄
39
+
40
+ ### 3. 展示和比较
41
+
42
+ 按顺序展示各个设计,让用户能够消化每一个,然后用文字进行比较。通过 **depth**(深度,接口处的杠杆)、**locality**(局部性,变更集中的位置)和 **seam placement**(接缝位置)来对比。
43
+
44
+ 比较之后,给出你自己的建议:你认为哪个设计最强以及原因。如果不同设计中的元素可以很好地组合,提出一个混合方案。要有主见 — 用户想要的是一个有力的判断,而不是一个菜单。
45
+
46
+ ## SpecDev 门禁
47
+
48
+ 本模式只探索接口,不修改代码。只有 Ticket 允许局部设计自由且候选不改变已锁定契约时可由实现者选择;涉及公共接口、数据、兼容、安全、范围或验收时停止并升级到 Ticket/ADR,暴露更广架构问题时返回 `<Path>{roots.workflows}/specdev/R-review-architecture/R-review-architecture.md</Path>`。
@@ -7,6 +7,10 @@
7
7
  - **Goal Plan:** `<Path>{roots.state}/specdev/changes/{change}/goal-plan.md</Path>` / 不适用
8
8
  - **基线/分支:**
9
9
  - **Worktree 引用:** 不适用 / `<workspace_ref>`
10
+ - **执行模型/Provider:** direct / native-subagent / external-web-subagent;provider 或不适用
11
+ - **Session/Package locator:** 不适用 / `<portable-locator>`
12
+ - **派单/最终 Checkpoint:** `<sha-or-local-baseline>` / `<sha-or-local-baseline>`
13
+ - **修正轮次:** 0 / `<count>`
10
14
  - **实现者:**
11
15
  - **开始/结束:**
12
16
  - **状态:** review / done / blocked / deviated
@@ -38,6 +42,8 @@
38
42
  - **失败后修复与重跑:** 无 / ...
39
43
  - **未运行检查:** 无 / 原因与风险 ...
40
44
  - **Lead E2E:** 不适用 / 待执行:场景与预期 / 通过 / 失败
45
+ - **反向验证:** 不适用 / 受控失败信号与恢复结果
46
+ - **外部声明:** 无 / 已核对 / `unverified`:原因
41
47
 
42
48
  ## 5. 路径所有权审计
43
49
 
@@ -66,4 +72,5 @@
66
72
  ## 8. 交付定位
67
73
 
68
74
  - **Commit / PR:**
75
+ - **最终 Workspace/Session locator:** 不适用 / `<portable-locator>`
69
76
  - **Evidence 文件:** `<Path>{roots.state}/specdev/changes/{change}/evidence/{ticket-id}.md</Path>`
@@ -8,7 +8,11 @@
8
8
  - [ ] 当前代码入口、接口和路径仍与 Ticket 假设一致。
9
9
  - [ ] writable_paths 无并发 owner 冲突。
10
10
  - [ ] 并行执行时,`<Path>{roots.state}/specdev/changes/{change}/.status.json</Path>` 的 `worktrees` 中本 Ticket 为 `active`,`base_sha`、分支和 `workspace_ref` 与派单一致。
11
+ - [ ] delegated execution 时,Goal Plan 只有一个 execution model 和 Lead,派单 checkpoint 与当前源码一致,workspace/session locator 可恢复。
12
+ - [ ] delegated execution 的授权矩阵逐项覆盖 local changes、commit、push、PR、merge、deploy、migration 和生产动作;未授权动作不会执行。
13
+ - [ ] 外部候选交付的附件 hash、修改范围和事实声明可由 Lead 独立核对。
11
14
  - [ ] 验证命令/环境可用。
15
+ - [ ] 可静默失效的关键门禁定义了受控反向验证;普通测试不为形式追加破坏性检查。
12
16
  - [ ] Deep Ticket 的批准点已满足。
13
17
 
14
18
  ## 失效分类
@@ -18,3 +22,5 @@
18
22
  - **ticket-invalid**:范围、接口、依赖、验证或路径契约失效;停止并修 Ticket。
19
23
  - **spec-invalid**:外部行为/合同需改变;停止并修 Spec。
20
24
  - **adr-conflict**:架构决策冲突;停止并处理 ADR。
25
+ - **checkpoint-drift**:派单基线、源码包或当前代码已经漂移;暂停并由 Lead 重放、重派或建立新 checkpoint。
26
+ - **delivery-unverified**:候选交付、provider 声明或附件无法独立核对;保持 `unverified`,不得推进 `done`。
@@ -46,6 +46,9 @@ Archive 归档历史并将经验证知识提升为当前长期知识
46
46
  - `<Path>{roots.state}/specdev/changes/{change}/ticket/</Path>`
47
47
  - `<Path>{roots.state}/specdev/changes/{change}/tickets-map.md</Path>`
48
48
  - `<Path>{roots.state}/specdev/changes/{change}/goal-plan.md</Path>`
49
+ - `<Path>{roots.state}/specdev/changes/{change}/design-tree.json</Path>`
50
+ - `<Path>{roots.state}/specdev/changes/{change}/wayfinder-map.md</Path>`
51
+ - `<Path>{roots.state}/specdev/changes/{change}/investigation/</Path>`
49
52
  - `<Path>{roots.state}/specdev/changes/{change}/evidence/</Path>`
50
53
 
51
54
  工件职责和冲突裁决位于 `<Path>{roots.workflows}/specdev/common/rules/artifact-contract.md</Path>`。
@@ -80,12 +83,14 @@ Archive 归档历史并将经验证知识提升为当前长期知识
80
83
  - `<Path>{roots.state}/specdev/changes/{change}/CONTEXT.md</Path>`
81
84
  - `<Path>{roots.state}/specdev/changes/{change}/ADR.md</Path>`
82
85
  - `<Path>{roots.state}/specdev/changes/{change}/LOG.md</Path>`
86
+ - `<Path>{roots.state}/specdev/changes/{change}/design-tree.json</Path>`
83
87
  - `<Path>{roots.state}/specdev/changes/{change}/spec.md</Path>`
84
88
  - `<Path>{roots.state}/specdev/changes/{change}/ticket/</Path>`
85
89
  - `<Path>{roots.state}/specdev/changes/{change}/tickets-map.md</Path>`
86
90
  - `<Path>{roots.state}/specdev/changes/{change}/goal-plan.md</Path>`
87
91
  - `<Path>{roots.state}/specdev/changes/{change}/wayfinder-map.md</Path>`
88
92
  - `<Path>{roots.state}/specdev/changes/{change}/investigation/</Path>`
93
+ - `<Path>{roots.state}/specdev/changes/{change}/investigation/comments/</Path>`
89
94
  - `<Path>{roots.state}/specdev/changes/{change}/architecture-review.md</Path>`
90
95
  - `<Path>{roots.state}/specdev/changes/{change}/architecture-review.html</Path>`
91
96
  - `<Path>{roots.state}/specdev/changes/{change}/evidence/</Path>`
@@ -112,6 +117,7 @@ Archive 归档历史并将经验证知识提升为当前长期知识
112
117
  - `<Path>{roots.workflows}/specdev/common/rules/evidence-and-verification.md</Path>`
113
118
  - `<Path>{roots.workflows}/specdev/common/rules/deviation-control.md</Path>`
114
119
  - `<Path>{roots.workflows}/specdev/common/rules/path-reference-contract.md</Path>`
120
+ - `<Path>{roots.workflows}/specdev/common/rules/codebase-design.md</Path>`
115
121
 
116
122
  ## 启动协议
117
123
 
@@ -143,7 +149,8 @@ Archive 归档历史并将经验证知识提升为当前长期知识
143
149
 
144
150
  - change:`active | blocked | completed | archived`
145
151
  - Ticket:`draft | ready | in_progress | blocked | review | done | deviated | cancelled`
146
- - Investigation:`open | claimed | confirmed | disproved | decision-needed | unresolved | superseded | cancelled`
152
+ - Investigation status:`open | closed`
153
+ - Investigation resolution:`answered | out-of-scope | superseded | cancelled | null`
147
154
  - Planning Depth:`lite | standard | deep`
148
155
  - Worktree:`planned | active | review | integrated | removed | blocked`
149
156
 
@@ -165,15 +172,15 @@ Archive 归档历史并将经验证知识提升为当前长期知识
165
172
  - **A-archive-and-consolidate** — 归档与沉淀:双模式沉淀 Work——归档已验证完成的 change 并提升其知识,或在没有可归档 change 时以当前代码为基本事实深度访谈用户,把经验证的架构决策与领域术语提升为永久知识。
166
173
  - **D-diagnose-bugs** — 诊断 Bug:通过复现、反馈回路、可证伪假设与最小插桩定位根因,输出修复契约而不是猜测性补丁。
167
174
  - **E-engineering-cognitive-mentor** — 工程认知导师:面向 Bug、项目源码、需求技术方案、架构设计与陌生技术领域的非执行型认知指导 Work;以证据、因果 Why、候选方案对比和逐轮澄清帮助用户形成可复述理解,并将完整问答轨迹持续持久化到当前 change。
168
- - **G-grill-with-docs** — 设计访谈(带文档):通过一次一问的设计访谈打磨方案,同时持续维护设计日志、领域上下文和架构决策。
175
+ - **G-grill-with-docs** — 设计访谈(带文档):以完整 frontier 逐轮推进设计树,直到每个决策分支都已关闭并获得用户共识,同时持续维护设计树、日志、领域上下文和架构决策。
169
176
  - **I-implement** — 实现:基于 Ready Ticket 或获批的小型 Spec 执行设计检查、TDD 红绿循环、持续验证、双轴审查、证据回写和提交。
170
177
  - **I-init-setup** — 初始化设置:初始化 SpecDev 的语言、配置、全局状态、追踪约定、领域知识布局、验证命令和并发治理。
171
178
  - **P-goal-plan** — 目标规划:在协调复杂度需要时,将 Ready Spec、Tickets、架构决策与外部约束综合为决策完备的跨 Ticket 编排计划。
172
- - **R-review-architecture** — 架构审查:扫描与目标相关的代码区域,识别浅模块、接缝泄漏和局部性问题,以可视化报告呈现候选方案,并通过逐项访谈转化为可执行决策。
179
+ - **R-review-architecture** — 架构审查:从用户指定范围或 Git 热点扫描代码库的深化机会,以持久化可视化 HTML 呈现候选,并对用户选择的一个方案运行设计树访谈。
173
180
  - **S-spec** — 编写 Spec:综合已知事实、设计决定、诊断与代码现状,产出以外部行为和验收合同为权威的 Ready Spec。
174
181
  - **T-tickets** — 拆分 Tickets:将 Spec、计划或已确认对话拆成曳光弹式垂直切片;每个 Ticket 决策完备、可独立验证、适配单一上下文,并建立阻塞 DAG、路径所有权和执行就绪门禁。
175
182
  - **T-triage** — 请求分诊:完整摄入外部请求,判断问题类型、影响、风险、缺失信息和下一 work,不在分诊阶段过早设计或实现。
176
- - **W-wayfinder** — 寻路:为路径未知、跨域或超出单次上下文的工作建立共享调查地图,通过可领取的研究与决策 Ticket 关闭未知项并收敛到可执行路线。
183
+ - **W-wayfinder** — 寻路:为超出单次会话且路径尚不可见的工作建立本地共享地图,逐个解决 research、prototype、grilling 或 task Ticket,直到目的地路线决策完备。
177
184
 
178
185
  <!-- AUTO-INDEX-END -->
179
186