@specpow/framework 0.5.9 → 0.5.11

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 (164) hide show
  1. package/CHANGELOG.md +623 -623
  2. package/LICENSE +21 -21
  3. package/bin/specpow.js +9 -9
  4. package/dist/cli/index.d.ts.map +1 -1
  5. package/dist/cli/index.js +4 -2
  6. package/dist/cli/index.js.map +1 -1
  7. package/dist/commands/apply.d.ts.map +1 -1
  8. package/dist/commands/apply.js +12 -11
  9. package/dist/commands/apply.js.map +1 -1
  10. package/dist/commands/archive.d.ts.map +1 -1
  11. package/dist/commands/archive.js +30 -3
  12. package/dist/commands/archive.js.map +1 -1
  13. package/dist/commands/config.d.ts.map +1 -1
  14. package/dist/commands/config.js +5 -1
  15. package/dist/commands/config.js.map +1 -1
  16. package/dist/commands/doctor.d.ts.map +1 -1
  17. package/dist/commands/doctor.js +29 -10
  18. package/dist/commands/doctor.js.map +1 -1
  19. package/dist/commands/execute.d.ts.map +1 -1
  20. package/dist/commands/execute.js +5 -2
  21. package/dist/commands/execute.js.map +1 -1
  22. package/dist/commands/explore.d.ts.map +1 -1
  23. package/dist/commands/explore.js +8 -10
  24. package/dist/commands/explore.js.map +1 -1
  25. package/dist/commands/init.d.ts.map +1 -1
  26. package/dist/commands/init.js +6 -3
  27. package/dist/commands/init.js.map +1 -1
  28. package/dist/commands/propose.d.ts.map +1 -1
  29. package/dist/commands/propose.js +4 -3
  30. package/dist/commands/propose.js.map +1 -1
  31. package/dist/commands/schema.d.ts.map +1 -1
  32. package/dist/commands/schema.js +5 -2
  33. package/dist/commands/schema.js.map +1 -1
  34. package/dist/commands/status.d.ts.map +1 -1
  35. package/dist/commands/status.js +17 -11
  36. package/dist/commands/status.js.map +1 -1
  37. package/dist/commands/store.d.ts.map +1 -1
  38. package/dist/commands/store.js +8 -6
  39. package/dist/commands/store.js.map +1 -1
  40. package/dist/commands/update.d.ts.map +1 -1
  41. package/dist/commands/update.js +3 -1
  42. package/dist/commands/update.js.map +1 -1
  43. package/dist/commands/validate-specs.d.ts.map +1 -1
  44. package/dist/commands/validate-specs.js +8 -5
  45. package/dist/commands/validate-specs.js.map +1 -1
  46. package/dist/commands/verify.d.ts.map +1 -1
  47. package/dist/commands/verify.js +17 -19
  48. package/dist/commands/verify.js.map +1 -1
  49. package/dist/commands/workflow/index.d.ts.map +1 -1
  50. package/dist/commands/workflow/index.js +18 -10
  51. package/dist/commands/workflow/index.js.map +1 -1
  52. package/dist/core/archive/engine.d.ts.map +1 -1
  53. package/dist/core/archive/engine.js +10 -6
  54. package/dist/core/archive/engine.js.map +1 -1
  55. package/dist/core/artifact-graph/resolver.d.ts.map +1 -1
  56. package/dist/core/artifact-graph/resolver.js +5 -2
  57. package/dist/core/artifact-graph/resolver.js.map +1 -1
  58. package/dist/core/config/config-schema.d.ts +104 -0
  59. package/dist/core/config/config-schema.d.ts.map +1 -1
  60. package/dist/core/config/config-schema.js +15 -1
  61. package/dist/core/config/config-schema.js.map +1 -1
  62. package/dist/core/hooks/session-start-hook.d.ts.map +1 -1
  63. package/dist/core/hooks/session-start-hook.js +76 -45
  64. package/dist/core/hooks/session-start-hook.js.map +1 -1
  65. package/dist/core/hooks/workflow-state-hook.d.ts.map +1 -1
  66. package/dist/core/hooks/workflow-state-hook.js +3 -1
  67. package/dist/core/hooks/workflow-state-hook.js.map +1 -1
  68. package/dist/core/init/codegraph-step.d.ts +36 -0
  69. package/dist/core/init/codegraph-step.d.ts.map +1 -0
  70. package/dist/core/init/codegraph-step.js +109 -0
  71. package/dist/core/init/codegraph-step.js.map +1 -0
  72. package/dist/core/init/engine.d.ts +2 -2
  73. package/dist/core/init/engine.d.ts.map +1 -1
  74. package/dist/core/init/engine.js +28 -14
  75. package/dist/core/init/engine.js.map +1 -1
  76. package/dist/core/memory/adapters/sqlite-adapter.js +55 -55
  77. package/dist/core/migration/index.d.ts.map +1 -1
  78. package/dist/core/migration/index.js +128 -4
  79. package/dist/core/migration/index.js.map +1 -1
  80. package/dist/core/store/index.d.ts +4 -3
  81. package/dist/core/store/index.d.ts.map +1 -1
  82. package/dist/core/store/index.js +7 -7
  83. package/dist/core/store/index.js.map +1 -1
  84. package/dist/core/task-parser.d.ts +17 -0
  85. package/dist/core/task-parser.d.ts.map +1 -0
  86. package/dist/core/task-parser.js +59 -0
  87. package/dist/core/task-parser.js.map +1 -0
  88. package/dist/core/templates/index.d.ts +1 -1
  89. package/dist/core/templates/index.d.ts.map +1 -1
  90. package/dist/core/templates/index.js +11 -6
  91. package/dist/core/templates/index.js.map +1 -1
  92. package/dist/core/workflow-state.d.ts +1 -1
  93. package/dist/core/workflow-state.d.ts.map +1 -1
  94. package/dist/core/workflow-state.js +10 -5
  95. package/dist/core/workflow-state.js.map +1 -1
  96. package/dist/templates/claude-commands/specpow-apply.md +23 -23
  97. package/dist/templates/claude-commands/specpow-archive.md +22 -22
  98. package/dist/templates/claude-commands/specpow-propose.md +27 -27
  99. package/dist/templates/claude-commands/specpow-status.md +22 -22
  100. package/dist/templates/claude-commands/specpow-validate-specs.md +28 -28
  101. package/dist/templates/claude-commands/specpow-verify.md +21 -21
  102. package/dist/templates/claude-commands/specpow.md +34 -34
  103. package/package.json +121 -122
  104. package/.specpow/agents/controller/sdd-controller.md +0 -55
  105. package/.specpow/agents/execution/java-codegen-agent.md +0 -39
  106. package/.specpow/agents/execution/ui-codegen-agent.md +0 -32
  107. package/.specpow/agents/ops/deploy-agent.md +0 -181
  108. package/.specpow/agents/planning/db-designer-agent.md +0 -30
  109. package/.specpow/agents/planning/prd-agent.md +0 -31
  110. package/.specpow/agents/quality/review-agent.md +0 -36
  111. package/.specpow/agents/quality/test-agent.md +0 -33
  112. package/.specpow/hooks/hooks.json +0 -30
  113. package/.specpow/hooks/run-hook.cmd +0 -19
  114. package/.specpow/hooks/session-start +0 -62
  115. package/.specpow/hooks/workflow-state +0 -150
  116. package/.specpow/schemas/bug-fix/schema.yaml +0 -64
  117. package/.specpow/schemas/bug-fix/templates/analysis.md +0 -43
  118. package/.specpow/schemas/bug-fix/templates/fix-plan.md +0 -19
  119. package/.specpow/schemas/bug-fix/templates/proposal.md +0 -30
  120. package/.specpow/schemas/crud-module/schema.yaml +0 -65
  121. package/.specpow/schemas/crud-module/templates/design.md +0 -36
  122. package/.specpow/schemas/crud-module/templates/proposal.md +0 -30
  123. package/.specpow/schemas/crud-module/templates/spec.md +0 -38
  124. package/.specpow/schemas/crud-module/templates/tasks.md +0 -57
  125. package/.specpow/schemas/spec-driven/schema.yaml +0 -87
  126. package/.specpow/schemas/spec-driven/templates/design.md +0 -54
  127. package/.specpow/schemas/spec-driven/templates/proposal.md +0 -31
  128. package/.specpow/schemas/spec-driven/templates/spec.md +0 -42
  129. package/.specpow/schemas/spec-driven/templates/tasks.md +0 -98
  130. package/.specpow/skills/business-code-review/SKILL.md +0 -78
  131. package/.specpow/skills/business-db-design/SKILL.md +0 -74
  132. package/.specpow/skills/business-deploy-check/SKILL.md +0 -72
  133. package/.specpow/skills/business-doc-sync/SKILL.md +0 -72
  134. package/.specpow/skills/business-java-codegen/SKILL.md +0 -97
  135. package/.specpow/skills/business-menu-register/SKILL.md +0 -63
  136. package/.specpow/skills/business-prd-writer/SKILL.md +0 -80
  137. package/.specpow/skills/business-test-gen/SKILL.md +0 -82
  138. package/.specpow/skills/business-ui-codegen/SKILL.md +0 -104
  139. package/.specpow/skills/cli-router/SKILL.md +0 -108
  140. package/.specpow/skills/execution-finish-branch/SKILL.md +0 -58
  141. package/.specpow/skills/execution-git-worktrees/SKILL.md +0 -48
  142. package/.specpow/skills/execution-parallel-agents/SKILL.md +0 -46
  143. package/.specpow/skills/execution-receiving-review/SKILL.md +0 -47
  144. package/.specpow/skills/execution-requesting-review/SKILL.md +0 -51
  145. package/.specpow/skills/execution-sdd-orchestrator/SKILL.md +0 -366
  146. package/.specpow/skills/execution-subagent-dispatch/SKILL.md +0 -295
  147. package/.specpow/skills/execution-subagent-driven-dev/SKILL.md +0 -143
  148. package/.specpow/skills/execution-systematic-debugging/SKILL.md +0 -95
  149. package/.specpow/skills/execution-tdd/SKILL.md +0 -74
  150. package/.specpow/skills/execution-verification-before-completion/SKILL.md +0 -75
  151. package/.specpow/skills/meta-create-skill/SKILL.md +0 -374
  152. package/.specpow/skills/meta-using-skills/SKILL.md +0 -97
  153. package/.specpow/skills/meta-writing-skills/SKILL.md +0 -66
  154. package/.specpow/skills/planning-apply-change/SKILL.md +0 -194
  155. package/.specpow/skills/planning-archive-change/SKILL.md +0 -43
  156. package/.specpow/skills/planning-explore/SKILL.md +0 -103
  157. package/.specpow/skills/planning-onboard/SKILL.md +0 -61
  158. package/.specpow/skills/planning-propose/SKILL.md +0 -140
  159. package/.specpow/skills/planning-update-change/SKILL.md +0 -45
  160. package/.specpow/skills/planning-verify-change/SKILL.md +0 -58
  161. package/.specpow/skills/planning-write-design/SKILL.md +0 -59
  162. package/.specpow/skills/planning-write-plans/SKILL.md +0 -55
  163. package/.specpow/skills/planning-write-specs/SKILL.md +0 -91
  164. package/.specpow/skills/using-specpow/SKILL.md +0 -232
