specwf 0.2.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 (55) hide show
  1. package/README.md +79 -0
  2. package/bin/specwf.js +2 -0
  3. package/dist/cli.d.ts +2 -0
  4. package/dist/cli.js +1800 -0
  5. package/dist/templates/agents/archiver.md +112 -0
  6. package/dist/templates/agents/executor.md +125 -0
  7. package/dist/templates/agents/planner.md +114 -0
  8. package/dist/templates/agents/researcher.md +104 -0
  9. package/dist/templates/agents/reviewer.md +98 -0
  10. package/dist/templates/agents/verifier.md +129 -0
  11. package/dist/templates/artifacts/context.md +151 -0
  12. package/dist/templates/artifacts/design.md +224 -0
  13. package/dist/templates/artifacts/goal-review.md +95 -0
  14. package/dist/templates/artifacts/project.yml +117 -0
  15. package/dist/templates/artifacts/proposal.md +124 -0
  16. package/dist/templates/artifacts/quality-review.md +131 -0
  17. package/dist/templates/artifacts/research.md +127 -0
  18. package/dist/templates/artifacts/spec-review.md +84 -0
  19. package/dist/templates/artifacts/state.md +158 -0
  20. package/dist/templates/artifacts/summary.md +129 -0
  21. package/dist/templates/artifacts/tasks.md +109 -0
  22. package/dist/templates/artifacts/verification.md +113 -0
  23. package/dist/templates/commands/adhoc.md +38 -0
  24. package/dist/templates/commands/apply.md +20 -0
  25. package/dist/templates/commands/archive.md +21 -0
  26. package/dist/templates/commands/continue.md +27 -0
  27. package/dist/templates/commands/discuss.md +24 -0
  28. package/dist/templates/commands/grill.md +24 -0
  29. package/dist/templates/commands/init.md +20 -0
  30. package/dist/templates/commands/milestone.md +27 -0
  31. package/dist/templates/commands/plan.md +22 -0
  32. package/dist/templates/commands/research-phase.md +20 -0
  33. package/dist/templates/commands/research.md +24 -0
  34. package/dist/templates/commands/review.md +20 -0
  35. package/dist/templates/commands/roadmap.md +23 -0
  36. package/dist/templates/commands/ship.md +36 -0
  37. package/dist/templates/commands/split.md +16 -0
  38. package/dist/templates/commands/verify.md +22 -0
  39. package/dist/templates/skills/adhoc.md +53 -0
  40. package/dist/templates/skills/apply.md +134 -0
  41. package/dist/templates/skills/archive.md +109 -0
  42. package/dist/templates/skills/continue.md +97 -0
  43. package/dist/templates/skills/discuss.md +95 -0
  44. package/dist/templates/skills/grill.md +90 -0
  45. package/dist/templates/skills/init.md +116 -0
  46. package/dist/templates/skills/milestone.md +36 -0
  47. package/dist/templates/skills/plan.md +144 -0
  48. package/dist/templates/skills/research-phase.md +66 -0
  49. package/dist/templates/skills/research.md +76 -0
  50. package/dist/templates/skills/review.md +148 -0
  51. package/dist/templates/skills/roadmap.md +104 -0
  52. package/dist/templates/skills/ship.md +94 -0
  53. package/dist/templates/skills/split.md +96 -0
  54. package/dist/templates/skills/verify.md +147 -0
  55. package/package.json +56 -0
