sumulige-claude 1.5.1 → 1.6.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 (223) hide show
  1. package/.claude/hooks/hook-registry.json +0 -15
  2. package/.claude/rules/coding-style.md +18 -7
  3. package/.claude/rules/hooks.md +15 -4
  4. package/.claude/rules/performance.md +15 -5
  5. package/.claude/rules/security.md +140 -4
  6. package/.claude/rules/testing.md +138 -9
  7. package/.claude/rules/web-design-standard.md +16 -5
  8. package/.claude/skills/algorithmic-art/metadata.yaml +28 -0
  9. package/.claude/skills/api-tester/SKILL.md +61 -0
  10. package/.claude/skills/api-tester/examples/basic.md +3 -0
  11. package/.claude/skills/api-tester/metadata.yaml +30 -0
  12. package/.claude/skills/api-tester/templates/default.md +3 -0
  13. package/.claude/skills/brand-guidelines/metadata.yaml +26 -0
  14. package/.claude/skills/canvas-design/metadata.yaml +27 -0
  15. package/.claude/skills/code-reviewer-123/SKILL.md +61 -0
  16. package/.claude/skills/code-reviewer-123/examples/basic.md +3 -0
  17. package/.claude/skills/code-reviewer-123/metadata.yaml +30 -0
  18. package/.claude/skills/code-reviewer-123/templates/default.md +3 -0
  19. package/.claude/skills/doc-coauthoring/metadata.yaml +27 -0
  20. package/.claude/skills/docx/metadata.yaml +30 -0
  21. package/.claude/skills/frontend-design/metadata.yaml +28 -0
  22. package/.claude/skills/internal-comms/metadata.yaml +28 -0
  23. package/.claude/skills/mcp-builder/metadata.yaml +26 -0
  24. package/.claude/skills/my-skill/SKILL.md +61 -0
  25. package/.claude/skills/my-skill/examples/basic.md +3 -0
  26. package/.claude/skills/my-skill/metadata.yaml +30 -0
  27. package/.claude/skills/my-skill/templates/default.md +3 -0
  28. package/.claude/skills/pdf/metadata.yaml +29 -0
  29. package/.claude/skills/pptx/metadata.yaml +29 -0
  30. package/.claude/skills/react-best-practices/metadata.yaml +26 -0
  31. package/.claude/skills/react-node-practices/SKILL.md +409 -0
  32. package/.claude/skills/react-node-practices/metadata.yaml +56 -0
  33. package/.claude/skills/skill-creator/metadata.yaml +25 -0
  34. package/.claude/skills/slack-gif-creator/metadata.yaml +28 -0
  35. package/.claude/skills/test-skill-name/SKILL.md +61 -0
  36. package/.claude/skills/test-skill-name/examples/basic.md +3 -0
  37. package/.claude/skills/test-skill-name/metadata.yaml +30 -0
  38. package/.claude/skills/test-skill-name/templates/default.md +3 -0
  39. package/.claude/skills/test-workflow/metadata.yaml +32 -0
  40. package/.claude/skills/theme-factory/metadata.yaml +26 -0
  41. package/.claude/skills/threejs-fundamentals/metadata.yaml +27 -0
  42. package/.claude/skills/web-artifacts-builder/metadata.yaml +30 -0
  43. package/.claude/skills/web-design-guidelines/metadata.yaml +26 -0
  44. package/.claude/skills/webapp-testing/metadata.yaml +26 -0
  45. package/.claude/skills/xlsx/metadata.yaml +29 -0
  46. package/LICENSE +21 -0
  47. package/README.md +280 -529
  48. package/cli.js +19 -3
  49. package/package.json +29 -3
  50. package/template/.codex/README.md +69 -0
  51. package/template/.codex/config.toml +56 -0
  52. package/template/AGENTS.md +94 -0
  53. package/.claude/.kickoff-hint.txt +0 -52
  54. package/.claude/.sumulige-claude-version +0 -1
  55. package/.claude/.version +0 -1
  56. package/.claude/AGENTS.md +0 -42
  57. package/.claude/ANCHORS.md +0 -40
  58. package/.claude/CLAUDE.md +0 -138
  59. package/.claude/MEMORY.md +0 -69
  60. package/.claude/PROJECT_LOG.md +0 -101
  61. package/.claude/THINKING_CHAIN_GUIDE.md +0 -287
  62. package/.claude/USAGE.md +0 -175
  63. package/.claude/boris-optimizations.md +0 -167
  64. package/.claude/handoffs/INDEX.md +0 -21
  65. package/.claude/handoffs/LATEST.md +0 -76
  66. package/.claude/handoffs/handoff_2026-01-22T13-07-04-757Z.md +0 -76
  67. package/.claude/quality-gate.json +0 -82
  68. package/.claude/rag/skill-index.json +0 -135
  69. package/.claude/settings.json +0 -99
  70. package/.claude/settings.local.json +0 -175
  71. package/.claude/templates/PROJECT_KICKOFF.md +0 -89
  72. package/.claude/templates/PROJECT_PROPOSAL.md +0 -227
  73. package/.claude/templates/TASK_PLAN.md +0 -121
  74. package/.claude/templates/hooks/README.md +0 -302
  75. package/.claude/templates/hooks/hook.sh.template +0 -94
  76. package/.claude/templates/hooks/user-prompt-submit.cjs.template +0 -116
  77. package/.claude/templates/hooks/user-response-submit.cjs.template +0 -94
  78. package/.claude/templates/hooks/validate.js +0 -173
  79. package/.claude/templates/tasks/develop.md +0 -69
  80. package/.claude/templates/tasks/research.md +0 -64
  81. package/.claude/templates/tasks/test.md +0 -96
  82. package/.claude/thinking-routes/.last-sync +0 -1
  83. package/.claude/thinking-routes/QUICKREF.md +0 -98
  84. package/.claude/workflow/document-scanner.js +0 -426
  85. package/.claude/workflow/knowledge-engine.js +0 -941
  86. package/.claude/workflow/notebooklm/browser.js +0 -1028
  87. package/.claude/workflow/phases/phase1-research.js +0 -578
  88. package/.claude/workflow/phases/phase1-research.ts +0 -465
  89. package/.claude/workflow/phases/phase2-approve.js +0 -722
  90. package/.claude/workflow/phases/phase3-plan.js +0 -1200
  91. package/.claude/workflow/phases/phase4-develop.js +0 -894
  92. package/.claude/workflow/search-cache.js +0 -230
  93. package/.claude/workflow/templates/approval.md +0 -315
  94. package/.claude/workflow/templates/development.md +0 -377
  95. package/.claude/workflow/templates/planning.md +0 -328
  96. package/.claude/workflow/templates/research.md +0 -250
  97. package/.claude/workflow/types.js +0 -37
  98. package/.claude/workflow/web-search.js +0 -278
  99. package/.claude-plugin/marketplace.json +0 -71
  100. package/.github/workflows/sync-skills.yml +0 -74
  101. package/.versionrc +0 -25
  102. package/AGENTS.md +0 -580
  103. package/CHANGELOG.md +0 -481
  104. package/CLAUDE-template.md +0 -114
  105. package/DEV_TOOLS_GUIDE.md +0 -190
  106. package/PROJECT_STRUCTURE.md +0 -266
  107. package/Q&A.md +0 -325
  108. package/config/defaults.json +0 -34
  109. package/config/official-skills.json +0 -183
  110. package/config/quality-gate.json +0 -67
  111. package/config/skill-categories.json +0 -40
  112. package/config/version-manifest.json +0 -85
  113. package/demos/power-3d-scatter.html +0 -683
  114. package/development/cache/web-search/search_1193d605f8eb364651fc2f2041b58a31.json +0 -36
  115. package/development/cache/web-search/search_3798bf06960edc125f744a1abb5b72c5.json +0 -36
  116. package/development/cache/web-search/search_37c7d4843a53f0d83f1122a6f908a2a3.json +0 -36
  117. package/development/cache/web-search/search_44166fa0153709ee168485a22aa0ab40.json +0 -36
  118. package/development/cache/web-search/search_4deaebb1f77e86a8ca066dc5a49c59fd.json +0 -36
  119. package/development/cache/web-search/search_94da91789466070a7f545612e73c7372.json +0 -36
  120. package/development/cache/web-search/search_dd5de8491b8b803a3cb01339cd210fb0.json +0 -36
  121. package/development/knowledge-base/.index.clean.json +0 -1
  122. package/development/knowledge-base/.index.json +0 -486
  123. package/development/knowledge-base/test-best-practices.md +0 -29
  124. package/development/projects/proj_mkh1pazz_ixmt1/phase1/feasibility-report.md +0 -160
  125. package/development/projects/proj_mkh4jvnb_z7rwf/phase1/feasibility-report.md +0 -160
  126. package/development/projects/proj_mkh4jxkd_ewz5a/phase1/feasibility-report.md +0 -160
  127. package/development/projects/proj_mkh4k84n_ni73k/phase1/feasibility-report.md +0 -160
  128. package/development/projects/proj_mkh4wfyd_u9w88/phase1/feasibility-report.md +0 -160
  129. package/development/projects/proj_mkh4wsbo_iahvf/development/projects/proj_mkh4xbpg_4na5w/phase1/feasibility-report.md +0 -160
  130. package/development/projects/proj_mkh4wsbo_iahvf/phase1/feasibility-report.md +0 -160
  131. package/development/projects/proj_mkh4xulg_1ka8x/phase1/feasibility-report.md +0 -160
  132. package/development/projects/proj_mkh4xwhj_gch8j/phase1/feasibility-report.md +0 -160
  133. package/development/projects/proj_mkh4y2qk_9lm8z/phase1/feasibility-report.md +0 -160
  134. package/development/projects/proj_mkh4y2qk_9lm8z/phase2/requirements.md +0 -226
  135. package/development/projects/proj_mkh4y2qk_9lm8z/phase3/PRD.md +0 -345
  136. package/development/projects/proj_mkh4y2qk_9lm8z/phase3/TASK_PLAN.md +0 -284
  137. package/development/projects/proj_mkh4y2qk_9lm8z/phase3/prototype/README.md +0 -14
  138. package/development/projects/proj_mkh4y2qk_9lm8z/phase4/DEVELOPMENT_LOG.md +0 -35
  139. package/development/projects/proj_mkh4y2qk_9lm8z/phase4/TASKS.md +0 -34
  140. package/development/projects/proj_mkh4y2qk_9lm8z/phase4/source/.env.example +0 -5
  141. package/development/projects/proj_mkh4y2qk_9lm8z/phase4/source/README.md +0 -60
  142. package/development/projects/proj_mkh4y2qk_9lm8z/phase4/source/package.json +0 -25
  143. package/development/projects/proj_mkh4y2qk_9lm8z/phase4/source/src/index.js +0 -70
  144. package/development/projects/proj_mkh4y2qk_9lm8z/phase4/source/src/routes/index.js +0 -48
  145. package/development/projects/proj_mkh4y2qk_9lm8z/phase4/source/tests/health.test.js +0 -20
  146. package/development/projects/proj_mkh4y2qk_9lm8z/phase4/source/tests/jest.config.js +0 -21
  147. package/development/projects/proj_mkh7veqg_3lypc/phase1/feasibility-report.md +0 -160
  148. package/development/projects/proj_mkh7veqg_3lypc/phase2/requirements.md +0 -226
  149. package/development/projects/proj_mkh7veqg_3lypc/phase3/PRD.md +0 -345
  150. package/development/projects/proj_mkh7veqg_3lypc/phase3/TASK_PLAN.md +0 -284
  151. package/development/projects/proj_mkh7veqg_3lypc/phase3/prototype/README.md +0 -14
  152. package/development/projects/proj_mkh8k8fo_rmqn5/phase1/feasibility-report.md +0 -160
  153. package/development/projects/proj_mkh8xyhy_1vshq/phase1/feasibility-report.md +0 -178
  154. package/development/projects/proj_mkh8zddd_dhamf/phase1/feasibility-report.md +0 -377
  155. package/development/projects/proj_mkh8zddd_dhamf/phase2/requirements.md +0 -442
  156. package/development/projects/proj_mkh8zddd_dhamf/phase3/api-design.md +0 -800
  157. package/development/projects/proj_mkh8zddd_dhamf/phase3/architecture.md +0 -625
  158. package/development/projects/proj_mkh8zddd_dhamf/phase3/data-model.md +0 -830
  159. package/development/projects/proj_mkh8zddd_dhamf/phase3/risks.md +0 -957
  160. package/development/projects/proj_mkh8zddd_dhamf/phase3/wbs.md +0 -381
  161. package/development/todos/.state.json +0 -19
  162. package/development/todos/INDEX.md +0 -63
  163. package/development/todos/active/_README.md +0 -49
  164. package/development/todos/archived/_README.md +0 -11
  165. package/development/todos/backlog/_README.md +0 -11
  166. package/development/todos/backlog/mcp-integration.md +0 -35
  167. package/development/todos/completed/_README.md +0 -11
  168. package/development/todos/completed/boris-optimizations.md +0 -39
  169. package/development/todos/completed/develop/local-knowledge-index.md +0 -85
  170. package/development/todos/completed/develop/todo-system.md +0 -47
  171. package/development/todos/completed/develop/web-search-integration.md +0 -83
  172. package/development/todos/completed/test/phase1-e2e-test.md +0 -103
  173. package/docs/DEVELOPMENT.md +0 -461
  174. package/docs/MARKETPLACE.md +0 -352
  175. package/docs/RELEASE.md +0 -93
  176. package/jest.config.js +0 -63
  177. package/lib/commands.js +0 -3588
  178. package/lib/config-manager.js +0 -441
  179. package/lib/config-schema.js +0 -408
  180. package/lib/config-validator.js +0 -330
  181. package/lib/config.js +0 -122
  182. package/lib/errors.js +0 -305
  183. package/lib/incremental-sync.js +0 -274
  184. package/lib/marketplace.js +0 -487
  185. package/lib/migrations.js +0 -154
  186. package/lib/permission-audit.js +0 -255
  187. package/lib/quality-gate.js +0 -431
  188. package/lib/quality-rules.js +0 -373
  189. package/lib/utils.js +0 -150
  190. package/lib/version-check.js +0 -169
  191. package/lib/version-manifest.js +0 -171
  192. package/project-paradigm.md +0 -313
  193. package/prompts/how-to-find.md +0 -163
  194. package/prompts/linus-architect.md +0 -71
  195. package/prompts/software-architect.md +0 -173
  196. package/prompts/web-designer.md +0 -249
  197. package/scripts/fix-hooks.mjs +0 -97
  198. package/scripts/sync-external.mjs +0 -298
  199. package/scripts/sync-to-home.sh +0 -108
  200. package/scripts/update-registry.mjs +0 -325
  201. package/sources.yaml +0 -83
  202. package/tests/README.md +0 -263
  203. package/tests/commands.test.js +0 -1086
  204. package/tests/config-manager.test.js +0 -677
  205. package/tests/config-schema.test.js +0 -425
  206. package/tests/config-validator.test.js +0 -436
  207. package/tests/config.test.js +0 -100
  208. package/tests/errors.test.js +0 -477
  209. package/tests/manual/phase1-e2e.sh +0 -389
  210. package/tests/manual/phase2-test-cases.md +0 -311
  211. package/tests/manual/phase3-test-cases.md +0 -309
  212. package/tests/manual/phase4-test-cases.md +0 -414
  213. package/tests/manual/test-cases.md +0 -417
  214. package/tests/marketplace.test.js +0 -420
  215. package/tests/migrations.test.js +0 -187
  216. package/tests/quality-gate.test.js +0 -679
  217. package/tests/quality-rules.test.js +0 -619
  218. package/tests/sync-external.test.js +0 -214
  219. package/tests/update-registry.test.js +0 -251
  220. package/tests/utils.test.js +0 -171
  221. package/tests/version-check.test.js +0 -75
  222. package/tests/web-search.test.js +0 -392
  223. package/thinkinglens-silent.md +0 -138