package/package.json CHANGED
@@ -1,122 +1,121 @@
1
- {
2
- "name": "@specpow/framework",
3
- "version": "0.5.9",
4
- "description": "Spec-Powered AI Development Framework - 融合 OpenSpec 规范驱动 + Superpowers 执行引擎的企业级 AI 辅助编程框架",
5
- "type": "module",
6
- "main": "dist/index.js",
7
- "types": "dist/index.d.ts",
8
- "exports": {
9
- ".": {
10
- "types": "./dist/index.d.ts",
11
- "import": "./dist/index.js"
12
- },
13
- "./sdd": {
14
- "types": "./dist/core/sdd-engine/index.d.ts",
15
- "import": "./dist/core/sdd-engine/index.js"
16
- },
17
- "./artifact-graph": {
18
- "types": "./dist/core/artifact-graph/index.d.ts",
19
- "import": "./dist/core/artifact-graph/index.js"
20
- },
21
- "./archive": {
22
- "types": "./dist/core/archive/index.d.ts",
23
- "import": "./dist/core/archive/index.js"
24
- },
25
- "./hooks": {
26
- "types": "./dist/core/hooks/index.d.ts",
27
- "import": "./dist/core/hooks/index.js"
28
- },
29
- "./memory": {
30
- "types": "./dist/core/memory/index.d.ts",
31
- "import": "./dist/core/memory/index.js"
32
- },
33
- "./channel": {
34
- "types": "./dist/core/channel/index.d.ts",
35
- "import": "./dist/core/channel/index.js"
36
- },
37
- "./workflow-state": {
38
- "types": "./dist/core/workflow-state.d.ts",
39
- "import": "./dist/core/workflow-state.js"
40
- },
41
- "./config": {
42
- "types": "./dist/core/config/index.d.ts",
43
- "import": "./dist/core/config/index.js"
44
- },
45
- "./command-generation": {
46
- "types": "./dist/core/command-generation/index.d.ts",
47
- "import": "./dist/core/command-generation/index.js"
48
- }
49
- },
50
- "bin": {
51
- "specpow": "bin/specpow.js"
52
- },
53
- "engines": {
54
- "node": ">=20.19.0"
55
- },
56
- "scripts": {
57
- "build": "node build.js",
58
- "dev": "tsc --watch",
59
- "test": "vitest run",
60
- "test:watch": "vitest",
61
- "lint": "eslint src/ --ext .ts",
62
- "clean": "rimraf dist",
63
- "prepublishOnly": "npm run build"
64
- },
65
- "keywords": [
66
- "ai",
67
- "coding",
68
- "spec-driven",
69
- "subagent-driven-development",
70
- "claude-code",
71
- "cursor",
72
- "copilot",
73
- "workflow",
74
- "agent",
75
- "skills",
76
- "pi-package"
77
- ],
78
- "files": [
79
- "dist/",
80
- "bin/",
81
- ".specpow/skills/",
82
- ".specpow/agents/",
83
- ".specpow/schemas/",
84
- ".specpow/hooks/",
85
- "README.md",
86
- "CHANGELOG.md",
87
- "LICENSE"
88
- ],
89
- "author": "buchengjin",
90
- "license": "MIT",
91
- "repository": {
92
- "type": "git",
93
- "url": "http://git.gj.com/ai/specpow.git"
94
- },
95
- "homepage": "http://git.gj.com/ai/specpow#readme",
96
- "bugs": {
97
- "url": "http://git.gj.com/ai/specpow/issues"
98
- },
99
- "dependencies": {
100
- "better-sqlite3": "^13.0.3",
101
- "chalk": "^5.3.0",
102
- "commander": "^12.1.0",
103
- "glob": "^10.3.10",
104
- "ora": "^8.0.1",
105
- "yaml": "^2.3.4",
106
- "zod": "^3.22.4"
107
- },
108
- "devDependencies": {
109
- "@types/better-sqlite3": "^9.6.0",
110
- "@types/node": "^20.11.0",
111
- "eslint": "^8.56.0",
112
- "rimraf": "^5.0.5",
113
- "typescript": "^5.3.3",
114
- "vitest": "^1.2.0"
115
- },
116
- "packageManager": "pnpm@9.15.9",
117
- "pi": {
118
- "skills": [
119
- "./.specpow/skills"
120
- ]
121
- }
122
- }
1
+ {
2
+ "name": "@specpow/framework",
3
+ "version": "0.5.11",
4
+ "description": "Spec-Powered AI Development Framework - 融合 OpenSpec 规范驱动 + Superpowers 执行引擎的企业级 AI 辅助编程框架",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js"
12
+ },
13
+ "./sdd": {
14
+ "types": "./dist/core/sdd-engine/index.d.ts",
15
+ "import": "./dist/core/sdd-engine/index.js"
16
+ },
17
+ "./artifact-graph": {
18
+ "types": "./dist/core/artifact-graph/index.d.ts",
19
+ "import": "./dist/core/artifact-graph/index.js"
20
+ },
21
+ "./archive": {
22
+ "types": "./dist/core/archive/index.d.ts",
23
+ "import": "./dist/core/archive/index.js"
24
+ },
25
+ "./hooks": {
26
+ "types": "./dist/core/hooks/index.d.ts",
27
+ "import": "./dist/core/hooks/index.js"
28
+ },
29
+ "./memory": {
30
+ "types": "./dist/core/memory/index.d.ts",
31
+ "import": "./dist/core/memory/index.js"
32
+ },
33
+ "./channel": {
34
+ "types": "./dist/core/channel/index.d.ts",
35
+ "import": "./dist/core/channel/index.js"
36
+ },
37
+ "./workflow-state": {
38
+ "types": "./dist/core/workflow-state.d.ts",
39
+ "import": "./dist/core/workflow-state.js"
40
+ },
41
+ "./config": {
42
+ "types": "./dist/core/config/index.d.ts",
43
+ "import": "./dist/core/config/index.js"
44
+ },
45
+ "./command-generation": {
46
+ "types": "./dist/core/command-generation/index.d.ts",
47
+ "import": "./dist/core/command-generation/index.js"
48
+ }
49
+ },
50
+ "bin": {
51
+ "specpow": "bin/specpow.js"
52
+ },
53
+ "engines": {
54
+ "node": ">=20.19.0"
55
+ },
56
+ "scripts": {
57
+ "build": "node build.js",
58
+ "dev": "tsc --watch",
59
+ "test": "vitest run",
60
+ "test:watch": "vitest",
61
+ "lint": "eslint src/ --ext .ts",
62
+ "clean": "rimraf dist",
63
+ "prepublishOnly": "npm run build"
64
+ },
65
+ "keywords": [
66
+ "ai",
67
+ "coding",
68
+ "spec-driven",
69
+ "subagent-driven-development",
70
+ "claude-code",
71
+ "cursor",
72
+ "copilot",
73
+ "workflow",
74
+ "agent",
75
+ "skills",
76
+ "pi-package"
77
+ ],
78
+ "files": [
79
+ "dist/",
80
+ "bin/",
81
+ ".specpow/skills/",
82
+ ".specpow/schemas/",
83
+ ".specpow/hooks/",
84
+ "README.md",
85
+ "CHANGELOG.md",
86
+ "LICENSE"
87
+ ],
88
+ "author": "buchengjin",
89
+ "license": "MIT",
90
+ "repository": {
91
+ "type": "git",
92
+ "url": "http://git.gj.com/ai/specpow.git"
93
+ },
94
+ "homepage": "http://git.gj.com/ai/specpow#readme",
95
+ "bugs": {
96
+ "url": "http://git.gj.com/ai/specpow/issues"
97
+ },
98
+ "dependencies": {
99
+ "better-sqlite3": "^13.0.3",
100
+ "chalk": "^5.3.0",
101
+ "commander": "^12.1.0",
102
+ "glob": "^10.3.10",
103
+ "ora": "^8.0.1",
104
+ "yaml": "^2.3.4",
105
+ "zod": "^3.22.4"
106
+ },
107
+ "devDependencies": {
108
+ "@types/better-sqlite3": "^9.6.0",
109
+ "@types/node": "^20.11.0",
110
+ "eslint": "^8.56.0",
111
+ "rimraf": "^5.0.5",
112
+ "typescript": "^5.3.3",
113
+ "vitest": "^1.2.0"
114
+ },
115
+ "packageManager": "pnpm@9.15.9",
116
+ "pi": {
117
+ "skills": [
118
+ "./.specpow/skills"
119
+ ]
120
+ }
121
+ }
@@ -1,55 +0,0 @@
1
- # SDD Controller Agent
2
-
3
- ## 职责
4
- 子代理驱动开发的控制器。协调实现者、审查者、修复循环。
5
-
6
- ## 核心原则
7
- 1. **不自己修复代码** — 保持上下文干净用于协调
8
- 2. **所有产物通过文件传递** — 不占用上下文窗口
9
- 3. **信任账本而非自己的记忆** — 压缩后账本是唯一真相
10
-
11
- ## 工作流
12
-
13
- ### 初始化
14
- 1. 验证工作区隔离
15
- 2. 加载/创建账本
16
- 3. 读取计划文件
17
- 4. 创建 todo 列表
18
- 5. 扫描计划冲突
19
-
20
- ### 任务循环
21
- 对每个任务:
22
- 1. 提取任务简报
23
- 2. 分发实现者子代理
24
- 3. 处理报告(DONE/BLOCKED/NEEDS_CONTEXT)
25
- 4. 生成审查包
26
- 5. 分发审查者子代理
27
- 6. 修复循环(≤5轮)
28
- 7. 记录到账本
29
-
30
- ### 最终审查
31
- 1. 生成全分支审查包
32
- 2. 分发最终审查(最强模型)
33
- 3. 处理发现(一次修复分发 + 一次重新审查)
34
- 4. 裁定剩余发现
35
-
36
- ### 完成
37
- 1. 更新 tasks.md
38
- 2. 删除工作区
39
- 3. 触发 finish-branch
40
-
41
- ## 模型选择策略
42
- | 角色 | 模型 |
43
- |------|------|
44
- | 机械实现 | cheap (haiku) |
45
- | 集成实现 | standard (sonnet) |
46
- | 架构设计 | capable (opus) |
47
- | 审查 | 按 diff 复杂度 |
48
- | 最终审查 | capable (总是) |
49
- | 修复 R4-5 | 至少比卡住的高一级 |
50
-
51
- ## 上下文管理
52
- - 分发 prompt 只含当前任务所需
53
- - 不粘贴历史任务摘要
54
- - 审查包是文件路径,不是内容
55
- - 账本是恢复地图
@@ -1,39 +0,0 @@
1
- # Java Codegen Agent
2
-
3
- ## 职责
4
- 5 步工作流:git fetch → DB 查 → 代码生成 → 文档更新 → 代码 push
5
-
6
- ## 输入
7
- - 设计文档路径(`docs/design/<ticket>-plan.md`)
8
- - 数据库表名
9
-
10
- ## 输出
11
- - Entity 类
12
- - Mapper 接口 + XML
13
- - Service 接口 + 实现
14
- - Controller 类
15
- - 更新 JAVA.md / DATABASE.md
16
-
17
- ## 工作流
18
- 1. `git fetch` 获取最新代码
19
- 2. 查询数据库表结构
20
- 3. 按分层架构生成代码:
21
- - Entity(对应表结构)
22
- - Mapper(MyBatis 接口 + XML)
23
- - Service(业务逻辑接口 + 实现)
24
- - Controller(RESTful API)
25
- 4. 更新文档(JAVA.md, DATABASE.md)
26
- 5. 提交代码
27
-
28
- ## 代码规范
29
- - 分层:Controller → Service → Mapper → DB
30
- - 异常处理:统一异常类
31
- - 日志:SLF4J + Logback
32
- - 参数校验:JSR 303
33
- - 分页:PageHelper
34
- - 返回格式:统一 Result<T>
35
-
36
- ## 复用场景
37
- - `/generate-code` — 主要调用者
38
- - `/fix-bug` — 修复时复用
39
- - `/requirement-to-design` — 落地时复用
@@ -1,32 +0,0 @@
1
- # UI Codegen Agent
2
-
3
- ## 职责
4
- Vue2 + View Design UI 代码生成
5
-
6
- ## 输入
7
- - 设计文档路径
8
- - 后端 API 接口定义
9
-
10
- ## 输出
11
- - `index.vue` — 页面组件
12
- - `index.js` — API 接口定义
13
- - 路由配置
14
-
15
- ## 工作流
16
- 1. 读取设计文档和 API 定义
17
- 2. 生成页面组件(遵循组件库规范)
18
- 3. 生成 API 接口文件
19
- 4. 生成路由配置
20
- 5. 自审(检查组件引用、API 调用、样式一致性)
21
-
22
- ## 代码规范
23
- - 框架:Vue 2.x
24
- - UI 库:View Design (iView)
25
- - 状态管理:Vuex
26
- - HTTP:Axios
27
- - 组件命名:PascalCase
28
- - 文件命名:kebab-case
29
-
30
- ## 复用场景
31
- - `/generate-code` — 与 java-codegen-agent 并行
32
- - `/fix-bug` — 修复时复用
@@ -1,181 +0,0 @@
1
- # Deploy Agent
2
-
3
- 部署代理负责将应用安全部署到目标环境。
4
-
5
- ## 职责
6
-
7
- - 执行部署前检查
8
- - 管理部署流程
9
- - 验证部署结果
10
- - 处理回滚
11
-
12
- ## 部署检查清单
13
-
14
- ### 部署前
15
-
16
- - [ ] 所有测试通过
17
- - [ ] 代码审查完成
18
- - [ ] 安全扫描通过
19
- - [ ] 性能测试达标
20
- - [ ] 数据库迁移脚本就绪
21
- - [ ] 配置文件更新
22
- - [ ] 回滚方案准备
23
-
24
- ### 部署中
25
-
26
- - [ ] 备份当前版本
27
- - [ ] 执行数据库迁移
28
- - [ ] 部署应用代码
29
- - [ ] 更新配置
30
- - [ ] 重启服务
31
-
32
- ### 部署后
33
-
34
- - [ ] 健康检查通过
35
- - [ ] 功能验证通过
36
- - [ ] 性能监控正常
37
- - [ ] 错误率正常
38
- - [ ] 日志无异常
39
- - [ ] 通知相关人员
40
-
41
- ## 部署策略
42
-
43
- ### 滚动更新
44
-
45
- 适用于无状态服务:
46
-
47
- ```bash
48
- # 逐个节点更新
49
- for node in ${NODES}; do
50
- deploy-to-node $node
51
- health-check $node
52
- done
53
- ```
54
-
55
- ### 蓝绿部署
56
-
57
- 适用于关键服务:
58
-
59
- ```bash
60
- # 部署到绿色环境
61
- deploy-to-green
62
-
63
- # 验证绿色环境
64
- verify-green
65
-
66
- # 切换流量
67
- switch-to-green
68
-
69
- # 保留蓝色环境作为回滚
70
- ```
71
-
72
- ### 金丝雀发布
73
-
74
- 适用于高风险变更:
75
-
76
- ```bash
77
- # 部署到 5% 的实例
78
- deploy-canary --percentage 5
79
-
80
- # 监控指标
81
- monitor-canary --duration 30m
82
-
83
- # 逐步扩大
84
- expand-canary --percentage 25
85
- expand-canary --percentage 50
86
- expand-canary --percentage 100
87
- ```
88
-
89
- ## 回滚流程
90
-
91
- ### 自动回滚触发条件
92
-
93
- - 错误率 > 5%
94
- - P99 延迟 > 2x 基线
95
- - 健康检查失败
96
- - 关键功能异常
97
-
98
- ### 回滚步骤
99
-
100
- 1. 停止部署流程
101
- 2. 切换到上一版本
102
- 3. 验证服务恢复
103
- 4. 分析问题原因
104
- 5. 通知相关人员
105
-
106
- ## 环境配置
107
-
108
- ### 开发环境
109
-
110
- ```yaml
111
- environment: development
112
- replicas: 1
113
- resources:
114
- cpu: 0.5
115
- memory: 512Mi
116
- auto_deploy: true
117
- ```
118
-
119
- ### 测试环境
120
-
121
- ```yaml
122
- environment: staging
123
- replicas: 2
124
- resources:
125
- cpu: 1
126
- memory: 1Gi
127
- auto_deploy: false
128
- approval_required: false
129
- ```
130
-
131
- ### 生产环境
132
-
133
- ```yaml
134
- environment: production
135
- replicas: 3
136
- resources:
137
- cpu: 2
138
- memory: 2Gi
139
- auto_deploy: false
140
- approval_required: true
141
- rollback_strategy: automatic
142
- ```
143
-
144
- ## 监控指标
145
-
146
- ### 关键指标
147
-
148
- - 部署成功率
149
- - 部署耗时
150
- - 回滚次数
151
- - 服务可用性
152
- - 错误率
153
- - 响应时间
154
-
155
- ### 告警规则
156
-
157
- ```yaml
158
- alerts:
159
- - name: HighErrorRate
160
- condition: error_rate > 0.05
161
- duration: 5m
162
- severity: critical
163
-
164
- - name: HighLatency
165
- condition: p99_latency > 2000ms
166
- duration: 10m
167
- severity: warning
168
-
169
- - name: HealthCheckFailed
170
- condition: health_check == false
171
- duration: 1m
172
- severity: critical
173
- ```
174
-
175
- ## 最佳实践
176
-
177
- 1. **始终准备回滚方案** - 每次部署前确保可以快速回滚
178
- 2. **渐进式发布** - 使用金丝雀或蓝绿部署降低风险
179
- 3. **自动化验证** - 部署后自动执行健康检查和功能验证
180
- 4. **监控先行** - 部署前确保监控和告警就绪
181
- 5. **文档记录** - 记录每次部署的变更和结果
@@ -1,30 +0,0 @@
1
- # DB Designer Agent
2
-
3
- ## 职责
4
- 根据 PRD 设计表结构(遵循字段分类规范),生成 DDL + 索引建议 + 状态码分配
5
-
6
- ## 输入
7
- - PRD 文件路径
8
- - 现有数据库 Schema(可选)
9
-
10
- ## 输出
11
- - `docs/db/<ticket>-ddl.sql` — DDL 脚本
12
- - `docs/db/<ticket>-indexes.sql` — 索引建议
13
- - `docs/db/<ticket>-status-codes.md` — 状态码分配表
14
-
15
- ## 工作流
16
- 1. 读取 PRD
17
- 2. 识别实体和关系
18
- 3. 设计表结构(遵循命名规范)
19
- 4. 设计索引(基于查询模式)
20
- 5. 分配状态码
21
- 6. 生成 DDL 脚本
22
- 7. 自审(检查外键、索引覆盖、命名一致性)
23
-
24
- ## 规范
25
- - 表名:小写,下划线分隔
26
- - 字段名:小写,下划线分隔
27
- - 主键:`id` (BIGINT)
28
- - 审计字段:`created_by`, `created_time`, `updated_by`, `updated_time`
29
- - 软删除:`is_deleted` (TINYINT)
30
- - 状态码:按模块分配范围
@@ -1,31 +0,0 @@
1
- # PRD Agent
2
-
3
- ## 职责
4
- 将用户口述/会议纪要/原型截图转化为结构化 PRD(含用例、字段、流程图 Mermaid)
5
-
6
- ## 输入
7
- - `docs/prd/input/<ticket-id>.md` — 用户原始需求(手工或 Jira 导入)
8
- - `docs/prd/references/<related-docs>.md` — 参考文档(可选)
9
-
10
- ## 输出
11
- - `docs/prd/output/<ticket-id>.md` — 结构化 PRD
12
- - `docs/prd/output/<ticket-id>.meta.json` — 元数据(影响模块、字段、状态码)
13
-
14
- ## 错误处理
15
- - 输入缺失 → 返回 `docs/prd/errors/<ticket-id>.missing.md`
16
- - 无法解析 → 返回结构化错误,不生成输出
17
-
18
- ## 工作流
19
- 1. 读取输入文件
20
- 2. 使用 `explore` 技能进行需求探索
21
- 3. 使用 `propose` 技能创建变更提案
22
- 4. 生成结构化 PRD
23
- 5. 生成元数据 JSON
24
- 6. 自审 PRD 完整性
25
-
26
- ## 质量检查
27
- - [ ] 所有用户场景已覆盖
28
- - [ ] 字段定义完整(类型、约束、默认值)
29
- - [ ] 状态码已分配
30
- - [ ] 流程图已绘制
31
- - [ ] 非目标已明确
@@ -1,36 +0,0 @@
1
- # Review Agent
2
-
3
- ## 职责
4
- 读取 commit range / MR diff → 按 code-review Skill 生成结构化报告
5
-
6
- ## 输入
7
- - commit 范围(如 `HEAD~5..HEAD`)
8
- - 或 MR diff 文件路径
9
-
10
- ## 输出
11
- - 结构化审查报告(findings 列表)
12
- - 严重度排序
13
-
14
- ## 工作流
15
- 1. 获取 diff(本地 commit range 或 MR diff)
16
- 2. 使用 `requesting-review` 技能指导审查
17
- 3. 按检查清单审查:
18
- - 规范合规性(对照 specs/)
19
- - 代码质量(命名、结构、复杂度)
20
- - 安全性(注入、XSS、权限)
21
- - 性能(N+1、大查询、缓存)
22
- - 测试覆盖
23
- 4. 按严重度排序 findings
24
- 5. 输出结构化报告
25
-
26
- ## 审查维度
27
- 1. **规范合规** — 实现是否满足 specs/ 中定义的行为契约
28
- 2. **代码质量** — 命名、结构、可读性、复杂度
29
- 3. **安全性** — 注入、XSS、CSRF、权限检查
30
- 4. **性能** — N+1 查询、大结果集、缺少缓存
31
- 5. **测试** — 覆盖率、测试质量、断言强度
32
-
33
- ## CI 集成
34
- - GitLab MR webhook → 自动触发
35
- - 结果回写 MR comment
36
- - 标记 "AI Review: Needs Attention"
@@ -1,33 +0,0 @@
1
- # Test Agent
2
-
3
- ## 职责
4
- 根据 Service/Mapper 生成 Mock 测试(遵循 TESTING.md,Mockito + JUnit5)
5
-
6
- ## 输入
7
- - 目标类路径(如 `UserService.java`)
8
-
9
- ## 输出
10
- - `XxxServiceMock.java` — Mock 测试类
11
- - 测试报告
12
-
13
- ## 工作流
14
- 1. 读取源类和依赖
15
- 2. 使用 `tdd` 技能指导测试设计
16
- 3. 生成 Mock 测试类
17
- 4. 本地运行测试
18
- 5. 失败 → 自修(≤3 次)
19
- 6. 输出测试报告
20
-
21
- ## 测试规范
22
- - 框架:JUnit 5 + Mockito
23
- - 命名:`should_<expected>_when_<condition>`
24
- - 覆盖:正常路径 + 异常路径 + 边界条件
25
- - Mock:所有外部依赖
26
- - 断言:明确、具体
27
-
28
- ## 质量检查
29
- - [ ] 正常路径覆盖
30
- - [ ] 异常路径覆盖
31
- - [ ] 边界条件覆盖
32
- - [ ] Mock 正确配置
33
- - [ ] 断言有意义