@specpow/framework 0.5.11 → 0.5.13

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 (81) hide show
  1. package/builtin/schemas/bug-fix/schema.yaml +77 -0
  2. package/builtin/schemas/bug-fix/templates/analysis.md +43 -0
  3. package/builtin/schemas/bug-fix/templates/fix-plan.md +19 -0
  4. package/builtin/schemas/bug-fix/templates/proposal.md +30 -0
  5. package/builtin/schemas/bug-fix/templates/regression-test.md +70 -0
  6. package/builtin/schemas/crud-module/schema.yaml +90 -0
  7. package/builtin/schemas/crud-module/templates/api-docs.md +146 -0
  8. package/builtin/schemas/crud-module/templates/design.md +36 -0
  9. package/builtin/schemas/crud-module/templates/menu-register.md +72 -0
  10. package/builtin/schemas/crud-module/templates/proposal.md +30 -0
  11. package/builtin/schemas/crud-module/templates/spec.md +33 -0
  12. package/builtin/schemas/crud-module/templates/tasks.md +57 -0
  13. package/builtin/schemas/spec-driven/schema.yaml +87 -0
  14. package/builtin/schemas/spec-driven/templates/design.md +54 -0
  15. package/builtin/schemas/spec-driven/templates/proposal.md +31 -0
  16. package/builtin/schemas/spec-driven/templates/spec.md +42 -0
  17. package/builtin/schemas/spec-driven/templates/tasks.md +98 -0
  18. package/builtin/skills/business-code-review/SKILL.md +78 -0
  19. package/builtin/skills/business-db-design/SKILL.md +74 -0
  20. package/builtin/skills/business-deploy-check/SKILL.md +72 -0
  21. package/builtin/skills/business-doc-sync/SKILL.md +72 -0
  22. package/builtin/skills/business-java-codegen/SKILL.md +97 -0
  23. package/builtin/skills/business-menu-register/SKILL.md +63 -0
  24. package/builtin/skills/business-prd-writer/SKILL.md +80 -0
  25. package/builtin/skills/business-test-gen/SKILL.md +82 -0
  26. package/builtin/skills/business-ui-codegen/SKILL.md +104 -0
  27. package/builtin/skills/cli-router/SKILL.md +107 -0
  28. package/builtin/skills/execution-finish-branch/SKILL.md +58 -0
  29. package/builtin/skills/execution-git-worktrees/SKILL.md +48 -0
  30. package/builtin/skills/execution-parallel-agents/SKILL.md +46 -0
  31. package/builtin/skills/execution-receiving-review/SKILL.md +47 -0
  32. package/builtin/skills/execution-requesting-review/SKILL.md +51 -0
  33. package/builtin/skills/execution-sdd-orchestrator/SKILL.md +366 -0
  34. package/builtin/skills/execution-subagent-dispatch/SKILL.md +295 -0
  35. package/builtin/skills/execution-subagent-driven-dev/SKILL.md +143 -0
  36. package/builtin/skills/execution-systematic-debugging/SKILL.md +95 -0
  37. package/builtin/skills/execution-tdd/SKILL.md +74 -0
  38. package/builtin/skills/execution-verification-before-completion/SKILL.md +75 -0
  39. package/builtin/skills/meta-create-skill/SKILL.md +374 -0
  40. package/builtin/skills/meta-using-skills/SKILL.md +97 -0
  41. package/builtin/skills/meta-writing-skills/SKILL.md +66 -0
  42. package/builtin/skills/planning-apply-change/SKILL.md +194 -0
  43. package/builtin/skills/planning-archive-change/SKILL.md +53 -0
  44. package/builtin/skills/planning-explore/SKILL.md +99 -0
  45. package/builtin/skills/planning-onboard/SKILL.md +60 -0
  46. package/builtin/skills/planning-propose/SKILL.md +156 -0
  47. package/builtin/skills/planning-update-change/SKILL.md +45 -0
  48. package/builtin/skills/planning-verify-change/SKILL.md +72 -0
  49. package/builtin/skills/planning-write-design/SKILL.md +59 -0
  50. package/builtin/skills/planning-write-plans/SKILL.md +55 -0
  51. package/builtin/skills/planning-write-specs/SKILL.md +73 -0
  52. package/builtin/skills/using-specpow/SKILL.md +232 -0
  53. package/dist/cli/index.d.ts.map +1 -1
  54. package/dist/cli/index.js +3 -0
  55. package/dist/cli/index.js.map +1 -1
  56. package/dist/commands/apply.d.ts.map +1 -1
  57. package/dist/commands/apply.js +49 -2
  58. package/dist/commands/apply.js.map +1 -1
  59. package/dist/commands/init.d.ts.map +1 -1
  60. package/dist/commands/init.js +85 -14
  61. package/dist/commands/init.js.map +1 -1
  62. package/dist/commands/propose.d.ts +1 -0
  63. package/dist/commands/propose.d.ts.map +1 -1
  64. package/dist/commands/propose.js +73 -2
  65. package/dist/commands/propose.js.map +1 -1
  66. package/dist/core/config/config-schema.d.ts +24 -0
  67. package/dist/core/config/config-schema.d.ts.map +1 -1
  68. package/dist/core/config/config-schema.js +2 -0
  69. package/dist/core/config/config-schema.js.map +1 -1
  70. package/dist/core/migration/index.js +1 -1
  71. package/dist/core/migration/index.js.map +1 -1
  72. package/dist/core/sdd-engine/ai-caller.d.ts.map +1 -1
  73. package/dist/core/sdd-engine/ai-caller.js +60 -35
  74. package/dist/core/sdd-engine/ai-caller.js.map +1 -1
  75. package/dist/core/sdd-engine/controller.js +1 -1
  76. package/dist/core/sdd-engine/controller.js.map +1 -1
  77. package/dist/core/sdd-engine/parallel-dispatcher.js +1 -1
  78. package/dist/core/sdd-engine/parallel-dispatcher.js.map +1 -1
  79. package/dist/core/sdd-engine/types.d.ts +1 -0
  80. package/dist/core/sdd-engine/types.d.ts.map +1 -1
  81. package/package.json +4 -5
