ethan-skill 1.10.4 → 1.11.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 (41) hide show
  1. package/README.md +10 -10
  2. package/dist/cli/index.js +248 -4
  3. package/dist/cli/index.js.map +1 -1
  4. package/dist/context/builder.d.ts +7 -0
  5. package/dist/context/builder.d.ts.map +1 -1
  6. package/dist/context/builder.js +31 -0
  7. package/dist/context/builder.js.map +1 -1
  8. package/dist/mcp/server.d.ts.map +1 -1
  9. package/dist/mcp/server.js +212 -1
  10. package/dist/mcp/server.js.map +1 -1
  11. package/dist/skills/25-spec-proposal.d.ts +3 -0
  12. package/dist/skills/25-spec-proposal.d.ts.map +1 -0
  13. package/dist/skills/25-spec-proposal.js +157 -0
  14. package/dist/skills/25-spec-proposal.js.map +1 -0
  15. package/dist/skills/26-spec-review.d.ts +3 -0
  16. package/dist/skills/26-spec-review.d.ts.map +1 -0
  17. package/dist/skills/26-spec-review.js +126 -0
  18. package/dist/skills/26-spec-review.js.map +1 -0
  19. package/dist/skills/index.d.ts +2 -0
  20. package/dist/skills/index.d.ts.map +1 -1
  21. package/dist/skills/index.js +9 -1
  22. package/dist/skills/index.js.map +1 -1
  23. package/dist/skills/pipeline.d.ts.map +1 -1
  24. package/dist/skills/pipeline.js +12 -0
  25. package/dist/skills/pipeline.js.map +1 -1
  26. package/dist/spec/index.d.ts +57 -0
  27. package/dist/spec/index.d.ts.map +1 -0
  28. package/dist/spec/index.js +303 -0
  29. package/dist/spec/index.js.map +1 -0
  30. package/package.json +1 -1
  31. package/rules/claude-code/CLAUDE.md +246 -3
  32. package/rules/cline/.clinerules +216 -2
  33. package/rules/codebuddy/CODEBUDDY.md +236 -2
  34. package/rules/continue/.continuerules +216 -2
  35. package/rules/copilot/copilot-instructions.md +230 -2
  36. package/rules/cursor/.cursorrules +243 -2
  37. package/rules/cursor/smart-flow.mdc +243 -2
  38. package/rules/jetbrains/smart-flow.md +230 -2
  39. package/rules/lingma/smart-flow.md +235 -3
  40. package/rules/windsurf/.windsurf/rules/smart-flow.md +231 -3
  41. package/rules/zed/smart-flow.rules +213 -1
@@ -1,7 +1,7 @@
1
- # Ethan v1.8.0
1
+ # Ethan v1.11.0
2
2
 
3
3
  > 自动生成 - 请勿手动修改,源文件:src/skills/
4
- > Generated at: 2026-03-31T16:55:43.257Z
4
+ > Generated at: 2026-04-06T14:12:22.298Z
5
5
 
6
6
  ## 重要:Skill 激活规则
7
7
 
@@ -35,6 +35,8 @@
35
35
  - 代码重构:代码重构、refactoring、refactor
36
36
  - 可观测性:可观测性、observability、监控
37
37
  - 设计模式:设计模式、design pattern、design patterns
38
+ - Spec Proposal:spec proposal、openspec proposal、生成提案
39
+ - Spec Review(意图审查):spec review、intent review、意图审查
38
40
 
39
41
  ---
40
42
 
@@ -3782,4 +3784,243 @@ export const db = createDbPool(); // 模块级单例,足够用
3782
3784
 
3783
3785
  ---
3784
3786
 
