create-vibe-workflow 0.1.0 → 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 (120) hide show
  1. package/README.md +248 -57
  2. package/dist/adapters/next-only/skills.recommend.json +1 -0
  3. package/dist/adapters/node-api/skills.recommend.json +1 -0
  4. package/dist/cli.js +163 -5
  5. package/dist/cli.js.map +1 -1
  6. package/dist/generator.d.ts.map +1 -1
  7. package/dist/generator.js +255 -44
  8. package/dist/generator.js.map +1 -1
  9. package/dist/questions.d.ts +11 -1
  10. package/dist/questions.d.ts.map +1 -1
  11. package/dist/questions.js +103 -16
  12. package/dist/questions.js.map +1 -1
  13. package/dist/templates/claude-md/CLAUDE.zh-CN.md +51 -46
  14. package/dist/templates/claude-md/next-only/CLAUDE.zh-CN.md +46 -0
  15. package/dist/templates/claude-md/node-api/CLAUDE.zh-CN.md +47 -0
  16. package/dist/templates/commands/gstack/cso.md.ejs +213 -0
  17. package/dist/templates/commands/gstack/office-hours.md.ejs +109 -0
  18. package/dist/templates/commands/gstack/review.md.ejs +192 -0
  19. package/dist/templates/commands/gstack/ship.md.ejs +256 -0
  20. package/dist/templates/commands/opsx/apply.md.ejs +106 -0
  21. package/dist/templates/commands/opsx/archive.md.ejs +88 -0
  22. package/dist/templates/commands/opsx/explore.md.ejs +84 -0
  23. package/dist/templates/commands/opsx/propose.md.ejs +185 -0
  24. package/dist/templates/commands/superpowers/brainstorm.md.ejs +240 -0
  25. package/dist/templates/commands/superpowers/tdd.md.ejs +230 -0
  26. package/dist/templates/commands/superpowers/verify.md.ejs +211 -0
  27. package/dist/templates/commands/workflow/plan.md.ejs +219 -0
  28. package/dist/templates/hooks/check-deps.mjs +66 -65
  29. package/dist/templates/memory/.gitkeep +0 -0
  30. package/dist/templates/memory/MEMORY.md.ejs +88 -0
  31. package/dist/templates/memory/dev-notes.md.ejs +61 -0
  32. package/dist/templates/memory/troubleshooting.md.ejs +30 -0
  33. package/dist/templates/rules/agents.md +49 -49
  34. package/dist/templates/rules/coding-style.md +156 -117
  35. package/dist/templates/rules/development-workflow.md +103 -50
  36. package/dist/templates/rules/git-workflow.md +103 -47
  37. package/dist/templates/rules/hooks.md +159 -0
  38. package/dist/templates/rules/hooks.md.ejs +159 -0
  39. package/dist/templates/rules/memory.md +106 -0
  40. package/dist/templates/rules/memory.md.ejs +106 -0
  41. package/dist/templates/rules/patterns.md +117 -48
  42. package/dist/templates/rules/performance.md +108 -0
  43. package/dist/templates/rules/performance.md.ejs +108 -0
  44. package/dist/templates/rules/security.md +52 -37
  45. package/dist/templates/rules/testing.md +83 -30
  46. package/dist/templates/settings/settings.template.json +18 -2
  47. package/dist/templates/skills/advanced/caveman/SKILL.md.ejs +144 -0
  48. package/dist/templates/skills/advanced/diagnose/SKILL.md.ejs +159 -0
  49. package/dist/templates/skills/advanced/grill-with-docs/SKILL.md.ejs +154 -0
  50. package/dist/templates/skills/advanced/improve-codebase-architecture/SKILL.md.ejs +172 -0
  51. package/dist/templates/skills/backend/backend-patterns/SKILL.md.ejs +263 -0
  52. package/dist/templates/skills/database/database-migrations/SKILL.md.ejs +202 -0
  53. package/dist/templates/skills/database/postgres-patterns/SKILL.md.ejs +235 -0
  54. package/dist/templates/skills/devops/deployment-patterns/SKILL.md.ejs +228 -0
  55. package/dist/templates/skills/devops/docker-patterns/SKILL.md.ejs +215 -0
  56. package/dist/templates/skills/frontend/frontend-patterns/SKILL.md.ejs +195 -0
  57. package/dist/templates/skills/skill-manifest.json +59 -0
  58. package/dist/templates/skills/skills-lock.template.json +12 -0
  59. package/dist/templates/skills/testing/e2e-testing/SKILL.md.ejs +224 -0
  60. package/dist/templates/skills/workflow/coding-standards/SKILL.md.ejs +143 -0
  61. package/dist/templates/skills/workflow/search-first/SKILL.md.ejs +103 -0
  62. package/dist/templates/skills/workflow/security-review/SKILL.md.ejs +146 -0
  63. package/dist/templates/skills/workflow/strategic-compact/SKILL.md.ejs +108 -0
  64. package/dist/templates/skills/workflow/tdd-workflow/SKILL.md.ejs +104 -0
  65. package/dist/templates/skills/workflow/verification-loop/SKILL.md.ejs +144 -0
  66. package/dist/utils.d.ts +40 -0
  67. package/dist/utils.d.ts.map +1 -0
  68. package/dist/utils.js +110 -0
  69. package/dist/utils.js.map +1 -0
  70. package/package.json +2 -2
  71. package/templates/claude-md/CLAUDE.zh-CN.md +51 -46
  72. package/templates/claude-md/next-only/CLAUDE.zh-CN.md +46 -0
  73. package/templates/claude-md/node-api/CLAUDE.zh-CN.md +47 -0
  74. package/templates/commands/gstack/cso.md.ejs +213 -0
  75. package/templates/commands/gstack/office-hours.md.ejs +109 -0
  76. package/templates/commands/gstack/review.md.ejs +192 -0
  77. package/templates/commands/gstack/ship.md.ejs +256 -0
  78. package/templates/commands/opsx/apply.md.ejs +106 -0
  79. package/templates/commands/opsx/archive.md.ejs +88 -0
  80. package/templates/commands/opsx/explore.md.ejs +84 -0
  81. package/templates/commands/opsx/propose.md.ejs +185 -0
  82. package/templates/commands/superpowers/brainstorm.md.ejs +240 -0
  83. package/templates/commands/superpowers/tdd.md.ejs +230 -0
  84. package/templates/commands/superpowers/verify.md.ejs +211 -0
  85. package/templates/commands/workflow/plan.md.ejs +219 -0
  86. package/templates/hooks/check-deps.mjs +66 -65
  87. package/templates/memory/.gitkeep +0 -0
  88. package/templates/memory/MEMORY.md.ejs +88 -0
  89. package/templates/memory/dev-notes.md.ejs +61 -0
  90. package/templates/memory/troubleshooting.md.ejs +30 -0
  91. package/templates/rules/agents.md +49 -49
  92. package/templates/rules/coding-style.md +156 -117
  93. package/templates/rules/development-workflow.md +103 -50
  94. package/templates/rules/git-workflow.md +103 -47
  95. package/templates/rules/hooks.md +159 -0
  96. package/templates/rules/memory.md +106 -0
  97. package/templates/rules/patterns.md +117 -48
  98. package/templates/rules/performance.md +108 -0
  99. package/templates/rules/security.md +52 -37
  100. package/templates/rules/testing.md +83 -30
  101. package/templates/settings/settings.template.json +18 -2
  102. package/templates/skills/advanced/caveman/SKILL.md.ejs +144 -0
  103. package/templates/skills/advanced/diagnose/SKILL.md.ejs +159 -0
  104. package/templates/skills/advanced/grill-with-docs/SKILL.md.ejs +154 -0
  105. package/templates/skills/advanced/improve-codebase-architecture/SKILL.md.ejs +172 -0
  106. package/templates/skills/backend/backend-patterns/SKILL.md.ejs +263 -0
  107. package/templates/skills/database/database-migrations/SKILL.md.ejs +202 -0
  108. package/templates/skills/database/postgres-patterns/SKILL.md.ejs +235 -0
  109. package/templates/skills/devops/deployment-patterns/SKILL.md.ejs +228 -0
  110. package/templates/skills/devops/docker-patterns/SKILL.md.ejs +215 -0
  111. package/templates/skills/frontend/frontend-patterns/SKILL.md.ejs +195 -0
  112. package/templates/skills/skill-manifest.json +59 -0
  113. package/templates/skills/skills-lock.template.json +12 -0
  114. package/templates/skills/testing/e2e-testing/SKILL.md.ejs +224 -0
  115. package/templates/skills/workflow/coding-standards/SKILL.md.ejs +143 -0
  116. package/templates/skills/workflow/search-first/SKILL.md.ejs +103 -0
  117. package/templates/skills/workflow/security-review/SKILL.md.ejs +146 -0
  118. package/templates/skills/workflow/strategic-compact/SKILL.md.ejs +108 -0
  119. package/templates/skills/workflow/tdd-workflow/SKILL.md.ejs +104 -0
  120. package/templates/skills/workflow/verification-loop/SKILL.md.ejs +144 -0