@@ -0,0 +1,116 @@
1
+ # 项目初始化工作流指引
2
+
3
+ ## 概述
4
+
5
+ 初始化 specwf 项目结构。这是整个工作流的起点,负责创建 specwf/ 目录骨架、specs/ 和 conventions/ 目录、project.yml 配置文件,以及平台命令/agent/skill 文件。
6
+
7
+ 对于存量项目,同时执行 codebase mapping 和 spec bootstrap 两个并行任务,从已有代码中提取行为契约。
8
+
9
+ ## 前置条件
10
+
11
+ - 项目根目录已初始化 git 仓库
12
+ - 确定 project.yml 配置内容(profile、workflow 开关等)
13
+
14
+ ## 执行步骤
15
+
16
+ ### 1. 创建目录结构
17
+
18
+ 创建以下目录层级:
19
+ \`\`\`
20
+ specwf/
21
+ project.yml # 项目配置
22
+ changes/ # 临时 change
23
+ research/ # 调研产出
24
+ milestones/
25
+ <ms-name>/
26
+ ph/
27
+ <ph-name>/
28
+ changes/
29
+ <change-name>/
30
+ specs/ # delta-specs
31
+ design.md
32
+ tasks.md
33
+ reviews/
34
+ VERIFICATION.md
35
+ conventions/ # 项目约定(按需手写)
36
+ specs/ # 全局行为契约
37
+ <domain>/
38
+ spec.md # SHALL/MUST + GIVEN/WHEN/THEN
39
+ \`\`\`
40
+
41
+ ### 2. 生成 project.yml
42
+
43
+ \`\`\`yaml
44
+ version: 1
45
+ platform:
46
+ - omp
47
+ - claude-code
48
+ profile: standard # lite | standard | strict
49
+ context: project # project | milestone | phase
50
+ workflow:
51
+ research: true
52
+ plan_check: true
53
+ tdd: true
54
+ triple_review: true
55
+ auto_advance: true
56
+ spec_injection: true
57
+ review:
58
+ gate: all-pass # all-pass | severity | report-only
59
+ parallel: true
60
+ change:
61
+ parallel: serial # serial | dependency-graph | pipeline
62
+ isolation: false
63
+ git:
64
+ branching: none # none | phase | milestone
65
+ create_tag: false
66
+ conventions:
67
+ inject: true
68
+ models: {}
69
+ \`\`\`
70
+
71
+ ### 3. 生成平台文件
72
+
73
+ 运行 \`specwf init\` 自动生成:
74
+ - \`.omp/commands/specwf-<step>.md\` — 14 个 slash command
75
+ - \`skills/specwf-<step>/SKILL.md\` — 14 个 skill 指引
76
+ - \`.omp/agents/specwf-<role>.md\` — 6 个 agent 定义
77
+
78
+ ### 4. 存量项目:并行引导(可选)
79
+
80
+ 如果目标项目已有代码,执行两个并行任务:
81
+
82
+ **任务 A — Codebase Mapping**
83
+ - 分析技术栈和架构
84
+ - 梳理模块结构和依赖关系
85
+ - 产出 specwf/research/STACK.md + ARCHITECTURE.md
86
+
87
+ **任务 B — Spec Bootstrap**
88
+ - 从核心模块的函数签名和注释提取行为契约
89
+ - 写入 specs/<domain>/spec.md(标记 \`# BOOTSTRAPPED\`)
90
+ - 从测试文件推断端到端场景
91
+
92
+ ## 产物
93
+
94
+ - \`specwf/\` 目录结构完整
95
+ - \`specwf/project.yml\` 配置文件
96
+ - 平台文件已生成(.omp/ + skills/)
97
+ - 存量项目额外产出:STACK.md + ARCHITECTURE.md + 初始 specs/
98
+
99
+ ## 验证
100
+
101
+ - [ ] specwf/ 目录存在且结构完整
102
+ - [ ] project.yml 可被 loadConfig 读取
103
+ - [ ] 平台文件各目录非空
104
+ - [ ] (存量)STACK.md + ARCHITECTURE.md 已生成
105
+
106
+ ## 常见陷阱
107
+
108
+ - 不要将 specwf/ 目录放在 .gitignore 中(它承载项目元数据)
109
+ - 存量项目的 spec bootstrap 是估算,后续在 plan 的 delta-spec 中精化
110
+ - conventions/ 需要人工编写,不自动生成
111
+
112
+ ## 参考
113
+
114
+ - OpenSpec 的目录结构设计
115
+ - GSD Core 的新项目初始化流程
116
+ - Trellis 的 spec bootstrap 概念仅作参考(AGPL-3.0 不拷代码)
@@ -0,0 +1,36 @@
1
+ # 里程碑管理工作流指引
2
+
3
+ ## 概述
4
+
5
+ 里程碑(Milestone)是版本周期。当前 milestone 所有 phase 完成后,切换到新 milestone。
6
+
7
+ ## 前置条件
8
+
9
+ - 当前 milestone 已完成
10
+
11
+ ## 执行步骤
12
+
13
+ ### 1. 切换 milestone
14
+
15
+ ```bash
16
+ specwf state set-milestone <id>
17
+ ```
18
+
19
+ ### 2. 继续工作流
20
+
21
+ ```bash
22
+ specwf continue
23
+ ```
24
+
25
+ ## 产物
26
+
27
+ - specwf/state.md — current_milestone 更新
28
+
29
+ ## 验证
30
+
31
+ - [ ] specwf state 确认切换
32
+ - [ ] specwf continue 有可用下一步
33
+
34
+ ## 常见陷阱
35
+
36
+ - 切换后需更新 roadmap.md 补充新 milestone 的阶段划分
@@ -0,0 +1,144 @@
1
+ # Change 设计工作流指引
2
+
3
+ ## 概述
4
+
5
+ 对单个 Change 进行详细设计:产出技术方案(design.md)、实现清单(tasks.md)和 delta-specs(规范预先写好的行为契约)。
6
+
7
+ PLAN 是 Change 循环的起点,决定了后续实现和审查的质量。PLAN 做得好,apply 和 review 就流畅。
8
+
9
+ ## 前置条件
10
+
11
+ - change 的 proposal.md 已确认
12
+ - context.md 中相关的实现决策已记录
13
+ - 相关的 specs/ 和 conventions/ 已读取
14
+
15
+ ## 执行步骤
16
+
17
+ ### 1. 读取上下文
18
+
19
+ 运行 \`specwf context plan\` 获取当前步骤的上下文清单:
20
+ - 相关的 specs/ 文件
21
+ - conventions/ 文件
22
+ - context.md
23
+ - 外部依赖文档
24
+
25
+ 逐个读取列出的文件。
26
+
27
+ ### 2. 设计技术方案 — design.md
28
+
29
+ \`\`\`markdown
30
+ # Change: <名称> — 技术方案
31
+
32
+ ## 概述
33
+ ## 架构变化
34
+ ### 新增模块
35
+ ### 修改模块
36
+ ### 删除模块
37
+
38
+ ## 数据模型
39
+ ### 新增类型
40
+ ### 修改类型
41
+
42
+ ## 接口设计
43
+ ### 新增接口
44
+ ### 修改接口
45
+
46
+ ## 关键算法 / 流程
47
+ ## 异常处理
48
+ ## 测试策略
49
+ ## 风险评估
50
+ \`\`\`
51
+
52
+ ### 3. 编写 delta-specs
53
+
54
+ 在 \`changes/<change>/specs/<domain>/spec.md\` 中预先写本次 change 的行为契约:
55
+
56
+ \`\`\`markdown
57
+ # <domain> 规格
58
+
59
+ ## SHALL
60
+ - SHALL <条件>: <预期行为>
61
+ 场景: <GIVEN/WHEN/THEN>
62
+
63
+ ## MUST
64
+ - MUST <约束条件>
65
+ 场景: ...
66
+ \`\`\`
67
+
68
+ **delta-spec 规则**:
69
+ - 只写本次 change 引入或修改的行为
70
+ - 用 SHALL/MUST 表达强制规范
71
+ - 每个条目附带 GIVEN/WHEN/THEN 场景
72
+ - 格式遵循 \`SHALL <条件>: <预期行为>\`
73
+ - 明确引用变更的 spec ID(如有)
74
+ - 覆盖正常路径、边界路径、异常路径
75
+
76
+ ### 4. 拆分为 tasks — tasks.md
77
+
78
+ \`\`\`markdown
79
+ # Change: <名称> — 实现任务
80
+
81
+ ## type:behavior(需走 TDD 循环)
82
+ 1. [ ] RED: <失败的测试>
83
+ - GREEN: <最小实现>
84
+ - REFACTOR: <重构目标>
85
+ 2. [ ] RED: ...
86
+
87
+ ## type:config(跳过 TDD)
88
+ 1. [ ] 配置文件: ...
89
+
90
+ ## type:refactor(跳过 TDD)
91
+ 1. [ ] 重构: ...
92
+
93
+ ## type:docs(跳过 TDD)
94
+ 1. [ ] 文档: ...
95
+
96
+ ## type:scaffolding(跳过 TDD)
97
+ 1. [ ] 脚手架: ...
98
+ \`\`\`
99
+
100
+ **TDD 协议(强制)**:
101
+ - \`type:behavior\` 任务必须走 RED→GREEN→REFACTOR 三步
102
+ - 每个 RED 任务必须有可运行的失败测试
103
+ - GREEN 是使测试通过的最小实现
104
+ - REFACTOR 不改变行为,只改进结构
105
+ - \`type:config/refactor/docs/scaffolding\` 跳过 RED→GREEN→REFACTOR
106
+
107
+ ### 5. plan-checker 验证
108
+
109
+ 运行 plan-checker 自动验证:
110
+ - [ ] 所有 tasks 标注了 type
111
+ - [ ] type:behavior 任务有完整的 RED→GREEN→REFACTOR 三元组
112
+ - [ ] delta-specs 覆盖了 proposal.md 中所有的 must_haves
113
+ - [ ] 与 context.md 中的决策无矛盾(drift check)
114
+ - [ ] 依赖图完整(跨 change 的 key_links 已标注)
115
+ - [ ] 每个任务有明确的完成标准
116
+
117
+ ## 产物
118
+
119
+ - \`changes/<change-name>/design.md\` — 技术方案设计
120
+ - \`changes/<change-name>/tasks.md\` — 实现任务清单(含 TDD 标注)
121
+ - \`changes/<change-name>/specs/<domain>/spec.md\` — delta-specs
122
+
123
+ ## 验证
124
+
125
+ - [ ] plan-checker 输出 PASS
126
+ - [ ] 所有 must_have 被 tasks 覆盖
127
+ - [ ] delta-specs 使用 SHALL/MUST 格式
128
+ - [ ] type:behavior 任务有完整的 RED→GREEN→REFACTOR
129
+ - [ ] design.md 与 context.md 的决策一致
130
+
131
+ ## 常见陷阱
132
+
133
+ - delta-specs 不能写成实现细节(如「调用 X 函数」),而是行为契约(如「当 X 条件满足时返回 Y」)
134
+ - 不要跳过 type:behavior 的 RED 阶段 — TDD 的关键是测试先行
135
+ - tasks.md 粒度适中:每个任务在 15-60 分钟内完成
136
+ - 如果 change 太大无法清晰拆分 tasks,考虑回到 split 重新拆分
137
+ - delta-specs 覆盖异常路径 — 只写 happy path 等于没写
138
+
139
+ ## 参考
140
+
141
+ - TDD (Test-Driven Development) by Kent Beck
142
+ - GSD Core 的 plan phase
143
+ - OpenSpec 的 delta-spec 格式
144
+ - spec-checker 验证清单
@@ -0,0 +1,66 @@
1
+ # Phase 调研工作流指引
2
+
3
+ ## 概述
4
+
5
+ 对单个 Phase 的实现路径进行技术调研。与项目级 research 不同,phase research 聚焦于具体的实现选择 —— 库的用法、API 设计模式、性能调优策略、已知坑点等。
6
+
7
+ 调研由 specwf-researcher agent 在独立上下文中并行执行。
8
+
9
+ ## 前置条件
10
+
11
+ - context.md 已记录本次 phase 的决策
12
+ - 确定了需要调研的技术问题(1-3 个方向)
13
+
14
+ ## 执行步骤
15
+
16
+ ### 1. 提取调研问题
17
+
18
+ 从 context.md 和相关的 specs 中提取需要调研的具体问题:
19
+ - 某个库的特定用法
20
+ - 某类问题的模式或最佳实践
21
+ - 框架的功能边界和限制
22
+ - 性能基准数据
23
+
24
+ ### 2. 执行调研(可并行)
25
+
26
+ 每个问题由 researcher agent 独立调研:
27
+ \`\`\`
28
+ task agent: specwf-researcher
29
+ \`\`\`
30
+
31
+ 调研内容:
32
+ - 阅读官方文档和 API 参考
33
+ - 检查社区实践和已知陷阱
34
+ - (可选)验证关键假设 —— 写最小原型测试
35
+ - 产出 RESEARCH.md
36
+
37
+ ### 3. 更新 context.md
38
+
39
+ 将调研结论的记录 \`[RESEARCHED]\` 标记追加到 context.md:
40
+ - 推荐的实现路径
41
+ - 已知陷阱和规避方法
42
+ - 推荐使用的库版本和配置
43
+
44
+ ## 产物
45
+
46
+ - \`specwf/research/ph-<name>/RESEARCH.md\` — Phase 调研报告
47
+ - \`specwf/context.md\`(更新,追加调研结论)
48
+
49
+ ## 验证
50
+
51
+ - [ ] 所有调研问题都有答案
52
+ - [ ] 有推荐的实现路径
53
+ - [ ] 已知陷阱和规避方法
54
+ - [ ] 不遗漏关键依赖项
55
+
56
+ ## 常见陷阱
57
+
58
+ - 不要只调研「怎么做成」,还要调研「怎么做对」
59
+ - 如果调研发现某个技术选型不可行,立即在 context.md 记录并通知
60
+ - 调研结果要可操作 —— 不是知识收集,是为了指导代码
61
+ - 最小原型对验证关键假设最有效,但不应对原型做重构
62
+
63
+ ## 参考
64
+
65
+ - GSD Core 的 phase research 路线
66
+ - context.md 格式
@@ -0,0 +1,76 @@
1
+ # 项目技术调研工作流指引
2
+
3
+ ## 概述
4
+
5
+ 对项目涉及的技术方向进行并行多方向调研。产出数据驱动的选型对比报告,为 roadmap 和后续 phase 提供技术基础。
6
+
7
+ Research 由 specwf-researcher agent 在独立上下文中并行执行。
8
+
9
+ ## 前置条件
10
+
11
+ - 已完成 grill,proposal.md 已确认
12
+ - 确定了 2-5 个需要调研的方向
13
+
14
+ ## 执行步骤
15
+
16
+ ### 1. 确定调研方向
17
+
18
+ 从 proposal.md 提取需要调研的技术决策点,例如:
19
+ - 框架选择(如 Express vs Fastify vs Hono)
20
+ - 数据库选择(如 PostgreSQL vs SQLite)
21
+ - 部署方案(如 Docker vs 无服务器)
22
+ - 关键库/工具评估(如 zod vs valibot 等)
23
+
24
+ 列出每个方向的候选方案(2-4 个候选)。
25
+
26
+ ### 2. 并行调研(fan-out)
27
+
28
+ 每个方向由独立 researcher agent 执行:
29
+ \`\`\`
30
+ task agent: specwf-researcher × N
31
+ \`\`\`
32
+
33
+ 每个 researcher 的 assignment 包含:
34
+ - **方向**:要调研的技术决策
35
+ - **候选方案**:要对比的选项
36
+ - **评估维度**:功能满足度、性能、社区活跃度、学习曲线、生态集成、许可证
37
+ - **交付要求**:写入 specwf/research/<direction>/STACK.md
38
+
39
+ ### 3. 汇总调研结果
40
+
41
+ 收集所有 researcher 的产出,检查:
42
+ - 所有方向是否有推荐方案和理由
43
+ - 候选方案对比表是否完整
44
+ - 已知的 caveat 和陷阱是否记录
45
+ - 推荐方案是否相互兼容
46
+
47
+ ### 4. 更新 proposal.md
48
+
49
+ 将调研结论的关键决策追加到 proposal.md 的「技术倾向」部分,添加 \`[RESEARCHED]\` 标记。
50
+
51
+ ## 产物
52
+
53
+ - \`specwf/research/<direction>/STACK.md\` — 每个方向的方案对比和推荐
54
+ - \`specwf/research/<direction>/PITFALLS.md\` — 已知陷阱和注意事项
55
+ - \`specwf/research/summary.md\` — 汇总决策表
56
+
57
+ ## 验证
58
+
59
+ - [ ] 每个调研方向至少有两个候选方案的对比
60
+ - [ ] 推荐方案都有明确理由
61
+ - [ ] 已知陷阱已记录
62
+ - [ ] 推荐的多个方案之间兼容性已检查
63
+ - [ ] proposal.md 已更新调研结论
64
+
65
+ ## 常见陷阱
66
+
67
+ - 避免只调研一个方案(确认偏差)
68
+ - 避免过度调研 — 设定每个方向 10-20 条有效信息来源的上限
69
+ - 注意许可证兼容性(GPL/AGPL vs MIT/Apache)
70
+ - 框架的版本号重要 — 确认调研的是最新稳定版
71
+ - 团队熟悉度是合法因素,在推荐理由中记录
72
+
73
+ ## 参考
74
+
75
+ - GSD Core 的 research phase 路线
76
+ - OpenSpec 的 STACK.md 模板
@@ -0,0 +1,148 @@
1
+ # 三重审查工作流指引
2
+
3
+ ## 概述
4
+
5
+ 对 Apply 产出的代码进行三重并行审查:规格审查、质量审查、目标审查。三重审查全部通过后才能进入 verify 阶段。
6
+
7
+ Review 由 specwf-reviewer agent 在独立上下文中并行执行。审查结果决定是否需要回 apply 修改。
8
+
9
+ ## 前置条件
10
+
11
+ - apply 阶段已完成,代码已提交
12
+ - delta-specs、design.md、tasks.md、proposal.md 已就位
13
+
14
+ ## 执行步骤
15
+
16
+ ### 1. 并行启动三重审查
17
+
18
+ 一次启动三个 reviewer agent 并行审查:
19
+ \`\`\`
20
+ task agent: specwf-reviewer × 3(并行)
21
+ 1. Spec Review — 规格符合性审查
22
+ 2. Quality Review — 代码质量审查
23
+ 3. Goal Review — 目标达成审查
24
+ \`\`\`
25
+
26
+ ### 2. 规格审查(Spec Review)
27
+
28
+ **检查项**:
29
+ - [ ] delta-specs 中的每个 SHALL 场景在代码中实现
30
+ - [ ] delta-specs 中的每个 MUST 约束在代码中遵守
31
+ - [ ] 全局 specs/ 中相关的 SHALL/MUST 未被违反
32
+ - [ ] GIVEN/WHEN/THEN 场景在测试中覆盖
33
+ - [ ] 接口签名与 design.md 一致
34
+ - [ ] 异常处理覆盖 spec 中定义的错误场景
35
+
36
+ **输出**: \`reviews/spec-review.md\`
37
+ \`\`\`markdown
38
+ # 规格审查报告
39
+
40
+ ## 审查结果:PASS / FAIL / CONDITIONAL_PASS
41
+
42
+ ## 通过项
43
+ - SHALL-001: ✓ 已实现且测试覆盖
44
+ - ...
45
+
46
+ ## 未通过项
47
+ - SHALL-003: ✗ 未处理输入为空场景
48
+ - 严重性: HIGH / MEDIUM / LOW
49
+ - 建议: ...
50
+
51
+ ## 与全局 specs 冲突
52
+ - ...
53
+ \`\`\`
54
+
55
+ ### 3. 质量审查(Quality Review)
56
+
57
+ **检查项**:
58
+ - [ ] 明显的 bug 模式(空指针、越界、竞态条件)
59
+ - [ ] 安全漏洞(注入、权限缺失、敏感信息泄露)
60
+ - [ ] 代码规范(项目约定的代码风格和模式)
61
+ - [ ] 测试质量(不是 trivial 测试,覆盖边界条件)
62
+ - [ ] 性能问题(不必要的分配、N+1 查询等)
63
+ - [ ] 错误处理(错误被吞没、错误信息不明确)
64
+
65
+ **输出**: \`reviews/quality-review.md\`
66
+ \`\`\`markdown
67
+ # 质量审查报告
68
+
69
+ ## 审查结果:PASS / FAIL / CONDITIONAL_PASS
70
+
71
+ ## Bug 类
72
+ - ...
73
+
74
+ ## 安全类
75
+ - ...
76
+
77
+ ## 规范类
78
+ - ...
79
+
80
+ ## 测试质量
81
+ - ...
82
+ \`\`\`
83
+
84
+ ### 4. 目标审查(Goal Review)
85
+
86
+ **检查项**:
87
+ - [ ] change proposal.md 中定义的目标已实现
88
+ - [ ] tasks.md 中所有 tasks 已完成(无论 type)
89
+ - [ ] design.md 中的方案在代码中落地
90
+ - [ ] 没有 scope creep(实现了 proposal 外的功能)
91
+ - [ ] 测试覆盖满足 change 的测试策略要求
92
+
93
+ **输出**: \`reviews/goal-review.md\`
94
+ \`\`\`markdown
95
+ # 目标审查报告
96
+
97
+ ## 审查结果:PASS / FAIL / CONDITIONAL_PASS
98
+
99
+ ## 目标达成
100
+ - proposal 目标 1: ✓
101
+ - ...
102
+
103
+ ## 任务完成度
104
+ - tasks.md 完成: 7/7
105
+
106
+ ## Scope Creep 检查
107
+ - 发现 1 处额外实现: ...
108
+ \`\`\`
109
+
110
+ ### 5. 汇总结果
111
+
112
+ 收集所有三份审查报告,根据 gate 配置决定是否进入 verify:
113
+
114
+ - **all-pass(默认)**:三份报告都 PASS 才进入 verify
115
+ - **severity**:没有 HIGH 严重性问题即可进入 verify
116
+ - **report-only**:审查结果仅供参考,不阻止进入 verify
117
+
118
+ 任一审查 FAIL 时:
119
+ - 记录问题清单
120
+ - 回 apply 阶段修复
121
+ - 修复后重新审查涉及的部分
122
+
123
+ ## 产物
124
+
125
+ - \`changes/<change-name>/reviews/spec-review.md\` — 规格审查报告
126
+ - \`changes/<change-name>/reviews/quality-review.md\` — 质量审查报告
127
+ - \`changes/<change-name>/reviews/goal-review.md\` — 目标审查报告
128
+
129
+ ## 验证
130
+
131
+ - [ ] 三重审查全部完成
132
+ - [ ] gate 条件满足(根据配置)
133
+ - [ ] 审查报告写入对应目录
134
+ - [ ] FAIL 的问题在回 apply 前修复
135
+
136
+ ## 常见陷阱
137
+
138
+ - 不要合并审查职责 — 规格/质量/目标是三个独立视角,必须由不同 reviewer(或至少不同上下文)执行
139
+ - 不要在审查报告里写模糊的描述 — 每个问题必须有文件/行号引用
140
+ - 不要把「风格偏好」作为 FAIL 理由 — 只有违反项目约定的才记录
141
+ - 如果条件允许,一次审查只覆盖单个 change 的 diff,不涉及全局代码
142
+ - ALL-PASS 模式下,一个 CONDITIONAL_PASS 算 FAIL
143
+
144
+ ## 参考
145
+
146
+ - GSD Core 的 triple review 机制
147
+ - OpenSpec 的 review 模板
148
+ - OWASP 代码审查指南(质量审查的安全类参考)
@@ -0,0 +1,104 @@
1
+ # 路线图工作流指引
2
+
3
+ ## 概述
4
+
5
+ 将项目拆分为 Milestone 和 Phase 两个层级。Milestone 是长期里程碑(通常 1-3 个月),Phase 是 Milestone 内的开发阶段(通常 1-2 周)。
6
+
7
+ 路线图基于 proposal.md 和 research 产出,输出可执行的阶段规划。
8
+
9
+ ## 前置条件
10
+
11
+ - 已完成 grill
12
+ - (可选)已完成 research —— 调研结果指导技术栈拆分
13
+ - 对项目范围有清晰共识
14
+
15
+ ## 执行步骤
16
+
17
+ ### 1. 定义 Milestone
18
+
19
+ 按功能领域或发布节奏划分里程碑。每个 milestone 应有:
20
+ - **名称**:简短标识(如 \`M1-core\`)
21
+ - **目标**:一个句子描述的里程碑目标
22
+ - **范围**:包含和不包含的功能
23
+ - **成功标准**:可测量的完成条件
24
+ - **预估时长**:1-3 个月
25
+
26
+ 示例:
27
+ \`\`\`
28
+ M1 — Core Infrastructure
29
+ 目标:搭建基础 CLI 框架 + spec 管理系统
30
+ 范围:init/grill/research/roadmap/.../archive 完整循环
31
+ 时长:6 周
32
+ \`\`\`
33
+
34
+ ### 2. 为每个 Milestone 拆分 Phase
35
+
36
+ 每个 milestone 包含 3-8 个 phase:
37
+ \`\`\`
38
+ <ms-name>
39
+ ├── ph.1 基础搭建
40
+ ├── ph.2 核心功能 A
41
+ ├── ph.3 核心功能 B
42
+ ├── ph.4 集成测试
43
+ └── ph.5 文档和完善
44
+ \`\`\`
45
+
46
+ 每个 Phase 定义:
47
+ - **名称**(ph.N-<name>)
48
+ - **目标**
49
+ - **依赖**(依赖的技术或前置 phase)
50
+ - **输入**(specs 文件、conventions、设计文档)
51
+ - **输出**(代码、specs 更新、文档)
52
+ - **预估 Change 数**
53
+
54
+ ### 3. 验证里程碑覆盖
55
+
56
+ 逐项检查 proposal.md 的「范围」是否被 Milestone 和 Phase 完整覆盖:
57
+ - 没有遗漏的功能
58
+ - 依赖关系合理
59
+ - Phase 之间的依赖不形成循环
60
+
61
+ ### 4. 产出 ROADMAP.md
62
+
63
+ \`\`\`markdown
64
+ # <项目> 路线图
65
+
66
+ ## Milestone 概览
67
+
68
+ | Milestone | 目标 | Phase 数 | 时长 |
69
+ |---|---|---|---|
70
+
71
+ ## M1 — <名称>
72
+ <Milestone 目标>
73
+
74
+ ### Phase 列表
75
+
76
+ | Phase | 目标 | 依赖 | 预估 Change 数 |
77
+ |---|---|---|---|
78
+
79
+ ### ph.1 <名称>
80
+ <详细说明>
81
+ \`\`\`
82
+
83
+ ## 产物
84
+
85
+ - \`specwf/ROADMAP.md\` — 完整的路线图文档
86
+
87
+ ## 验证
88
+
89
+ - [ ] 所有 proposal.md 范围被覆盖
90
+ - [ ] Phase 之间的依赖不循环
91
+ - [ ] 每个 Phase 有可验证的成功标准
92
+ - [ ] 路线图长度合理(3-15 个 Phase 总)
93
+
94
+ ## 常见陷阱
95
+
96
+ - 不要把 Phase 拆得太细 — 每个 phase 至少能产出可演示的成果
97
+ - 第一个 Phase 应该是最小可行路径,不是最复杂的
98
+ - 不要忽略集成和文档 phase
99
+ - Phase 的先后依赖不要过于乐观 — 列清楚前置条件
100
+
101
+ ## 参考
102
+
103
+ - GSD Core 的 roadmap 方法
104
+ - 产品路线图最佳实践(outcome-focused)