3787
+ ## Skill 25:Spec Proposal
3788
+
3789
+ **触发词**:`spec proposal`、`openspec proposal`、`生成提案`、`变更提案`、`spec 提案`、`写 proposal`、`@ethan spec proposal`、`/spec-proposal`
3790
+
3791
+ **描述**:遵循 OpenSpec 规范,在编码前生成完整变更提案包(proposal + design + tasks + spec delta)
3792
+
3793
+ ### 1. 扫描现有 Spec 上下文
3794
+
3795
+ 查阅 openspec/specs/ 目录,了解已有规范:
3796
+
3797
+ - 列出所有 capability 目录及其 spec.md 摘要
3798
+ - 识别本次变更涉及的 capability(可能跨多个)
3799
+ - 了解现有需求(Requirements)和场景(Scenarios)边界
3800
+
3801
+ **如无 openspec 目录**:询问用户需要创建哪些 capability 的 spec,用 `ethan spec init [capability]` 初始化。
3802
+
3803
+ **输出**:涉及的 spec 文件列表 + 关键现有需求摘要
3804
+
3805
+ ### 2. 生成 proposal.md(变更提案)
3806
+
3807
+ 生成 openspec/changes/[change-id]/proposal.md:
3808
+
3809
+ ```markdown
3810
+ # Change Proposal: [变更标题]
3811
+
3812
+ > Change ID: [yyyymmdd-xxxx]
3813
+
3814
+ ## 变更描述
3815
+ [1-3 句话说明这个变更要做什么]
3816
+
3817
+ ## 动机与背景
3818
+ [为什么需要这个变更,解决什么业务问题]
3819
+
3820
+ ## 影响范围
3821
+ - 涉及的 Capability:[列表]
3822
+ - 影响的用户角色:[列表]
3823
+ - 影响的现有功能:[列表]
3824
+
3825
+ ## 非功能性考量
3826
+ - 性能影响:[说明或无]
3827
+ - 安全考量:[说明或无]
3828
+ - 向后兼容性:[说明]
3829
+ ```
3830
+
3831
+ ### 3. 生成 design.md(技术方案)
3832
+
3833
+ 生成 openspec/changes/[change-id]/design.md:
3834
+
3835
+ ```markdown
3836
+ # Technical Design: [变更标题]
3837
+
3838
+ ## 架构决策
3839
+ [关键架构选择及原因,如技术选型、模式选择]
3840
+
3841
+ ## 接口变更
3842
+ [新增/修改的 API 端点、组件 Props、函数签名]
3843
+
3844
+ ## 数据模型变更
3845
+ [新增/修改的数据库表、数据结构]
3846
+
3847
+ ## 实现方案
3848
+ [核心实现思路,关键算法或流程]
3849
+
3850
+ ## 风险与缓解措施
3851
+ [技术风险点 → 对应缓解策略]
3852
+ ```
3853
+
3854
+ ### 4. 生成 tasks.md(实现任务)
3855
+
3856
+ 生成 openspec/changes/[change-id]/tasks.md,按阶段拆分原子任务:
3857
+
3858
+ ```markdown
3859
+ # Implementation Tasks: [变更标题]
3860
+
3861
+ ## Phase 1: 基础准备
3862
+ - [ ] Task 1.1: [任务描述] | 估算:S/M/L
3863
+
3864
+ ## Phase 2: 核心实现
3865
+ - [ ] Task 2.1: [任务描述] | 估算:S/M/L
3866
+
3867
+ ## Phase 3: 测试与验收
3868
+ - [ ] Task 3.1: 编写单元测试,覆盖所有场景 AC
3869
+ - [ ] Task 3.2: Spec Review — 验证代码与 spec delta 对齐
3870
+
3871
+ ## 总估算
3872
+ S: [n] | M: [n] | L: [n]
3873
+ ```
3874
+
3875
+ 每个任务应足够原子,可独立完成和验证。
3876
+
3877
+ ### 5. 生成 Spec Delta(需求变更)
3878
+
3879
+ 为每个涉及的 capability 生成需求变更文件(openspec/changes/[id]/specs/[capability].md):
3880
+
3881
+ ```markdown
3882
+ # Spec Delta: [capability]
3883
+
3884
+ > 变更描述:[本次变更对此 capability 的影响]
3885
+
3886
+ ## 新增需求
3887
+
3888
+ ### REQ-XXX: [新需求名称]
3889
+ [需求描述]
3890
+
3891
+ ## 修改需求
3892
+
3893
+ **变更前:**
3894
+ [原需求内容]
3895
+
3896
+ **变更后:**
3897
+ [新需求内容]
3898
+
3899
+ ## 新增场景
3900
+
3901
+ GIVEN [前置条件]
3902
+ WHEN [用户操作]
3903
+ THEN [预期结果]
3904
+ ```
3905
+
3906
+ **原则**:Spec delta 只记录"变化",不重复现有 spec 的未变更内容。
3907
+
3908
+ **输出格式**:OpenSpec 变更提案包(保存到 openspec/changes/[change-id]/):
3909
+ - proposal.md(变更提案)
3910
+ - design.md(技术方案)
3911
+ - tasks.md(分阶段任务)
3912
+ - specs/[capability].md(spec delta,每个涉及的 capability 一个文件)
3913
+
3914
+ **注意事项**:
3915
+ - 提案应在编写任何代码之前生成,让团队先对变更意图达成共识
3916
+ - Spec delta 只记录"变化",不重复现有 spec 内容
3917
+ - tasks.md 的每个任务应足够原子,可独立完成和验证
3918
+ - 如项目尚无 openspec 目录,先运行 ethan spec init [capability] 初始化
3919
+
3920
+ ---
3921
+
3922
+ ## Skill 26:Spec Review(意图审查)
3923
+
3924
+ **触发词**:`spec review`、`intent review`、`意图审查`、`openspec review`、`spec 审查`、`需求对齐检查`、`@ethan spec review`、`/spec-review`
3925
+
3926
+ **描述**:基于 OpenSpec,对比 spec delta 与代码实现,执行意图级 Review(而非逐行代码审查)
3927
+
3928
+ ### 1. 加载 Spec 上下文
3929
+
3930
+ 读取本次变更相关的 OpenSpec 文档:
3931
+
3932
+ 1. 定位 openspec/changes/[change-id]/ 目录(取最新的或由用户指定)
3933
+ 2. 读取 proposal.md(了解变更目标和意图)
3934
+ 3. 读取 specs/[capability].md(逐个 spec delta)
3935
+ 4. 读取代码 diff(git diff HEAD 或 PR diff)
3936
+
3937
+ **目标**:建立"期望变更"(spec delta)和"实际变更"(代码)的对照关系。
3938
+
3939
+ 如无 change proposal,说明本次改动未经过 spec 规范流程,建议先运行 `ethan spec proposal`。
3940
+
3941
+ ### 2. 意图对齐检查
3942
+
3943
+ 逐条检查每个 spec delta 条目是否在代码中得到正确实现:
3944
+
3945
+ **对齐矩阵模板**
3946
+
3947
+ | Spec 需求/场景 | 对应代码位置 | 对齐状态 | 说明 |
3948
+ |--------------|------------|---------|------|
3949
+ | REQ-XXX: [需求名] | [文件:行号] | ✅ | 完全实现 |
3950
+ | Scenario: [场景名] | [文件:行号] | ⚠️ | 边界条件缺失 |
3951
+ | REQ-YYY: [需求名] | — | ❌ | 未找到实现 |
3952
+ | [代码功能] | [文件:行号] | 🔄 | 超出 spec 范围 |
3953
+
3954
+ **状态说明**
3955
+ - ✅ 完全实现:代码与 spec 意图一致,GIVEN/WHEN/THEN 均覆盖
3956
+ - ⚠️ 部分实现:核心逻辑存在但细节缺失(如缺少异常处理)
3957
+ - ❌ 未实现:spec 要求的功能在代码中找不到
3958
+ - 🔄 超范围:代码实现了 spec 未定义的内容
3959
+
3960
+ ### 3. 偏差识别与分级
3961
+
3962
+ 识别三类关键偏差:
3963
+
3964
+ **🔴 意图偏差(Critical)—— 必须修复才能合并**
3965
+ 代码实现与 spec 意图相反或严重不符,例如:
3966
+ - 场景要求"3次失败后锁定账号",实际实现了"无限重试"
3967
+ - 权限检查逻辑与 GIVEN/WHEN/THEN 定义的场景不匹配
3968
+ - 数据模型与 spec delta 中定义的结构不一致
3969
+
3970
+ **🟡 遗漏需求(Warning)—— 强烈建议补充**
3971
+ spec 中定义的场景或需求在代码中未体现:
3972
+ - 异常流程未处理(spec 中有 THEN [错误情况] 但代码未实现)
3973
+ - 边界条件未覆盖(如空值、超长输入、并发)
3974
+ - 非功能性需求未落实(如性能、安全要求)
3975
+
3976
+ **💡 超范围实现(Info)—— 确认并按需更新 spec**
3977
+ 代码实现了 spec 没有定义的功能:
3978
+ - 可能是合理的技术实现细节(不需要更新 spec)
3979
+ - 也可能是功能范围蔓延(需补充 spec delta 或回退)
3980
+
3981
+ ### 4. 输出 Spec Review 报告
3982
+
3983
+ 生成结构化的意图审查报告:
3984
+
3985
+ ```markdown
3986
+ # Spec Review Report
3987
+
3988
+ ## 变更提案摘要
3989
+ - Change ID: [id]
3990
+ - 变更目标:[proposal.md 核心摘要]
3991
+ - 涉及 Capability:[列表]
3992
+
3993
+ ## 意图对齐矩阵
3994
+ [对照表格]
3995
+
3996
+ ## 关键发现
3997
+
3998
+ ### 🔴 意图偏差([n] 项)
3999
+ 1. **[偏差描述]**
4000
+ - Spec 要求:[spec 原文]
4001
+ - 实际实现:[代码位置] [实际行为]
4002
+ - 建议:[修复方向]
4003
+
4004
+ ### 🟡 遗漏需求([n] 项)
4005
+ [列表]
4006
+
4007
+ ### 💡 超范围实现([n] 项)
4008
+ [列表]
4009
+
4010
+ ## 审查结论
4011
+ - [ ] 意图完全对齐,可以合并
4012
+ - [ ] 需要修复意图偏差后重新审查
4013
+ - [ ] 需要更新 spec(超范围实现合理)
4014
+ ```
4015
+
4016
+ **输出格式**:Spec Review 报告:意图对齐矩阵 + 三级偏差列表(🔴意图偏差 / 🟡遗漏需求 / 💡超范围)+ 审查结论
4017
+
4018
+ **注意事项**:
4019
+ - Spec Review 不替代 Code Review,两者互补:Spec Review 审意图,Code Review 审实现质量
4020
+ - 如果没有对应的 spec delta,说明该改动未经过规范的 spec 流程,需补充
4021
+ - 超范围实现不一定是问题,但必须显式确认并按需更新 spec
4022
+ - GIVEN/WHEN/THEN 场景是最好的对齐锚点,每个场景都应在代码中有对应的实现
4023
+
4024
+ ---
4025
+
3785
4026
  *Ethan - Your AI Workflow Assistant | 让每一步都有据可依*