@@ -0,0 +1,97 @@
1
+ ---
2
+ name: business-java-codegen
3
+ description: SpecPow business-java-codegen skill
4
+ ---
5
+
6
+ # Java 代码生成
7
+
8
+ > 根据设计文档和数据库表结构,生成符合项目规范的 Java 后端代码(Entity/Mapper/Service/Controller 四层)
9
+
10
+ ## 技术栈配置
11
+
12
+ 本技能的**默认**技术栈为 MyBatis-Plus + Spring Boot,但会根据项目实际使用的框架自动适配:
13
+
14
+ - **ORM 框架** — 优先使用项目已有的 ORM(MyBatis-Plus / JPA / MyBatis / JDBC Template)
15
+ - **基类** — 扫描项目已有 BaseEntity、BaseController 等基类并继承
16
+ - **包名规范** — 从已有代码推断包结构,而非硬编码
17
+ - **返回格式** — 使用项目已有的统一返回类型(Result / Response / ApiResponse)
18
+
19
+ 如果项目无已有代码可参考,则在阶段 1 询问用户确认技术选型。
20
+
21
+ ## 触发条件
22
+
23
+ - 用户要求生成 Java 代码
24
+ - 执行 apply-change 时涉及后端任务
25
+ - 用户提到"生成接口"/"写 Service"/"创建 Controller"
26
+
27
+ ## 铁律
28
+
29
+ 1. **先查 DB 再生成** — 必须确认表结构已存在,字段名以数据库为准
30
+ 2. **四层齐全** — Entity、Mapper(XML)、Service(Interface+Impl)、Controller 缺一不可
31
+ 3. **不造轮子** — 使用项目已有的基类(BaseEntity、BaseController 等)
32
+ 4. **注释完整** — 类注释、方法注释、关键逻辑行注释
33
+
34
+ ## 工作流
35
+
36
+ ### 阶段 1:上下文收集
37
+
38
+ 1. 读取 design.md 获取接口定义和数据模型
39
+ 2. 查询数据库表结构(DDL 或已有 Entity)
40
+ 3. **扫描项目已有代码,识别技术栈**(ORM 框架、基类、包名、返回格式)
41
+ 4. 如果项目无已有代码,询问用户确认技术选型
42
+
43
+ ### 阶段 2:代码生成
44
+
45
+ 按以下顺序生成:
46
+
47
+ **2.1 Entity(实体类)**
48
+ ```
49
+ - 继承 BaseEntity(如有)
50
+ - 字段与数据库列一一对应
51
+ - 使用 @Table、@Column 注解
52
+ - 包含 getter/setter 或 @Data
53
+ ```
54
+
55
+ **2.2 Mapper(数据访问层)**
56
+ ```
57
+ - 继承 BaseMapper<T>(MyBatis-Plus)或对应基类
58
+ - 自定义 SQL 写在 XML 中
59
+ - 复杂查询方法命名:select + By + 条件
60
+ ```
61
+
62
+ **2.3 Service(业务逻辑层)**
63
+ ```
64
+ - 接口 + 实现分离
65
+ - 继承 IService<T> / ServiceImpl(如有基类)
66
+ - 事务注解 @Transactional 加在实现类方法上
67
+ - 业务异常使用自定义 BusinessException
68
+ ```
69
+
70
+ **2.4 Controller(控制层)**
71
+ ```
72
+ - 继承 BaseController(如有)
73
+ - RESTful 风格:GET 查询、POST 创建、PUT 更新、DELETE 删除
74
+ - 参数校验使用 @Valid + DTO
75
+ - 统一返回 Result<T> 格式
76
+ ```
77
+
78
+ ### 阶段 3:验证
79
+
80
+ 1. 编译检查:确保无语法错误
81
+ 2. 依赖检查:所有 import 可解析
82
+ 3. 规范检查:命名、注释、分层符合规范
83
+
84
+ ## 输出格式
85
+
86
+ 每个文件输出时标注:
87
+ ```
88
+ 文件: src/main/java/com/company/xxx/entity/XxxEntity.java
89
+ 类型: Entity
90
+ 依赖: BaseEntity, Lombok
91
+ ```
92
+
93
+ ## 红旗(立即停止)
94
+
95
+ - 数据库表不存在 → 先执行 DB 设计
96
+ - 项目无基类且用户未指定 → 询问用户
97
+ - 发现已有同名类 → 报告冲突,不覆盖
@@ -0,0 +1,63 @@
1
+ ---
2
+ name: business-menu-register
3
+ description: SpecPow business-menu-register skill
4
+ ---
5
+
6
+ # 菜单注册
7
+
8
+ > 根据新增页面/功能,生成系统菜单注册 SQL 和路由配置
9
+
10
+ ## 触发条件
11
+
12
+ - 新增页面需要注册到系统菜单
13
+ - 用户提到"注册菜单"/"添加菜单"/"系统菜单"
14
+ - 新模块的权限配置
15
+
16
+ ## 铁律
17
+
18
+ 1. **层级正确** — 一级菜单 → 二级菜单 → 按钮权限
19
+ 2. **ID 唯一** — 菜单 ID 不与已有冲突
20
+ 3. **路径一致** — 菜单路径与前端路由一致
21
+ 4. **权限编码规范** — 模块:功能:操作
22
+
23
+ ## 菜单结构
24
+
25
+ ```sql
26
+ -- 一级菜单(目录)
27
+ INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, menu_type, visible, status)
28
+ VALUES (2000, '模块名称', 0, 1, '/module', 'M', '0', '0');
29
+
30
+ -- 二级菜单(页面)
31
+ INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, menu_type, visible, status)
32
+ VALUES (2001, '页面名称', 2000, 1, 'page', 'module/page/index', 'C', '0', '0');
33
+
34
+ -- 按钮权限
35
+ INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, menu_type, perms, visible, status)
36
+ VALUES (2011, '新增', 2001, 1, 'F', 'module:entity:add', '0', '0');
37
+ INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, menu_type, perms, visible, status)
38
+ VALUES (2012, '修改', 2001, 2, 'F', 'module:entity:edit', '0', '0');
39
+ INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, menu_type, perms, visible, status)
40
+ VALUES (2013, '删除', 2001, 3, 'F', 'module:entity:remove', '0', '0');
41
+ INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, menu_type, perms, visible, status)
42
+ VALUES (2014, '查询', 2001, 4, 'F', 'module:entity:query', '0', '0');
43
+ ```
44
+
45
+ ## 工作流
46
+
47
+ 1. **扫描已有菜单** — 查询最大 menu_id,避免冲突
48
+ 2. **确认菜单层级** — 目录(M) → 菜单(C) → 按钮(F)
49
+ 3. **生成 SQL** — 按层级顺序生成 INSERT 语句
50
+ 4. **生成路由** — 对应的前端路由配置
51
+ 5. **验证** — 检查 ID 唯一性和路径一致性
52
+
53
+ ## 输出格式
54
+
55
+ 1. 菜单注册 SQL(可直接执行)
56
+ 2. 前端路由配置
57
+ 3. 权限编码清单
58
+
59
+ ## 红旗
60
+
61
+ - 菜单 ID 冲突 → 重新分配
62
+ - 路径与已有路由冲突 → 报告冲突
63
+ - 缺少父级菜单 → 先创建目录
@@ -0,0 +1,80 @@
1
+ ---
2
+ name: business-prd-writer
3
+ description: SpecPow business-prd-writer skill
4
+ ---
5
+
6
+ # PRD 编写
7
+
8
+ > 将用户口述、会议纪要、原型截图转化为结构化 PRD 文档
9
+
10
+ ## 触发条件
11
+
12
+ - 用户描述一个新功能/需求
13
+ - 用户提到"写 PRD"/"需求文档"/"产品需求"
14
+ - 项目启动阶段的需求梳理
15
+
16
+ ## 铁律
17
+
18
+ 1. **不替用户决定** — 不确定的地方标注 [待确认]
19
+ 2. **用例驱动** — 每个功能点至少 1 个用例
20
+ 3. **可验证** — 每个需求有明确的验收标准
21
+ 4. **边界清晰** — 明确"做什么"和"不做什么"
22
+
23
+ ## PRD 结构
24
+
25
+ ```markdown
26
+ # [功能名称] PRD
27
+
28
+ ## 1. 背景与目标
29
+ - 业务背景
30
+ - 核心目标(可量化)
31
+ - 成功指标
32
+
33
+ ## 2. 用户角色
34
+ | 角色 | 描述 | 核心诉求 |
35
+ |------|------|----------|
36
+
37
+ ## 3. 功能需求
38
+ ### 3.1 [功能模块]
39
+ - 用例 UC-001: [用例名称]
40
+ - 前置条件:
41
+ - 主流程:
42
+ - 备选流程:
43
+ - 异常流程:
44
+
45
+ ## 4. 非功能需求
46
+ - 性能要求
47
+ - 安全要求
48
+ - 兼容性要求
49
+
50
+ ## 5. 数据需求
51
+ - 核心实体
52
+ - 字段清单
53
+ - 数据流向
54
+
55
+ ## 6. 界面原型
56
+ - 页面列表
57
+ - 关键交互说明
58
+
59
+ ## 7. 排期建议
60
+ - 优先级排序(P0/P1/P2)
61
+ - 依赖关系
62
+
63
+ ## 8. 待确认项
64
+ - [ ] 问题1
65
+ - [ ] 问题2
66
+ ```
67
+
68
+ ## 工作流
69
+
70
+ 1. **收集信息** — 与用户对话,提取关键需求
71
+ 2. **结构化** — 按 PRD 模板整理
72
+ 3. **补充细节** — 推断合理的用例和边界
73
+ 4. **标注不确定** — 用 [待确认] 标记
74
+ 5. **用户确认** — 输出后请用户审核
75
+
76
+ ## 红旗
77
+
78
+ - 用户描述模糊 → 提出澄清问题,不猜测
79
+ - 需求超出当前迭代 → 标注"后续迭代"
80
+ - 涉及其他系统 → 标注集成依赖
@@ -0,0 +1,82 @@
1
+ ---
2
+ name: business-test-gen
3
+ description: SpecPow business-test-gen skill
4
+ ---
5
+
6
+ # 测试代码生成
7
+
8
+ > 根据业务层代码,生成单元测试
9
+
10
+ ## 技术栈配置
11
+
12
+ 本技能的**默认**技术栈为 JUnit5 + Mockito(Java),但会根据项目实际使用的测试框架自动适配:
13
+
14
+ - **测试框架** — 优先使用项目已有的框架(JUnit5 / JUnit4 / TestNG / Jest / Vitest / pytest)
15
+ - **Mock 工具** — 匹配项目已有 Mock 方案(Mockito / Sinon / unittest.mock / gomock)
16
+ - **断言库** — 使用项目已有的断言风格(AssertJ / Hamcrest / Jest expect / chai)
17
+ - **运行命令** — 从项目 package.json / pom.xml / build.gradle 推断测试运行命令
18
+
19
+ ## 触发条件
20
+
21
+ - 用户要求生成测试代码
22
+ - 执行 apply-change 中任务包含验证步骤
23
+ - 用户提到"写测试"/"单测"/"覆盖率"
24
+
25
+ ## 铁律
26
+
27
+ 1. **测行为不测实现** — 测试输入→输出,不关心内部怎么实现
28
+ 2. **Mock 外部依赖** — 数据库、RPC、HTTP 全部 Mock
29
+ 3. **边界必测** — null、空集合、极值、异常路径
30
+ 4. **失败自修** — 测试失败自动修复,最多 3 轮
31
+
32
+ ## 工作流
33
+
34
+ ### 阶段 1:分析被测代码
35
+ 1. 读取目标 Service/Mapper 类
36
+ 2. 识别所有 public 方法
37
+ 3. 分析方法依赖(需要 Mock 的对象)
38
+ 4. 提取业务规则和边界条件
39
+
40
+ ### 阶段 2:生成测试
41
+
42
+ **测试类结构:**
43
+ ```java
44
+ @ExtendWith(MockitoExtension.class)
45
+ class XxxServiceTest {
46
+
47
+ @InjectMocks
48
+ private XxxServiceImpl xxxService;
49
+
50
+ @Mock
51
+ private XxxMapper xxxMapper;
52
+
53
+ // 每个方法至少 2 个测试:正常路径 + 异常路径
54
+ @Test
55
+ @DisplayName("方法名 - 场景描述")
56
+ void methodName_scenario() {
57
+ // Given
58
+ // When
59
+ // Then
60
+ }
61
+ }
62
+ ```
63
+
64
+ **覆盖场景类型:**
65
+ - 正常输入 → 预期输出
66
+ - null 参数 → 抛出异常或返回默认值
67
+ - 空集合 → 正确处理
68
+ - 数据库无记录 → 返回 null
69
+ - 业务规则违反 → 抛出 BusinessException
70
+
71
+ ### 阶段 3:执行与自修
72
+
73
+ 1. 运行测试:`mvn test -Dtest=XxxServiceTest`
74
+ 2. 如果失败,分析错误原因
75
+ 3. 修复测试代码(不修改被测代码)
76
+ 4. 最多 3 轮,仍失败则报告问题
77
+
78
+ ## 红旗
79
+
80
+ - 被测类不存在 → 先生成业务代码
81
+ - 项目无测试框架 → 询问用户选择测试框架
82
+ - 覆盖率低于 60% → 补充测试用例
@@ -0,0 +1,104 @@
1
+ ---
2
+ name: business-ui-codegen
3
+ description: SpecPow business-ui-codegen skill
4
+ ---
5
+
6
+ # UI 代码生成
7
+
8
+ > 根据设计文档和接口定义,生成前端页面/UI 代码
9
+
10
+ ## 技术栈配置
11
+
12
+ 本技能的**默认**技术栈为 Vue2 + View Design,但会根据项目实际使用的框架自动适配:
13
+
14
+ - **前端框架** — 优先使用项目已有的框架(Vue2 / Vue3 / React / Angular)
15
+ - **UI 组件库** — 匹配项目已有组件库(View Design / Element / Ant Design / MUI)
16
+ - **状态管理** — 使用项目已有的状态管理(Vuex / Pinia / Redux / NgRx)
17
+ - **样式方案** — 沿用项目已有的 CSS 方案(CSS Modules / Scoped CSS / Tailwind / Less / SCSS)
18
+
19
+ 如果项目无已有前端代码,则在阶段 1 询问用户确认技术选型。
20
+
21
+ ## 触发条件
22
+
23
+ - 用户要求生成前端页面/UI 代码
24
+ - 执行 apply-change 时涉及前端任务
25
+ - 用户提到"生成页面"/"写组件"/"创建表单"
26
+
27
+ ## 铁律
28
+
29
+ 1. **接口先行** — 必须确认后端 API 已定义(路径、参数、返回值)
30
+ 2. **组件复用** — 优先使用 View Design 组件,不造轮子
31
+ 3. **样式规范** — 使用项目已有的 CSS 变量/mixin
32
+ 4. **响应式** — 表格、表单必须适配常见分辨率
33
+
34
+ ## 工作流
35
+
36
+ ### 阶段 1:上下文收集
37
+
38
+ 1. 读取 design.md 获取页面结构和交互设计
39
+ 2. 确认 API 接口定义(路径、Method、参数、响应)
40
+ 3. **扫描项目已有页面,识别技术栈**(框架、组件库、状态管理、样式方案)
41
+ 4. 如果项目无已有前端代码,询问用户确认技术选型
42
+ 5. 确认路由配置方式
43
+
44
+ ### 阶段 2:代码生成
45
+
46
+ 按以下顺序生成:
47
+
48
+ **2.1 API 接口文件**
49
+ ```
50
+ 文件: src/api/xxx.js
51
+ - 使用 axios 封装
52
+ - 每个接口一个导出函数
53
+ - 请求/响应拦截器统一处理
54
+ ```
55
+
56
+ **2.2 页面主文件**
57
+ ```
58
+ 文件: src/views/xxx/index.vue
59
+ - <template>: View Design 组件组合
60
+ - <script>: data/methods/computed/watch 标准结构
61
+ - <style scoped>: 局部样式
62
+ ```
63
+
64
+ **2.3 列表页模板**
65
+ ```
66
+ - 搜索表单(Form + FormItem)
67
+ - 操作按钮栏(新增/导出/批量操作)
68
+ - 数据表格(Table + columns 配置)
69
+ - 分页(Page 组件)
70
+ - 新增/编辑弹窗(Modal + Form)
71
+ ```
72
+
73
+ **2.4 表单页模板**
74
+ ```
75
+ - 表单验证规则(rules)
76
+ - 提交前校验
77
+ - 返回/重置按钮
78
+ ```
79
+
80
+ **2.5 路由配置**
81
+ ```
82
+ - 路由路径与菜单对应
83
+ - meta 包含 title、icon、权限
84
+ ```
85
+
86
+ ### 阶段 3:验证
87
+
88
+ 1. 语法检查:Vue 模板无报错
89
+ 2. 组件引用:所有使用的组件已注册
90
+ 3. API 调用:接口路径和参数与设计一致
91
+
92
+ ## 输出格式
93
+
94
+ ```
95
+ 文件: src/views/xxx/index.vue
96
+ 类型: 页面组件
97
+ 依赖: View Design, axios, 路由
98
+ ```
99
+
100
+ ## 红旗(立即停止)
101
+
102
+ - API 接口未定义 → 先完成后端
103
+ - 项目未使用 View Design → 确认 UI 框架
104
+ - 发现已有同名页面 → 报告冲突
@@ -0,0 +1,107 @@
1
+ ---
2
+ name: cli-router
3
+ version: 1.0.0
4
+ trigger: on-demand
5
+ description: SpecPow CLI 命令路由 — 将用户意图映射到 CLI 命令执行
6
+ ---
7
+
8
+ # SpecPow CLI 路由技能
9
+
10
+ 当用户请求执行 SpecPow CLI 命令时,按以下规则执行。
11
+
12
+ ## 铁律
13
+
14
+ 1. **所有 CLI 命令通过 Bash 工具执行**,不在对话中模拟输出
15
+ 2. **先检查状态**:执行任何命令前先 `specpow status`
16
+ 3. **展示完整输出**:将命令输出完整展示给用户
17
+ 4. **链式引导**:执行完一步后建议下一步
18
+
19
+ ## 意图 → 命令映射表
20
+
21
+ | 用户说 | 执行命令 |
22
+ |--------|---------|
23
+ | "探索需求" / "explore" / "specpow explore" | `specpow explore "主题"` |
24
+ | "创建提案" / "propose" / "specpow propose" | `specpow propose <name>` |
25
+ | "执行" / "apply" / "实现" / "specpow apply" | `specpow apply` |
26
+ | "验证" / "verify" / "检查" / "specpow verify" | `specpow verify` |
27
+ | "归档" / "archive" / "specpow archive" | `specpow archive` |
28
+ | "状态" / "status" / "specpow status" | `specpow status` |
29
+ | "调试" / "debug" / "specpow debug" | `specpow debug "描述"` |
30
+ | "doctor" / "诊断" / "specpow doctor" | `specpow doctor` |
31
+ | "review" / "审查" / "specpow review" | `specpow review` |
32
+ | "schemas" / "schema 列表" | `specpow schemas` |
33
+ | "更新" / "update" / "specpow update" | `specpow update` |
34
+ | "配置" / "config" / "specpow config" | `specpow config` |
35
+
36
+ ## 执行规则
37
+
38
+ ### 交互式命令处理
39
+
40
+ `specpow explore` 是交互式命令(使用 readline),在 Claude Code 的 Bash 工具中无法交互。
41
+ 遇到此命令时:
42
+ 1. 告诉用户需要在终端中运行:`specpow explore "主题"`
43
+ 2. 或者尝试使用 `--json` 标志获取非交互式输出(如果支持)
44
+ 3. 如果用户坚持在 Claude Code 中执行,使用苏格拉底式提问手动模拟探索流程
45
+
46
+ ### 非交互式命令
47
+
48
+ 其他所有命令(propose/apply/verify/archive/status)都是非交互式的,直接通过 Bash 执行:
49
+
50
+ ```bash
51
+ # 示例:执行状态检查
52
+ specpow status
53
+
54
+ # 示例:创建变更提案
55
+ specpow propose add-login
56
+
57
+ # 示例:使用特定 schema
58
+ specpow propose fix-bug --schema bug-fix
59
+
60
+ # 示例:验证变更
61
+ specpow verify --change add-login
62
+
63
+ # 示例:归档变更
64
+ specpow archive --change add-login
65
+ ```
66
+
67
+ ### 错误处理
68
+
69
+ 命令失败时:
70
+ 1. 展示完整错误信息
71
+ 2. 分析可能的原因
72
+ 3. 建议解决方案
73
+ 4. 如果适用,运行 `specpow doctor` 进行诊断
74
+
75
+ ### 工作流引导
76
+
77
+ 根据当前阶段引导用户:
78
+
79
+ ```
80
+ [无变更] → propose → [有提案] → apply → [已实现] → verify → [已验证] → archive
81
+ ```
82
+
83
+ 每次执行 `specpow status` 后,根据阶段推荐下一步操作:
84
+ - 无活跃变更 → 建议 `/specpow-propose <name>`
85
+ - 有提案但工件未完成 → 建议编辑工件文件
86
+ - 工件已完成 → 建议 `/specpow-apply`
87
+ - 已实现 → 建议 `/specpow-verify`
88
+ - 已验证 → 建议 `/specpow-archive`
89
+
90
+ ## 合理化防御表
91
+
92
+ | 你以为的 | 实际应该做的 |
93
+ |---------|------------|
94
+ | "我可以直接告诉用户命令是什么" | 用 Bash 工具执行命令并展示结果 |
95
+ | "这个命令太简单了,不需要执行" | 仍然执行,展示实际输出 |
96
+ | "用户应该自己去终端运行" | 用户要求你执行,你就执行 |
97
+ | "explore 是交互式的,我模拟一下" | 告诉用户需要在终端运行,或手动模拟苏格拉底式提问 |
98
+
99
+ ## 红旗
100
+
101
+ 以下想法意味着 STOP:
102
+
103
+ | 想法 | 现实 |
104
+ |------|------|
105
+ | "我可以假装执行了命令" | 必须真正用 Bash 执行并展示输出 |
106
+ | "这个命令会改变什么,让我先确认" | 直接执行,展示结果让用户确认 |
107
+ | "用户可能不知道这个命令" | 执行命令后解释输出含义 |
@@ -0,0 +1,58 @@
1
+ ---
2
+ name: execution-finish-branch
3
+ description: SpecPow execution-finish-branch skill
4
+ ---
5
+
6
+ # 完成分支
7
+
8
+ > 分支开发完成后的合并和清理流程
9
+
10
+ ## 触发条件
11
+
12
+ - 变更所有任务完成 — 准备合并到主分支
13
+ - 用户提到"完成分支"/"合并"/"清理"
14
+
15
+ ## 铁律
16
+
17
+ 1. **验证先行** — 合并前必须通过所有检查
18
+ 2. **squash 合并** — 保持主分支历史整洁
19
+ 3. **删除分支** — 合并后删除功能分支
20
+ 4. **更新状态** — 归档变更
21
+
22
+ ## 工作流
23
+
24
+ ### 1. 最终验证
25
+ ```bash
26
+ # 确保测试通过
27
+ pnpm test
28
+
29
+ # 确保构建通过
30
+ pnpm build
31
+
32
+ # 确保无未提交变更
33
+ git status
34
+ ```
35
+
36
+ ### 2. 合并
37
+ ```bash
38
+ git checkout main
39
+ git merge --squash feature-branch
40
+ git commit -m "feat: 变更描述"
41
+ ```
42
+
43
+ ### 3. 清理
44
+ ```bash
45
+ git branch -d feature-branch
46
+ git worktree remove ../project-feature # 如果使用了 worktree
47
+ ```
48
+
49
+ ### 4. 归档变更
50
+ ```bash
51
+ specpow archive <change-id>
52
+ ```
53
+
54
+ ## 红旗
55
+
56
+ - 测试未通过 → 不合并
57
+ - 有冲突未解决 → 先解决冲突
58
+ - 未归档变更 → 完成归档
@@ -0,0 +1,48 @@
1
+ ---
2
+ name: execution-git-worktrees
3
+ description: SpecPow execution-git-worktrees skill
4
+ ---
5
+
6
+ # Git 工作树
7
+ > 使用 git worktree 管理多个并行开发分支
8
+
9
+ ## 触发条件
10
+
11
+ - 需要同时处理多个变更
12
+ - 用户提到"工作树"/"worktree"/"并行开发"
13
+
14
+ ## 铁律
15
+
16
+ 1. **一树一分支** — 每个 worktree 对应独立分支
17
+ 2. **不共享 node_modules** — 每个工作树独立安装依赖
18
+ 3. **完成后清理** — 合并后删除 worktree
19
+
20
+ ## 工作流
21
+
22
+ ### 创建 worktree
23
+ ```bash
24
+ git worktree add ../project-feature-a feature-a
25
+ cd ../project-feature-a
26
+ pnpm install
27
+ ```
28
+
29
+ ### 列出 worktree
30
+ ```bash
31
+ git worktree list
32
+ ```
33
+
34
+ ### 删除 worktree
35
+ ```bash
36
+ git worktree remove ../project-feature-a
37
+ ```
38
+
39
+ ## 适用场景
40
+
41
+ - 同时开发多个需求
42
+ - 紧急修复需要中断当前工作
43
+ - 对比不同分支的实现
44
+
45
+ ## 红旗
46
+
47
+ - worktree 超过 5 个 → 清理不用的
48
+ - 忘记切回主 worktree → 注意当前工作目录
@@ -0,0 +1,46 @@
1
+ ---
2
+ name: execution-parallel-agents
3
+ description: 并行子代理调度。识别独立问题域,并行分发多个子代理同时处理。来自 Superpowers。
4
+ ---
5
+
6
+ # 并行代理调度
7
+
8
+ ## 何时使用
9
+
10
+ - 有多个独立的问题域
11
+ - 问题之间没有依赖关系
12
+ - 想要加速处理
13
+
14
+ ## 流程
15
+
16
+ ### 1. 识别独立性
17
+ 分析问题,识别可以独立处理的子问题:
18
+ - 不同的文件/模块
19
+ - 不同的功能点
20
+ - 不同的关注点(前端/后端/测试)
21
+
22
+ ### 2. 验证独立性
23
+ 确保子问题之间:
24
+ - 不修改同一个文件
25
+ - 不依赖彼此的输出
26
+ - 接口已经定义清楚
27
+
28
+ ### 3. 并行分发
29
+
30
+ 为每个子问题分发一个子代理:
31
+ - 每个子代理有独立的上下文
32
+ - 每个子代理有明确的范围
33
+ - 每个子代理有验证标准
34
+
35
+ ### 4. 合并结果
36
+
37
+ 所有子代理完成后:
38
+ - 检查是否有冲突
39
+ - 运行完整测试套件
40
+ - 集成验证
41
+
42
+ ## 注意事项
43
+
44
+ - **绝不**并行修改同一个文件
45
+ - 合并后必须运行完整测试
46
+ - 如果子代理之间有依赖,改用串行