@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.
- package/builtin/schemas/bug-fix/schema.yaml +77 -0
- package/builtin/schemas/bug-fix/templates/analysis.md +43 -0
- package/builtin/schemas/bug-fix/templates/fix-plan.md +19 -0
- package/builtin/schemas/bug-fix/templates/proposal.md +30 -0
- package/builtin/schemas/bug-fix/templates/regression-test.md +70 -0
- package/builtin/schemas/crud-module/schema.yaml +90 -0
- package/builtin/schemas/crud-module/templates/api-docs.md +146 -0
- package/builtin/schemas/crud-module/templates/design.md +36 -0
- package/builtin/schemas/crud-module/templates/menu-register.md +72 -0
- package/builtin/schemas/crud-module/templates/proposal.md +30 -0
- package/builtin/schemas/crud-module/templates/spec.md +33 -0
- package/builtin/schemas/crud-module/templates/tasks.md +57 -0
- package/builtin/schemas/spec-driven/schema.yaml +87 -0
- package/builtin/schemas/spec-driven/templates/design.md +54 -0
- package/builtin/schemas/spec-driven/templates/proposal.md +31 -0
- package/builtin/schemas/spec-driven/templates/spec.md +42 -0
- package/builtin/schemas/spec-driven/templates/tasks.md +98 -0
- package/builtin/skills/business-code-review/SKILL.md +78 -0
- package/builtin/skills/business-db-design/SKILL.md +74 -0
- package/builtin/skills/business-deploy-check/SKILL.md +72 -0
- package/builtin/skills/business-doc-sync/SKILL.md +72 -0
- package/builtin/skills/business-java-codegen/SKILL.md +97 -0
- package/builtin/skills/business-menu-register/SKILL.md +63 -0
- package/builtin/skills/business-prd-writer/SKILL.md +80 -0
- package/builtin/skills/business-test-gen/SKILL.md +82 -0
- package/builtin/skills/business-ui-codegen/SKILL.md +104 -0
- package/builtin/skills/cli-router/SKILL.md +107 -0
- package/builtin/skills/execution-finish-branch/SKILL.md +58 -0
- package/builtin/skills/execution-git-worktrees/SKILL.md +48 -0
- package/builtin/skills/execution-parallel-agents/SKILL.md +46 -0
- package/builtin/skills/execution-receiving-review/SKILL.md +47 -0
- package/builtin/skills/execution-requesting-review/SKILL.md +51 -0
- package/builtin/skills/execution-sdd-orchestrator/SKILL.md +366 -0
- package/builtin/skills/execution-subagent-dispatch/SKILL.md +295 -0
- package/builtin/skills/execution-subagent-driven-dev/SKILL.md +143 -0
- package/builtin/skills/execution-systematic-debugging/SKILL.md +95 -0
- package/builtin/skills/execution-tdd/SKILL.md +74 -0
- package/builtin/skills/execution-verification-before-completion/SKILL.md +75 -0
- package/builtin/skills/meta-create-skill/SKILL.md +374 -0
- package/builtin/skills/meta-using-skills/SKILL.md +97 -0
- package/builtin/skills/meta-writing-skills/SKILL.md +66 -0
- package/builtin/skills/planning-apply-change/SKILL.md +194 -0
- package/builtin/skills/planning-archive-change/SKILL.md +53 -0
- package/builtin/skills/planning-explore/SKILL.md +99 -0
- package/builtin/skills/planning-onboard/SKILL.md +60 -0
- package/builtin/skills/planning-propose/SKILL.md +156 -0
- package/builtin/skills/planning-update-change/SKILL.md +45 -0
- package/builtin/skills/planning-verify-change/SKILL.md +72 -0
- package/builtin/skills/planning-write-design/SKILL.md +59 -0
- package/builtin/skills/planning-write-plans/SKILL.md +55 -0
- package/builtin/skills/planning-write-specs/SKILL.md +73 -0
- package/builtin/skills/using-specpow/SKILL.md +232 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +3 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/commands/apply.d.ts.map +1 -1
- package/dist/commands/apply.js +49 -2
- package/dist/commands/apply.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +85 -14
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/propose.d.ts +1 -0
- package/dist/commands/propose.d.ts.map +1 -1
- package/dist/commands/propose.js +73 -2
- package/dist/commands/propose.js.map +1 -1
- package/dist/core/config/config-schema.d.ts +24 -0
- package/dist/core/config/config-schema.d.ts.map +1 -1
- package/dist/core/config/config-schema.js +2 -0
- package/dist/core/config/config-schema.js.map +1 -1
- package/dist/core/migration/index.js +1 -1
- package/dist/core/migration/index.js.map +1 -1
- package/dist/core/sdd-engine/ai-caller.d.ts.map +1 -1
- package/dist/core/sdd-engine/ai-caller.js +60 -35
- package/dist/core/sdd-engine/ai-caller.js.map +1 -1
- package/dist/core/sdd-engine/controller.js +1 -1
- package/dist/core/sdd-engine/controller.js.map +1 -1
- package/dist/core/sdd-engine/parallel-dispatcher.js +1 -1
- package/dist/core/sdd-engine/parallel-dispatcher.js.map +1 -1
- package/dist/core/sdd-engine/types.d.ts +1 -0
- package/dist/core/sdd-engine/types.d.ts.map +1 -1
- package/package.json +4 -5
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# CRUD 任务列表
|
|
2
|
+
|
|
3
|
+
## 全局约束
|
|
4
|
+
- 分支: feature/{{branch}}
|
|
5
|
+
- 基础: main 分支最新代码
|
|
6
|
+
|
|
7
|
+
## 后端任务
|
|
8
|
+
|
|
9
|
+
### Task-001: 创建 Entity
|
|
10
|
+
- 文件: `src/main/java/com/company/{{module}}/entity/{{Entity}}.java`
|
|
11
|
+
- 依赖: 无
|
|
12
|
+
- 描述: 创建实体类,字段与数据库对应
|
|
13
|
+
- 验证: 编译通过
|
|
14
|
+
|
|
15
|
+
### Task-002: 创建 Mapper
|
|
16
|
+
- 文件: `src/main/java/com/company/{{module}}/mapper/{{Entity}}Mapper.java`, `src/main/resources/mapper/{{Entity}}Mapper.xml`
|
|
17
|
+
- 依赖: Task-001
|
|
18
|
+
- 描述: 创建数据访问层
|
|
19
|
+
- 验证: 编译通过
|
|
20
|
+
|
|
21
|
+
### Task-003: 创建 Service
|
|
22
|
+
- 文件: `src/main/java/com/company/{{module}}/service/{{Entity}}Service.java`, `src/main/java/com/company/{{module}}/service/impl/{{Entity}}ServiceImpl.java`
|
|
23
|
+
- 依赖: Task-002
|
|
24
|
+
- 描述: 创建业务逻辑层(CRUD 方法)
|
|
25
|
+
- 验证: 编译通过
|
|
26
|
+
|
|
27
|
+
### Task-004: 创建 Controller
|
|
28
|
+
- 文件: `src/main/java/com/company/{{module}}/controller/{{Entity}}Controller.java`
|
|
29
|
+
- 依赖: Task-003
|
|
30
|
+
- 描述: 创建 RESTful 接口
|
|
31
|
+
- 验证: 编译通过,接口可访问
|
|
32
|
+
|
|
33
|
+
## 前端任务
|
|
34
|
+
|
|
35
|
+
### Task-005: 创建 API 接口文件
|
|
36
|
+
- 文件: `src/api/{{entity}}.js`
|
|
37
|
+
- 依赖: Task-004
|
|
38
|
+
- 描述: 封装 axios 请求
|
|
39
|
+
- 验证: 无语法错误
|
|
40
|
+
|
|
41
|
+
### Task-006: 创建列表页
|
|
42
|
+
- 文件: `src/views/{{module}}/{{entity}}/index.vue`
|
|
43
|
+
- 依赖: Task-005
|
|
44
|
+
- 描述: 列表页(搜索+表格+分页+操作按钮)
|
|
45
|
+
- 验证: 页面可渲染
|
|
46
|
+
|
|
47
|
+
### Task-007: 创建表单弹窗
|
|
48
|
+
- 文件: `src/views/{{module}}/{{entity}}/form.vue`
|
|
49
|
+
- 依赖: Task-005
|
|
50
|
+
- 描述: 新增/编辑表单弹窗
|
|
51
|
+
- 验证: 表单验证生效
|
|
52
|
+
|
|
53
|
+
### Task-008: 注册路由和菜单
|
|
54
|
+
- 文件: `src/router/modules/{{module}}.js`
|
|
55
|
+
- 依赖: Task-006
|
|
56
|
+
- 描述: 配置路由和菜单 SQL
|
|
57
|
+
- 验证: 菜单可见,页面可访问
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# SpecPow 默认 Schema: spec-driven
|
|
2
|
+
# 四阶段工件流: proposal → specs → design → tasks → apply
|
|
3
|
+
# 融合 OpenSpec 的规范驱动 + Superpowers 的执行方法论
|
|
4
|
+
|
|
5
|
+
name: spec-driven
|
|
6
|
+
description: |
|
|
7
|
+
规格驱动开发工作流。
|
|
8
|
+
在 AI 写代码之前,让人类和 AI 对"要构建什么"达成一致。
|
|
9
|
+
然后通过 SDD 子代理驱动引擎高质量地执行实现。
|
|
10
|
+
|
|
11
|
+
apply:
|
|
12
|
+
requires:
|
|
13
|
+
- tasks # 实施前必须完成所有工件
|
|
14
|
+
|
|
15
|
+
artifacts:
|
|
16
|
+
- id: proposal
|
|
17
|
+
name: 提案
|
|
18
|
+
description: 为什么做这个变更?解决什么问题?
|
|
19
|
+
requires: []
|
|
20
|
+
template: proposal.md
|
|
21
|
+
instruction: |
|
|
22
|
+
创建变更提案。回答:
|
|
23
|
+
1. 为什么要做这个变更?(动机)
|
|
24
|
+
2. 要解决什么问题?
|
|
25
|
+
3. 成功标准是什么?
|
|
26
|
+
4. 影响范围和风险?
|
|
27
|
+
|
|
28
|
+
注意:先使用 brainstorming 技能进行需求探索,再写提案。
|
|
29
|
+
output: proposal.md
|
|
30
|
+
|
|
31
|
+
- id: specs
|
|
32
|
+
name: 规范
|
|
33
|
+
description: 系统必须做什么?(行为契约,不是实现计划)
|
|
34
|
+
requires:
|
|
35
|
+
- proposal
|
|
36
|
+
template: spec.md
|
|
37
|
+
instruction: |
|
|
38
|
+
创建 Delta 规范。使用增量操作描述变更:
|
|
39
|
+
- ADDED Requirements: 新增的需求
|
|
40
|
+
- MODIFIED Requirements: 修改的需求(包含完整更新内容)
|
|
41
|
+
- REMOVED Requirements: 移除的需求(含原因和迁移方案)
|
|
42
|
+
- RENAMED Requirements: 重命名的需求
|
|
43
|
+
|
|
44
|
+
规范是行为契约,描述系统做什么,不描述怎么做。
|
|
45
|
+
每个需求必须可验证。
|
|
46
|
+
output: specs/<capability>/spec.md
|
|
47
|
+
|
|
48
|
+
- id: design
|
|
49
|
+
name: 设计
|
|
50
|
+
description: 怎么做?技术方案和架构决策
|
|
51
|
+
requires:
|
|
52
|
+
- proposal
|
|
53
|
+
- specs
|
|
54
|
+
template: design.md
|
|
55
|
+
instruction: |
|
|
56
|
+
创建技术设计文档。包含:
|
|
57
|
+
1. 架构决策(ADR 格式)
|
|
58
|
+
2. 模块划分和接口定义
|
|
59
|
+
3. 数据模型设计
|
|
60
|
+
4. 前后端分工
|
|
61
|
+
5. 关键实现路径
|
|
62
|
+
|
|
63
|
+
如果变更较小(< 3个文件),可以跳过此工件。
|
|
64
|
+
output: design.md
|
|
65
|
+
conditional: true
|
|
66
|
+
|
|
67
|
+
- id: tasks
|
|
68
|
+
name: 任务
|
|
69
|
+
description: 实施步骤(SDD 引擎将逐个执行)
|
|
70
|
+
requires:
|
|
71
|
+
- proposal
|
|
72
|
+
- specs
|
|
73
|
+
- design
|
|
74
|
+
template: tasks.md
|
|
75
|
+
instruction: |
|
|
76
|
+
创建实现任务列表。每个任务应该:
|
|
77
|
+
1. 足够小(2-5分钟完成)
|
|
78
|
+
2. 包含精确的文件路径
|
|
79
|
+
3. 包含完整的代码或明确的修改指令
|
|
80
|
+
4. 包含验证步骤
|
|
81
|
+
5. 任务之间尽量独立(便于 SDD 并行)
|
|
82
|
+
|
|
83
|
+
格式:
|
|
84
|
+
- [ ] Task 1: <标题>
|
|
85
|
+
<详细描述,包含精确文件路径和代码>
|
|
86
|
+
验证: <如何验证>
|
|
87
|
+
output: tasks.md
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# 技术设计: <变更名称>
|
|
2
|
+
|
|
3
|
+
## 架构决策
|
|
4
|
+
|
|
5
|
+
### ADR-001: <决策标题>
|
|
6
|
+
|
|
7
|
+
**状态**: 已采纳
|
|
8
|
+
|
|
9
|
+
**背景**: <为什么需要这个决策>
|
|
10
|
+
|
|
11
|
+
**决策**: <选择了什么方案>
|
|
12
|
+
|
|
13
|
+
**备选方案**:
|
|
14
|
+
- 方案 A: <描述> — 优点/缺点
|
|
15
|
+
- 方案 B: <描述> — 优点/缺点
|
|
16
|
+
|
|
17
|
+
**后果**: <这个决策带来的影响>
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 模块划分
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
<模块图>
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## 接口定义
|
|
28
|
+
|
|
29
|
+
### <接口名>
|
|
30
|
+
|
|
31
|
+
- **路径**: `METHOD /api/xxx`
|
|
32
|
+
- **请求**:
|
|
33
|
+
- **响应**:
|
|
34
|
+
- **错误码**:
|
|
35
|
+
|
|
36
|
+
## 数据模型
|
|
37
|
+
|
|
38
|
+
### <表名/实体名>
|
|
39
|
+
|
|
40
|
+
| 字段 | 类型 | 说明 | 约束 |
|
|
41
|
+
|------|------|------|------|
|
|
42
|
+
| | | | |
|
|
43
|
+
|
|
44
|
+
## 前后端分工
|
|
45
|
+
|
|
46
|
+
| 功能 | 前端 | 后端 | 说明 |
|
|
47
|
+
|------|------|------|------|
|
|
48
|
+
| | | | |
|
|
49
|
+
|
|
50
|
+
## 关键实现路径
|
|
51
|
+
|
|
52
|
+
1. <步骤 1>
|
|
53
|
+
2. <步骤 2>
|
|
54
|
+
3. <步骤 3>
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# 变更提案: <变更名称>
|
|
2
|
+
|
|
3
|
+
## 动机
|
|
4
|
+
|
|
5
|
+
为什么要做这个变更?解决什么问题?
|
|
6
|
+
|
|
7
|
+
## 目标
|
|
8
|
+
|
|
9
|
+
- 目标 1
|
|
10
|
+
- 目标 2
|
|
11
|
+
|
|
12
|
+
## 成功标准
|
|
13
|
+
|
|
14
|
+
- [ ] 标准 1
|
|
15
|
+
- [ ] 标准 2
|
|
16
|
+
|
|
17
|
+
## 影响范围
|
|
18
|
+
|
|
19
|
+
- 影响的模块:
|
|
20
|
+
- 影响的接口:
|
|
21
|
+
- 影响的数据表:
|
|
22
|
+
|
|
23
|
+
## 风险评估
|
|
24
|
+
|
|
25
|
+
| 风险 | 影响 | 概率 | 应对 |
|
|
26
|
+
|------|------|------|------|
|
|
27
|
+
| | | | |
|
|
28
|
+
|
|
29
|
+
## 非目标
|
|
30
|
+
|
|
31
|
+
明确列出这次不做什么。
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# 规范: <能力路径>
|
|
2
|
+
|
|
3
|
+
## ADDED Requirements
|
|
4
|
+
|
|
5
|
+
### REQ-001: <需求标题>
|
|
6
|
+
|
|
7
|
+
**描述**: <系统应该做什么>
|
|
8
|
+
|
|
9
|
+
**验收标准**:
|
|
10
|
+
- Given <前置条件>
|
|
11
|
+
- When <操作>
|
|
12
|
+
- Then <预期结果>
|
|
13
|
+
|
|
14
|
+
**约束**:
|
|
15
|
+
- <性能/安全/兼容性约束>
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## MODIFIED Requirements
|
|
20
|
+
|
|
21
|
+
### REQ-XXX: <需求标题>
|
|
22
|
+
|
|
23
|
+
**变更原因**: <为什么修改>
|
|
24
|
+
|
|
25
|
+
**更新内容**:
|
|
26
|
+
<完整的新需求描述>
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## REMOVED Requirements
|
|
31
|
+
|
|
32
|
+
### REQ-XXX: <需求标题>
|
|
33
|
+
|
|
34
|
+
**移除原因**: <为什么移除>
|
|
35
|
+
|
|
36
|
+
**迁移方案**: <现有用户/数据如何处理>
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## RENAMED Requirements
|
|
41
|
+
|
|
42
|
+
### <旧需求名称> → <新需求名称>
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# 实现任务: <变更名称>
|
|
2
|
+
|
|
3
|
+
> 这些任务将由 SDD (子代理驱动开发) 引擎逐个执行。
|
|
4
|
+
> 每个任务应该足够小(2-5分钟),包含精确的文件路径和验证步骤。
|
|
5
|
+
|
|
6
|
+
## 任务定义格式
|
|
7
|
+
|
|
8
|
+
**推荐格式:YAML Frontmatter**(结构化、易解析、支持依赖关系)
|
|
9
|
+
|
|
10
|
+
```yaml
|
|
11
|
+
---
|
|
12
|
+
tasks:
|
|
13
|
+
- number: 1
|
|
14
|
+
title: <任务标题>
|
|
15
|
+
files:
|
|
16
|
+
- path/to/file.ts
|
|
17
|
+
description: <精确的实现指令>
|
|
18
|
+
verification: <验证步骤>
|
|
19
|
+
dependsOn: []
|
|
20
|
+
estimatedEffort: S # S | M | L
|
|
21
|
+
---
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
**备选格式:Markdown Checkbox**(向后兼容)
|
|
25
|
+
|
|
26
|
+
```markdown
|
|
27
|
+
- [ ] **Task 1**: <任务标题>
|
|
28
|
+
**文件**: `path/to/file.ts`
|
|
29
|
+
**描述**: <精确的实现指令>
|
|
30
|
+
**验证**: <验证步骤>
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## YAML Frontmatter 格式(推荐)
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
tasks:
|
|
39
|
+
- number: 1
|
|
40
|
+
title: <任务标题>
|
|
41
|
+
files:
|
|
42
|
+
- path/to/file.ts
|
|
43
|
+
description: |
|
|
44
|
+
<精确的实现指令,包含具体的代码或修改>
|
|
45
|
+
verification: <验证步骤>
|
|
46
|
+
dependsOn: []
|
|
47
|
+
estimatedEffort: S
|
|
48
|
+
|
|
49
|
+
- number: 2
|
|
50
|
+
title: <任务标题>
|
|
51
|
+
files:
|
|
52
|
+
- path/to/file.ts
|
|
53
|
+
- path/to/other.ts
|
|
54
|
+
description: |
|
|
55
|
+
<精确的实现指令>
|
|
56
|
+
verification: <验证步骤>
|
|
57
|
+
dependsOn: [1]
|
|
58
|
+
estimatedEffort: M
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## Markdown Checkbox 格式(备选)
|
|
64
|
+
|
|
65
|
+
- [ ] **Task 1**: <任务标题>
|
|
66
|
+
|
|
67
|
+
**文件**: `path/to/file.ts`
|
|
68
|
+
|
|
69
|
+
**描述**:
|
|
70
|
+
<精确的实现指令,包含具体的代码或修改>
|
|
71
|
+
|
|
72
|
+
**验证**:
|
|
73
|
+
- [ ] <验证步骤 1>
|
|
74
|
+
- [ ] <验证步骤 2>
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
- [ ] **Task 2**: <任务标题>
|
|
79
|
+
|
|
80
|
+
**文件**: `path/to/file.ts`, `path/to/other.ts`
|
|
81
|
+
|
|
82
|
+
**描述**:
|
|
83
|
+
<精确的实现指令>
|
|
84
|
+
|
|
85
|
+
**验证**:
|
|
86
|
+
- [ ] <验证步骤>
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
- [ ] **Task 3**: <任务标题>
|
|
91
|
+
|
|
92
|
+
**文件**: `path/to/file.ts`
|
|
93
|
+
|
|
94
|
+
**描述**:
|
|
95
|
+
<精确的实现指令>
|
|
96
|
+
|
|
97
|
+
**验证**:
|
|
98
|
+
- [ ] <验证步骤>
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: business-code-review
|
|
3
|
+
description: SpecPow business-code-review skill
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 代码审查
|
|
7
|
+
|
|
8
|
+
> 对变更进行结构化代码审查,输出审查报告
|
|
9
|
+
|
|
10
|
+
## 触发条件
|
|
11
|
+
|
|
12
|
+
- 用户要求审查代码 / review
|
|
13
|
+
- SDD 引擎的审查阶段 - 提交 PR/MR 前
|
|
14
|
+
|
|
15
|
+
## 铁律
|
|
16
|
+
|
|
17
|
+
1. **不主观臆断** — 每个 Finding 必须有代码行号引用
|
|
18
|
+
2. **分级明确** — Critical / Major / Minor / Suggestion
|
|
19
|
+
3. **可操作** — 每个 Finding 附带修复建议
|
|
20
|
+
4. **不阻塞小问题** — Suggestion 不阻塞合并
|
|
21
|
+
|
|
22
|
+
## 审查维度
|
|
23
|
+
|
|
24
|
+
### 1. 规范合规性
|
|
25
|
+
- 命名规范(类名、方法名、变量名)
|
|
26
|
+
- 代码分层(Controller 不写业务逻辑)
|
|
27
|
+
- 注释完整性
|
|
28
|
+
|
|
29
|
+
### 2. 代码质量
|
|
30
|
+
- 重复代码
|
|
31
|
+
- 过长方法(>50 行)
|
|
32
|
+
- 过深嵌套(>3 层)
|
|
33
|
+
- 魔法数字
|
|
34
|
+
|
|
35
|
+
### 3. 安全性
|
|
36
|
+
- SQL 注入风险
|
|
37
|
+
- XSS 风险
|
|
38
|
+
- 敏感信息硬编码
|
|
39
|
+
- 权限校验缺失
|
|
40
|
+
|
|
41
|
+
### 4. 性能
|
|
42
|
+
- N+1 查询
|
|
43
|
+
- 大对象未分页
|
|
44
|
+
- 循环内数据库调用
|
|
45
|
+
- 未使用索引的查询
|
|
46
|
+
|
|
47
|
+
### 5. 测试
|
|
48
|
+
- 新增代码是否有测试
|
|
49
|
+
- 测试是否覆盖关键路径
|
|
50
|
+
- Mock 使用是否合理
|
|
51
|
+
|
|
52
|
+
## 输出格式
|
|
53
|
+
|
|
54
|
+
```markdown
|
|
55
|
+
# 代码审查报告
|
|
56
|
+
|
|
57
|
+
## 概要
|
|
58
|
+
- 审查范围: commit abc123..def456
|
|
59
|
+
- 文件数: 12
|
|
60
|
+
- 发现数: 5 (1 Critical, 2 Major, 2 Minor)
|
|
61
|
+
|
|
62
|
+
## 发现
|
|
63
|
+
|
|
64
|
+
### [Critical] SQL 注入风险
|
|
65
|
+
- 文件: `XxxMapper.java:45`
|
|
66
|
+
- 问题: 使用字符串拼接构建 SQL
|
|
67
|
+
- 建议: 使用参数化查询 #{param}
|
|
68
|
+
|
|
69
|
+
### [Major] 缺少事务注解
|
|
70
|
+
- 文件: `XxxServiceImpl.java:78`
|
|
71
|
+
- 问题: 多步数据库操作未加 @Transactional
|
|
72
|
+
- 建议: 添加 @Transactional(rollbackFor = Exception.class)
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## 红旗
|
|
76
|
+
|
|
77
|
+
- 发现 Critical 级别问题 → 必须修复后才能合并
|
|
78
|
+
- 安全漏洞 → 立即通知负责人
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: business-db-design
|
|
3
|
+
description: SpecPow business-db-design skill
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 数据库设计
|
|
7
|
+
> 根据 PRD 或需求描述,设计数据库表结构,输出 DDL + 索引建议 + 状态码
|
|
8
|
+
|
|
9
|
+
## 触发条件
|
|
10
|
+
|
|
11
|
+
- 用户要求设计数据库/表结构
|
|
12
|
+
- PRD 中包含数据模型需求
|
|
13
|
+
- 用户提到"建表"/"DDL"/"字段设计"
|
|
14
|
+
|
|
15
|
+
## 铁律
|
|
16
|
+
|
|
17
|
+
1. **命名规范** — 表名小写下划线,字段名小写下划线
|
|
18
|
+
2. **必备字段** — id, create_time, update_time, is_deleted
|
|
19
|
+
3. **索引合理** — 查询条件建索引,不滥用联合索引
|
|
20
|
+
4. **注释完整** — 表注释、字段注释、枚举值说明
|
|
21
|
+
|
|
22
|
+
## 工作流
|
|
23
|
+
|
|
24
|
+
### 阶段 1:需求分析
|
|
25
|
+
1. 读取 PRD 或需求描述
|
|
26
|
+
2. 识别实体和关系(1:1, 1:N, M:N)
|
|
27
|
+
3. 确认字段列表和数据类型
|
|
28
|
+
4. 识别查询场景(决定索引策略)
|
|
29
|
+
|
|
30
|
+
### 阶段 2:表结构设计
|
|
31
|
+
|
|
32
|
+
**每个表包含:**
|
|
33
|
+
```sql
|
|
34
|
+
CREATE TABLE `table_name` (
|
|
35
|
+
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
36
|
+
-- 业务字段
|
|
37
|
+
`create_by` varchar(64) DEFAULT '' COMMENT '创建人',
|
|
38
|
+
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
39
|
+
`update_by` varchar(64) DEFAULT '' COMMENT '更新人',
|
|
40
|
+
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
41
|
+
`is_deleted` tinyint(1) DEFAULT 0 COMMENT '逻辑删除(0正常 1删除)',
|
|
42
|
+
PRIMARY KEY (`id`),
|
|
43
|
+
-- 索引
|
|
44
|
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='表注释';
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### 阶段 3:索引设计
|
|
48
|
+
- 等值查询字段 → 单列索引
|
|
49
|
+
- 范围查询 → 联合索引(最左前缀)
|
|
50
|
+
- 唯一约束 → UNIQUE 索引
|
|
51
|
+
- 避免过多索引(单表 ≤ 5 个)
|
|
52
|
+
|
|
53
|
+
### 阶段 4:状态码/枚举分配
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
字段: status
|
|
57
|
+
0 - 草稿
|
|
58
|
+
1 - 待审核
|
|
59
|
+
2 - 已通过
|
|
60
|
+
3 - 已拒绝
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## 输出格式
|
|
64
|
+
|
|
65
|
+
1. DDL 脚本(可直接执行)
|
|
66
|
+
2. 索引建议说明
|
|
67
|
+
3. 枚举值对照表
|
|
68
|
+
4. ER 关系图(Mermaid)
|
|
69
|
+
|
|
70
|
+
## 红旗
|
|
71
|
+
|
|
72
|
+
- 字段超过 30 个 → 考虑拆表
|
|
73
|
+
- 需要 TEXT/BLOB → 确认是否应该独立表
|
|
74
|
+
- 多对多关系 → 确认中间表设计
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: business-deploy-check
|
|
3
|
+
description: SpecPow business-deploy-check skill
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 部署检查
|
|
7
|
+
> 在部署前执行全面检查,确保代码、配置、依赖就绪
|
|
8
|
+
|
|
9
|
+
## 触发条件
|
|
10
|
+
|
|
11
|
+
- 用户提到"部署"/"发布"/"上线"
|
|
12
|
+
- 准备合并到主分支前
|
|
13
|
+
- CI/CD 流水线触发前
|
|
14
|
+
|
|
15
|
+
## 检查清单
|
|
16
|
+
|
|
17
|
+
### 1. 代码完整性
|
|
18
|
+
- [ ] 所有任务已完成(tasks.md 全部 [x])
|
|
19
|
+
- [ ] 无未提交的变更(git status clean)
|
|
20
|
+
- [ ] 分支已 rebase 到最新主分支
|
|
21
|
+
|
|
22
|
+
### 2. 构建验证
|
|
23
|
+
- [ ] 后端编译通过(mvn clean package)
|
|
24
|
+
- [ ] 前端构建通过(npm run build)
|
|
25
|
+
- [ ] 无编译警告(或警告已评估)
|
|
26
|
+
|
|
27
|
+
### 3. 测试验证
|
|
28
|
+
- [ ] 单元测试全部通过
|
|
29
|
+
- [ ] 测试覆盖率 ≥ 阈值
|
|
30
|
+
- [ ] 集成测试通过(如有)
|
|
31
|
+
|
|
32
|
+
### 4. 配置检查
|
|
33
|
+
- [ ] 环境变量已配置
|
|
34
|
+
- [ ] 数据库变更脚本已准备
|
|
35
|
+
- [ ] 配置文件无硬编码敏感信息
|
|
36
|
+
- [ ] 多环境配置一致(dev/test/prod)
|
|
37
|
+
|
|
38
|
+
### 5. 依赖检查
|
|
39
|
+
- [ ] 无 SNAPSHOT 版本依赖
|
|
40
|
+
- [ ] 新增依赖已审批
|
|
41
|
+
- [ ] 依赖安全扫描通过
|
|
42
|
+
|
|
43
|
+
### 6. 文档检查
|
|
44
|
+
- [ ] API 文档已更新
|
|
45
|
+
- [ ] 变更日志已编写
|
|
46
|
+
- [ ] 运维手册已更新(如需要)
|
|
47
|
+
|
|
48
|
+
## 输出格式
|
|
49
|
+
|
|
50
|
+
```markdown
|
|
51
|
+
# 部署检查报告
|
|
52
|
+
|
|
53
|
+
## 检查结果: ✅ 通过 / ❌ 未通过
|
|
54
|
+
|
|
55
|
+
### 通过项 (8/10)
|
|
56
|
+
- ✅ 代码完整性
|
|
57
|
+
- ✅ 构建验证
|
|
58
|
+
...
|
|
59
|
+
|
|
60
|
+
### 未通过项
|
|
61
|
+
- ❌ 测试覆盖率 58% < 60% 阈值
|
|
62
|
+
- 建议: 补充 XxxService 的测试用例
|
|
63
|
+
|
|
64
|
+
### 风险提示
|
|
65
|
+
- 新增依赖: xxx-lib 2.0.0(首次引入)
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## 红旗
|
|
69
|
+
|
|
70
|
+
- 任何"代码完整性"检查失败 → 阻止部署
|
|
71
|
+
- 安全扫描发现高危漏洞 → 阻止部署
|
|
72
|
+
- 配置不一致 → 警告并确认
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: business-doc-sync
|
|
3
|
+
description: SpecPow business-doc-sync skill
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 文档同步
|
|
7
|
+
|
|
8
|
+
> 确保代码变更后,相关文档同步更新
|
|
9
|
+
|
|
10
|
+
## 触发条件
|
|
11
|
+
|
|
12
|
+
- 代码变更完成后
|
|
13
|
+
- API 接口发生变化
|
|
14
|
+
- 数据库结构发生变更
|
|
15
|
+
- 用户提到"更新文档"/"同步文档"
|
|
16
|
+
|
|
17
|
+
## 铁律
|
|
18
|
+
|
|
19
|
+
1. **代码即文档** — 代码变更必须伴随文档更新
|
|
20
|
+
2. **自动检测** — 扫描变更文件,识别需要同步的文档
|
|
21
|
+
3. **不遗漏** — API、数据库、配置变更必须同步
|
|
22
|
+
|
|
23
|
+
## 检查维度
|
|
24
|
+
|
|
25
|
+
### 1. API 文档
|
|
26
|
+
- Controller 变更 → 更新 Swagger/接口文档
|
|
27
|
+
- 新增接口 → 添加接口说明
|
|
28
|
+
- 修改参数 → 更新参数说明
|
|
29
|
+
- 删除接口 → 标记废弃
|
|
30
|
+
|
|
31
|
+
### 2. 数据库文档
|
|
32
|
+
- DDL 变更 → 更新数据字典
|
|
33
|
+
- 新增表 → 添加表说明
|
|
34
|
+
- 修改字段 → 更新字段说明
|
|
35
|
+
|
|
36
|
+
### 3. 配置文档
|
|
37
|
+
- 新增配置项 → 更新配置说明
|
|
38
|
+
- 修改默认值 → 更新配置示例
|
|
39
|
+
|
|
40
|
+
### 4. README / CHANGELOG
|
|
41
|
+
- 功能变更 → 更新 README
|
|
42
|
+
- 版本发布 → 编写 CHANGELOG
|
|
43
|
+
|
|
44
|
+
## 工作流
|
|
45
|
+
|
|
46
|
+
1. **扫描变更** — 获取 git diff 或变更文件列表
|
|
47
|
+
2. **识别影响** — 判断哪些文档需要同步
|
|
48
|
+
3. **生成更新** — 自动更新受影响的文档
|
|
49
|
+
4. **验证一致性** — 检查文档与代码是否一致
|
|
50
|
+
|
|
51
|
+
## 输出格式
|
|
52
|
+
|
|
53
|
+
```markdown
|
|
54
|
+
# 文档同步报告
|
|
55
|
+
|
|
56
|
+
## 需要同步的文档 (3)
|
|
57
|
+
1. `docs/api/user-api.md` — 新增 2 个接口
|
|
58
|
+
2. `docs/data-dictionary.md` — 新增 1 张表
|
|
59
|
+
3. `CHANGELOG.md` — 添加 v1.2.0 变更记录
|
|
60
|
+
|
|
61
|
+
## 已自动更新
|
|
62
|
+
- ✓ docs/api/user-api.md
|
|
63
|
+
- ✓ docs/data-dictionary.md
|
|
64
|
+
|
|
65
|
+
## 需要手动确认
|
|
66
|
+
- ⚠️ README.md — 建议添加新功能说明
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## 红旗
|
|
70
|
+
|
|
71
|
+
- API 变更但无文档更新 → 警告
|
|
72
|
+
- 数据库变更但数据字典未更新 → 警告
|