@@ -1,461 +0,0 @@
1
- # Development Guide - 开发指南
2
-
3
- > 从零开始理解项目架构,逐步深入开发细节
4
-
5
- ---
6
-
7
- ## Level 1: 项目概述 (5 分钟)
8
-
9
- ### 这是一个什么项目?
10
-
11
- **一句话**:为 Claude Code 添加多 Agent 编排能力的 CLI 工具。
12
-
13
- **核心功能**:
14
- 1. **多 Agent 协作** - 5 个专业 AI Agent 配合工作
15
- 2. **技能管理** - 发现、安装、管理可复用的 AI 技能
16
- 3. **项目模板** - 一键部署配置好的 AI 开发环境
17
- 4. **质量门禁** - 自动代码质量检查
18
-
19
- ### 技术栈
20
-
21
- ```
22
- 语言: JavaScript (CommonJS + ES Modules)
23
- 运行时: Node.js >= 16.0
24
- 测试: Jest
25
- 发布: npm
26
- 依赖: ajv, ajv-formats (配置验证)
27
- ```
28
-
29
- ---
30
-
31
- ## Level 2: 项目结构 (10 分钟)
32
-
33
- ### 目录树
34
-
35
- ```
36
- sumulige-claude/
37
- ├── cli.js # 入口文件
38
-
39
- ├── lib/ # 核心代码 (CommonJS)
40
- │ ├── commands.js # 命令实现
41
- │ ├── config.js # 配置管理
42
- │ ├── marketplace.js # 技能市场
43
- │ ├── config-schema.js # 配置 Schema
44
- │ ├── config-validator.js # 配置验证
45
- │ ├── config-manager.js # 配置管理器
46
- │ ├── quality-rules.js # 质量规则
47
- │ ├── quality-gate.js # 质量门禁
48
- │ ├── errors.js # 错误类型
49
- │ └── utils.js # 工具函数
50
-
51
- ├── template/.claude/ # 项目模板
52
- │ ├── commands/ # 斜杠命令
53
- │ ├── skills/ # 技能库
54
- │ ├── hooks/ # 自动化钩子
55
- │ └── settings.json # 默认配置
56
-
57
- ├── scripts/ # 工具脚本 (ES Modules)
58
- │ ├── sync-external.mjs # 同步外部技能
59
- │ └── update-registry.mjs # 更新技能注册表
60
-
61
- ├── config/ # 配置文件
62
- │ ├── defaults.json # 默认配置
63
- │ ├── quality-gate.json # 质量门禁配置
64
- │ └── skill-categories.json # 技能分类
65
-
66
- ├── sources.yaml # 外部技能清单
67
- ├── .claude-plugin/ # Claude Code 插件
68
- │ └── marketplace.json # 技能注册表
69
-
70
- └── package.json # 项目配置
71
- ```
72
-
73
- ### 模块职责
74
-
75
- | 模块 | 职责 | 类型 |
76
- |------|------|------|
77
- | `cli.js` | 命令入口、分发 | CommonJS |
78
- | `lib/commands.js` | 核心命令实现 | CommonJS |
79
- | `lib/marketplace.js` | 技能市场命令 | CommonJS |
80
- | `lib/config*.js` | 配置系统 | CommonJS |
81
- | `lib/quality*.js` | 质量门禁系统 | CommonJS |
82
- | `scripts/*.mjs` | 工具脚本 | ES Module |
83
-
84
- ---
85
-
86
- ## Level 3: 命令系统 (15 分钟)
87
-
88
- ### 命令分发的数据流
89
-
90
- ```
91
- 用户输入
92
-
93
-
94
- ┌─────────────┐
95
- │ cli.js │ 解析命令
96
- └──────┬──────┘
97
-
98
-
99
- ┌─────────────────────────────────┐
100
- │ COMMANDS 注册表 │
101
- │ { │
102
- │ 'init': { help, args }, │
103
- │ 'sync': { help, args }, │
104
- │ ... │
105
- │ } │
106
- └────────────┬────────────────────┘
107
-
108
-
109
- ┌─────────────────────────────────┐
110
- │ runCommand(cmd, args) │
111
- │ ├─ 核心命令 → lib/commands.js │
112
- │ ├─ 市场命令 → lib/marketplace.js│
113
- │ └─ 技能命令 → lib/commands.js │
114
- └─────────────────────────────────┘
115
- ```
116
-
117
- ### 添加新命令
118
-
119
- **Step 1**: 在 `lib/commands.js` 添加实现
120
-
121
- ```javascript
122
- const commands = {
123
- // 新命令
124
- 'my:command': (arg1) => {
125
- console.log('执行命令,参数:', arg1);
126
- // 你的逻辑
127
- }
128
- };
129
- ```
130
-
131
- **Step 2**: 在 `cli.js` 注册
132
-
133
- ```javascript
134
- const COMMANDS = {
135
- 'my:command': {
136
- help: '命令描述',
137
- args: '<arg1>'
138
- }
139
- };
140
- ```
141
-
142
- **Step 3**: 测试
143
-
144
- ```bash
145
- node cli.js my:command test
146
- ```
147
-
148
- ---
149
-
150
- ## Level 4: 技能系统 (20 分钟)
151
-
152
- ### 什么是技能?
153
-
154
- **技能 = 知识 + 指令 + 资源**
155
-
156
- ```
157
- my-skill/
158
- ├── SKILL.md # 知识和指令
159
- ├── metadata.yaml # 技能元数据
160
- ├── scripts/ # 可执行脚本 (资源)
161
- └── templates/ # 模板文件 (资源)
162
- ```
163
-
164
- ### 添加本地技能
165
-
166
- ```bash
167
- # 1. 创建技能目录
168
- mkdir -p template/.claude/skills/my-skill
169
-
170
- # 2. 创建 SKILL.md
171
- cat > template/.claude/skills/my-skill/SKILL.md << 'EOF'
172
- # My Skill
173
-
174
- > 技能描述
175
-
176
- ## 使用场景
177
-
178
- 当用户需要...时使用此技能。
179
-
180
- EOF
181
-
182
- # 3. 创建 metadata.yaml
183
- cat > template/.claude/skills/my-skill/metadata.yaml << 'EOF'
184
- name: my-skill
185
- description: 技能描述
186
- version: 1.0.0
187
- category: tools
188
- keywords:
189
- - my-skill
190
- author:
191
- name: Your Name
192
- github: yourusername
193
- license: MIT
194
- EOF
195
- ```
196
-
197
- ### 添加外部技能
198
-
199
- 编辑 `sources.yaml`:
200
-
201
- ```yaml
202
- - name: external-skill
203
- description: "来自外部仓库的技能"
204
- source:
205
- repo: owner/repo
206
- path: skills/external-skill
207
- ref: main
208
- target:
209
- category: automation
210
- path: template/.claude/skills/automation/external-skill
211
- sync:
212
- include:
213
- - SKILL.md
214
- - src/
215
- exclude:
216
- - node_modules/
217
- ```
218
-
219
- 运行同步:
220
-
221
- ```bash
222
- npm run sync:all
223
- ```
224
-
225
- ---
226
-
227
- ## Level 5: 同步机制 (25 分钟)
228
-
229
- ### 自动同步工作流
230
-
231
- ```
232
- ┌─────────────────────────────────────────────────────────────┐
233
- │ sources.yaml │
234
- │ ├─ native 技能 (本地) │
235
- │ └─ external 技能 (GitHub) │
236
- └──────────────┬──────────────────────────────────────────────┘
237
-
238
-
239
- ┌─────────────────────────────────────────────────────────────┐
240
- │ sync-external.mjs │
241
- │ ├─ 克隆外部仓库 │
242
- │ ├─ 过滤文件 (include/exclude) │
243
- │ └─ 复制到 template/.claude/skills/ │
244
- └──────────────┬──────────────────────────────────────────────┘
245
-
246
-
247
- ┌─────────────────────────────────────────────────────────────┐
248
- │ update-registry.mjs │
249
- │ ├─ 扫描技能目录 │
250
- │ ├─ 提取元数据 │
251
- │ └─ 生成 marketplace.json │
252
- └──────────────┬──────────────────────────────────────────────┘
253
-
254
-
255
- ┌─────────────────────────────────────────────────────────────┐
256
- │ .claude-plugin/marketplace.json │
257
- │ (Claude Code 读取的注册表) │
258
- └─────────────────────────────────────────────────────────────┘
259
- ```
260
-
261
- ### GitHub Actions 自动同步
262
-
263
- `.github/workflows/sync-skills.yml`:
264
-
265
- ```yaml
266
- name: Sync External Skills
267
- on:
268
- schedule:
269
- - cron: '0 0 * * *' # 每天运行
270
- workflow_dispatch: # 手动触发
271
- jobs:
272
- sync:
273
- runs-on: ubuntu-latest
274
- steps:
275
- - uses: actions/checkout@v3
276
- - run: npm install
277
- - run: npm run sync:all
278
- - run: git config user.name "github-actions[bot]"
279
- - run: git add .claude-plugin/
280
- - run: git commit -m "chore: sync skills"
281
- - run: git push
282
- ```
283
-
284
- ---
285
-
286
- ## Level 6: 配置系统 (30 分钟)
287
-
288
- ### 三层配置
289
-
290
- ```
291
- ┌─────────────────────────────────────────────────────────────┐
292
- │ 全局配置 (~/.claude/config.json) │
293
- │ ├─ Agent 定义 │
294
- │ ├─ 默认模型 │
295
- │ └─ 技能列表 │
296
- ├─────────────────────────────────────────────────────────────┤
297
- │ 项目配置 (./.claude/settings.json) │
298
- │ ├─ Hook 配置 │
299
- │ └─ 项目覆盖设置 │
300
- ├─────────────────────────────────────────────────────────────┤
301
- │ 质量配置 (./.claude/quality-gate.json) │
302
- │ ├─ 规则启用设置 │
303
- │ └─ 门禁触发条件 │
304
- └─────────────────────────────────────────────────────────────┘
305
- ```
306
-
307
- ### 配置验证流程
308
-
309
- ```
310
- ┌─────────────────────────────────────────────────────────────┐
311
- │ config-schema.js │
312
- │ ├─ CONFIG_SCHEMA (JSON Schema) │
313
- │ ├─ SETTINGS_SCHEMA │
314
- │ └─ QUALITY_GATE_SCHEMA │
315
- └──────────────┬──────────────────────────────────────────────┘
316
-
317
-
318
- ┌─────────────────────────────────────────────────────────────┐
319
- │ config-validator.js │
320
- │ ├─ AJV 验证器 │
321
- │ ├─ validate(config, schema) │
322
- │ └─ validateFile(path, schema) │
323
- └──────────────┬──────────────────────────────────────────────┘
324
-
325
-
326
- ┌─────────────────────────────────────────────────────────────┐
327
- │ config-manager.js │
328
- │ ├─ backup() - 创建备份 │
329
- │ ├─ rollback() - 回滚配置 │
330
- │ ├─ diff() - 配置对比 │
331
- │ └─ _expandEnvVars() - 环境变量展开 │
332
- └─────────────────────────────────────────────────────────────┘
333
- ```
334
-
335
- ### 环境变量展开
336
-
337
- 配置支持环境变量语法:
338
-
339
- ```json
340
- {
341
- "apiKey": "${API_KEY:default-key}",
342
- "endpoint": "${ENDPOINT:-https://api.example.com}"
343
- }
344
- ```
345
-
346
- ---
347
-
348
- ## Level 7: 质量门禁 (35 分钟)
349
-
350
- ### 质量检查流程
351
-
352
- ```
353
- git commit
354
-
355
-
356
- ┌─────────────────────────────────────────────────────────────┐
357
- │ pre-commit hook │
358
- │ ├─ 读取 .claude/quality-gate.json │
359
- │ └─ 调用 quality-gate.js │
360
- └──────────────┬──────────────────────────────────────────────┘
361
-
362
-
363
- ┌─────────────────────────────────────────────────────────────┐
364
- │ quality-gate.js │
365
- │ ├─ 加载启用的规则 │
366
- │ ├─ 遍历暂存的文件 │
367
- │ └─ 执行每个规则的 check() │
368
- └──────────────┬──────────────────────────────────────────────┘
369
-
370
-
371
- ┌─────────────────────────────────────────────────────────────┐
372
- │ quality-rules.js │
373
- │ ├─ file-size-limit (文件大小) │
374
- │ ├─ line-count-limit (行数) │
375
- │ ├─ no-console-logs (无 console) │
376
- │ ├─ todo-comments (TODO 检查) │
377
- │ ├─ directory-depth (目录深度) │
378
- │ ├─ no-empty-files (无空文件) │
379
- │ ├─ no-trailing-whitespace (无尾随空格) │
380
- │ └─ function-length (函数长度) │
381
- └──────────────┬──────────────────────────────────────────────┘
382
-
383
- ┌───────┴────────┐
384
- ▼ ▼
385
- 通过 ✅ 失败 ❌
386
- │ │
387
- ▼ ▼
388
- 允许提交 阻止提交
389
- ```
390
-
391
- ### 添加自定义规则
392
-
393
- 编辑 `lib/quality-rules.js`:
394
-
395
- ```javascript
396
- RuleRegistry.register('my-rule', {
397
- name: 'My Custom Rule',
398
- description: '规则描述',
399
- severity: 'warn',
400
-
401
- check(file, config) {
402
- const content = fs.readFileSync(file, 'utf8');
403
- const issues = [];
404
-
405
- // 你的检查逻辑
406
- if (content.includes('TODO')) {
407
- issues.push({
408
- line: 1,
409
- message: 'Found TODO',
410
- fix: 'Resolve TODOs'
411
- });
412
- }
413
-
414
- return issues;
415
- }
416
- });
417
- ```
418
-
419
- ---
420
-
421
- ## 快速参考
422
-
423
- ### 开发工作流
424
-
425
- ```bash
426
- # 1. 修改代码
427
- vim lib/commands.js
428
-
429
- # 2. 运行测试
430
- npm test
431
-
432
- # 3. 本地测试
433
- node cli.js my-command
434
-
435
- # 4. 更新版本
436
- npm version patch
437
-
438
- # 5. 发布
439
- npm run sync:all
440
- git add .
441
- git commit -m "chore: release"
442
- git push --follow-tags
443
- npm publish
444
- ```
445
-
446
- ### 调试技巧
447
-
448
- ```bash
449
- # 详细输出
450
- node --trace-warnings cli.js my-command
451
-
452
- # 检查配置
453
- node cli.js config:validate
454
-
455
- # 质量检查
456
- node cli.js qg:check
457
- ```
458
-
459
- ---
460
-
461
- *更多细节查看 [README.md](../README.md) | [Q&A.md](../Q&A.md) | [AGENTS.md](../AGENTS.md)*