@@ -4,10 +4,10 @@ globs:
4
4
  alwaysApply: true
5
5
  ---
6
6
 
7
- # Ethan v1.8.0
7
+ # Ethan v1.11.0
8
8
 
9
9
  > 自动生成 - 请勿手动修改,源文件:src/skills/
10
- > Generated at: 2026-03-31T16:55:43.257Z
10
+ > Generated at: 2026-04-06T14:12:22.298Z
11
11
 
12
12
  ## 重要:Skill 激活规则
13
13
 
@@ -47,6 +47,8 @@ alwaysApply: true
47
47
  | 代码重构 | `代码重构` |
48
48
  | 可观测性 | `可观测性` |
49
49
  | 设计模式 | `设计模式` |
50
+ | Spec Proposal | `spec proposal` |
51
+ | Spec Review(意图审查) | `spec review` |
50
52
 
51
53
  ---
52
54
 
@@ -3794,4 +3796,243 @@ export const db = createDbPool(); // 模块级单例,足够用
3794
3796
 
3795
3797
  ---
3796
3798
 
3799
+ ## Skill 25:Spec Proposal
3800
+
3801
+ **触发词**:`spec proposal`、`openspec proposal`、`生成提案`、`变更提案`、`spec 提案`、`写 proposal`、`@ethan spec proposal`、`/spec-proposal`
3802
+
3803
+ **描述**:遵循 OpenSpec 规范,在编码前生成完整变更提案包(proposal + design + tasks + spec delta)
3804
+
3805
+ ### 1. 扫描现有 Spec 上下文
3806
+
3807
+ 查阅 openspec/specs/ 目录,了解已有规范:
3808
+
3809
+ - 列出所有 capability 目录及其 spec.md 摘要
3810
+ - 识别本次变更涉及的 capability(可能跨多个)
3811
+ - 了解现有需求(Requirements)和场景(Scenarios)边界
3812
+
3813
+ **如无 openspec 目录**:询问用户需要创建哪些 capability 的 spec,用 `ethan spec init [capability]` 初始化。
3814
+
3815
+ **输出**:涉及的 spec 文件列表 + 关键现有需求摘要
3816
+
3817
+ ### 2. 生成 proposal.md(变更提案)
3818
+
3819
+ 生成 openspec/changes/[change-id]/proposal.md:
3820
+
3821
+ ```markdown
3822
+ # Change Proposal: [变更标题]
3823
+
3824
+ > Change ID: [yyyymmdd-xxxx]
3825
+
3826
+ ## 变更描述
3827
+ [1-3 句话说明这个变更要做什么]
3828
+
3829
+ ## 动机与背景
3830
+ [为什么需要这个变更,解决什么业务问题]
3831
+
3832
+ ## 影响范围
3833
+ - 涉及的 Capability:[列表]
3834
+ - 影响的用户角色:[列表]
3835
+ - 影响的现有功能:[列表]
3836
+
3837
+ ## 非功能性考量
3838
+ - 性能影响:[说明或无]
3839
+ - 安全考量:[说明或无]
3840
+ - 向后兼容性:[说明]
3841
+ ```
3842
+
3843
+ ### 3. 生成 design.md(技术方案)
3844
+
3845
+ 生成 openspec/changes/[change-id]/design.md:
3846
+
3847
+ ```markdown
3848
+ # Technical Design: [变更标题]
3849
+
3850
+ ## 架构决策
3851
+ [关键架构选择及原因,如技术选型、模式选择]
3852
+
3853
+ ## 接口变更
3854
+ [新增/修改的 API 端点、组件 Props、函数签名]
3855
+
3856
+ ## 数据模型变更
3857
+ [新增/修改的数据库表、数据结构]
3858
+
3859
+ ## 实现方案
3860
+ [核心实现思路,关键算法或流程]
3861
+
3862
+ ## 风险与缓解措施
3863
+ [技术风险点 → 对应缓解策略]
3864
+ ```
3865
+
3866
+ ### 4. 生成 tasks.md(实现任务)
3867
+
3868
+ 生成 openspec/changes/[change-id]/tasks.md,按阶段拆分原子任务:
3869
+
3870
+ ```markdown
3871
+ # Implementation Tasks: [变更标题]
3872
+
3873
+ ## Phase 1: 基础准备
3874
+ - [ ] Task 1.1: [任务描述] | 估算:S/M/L
3875
+
3876
+ ## Phase 2: 核心实现
3877
+ - [ ] Task 2.1: [任务描述] | 估算:S/M/L
3878
+
3879
+ ## Phase 3: 测试与验收
3880
+ - [ ] Task 3.1: 编写单元测试,覆盖所有场景 AC
3881
+ - [ ] Task 3.2: Spec Review — 验证代码与 spec delta 对齐
3882
+
3883
+ ## 总估算
3884
+ S: [n] | M: [n] | L: [n]
3885
+ ```
3886
+
3887
+ 每个任务应足够原子,可独立完成和验证。
3888
+
3889
+ ### 5. 生成 Spec Delta(需求变更)
3890
+
3891
+ 为每个涉及的 capability 生成需求变更文件(openspec/changes/[id]/specs/[capability].md):
3892
+
3893
+ ```markdown
3894
+ # Spec Delta: [capability]
3895
+
3896
+ > 变更描述:[本次变更对此 capability 的影响]
3897
+
3898
+ ## 新增需求
3899
+
3900
+ ### REQ-XXX: [新需求名称]
3901
+ [需求描述]
3902
+
3903
+ ## 修改需求
3904
+
3905
+ **变更前:**
3906
+ [原需求内容]
3907
+
3908
+ **变更后:**
3909
+ [新需求内容]
3910
+
3911
+ ## 新增场景
3912
+
3913
+ GIVEN [前置条件]
3914
+ WHEN [用户操作]
3915
+ THEN [预期结果]
3916
+ ```
3917
+
3918
+ **原则**:Spec delta 只记录"变化",不重复现有 spec 的未变更内容。
3919
+
3920
+ **输出格式**:OpenSpec 变更提案包(保存到 openspec/changes/[change-id]/):
3921
+ - proposal.md(变更提案)
3922
+ - design.md(技术方案)
3923
+ - tasks.md(分阶段任务)
3924
+ - specs/[capability].md(spec delta,每个涉及的 capability 一个文件)
3925
+
3926
+ **注意事项**:
3927
+ - 提案应在编写任何代码之前生成,让团队先对变更意图达成共识
3928
+ - Spec delta 只记录"变化",不重复现有 spec 内容
3929
+ - tasks.md 的每个任务应足够原子,可独立完成和验证
3930
+ - 如项目尚无 openspec 目录,先运行 ethan spec init [capability] 初始化
3931
+
3932
+ ---
3933
+
3934
+ ## Skill 26:Spec Review(意图审查)
3935
+
3936
+ **触发词**:`spec review`、`intent review`、`意图审查`、`openspec review`、`spec 审查`、`需求对齐检查`、`@ethan spec review`、`/spec-review`
3937
+
3938
+ **描述**:基于 OpenSpec,对比 spec delta 与代码实现,执行意图级 Review(而非逐行代码审查)
3939
+
3940
+ ### 1. 加载 Spec 上下文
3941
+
3942
+ 读取本次变更相关的 OpenSpec 文档:
3943
+
3944
+ 1. 定位 openspec/changes/[change-id]/ 目录(取最新的或由用户指定)
3945
+ 2. 读取 proposal.md(了解变更目标和意图)
3946
+ 3. 读取 specs/[capability].md(逐个 spec delta)
3947
+ 4. 读取代码 diff(git diff HEAD 或 PR diff)
3948
+
3949
+ **目标**:建立"期望变更"(spec delta)和"实际变更"(代码)的对照关系。
3950
+
3951
+ 如无 change proposal,说明本次改动未经过 spec 规范流程,建议先运行 `ethan spec proposal`。
3952
+
3953
+ ### 2. 意图对齐检查
3954
+
3955
+ 逐条检查每个 spec delta 条目是否在代码中得到正确实现:
3956
+
3957
+ **对齐矩阵模板**
3958
+
3959
+ | Spec 需求/场景 | 对应代码位置 | 对齐状态 | 说明 |
3960
+ |--------------|------------|---------|------|
3961
+ | REQ-XXX: [需求名] | [文件:行号] | ✅ | 完全实现 |
3962
+ | Scenario: [场景名] | [文件:行号] | ⚠️ | 边界条件缺失 |
3963
+ | REQ-YYY: [需求名] | — | ❌ | 未找到实现 |
3964
+ | [代码功能] | [文件:行号] | 🔄 | 超出 spec 范围 |
3965
+
3966
+ **状态说明**
3967
+ - ✅ 完全实现:代码与 spec 意图一致,GIVEN/WHEN/THEN 均覆盖
3968
+ - ⚠️ 部分实现:核心逻辑存在但细节缺失(如缺少异常处理)
3969
+ - ❌ 未实现:spec 要求的功能在代码中找不到
3970
+ - 🔄 超范围:代码实现了 spec 未定义的内容
3971
+
3972
+ ### 3. 偏差识别与分级
3973
+
3974
+ 识别三类关键偏差:
3975
+
3976
+ **🔴 意图偏差(Critical)—— 必须修复才能合并**
3977
+ 代码实现与 spec 意图相反或严重不符,例如:
3978
+ - 场景要求"3次失败后锁定账号",实际实现了"无限重试"
3979
+ - 权限检查逻辑与 GIVEN/WHEN/THEN 定义的场景不匹配
3980
+ - 数据模型与 spec delta 中定义的结构不一致
3981
+
3982
+ **🟡 遗漏需求(Warning)—— 强烈建议补充**
3983
+ spec 中定义的场景或需求在代码中未体现:
3984
+ - 异常流程未处理(spec 中有 THEN [错误情况] 但代码未实现)
3985
+ - 边界条件未覆盖(如空值、超长输入、并发)
3986
+ - 非功能性需求未落实(如性能、安全要求)
3987
+
3988
+ **💡 超范围实现(Info)—— 确认并按需更新 spec**
3989
+ 代码实现了 spec 没有定义的功能:
3990
+ - 可能是合理的技术实现细节(不需要更新 spec)
3991
+ - 也可能是功能范围蔓延(需补充 spec delta 或回退)
3992
+
3993
+ ### 4. 输出 Spec Review 报告
3994
+
3995
+ 生成结构化的意图审查报告:
3996
+
3997
+ ```markdown
3998
+ # Spec Review Report
3999
+
4000
+ ## 变更提案摘要
4001
+ - Change ID: [id]
4002
+ - 变更目标:[proposal.md 核心摘要]
4003
+ - 涉及 Capability:[列表]
4004
+
4005
+ ## 意图对齐矩阵
4006
+ [对照表格]
4007
+
4008
+ ## 关键发现
4009
+
4010
+ ### 🔴 意图偏差([n] 项)
4011
+ 1. **[偏差描述]**
4012
+ - Spec 要求:[spec 原文]
4013
+ - 实际实现:[代码位置] [实际行为]
4014
+ - 建议:[修复方向]
4015
+
4016
+ ### 🟡 遗漏需求([n] 项)
4017
+ [列表]
4018
+
4019
+ ### 💡 超范围实现([n] 项)
4020
+ [列表]
4021
+
4022
+ ## 审查结论
4023
+ - [ ] 意图完全对齐,可以合并
4024
+ - [ ] 需要修复意图偏差后重新审查
4025
+ - [ ] 需要更新 spec(超范围实现合理)
4026
+ ```
4027
+
4028
+ **输出格式**:Spec Review 报告:意图对齐矩阵 + 三级偏差列表(🔴意图偏差 / 🟡遗漏需求 / 💡超范围)+ 审查结论
4029
+
4030
+ **注意事项**:
4031
+ - Spec Review 不替代 Code Review,两者互补:Spec Review 审意图,Code Review 审实现质量
4032
+ - 如果没有对应的 spec delta,说明该改动未经过规范的 spec 流程,需补充
4033
+ - 超范围实现不一定是问题,但必须显式确认并按需更新 spec
4034
+ - GIVEN/WHEN/THEN 场景是最好的对齐锚点,每个场景都应在代码中有对应的实现
4035
+
4036
+ ---
4037
+
3797
4038
  *Ethan - Your AI Workflow Assistant | 让每一步都有据可依*