@@ -0,0 +1,219 @@
1
+ ---
2
+ name: "Plan"
3
+ description: "将设计/规格拆解为独立、可提交的子任务,每个子任务 = 1 个 commit(50-300 行,1-8 个文件)"
4
+ category: "Planning"
5
+ tags: ["规划", "任务拆解", "commit", "P0/P1"]
6
+ ---
7
+
8
+ # Plan
9
+
10
+ ## 职责
11
+
12
+ 将设计文档或功能描述拆解为 **commit 粒度**的子任务。每个子任务必须是独立的、可测试的增量。产出写入 `todolist.md`。
13
+
14
+ ## 跳过条件
15
+
16
+ - 单文件修改,变更量 < 50 行 → 不需要 plan,直接实现
17
+ - 纯配置修改(环境变量、CI 配置)→ 不需要 plan
18
+
19
+ ## 工作模式
20
+
21
+ <%= USER_LEVEL === 'vibe-coder' ? `
22
+ ### 面向非专业编程人员(Vibe Coder)
23
+
24
+ - 用通俗语言解释每个任务要做什么
25
+ - 避免 git/commit 术语,或简单解释"每完成一个任务就保存一次进度"
26
+ - 任务按"从简单到复杂"的顺序排列
27
+ - 帮用户理解为什么先做某些任务
28
+ - 示例:"先做数据存储(就像先搭好货架),再做页面展示(把货品摆上去)"
29
+ ` : `
30
+ ### 面向专业开发者
31
+
32
+ - 关注模块划分和依赖关系
33
+ - 任务粒度符合 git commit 规范
34
+ - 每个任务可独立编译 + 独立测试
35
+ - 关注接口定义先于实现
36
+ ` %>
37
+
38
+ ## 步骤
39
+
40
+ ### 步骤 1:阅读设计文档
41
+
42
+ 读取以下内容来理解要做什么:
43
+
44
+ 1. **设计文档** — 检查 `docs/designs/` 下是否有相关文档
45
+ 2. **PRD / 需求文档** — 检查 `docs/PRD.md` 或 `openspec/` 目录
46
+ 3. **用户描述** — 如果用户没有设计文档,直接根据描述拆解
47
+
48
+ 输出理解摘要:
49
+
50
+ ```
51
+ ## 理解确认
52
+
53
+ 功能:<功能名称>
54
+ 核心目标:<一句话说明>
55
+ 涉及模块:<涉及的模块列表>
56
+ ```
57
+
58
+ ### 步骤 2:识别独立工作单元
59
+
60
+ 将功能拆解为独立的、可逐步交付的工作单元。
61
+
62
+ **拆分原则:**
63
+
64
+ | 原则 | 说明 |
65
+ |------|------|
66
+ | **独立可测试** | 每个任务完成后可以独立验证 |
67
+ | **依赖有序** | 前置任务的产出是后置任务的输入 |
68
+ | **适当粒度** | 50-300 行变更,1-8 个文件 |
69
+ | **单一职责** | 一个任务只做一件事 |
70
+
71
+ **典型拆分模式:**
72
+
73
+ <%= USER_LEVEL === 'vibe-coder' ? `
74
+ ### 后端模块示例
75
+ 1. 定义数据结构(Schema)
76
+ 2. 写操作数据的代码(Service)
77
+ 3. 写接收请求的接口(API)
78
+ 4. 把模块注册到系统
79
+
80
+ ### 前端页面示例
81
+ 1. 创建页面骨架
82
+ 2. 添加页面内容
83
+ 3. 连接后端数据
84
+ 4. 添加交互效果
85
+ ` : `
86
+ ### 后端模块
87
+ 1. feat: 添加 {Module} schema(shared/types)
88
+ 2. feat: 实现 {Module}Service(业务逻辑)
89
+ 3. feat: 实现 {Module}Controller(API 端点)
90
+ 4. feat: 注册 {Module}Module(DI 容器)
91
+ 5. test: 添加 {Module} 测试
92
+
93
+ ### 前端页面
94
+ 1. feat: 实现 {Page} 列表页(UI + 状态)
95
+ 2. feat: 实现 {Page} 详情页
96
+ 3. feat: 实现 {Page} 表单(创建/编辑)
97
+ 4. test: 添加 {Page} E2E 测试
98
+ ` %>
99
+
100
+ ### 步骤 3:编写/更新 todolist.md
101
+
102
+ 将任务写入 `todolist.md`(如果已有,在末尾追加;否则创建)。
103
+
104
+ **格式:**
105
+
106
+ ```markdown
107
+ # TodoList
108
+
109
+ ## <功能名称> — <日期>
110
+
111
+ ### P0(本次必须完成)
112
+
113
+ - [ ] `<commit-message>` — <任务描述>
114
+ - 涉及文件:<file1>, <file2>
115
+ - 预估变更:~<N> 行
116
+ - 验收:<如何验证这个任务完成>
117
+
118
+ - [ ] `<commit-message>` — <任务描述>
119
+ ...
120
+
121
+ ### P1(后续迭代)
122
+
123
+ - [ ] `<commit-message>` — <任务描述>
124
+ ...
125
+
126
+ ### 未来(待定)
127
+
128
+ - <任务描述>
129
+ ...
130
+ ```
131
+
132
+ **P0-first 策略**:
133
+ - 新功能只实现 P0 任务
134
+ - P1 任务完整列出,标记为"后续迭代"
135
+ - P0 必须是交付的最小可行功能
136
+
137
+ ### 步骤 4:标记优先级
138
+
139
+ **P0 判定标准**(满足任一即为 P0):
140
+ - 核心功能,不做等于功能不可用
141
+ - 其他 P0 任务的依赖
142
+ - 用户明确要求的必须功能
143
+ - 安全/合规相关
144
+
145
+ **P1 判定标准**:
146
+ - 增强功能,没有也能用
147
+ - 性能优化
148
+ - 边缘 case 处理
149
+ - 管理后台功能
150
+
151
+ ### 步骤 5:展示摘要
152
+
153
+ 生成完成后,向用户展示摘要:
154
+
155
+ ```
156
+ ## Plan 摘要
157
+
158
+ 功能:<功能名称>
159
+ P0 任务:<N> 个 | P1 任务:<M> 个
160
+
161
+ ### P0 执行顺序
162
+ 1. <任务 1> — <简述>
163
+ 2. <任务 2> — <简述>
164
+ ...
165
+
166
+ ### P1 待后续
167
+ - <任务 3>
168
+ - <任务 4>
169
+
170
+ 总计预估:~<N> 行变更
171
+
172
+ todolist.md 已更新。
173
+ ```
174
+
175
+ ## 任务编写规则
176
+
177
+ - commit-message 遵循 `<type>: <description>` 格式(type: feat/fix/refactor/docs/test/chore)
178
+ - 涉及文件标注完整路径,方便 AI 定位
179
+ - 验收标准要可检查(能用 yes/no 回答)
180
+ - 标注任务间的依赖关系(如"依赖任务 3 完成")
181
+ - 每个任务标注预估变更行数
182
+
183
+ ## 常用任务序列
184
+
185
+ ### 后端新模块
186
+
187
+ ```
188
+ 1. feat: 添加 {Module} Zod schema
189
+ 2. feat: 实现 {Module}Service
190
+ 3. feat: 实现 {Module}Controller / 路由
191
+ 4. feat: 注册 {Module} 到模块系统
192
+ 5. test: 添加 {Module} 单元/集成测试
193
+ 6. docs: 同步 {Module} 文档
194
+ ```
195
+
196
+ ### 前端新页面
197
+
198
+ ```
199
+ 1. feat: 实现 {Page} 列表页
200
+ 2. feat: 实现 {Page} 详情页
201
+ 3. feat: 实现 {Page} 创建/编辑表单
202
+ 4. test: 添加 {Page} E2E 测试
203
+ 5. docs: 同步页面文档
204
+ ```
205
+
206
+ ### API 端点
207
+
208
+ ```
209
+ 1. feat: 添加 {Resource} CRUD 接口定义
210
+ 2. feat: 实现 {Resource} 数据访问层
211
+ 3. feat: 实现 {Resource} 业务逻辑
212
+ 4. test: 添加 {Resource} API 测试
213
+ ```
214
+
215
+ ## 下一步
216
+
217
+ Plan 完成后,建议用户运行:
218
+ - `/tdd` — 按 TDD 流程实现第一个任务
219
+ - 或手动按 todolist.md 顺序实现
@@ -1,65 +1,66 @@
1
- #!/usr/bin/env node
2
-
3
- // 依赖检测 — Claude Code PreToolUse hook
4
- // 检查外部依赖组件是否已安装,缺失时打印中文安装指引
5
-
6
- import { existsSync } from 'node:fs';
7
- import { homedir } from 'node:os';
8
- import { join } from 'node:path';
9
-
10
- const homeDir = homedir();
11
- const skillsDir = join(homeDir, '.claude', 'skills');
12
-
13
- const REQUIRED = [
14
- { name: 'gstack', dir: 'gstack', install: 'cd ~/.claude/skills && git clone https://github.com/garrytan/gstack.git gstack' },
15
- { name: 'superpowers', dir: 'superpowers', install: 'https://github.com/anthropics/claude-code-superpowers' },
16
- ];
17
-
18
- const OPTIONAL = [
19
- { name: 'openspec', dir: 'openspec', install: 'npm install -g @anthropic/openspec' },
20
- ];
21
-
22
- const missing = [];
23
- const missingOptional = [];
24
-
25
- for (const dep of REQUIRED) {
26
- if (!existsSync(join(skillsDir, dep.dir))) {
27
- missing.push(dep);
28
- }
29
- }
30
-
31
- for (const dep of OPTIONAL) {
32
- if (!existsSync(join(skillsDir, dep.dir))) {
33
- missingOptional.push(dep);
34
- }
35
- }
36
-
37
- if (missing.length === 0 && missingOptional.length === 0) {
38
- process.exit(0);
39
- }
40
-
41
- console.log('');
42
- console.log('══════════════════════════════════════════');
43
- console.log(' ⚠️ 工作流依赖检查');
44
- console.log('══════════════════════════════════════════');
45
-
46
- if (missing.length > 0) {
47
- console.log('');
48
- console.log('❌ 缺少必要组件(工作流核心功能将不可用):');
49
- for (const dep of missing) {
50
- console.log(` ${dep.name} 安装: ${dep.install}`);
51
- }
52
- }
53
-
54
- if (missingOptional.length > 0) {
55
- console.log('');
56
- console.log('⚠️ 缺少可选组件(部分高级功能不可用):');
57
- for (const dep of missingOptional) {
58
- console.log(` ${dep.name} 安装: ${dep.install}`);
59
- }
60
- }
61
-
62
- console.log('');
63
- console.log('安装后可重启 Claude Code 以启用完整工作流。');
64
- console.log('══════════════════════════════════════════');
65
- console.log('');
1
+ #!/usr/bin/env node
2
+
3
+ // 依赖检测 — Claude Code PreToolUse hook
4
+ // 检查外部依赖组件是否已安装,缺失时打印中文安装指引
5
+
6
+ import { existsSync } from 'node:fs';
7
+ import { homedir } from 'node:os';
8
+ import { join } from 'node:path';
9
+
10
+ const homeDir = homedir();
11
+ const skillsDir = join(homeDir, '.claude', 'skills');
12
+
13
+ const REQUIRED = [
14
+ { name: 'gstack', dir: 'gstack', install: 'https://github.com/garrytan/gstack' },
15
+ { name: 'superpowers', dir: 'superpowers', install: 'https://github.com/obra/superpowers' },
16
+ ];
17
+
18
+ const OPTIONAL = [
19
+ { name: 'openspec', dir: 'openspec', install: 'https://github.com/Fission-AI/OpenSpec' },
20
+ { name: 'everything-claude-code', dir: 'everything-claude-code', install: 'https://github.com/affaan-m/everything-claude-code' },
21
+ ];
22
+
23
+ const missing = [];
24
+ const missingOptional = [];
25
+
26
+ for (const dep of REQUIRED) {
27
+ if (!existsSync(join(skillsDir, dep.dir))) {
28
+ missing.push(dep);
29
+ }
30
+ }
31
+
32
+ for (const dep of OPTIONAL) {
33
+ if (!existsSync(join(skillsDir, dep.dir))) {
34
+ missingOptional.push(dep);
35
+ }
36
+ }
37
+
38
+ if (missing.length === 0 && missingOptional.length === 0) {
39
+ process.exit(0);
40
+ }
41
+
42
+ console.log('');
43
+ console.log('══════════════════════════════════════════');
44
+ console.log(' ⚠️ 工作流依赖检查');
45
+ console.log('══════════════════════════════════════════');
46
+
47
+ if (missing.length > 0) {
48
+ console.log('');
49
+ console.log('❌ 缺少必要组件(工作流核心功能将不可用):');
50
+ for (const dep of missing) {
51
+ console.log(` • ${dep.name} — 安装: ${dep.install}`);
52
+ }
53
+ }
54
+
55
+ if (missingOptional.length > 0) {
56
+ console.log('');
57
+ console.log('⚠️ 缺少可选组件(部分高级功能不可用):');
58
+ for (const dep of missingOptional) {
59
+ console.log(` • ${dep.name} — 安装: ${dep.install}`);
60
+ }
61
+ }
62
+
63
+ console.log('');
64
+ console.log('安装后可重启 Claude Code 以启用完整工作流。');
65
+ console.log('══════════════════════════════════════════');
66
+ console.log('');
File without changes
@@ -0,0 +1,88 @@
1
+ <!--
2
+ ============================================================
3
+ 项目记忆索引文件
4
+ ============================================================
5
+ 这是索引文件,不是记忆本身。每行指向一条记忆文件。
6
+ AI 会在每次对话开始时读取此文件,快速了解项目状态。
7
+ 新增记忆后,记得在这里加一行索引。
8
+
9
+ 格式:
10
+ - [Title](file.md) — 一句话钩子(让 AI 快速判断是否需要读这篇)
11
+
12
+ 更新规则:
13
+ - 新增记忆后立即更新此文件
14
+ - 记忆已过期?保留索引但标注 (archived)
15
+ - 不要删除索引,保留历史轨迹
16
+ ============================================================
17
+ -->
18
+
19
+ # 记忆索引
20
+
21
+ > 最后更新:<%= GENERATED_AT.split('T')[0] %>
22
+ > 总记忆数:N 条(其中活跃 M 条,已归档 K 条)
23
+
24
+ ---
25
+
26
+ ## 👤 用户 & 团队
27
+
28
+ <!-- 格式示例(使用时取消注释并替换):
29
+ ### 当前成员
30
+ - [team-member.md](team-member.md) — 团队角色和分工
31
+
32
+ ### 用户偏好
33
+ - [preferences.md](preferences.md) — 编码风格偏好、命名习惯、常用工具
34
+ -->
35
+
36
+ _暂无记录_
37
+
38
+ ---
39
+
40
+ ## 💬 反馈 & 经验
41
+
42
+ <!-- 格式示例(使用时取消注释并替换):
43
+ ### 用户反馈
44
+ - [feedback-2025-06-01.md](feedback-2025-06-01.md) — 用户对列表页性能不满意,希望优化加载速度
45
+
46
+ ### 经验教训
47
+ - [lessons-auth.md](lessons-auth.md) — 认证模块踩坑记录:refresh token 轮换策略选型
48
+ -->
49
+
50
+ _暂无记录_
51
+
52
+ ---
53
+
54
+ ## 📋 项目状态
55
+
56
+ <!-- 格式示例(使用时取消注释并替换):
57
+ ### 里程碑
58
+ - [milestone-v1.md](milestone-v1.md) — v1.0 发布: 2025-05-15,核心功能完成
59
+
60
+ ### 活跃模块
61
+ - [module-auth.md](module-auth.md) — 认证模块:JWT + OAuth2,已稳定运行
62
+ - [module-order.md](module-order.md) — 订单模块:开发中,预计下周完成
63
+
64
+ ### TODOs
65
+ - [todo-refactor.md](todo-refactor.md) — 计划重构支付模块,拆分过大的 PaymentService
66
+
67
+ ### 技术债务
68
+ - [tech-debt.md](tech-debt.md) — 当前已知的技术债务清单
69
+ -->
70
+
71
+ _暂无记录_
72
+
73
+ ---
74
+
75
+ ## 📚 参考 & 外部
76
+
77
+ <!-- 格式示例(使用时取消注释并替换):
78
+ ### 技术参考
79
+ - [architecture-decisions.md](architecture-decisions.md) — 关键架构决策记录(ADR)
80
+
81
+ ### 外部资源
82
+ - [external-apis.md](external-apis.md) — 集成的外部服务 API 文档和凭据指引
83
+
84
+ ### 术语表
85
+ - [glossary.md](glossary.md) — 项目专用术语和缩写解释
86
+ -->
87
+
88
+ _暂无记录_
@@ -0,0 +1,61 @@
1
+ <!--
2
+ ============================================================
3
+ 开发笔记
4
+ ============================================================
5
+ 目的:记录项目开发过程中发现的模式、踩坑记录、好用做法。
6
+ 这些是经验性的东西,不是正式文档,但非常有用。
7
+
8
+ 说明:
9
+ - 每条记录以日期开头:YYYY-MM-DD 内容描述
10
+ - 按时间倒序排列(最新的在最上面)
11
+ - 保持简洁,每条 1-5 行
12
+ - 如果某条经验后来被证伪,不要删除,追加说明 (deprecated)
13
+ ============================================================
14
+ -->
15
+
16
+ # 开发笔记
17
+
18
+ > 项目:<%= PROJECT_NAME %>
19
+ > 最后更新:<%= GENERATED_AT.split('T')[0] %>
20
+
21
+ ---
22
+
23
+ ## 模式发现
24
+
25
+ <!-- 记录项目中发现的重复模式和约定 -->
26
+
27
+ <!-- 示例:
28
+ ### 2025-06-01 Service 层统一返回 Result 对象
29
+ 所有 Service 方法都返回 { success, data, error } 结构,Controller 层不再 try-catch。
30
+ 这样可以统一错误处理,前端也方便判断。
31
+ -->
32
+
33
+ _暂无记录_
34
+
35
+ ---
36
+
37
+ ## 踩坑记录
38
+
39
+ <!-- 记录解决过的坑,避免重复踩 -->
40
+
41
+ <!-- 示例:
42
+ ### 2025-06-01 Drizzle 迁移文件命名冲突
43
+ 同时运行两个迁移时,由于文件名按时间戳排序,可能导致外键引用顺序错误。
44
+ 解决:手动指定迁移顺序,在文件名前加序号前缀如 001_、002_。
45
+ -->
46
+
47
+ _暂无记录_
48
+
49
+ ---
50
+
51
+ ## 好用做法
52
+
53
+ <!-- 记录团队发现的高效做法 -->
54
+
55
+ <!-- 示例:
56
+ ### 2025-06-01 使用 Zod 推断类型代替手写接口
57
+ 先在 schema.ts 定义 Zod schema,再用 z.infer 推断类型。
58
+ 这样 schema 和类型永远一致,不需要手动同步。
59
+ -->
60
+
61
+ _暂无记录_
@@ -0,0 +1,30 @@
1
+ <!--
2
+ ============================================================
3
+ 排错日志
4
+ ============================================================
5
+ 目的:记录开发中遇到的错误、根因和解决方案。
6
+ 每次遇到报错并解决后,在这里追加一条记录。
7
+
8
+ 说明:
9
+ - 每条记录一行表格式,使用 | 分隔
10
+ - 按日期倒序排列(最新的在最上面)
11
+ - 根因要写到具体的技术原因,不要只写"配置错了"
12
+ - 如果同一个问题反复出现,说明根因没找对
13
+ ============================================================
14
+ -->
15
+
16
+ # 排错日志
17
+
18
+ > 项目:<%= PROJECT_NAME %>
19
+ > 最后更新:<%= GENERATED_AT.split('T')[0] %>
20
+
21
+ | 日期 | 现象 | 根因 | 解决 |
22
+ |------|------|------|------|
23
+ <!--
24
+ | 2025-06-01 | `Cannot find module` 构建报错 | tsconfig.json 中 paths 配置与 ts-node 的路径解析不一致 | 在 tsconfig.json 中配置 `tsconfig-paths` 插件,并安装 `tsconfig-paths` 依赖 |
25
+ | 2025-06-02 | 列表页首次加载白屏 3 秒 | 服务端渲染时未使用流式渲染,所有数据加载完才返回 | 改用 `React.lazy` + `Suspense` 实现流式加载 |
26
+
27
+ 注意:日期列使用 YYYY-MM-DD 格式,按日期倒序排列。
28
+ -->
29
+
30
+ _暂无记录_
@@ -1,49 +1,49 @@
1
- # Agent Orchestration
2
-
3
- ## Available Agents
4
-
5
- Located in `~/.claude/agents/`:
6
-
7
- | Agent | Purpose | When to Use |
8
- |-------|---------|-------------|
9
- | planner | Implementation planning | Complex features, refactoring |
10
- | architect | System design | Architectural decisions |
11
- | tdd-guide | Test-driven development | New features, bug fixes |
12
- | code-reviewer | Code review | After writing code |
13
- | security-reviewer | Security analysis | Before commits |
14
- | build-error-resolver | Fix build errors | When build fails |
15
- | e2e-runner | E2E testing | Critical user flows |
16
- | refactor-cleaner | Dead code cleanup | Code maintenance |
17
- | doc-updater | Documentation | Updating docs |
18
-
19
- ## Immediate Agent Usage
20
-
21
- No user prompt needed:
22
- 1. Complex feature requests - Use **planner** agent
23
- 2. Code just written/modified - Use **code-reviewer** agent
24
- 3. Bug fix or new feature - Use **tdd-guide** agent
25
- 4. Architectural decision - Use **architect** agent
26
-
27
- ## Parallel Task Execution
28
-
29
- ALWAYS use parallel Task execution for independent operations:
30
-
31
- ```markdown
32
- # GOOD: Parallel execution
33
- Launch 3 agents in parallel:
34
- 1. Agent 1: Security analysis of auth module
35
- 2. Agent 2: Performance review of cache system
36
- 3. Agent 3: Type checking of utilities
37
-
38
- # BAD: Sequential when unnecessary
39
- First agent 1, then agent 2, then agent 3
40
- ```
41
-
42
- ## Multi-Perspective Analysis
43
-
44
- For complex problems, use split role sub-agents:
45
- - Factual reviewer
46
- - Senior engineer
47
- - Security expert
48
- - Consistency reviewer
49
- - Redundancy checker
1
+ # Agent 编排(Agent Orchestration
2
+
3
+ ## 可用 Agent
4
+
5
+ 位于 `~/.claude/agents/`:
6
+
7
+ | Agent | 用途 | 使用场景 |
8
+ |-------|------|----------|
9
+ | planner | 实现计划制定 | 复杂功能、重构方案 |
10
+ | architect | 系统设计 | 架构决策、技术选型 |
11
+ | tdd-guide | 测试驱动开发指导 | 新功能、Bug 修复 |
12
+ | code-reviewer | 代码审查 | 写完代码后执行 |
13
+ | security-reviewer | 安全分析 | 提交前检查 |
14
+ | build-error-resolver | 构建错误修复 | 编译/构建失败时 |
15
+ | e2e-runner | E2E 测试 | 关键用户流程验证 |
16
+ | refactor-cleaner | 死代码清理 | 代码维护、优化 |
17
+ | doc-updater | 文档更新 | 同步文档变更 |
18
+
19
+ ## 即时使用规则
20
+
21
+ 无需用户额外提示,以下场景自动触发:
22
+ 1. **复杂功能请求** 使用 **planner** agent
23
+ 2. **代码刚写完/修改后** 使用 **code-reviewer** agent
24
+ 3. **Bug 修复或新功能** 使用 **tdd-guide** agent
25
+ 4. **架构决策** 使用 **architect** agent
26
+
27
+ ## 并行任务执行
28
+
29
+ **始终**对独立操作使用并行 Task 执行:
30
+
31
+ ```markdown
32
+ # 推荐:并行执行
33
+ 同时启动 3 agent:
34
+ 1. Agent 1: 安全审查(auth 模块)
35
+ 2. Agent 2: 性能审查(缓存系统)
36
+ 3. Agent 3: 类型检查(工具函数)
37
+
38
+ # 不推荐:不必要的串行
39
+ 先等 agent 1,再 agent 2,再 agent 3
40
+ ```
41
+
42
+ ## 多视角分析
43
+
44
+ 对于复杂问题,使用分角色子 agent:
45
+ - 事实核查者(Factual reviewer
46
+ - 高级工程师(Senior engineer
47
+ - 安全专家(Security expert
48
+ - 一致性检查员(Consistency reviewer
49
+ - 冗余检测器(Redundancy checker