@tinkcarlos/skillora 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 (234) hide show
  1. package/.claude/skills/.temp-skill-index.md +245 -0
  2. package/.claude/skills/SKILL.md +264 -0
  3. package/.claude/skills/api-scaffolding/SKILL.md +431 -0
  4. package/.claude/skills/api-scaffolding/agents/backend-architect.md +282 -0
  5. package/.claude/skills/api-scaffolding/agents/django-pro.md +144 -0
  6. package/.claude/skills/api-scaffolding/agents/fastapi-pro.md +156 -0
  7. package/.claude/skills/api-scaffolding/agents/graphql-architect.md +146 -0
  8. package/.claude/skills/api-scaffolding/skills/fastapi-templates/SKILL.md +171 -0
  9. package/.claude/skills/api-testing-observability/SKILL.md +583 -0
  10. package/.claude/skills/api-testing-observability/agents/api-documenter.md +146 -0
  11. package/.claude/skills/api-testing-observability/commands/api-mock.md +1320 -0
  12. package/.claude/skills/brainstorming/SKILL.md +283 -0
  13. package/.claude/skills/bug-fixing/SKILL.md +382 -0
  14. package/.claude/skills/bug-fixing/references/backend-guide.md +132 -0
  15. package/.claude/skills/bug-fixing/references/bug-guide.md +354 -0
  16. package/.claude/skills/bug-fixing/references/bug-record-template.md +134 -0
  17. package/.claude/skills/bug-fixing/references/bug-records.md +88 -0
  18. package/.claude/skills/bug-fixing/references/code-review-gate.md +81 -0
  19. package/.claude/skills/bug-fixing/references/common-bugs.md +140 -0
  20. package/.claude/skills/bug-fixing/references/complete-workflow.md +361 -0
  21. package/.claude/skills/bug-fixing/references/config-driven-fixes.md +136 -0
  22. package/.claude/skills/bug-fixing/references/context-isolation-protocol.md +268 -0
  23. package/.claude/skills/bug-fixing/references/cross-surface-regression.md +120 -0
  24. package/.claude/skills/bug-fixing/references/database-investigation.md +129 -0
  25. package/.claude/skills/bug-fixing/references/dependency-and-integrity-protocol.md +369 -0
  26. package/.claude/skills/bug-fixing/references/fix-completeness-checklist.md +239 -0
  27. package/.claude/skills/bug-fixing/references/frontend-guide.md +219 -0
  28. package/.claude/skills/bug-fixing/references/fullstack-joint-guide.md +123 -0
  29. package/.claude/skills/bug-fixing/references/functional-breakage.md +117 -0
  30. package/.claude/skills/bug-fixing/references/ide-lint-errors-guide.md +176 -0
  31. package/.claude/skills/bug-fixing/references/impact-analysis.md +511 -0
  32. package/.claude/skills/bug-fixing/references/investigation-checklist.md +263 -0
  33. package/.claude/skills/bug-fixing/references/knowledge-extraction-guide.md +531 -0
  34. package/.claude/skills/bug-fixing/references/knowledge-workflow.md +212 -0
  35. package/.claude/skills/bug-fixing/references/post-edit-quality-gate.md +30 -0
  36. package/.claude/skills/bug-fixing/references/python-env-and-testing.md +126 -0
  37. package/.claude/skills/bug-fixing/references/rca-guide.md +428 -0
  38. package/.claude/skills/bug-fixing/references/similar-bug-patterns.md +113 -0
  39. package/.claude/skills/bug-fixing/references/skill-delegation-guide.md +350 -0
  40. package/.claude/skills/bug-fixing/references/skill-orchestration.md +155 -0
  41. package/.claude/skills/bug-fixing/references/testing-strategy.md +350 -0
  42. package/.claude/skills/bug-fixing/references/tooling-build-scripts.md +162 -0
  43. package/.claude/skills/bug-fixing/references/user-input-validation.md +77 -0
  44. package/.claude/skills/bug-fixing/references/ux-patterns.md +158 -0
  45. package/.claude/skills/bug-fixing/references/windows-terminal-hygiene.md +106 -0
  46. package/.claude/skills/bug-fixing/references/zero-regression-matrix.md +239 -0
  47. package/.claude/skills/bug-fixing/references/zero-risk-protocol.md +102 -0
  48. package/.claude/skills/bug-fixing/scripts/format_code.py +611 -0
  49. package/.claude/skills/bug-fixing/scripts/generate_report_template.py +74 -0
  50. package/.claude/skills/bug-fixing/scripts/lint_check.py +816 -0
  51. package/.claude/skills/bug-fixing/scripts/requirements.txt +36 -0
  52. package/.claude/skills/cicd-pipeline/SKILL.md +300 -0
  53. package/.claude/skills/code-review/SKILL.md +535 -0
  54. package/.claude/skills/code-review/references/anti-pattern-scan.md +102 -0
  55. package/.claude/skills/code-review/references/automated-analysis.md +456 -0
  56. package/.claude/skills/code-review/references/backend-common-issues.md +589 -0
  57. package/.claude/skills/code-review/references/backend-expert-guide.md +415 -0
  58. package/.claude/skills/code-review/references/backend-review.md +868 -0
  59. package/.claude/skills/code-review/references/batch-processing-strategy.md +198 -0
  60. package/.claude/skills/code-review/references/call-chain-analysis-protocol.md +166 -0
  61. package/.claude/skills/code-review/references/common-patterns.md +321 -0
  62. package/.claude/skills/code-review/references/configuration-review.md +425 -0
  63. package/.claude/skills/code-review/references/control-flow-completeness.md +114 -0
  64. package/.claude/skills/code-review/references/database-review.md +298 -0
  65. package/.claude/skills/code-review/references/dependency-and-integrity-protocol.md +313 -0
  66. package/.claude/skills/code-review/references/external-standards.md +51 -0
  67. package/.claude/skills/code-review/references/feature-review.md +329 -0
  68. package/.claude/skills/code-review/references/file-review-template.md +326 -0
  69. package/.claude/skills/code-review/references/frontend-advanced.md +654 -0
  70. package/.claude/skills/code-review/references/frontend-common-issues.md +482 -0
  71. package/.claude/skills/code-review/references/frontend-expert-guide.md +342 -0
  72. package/.claude/skills/code-review/references/frontend-review.md +783 -0
  73. package/.claude/skills/code-review/references/fullstack-consistency.md +418 -0
  74. package/.claude/skills/code-review/references/fullstack-review.md +477 -0
  75. package/.claude/skills/code-review/references/functional-completeness.md +386 -0
  76. package/.claude/skills/code-review/references/hidden-bugs-detection.md +473 -0
  77. package/.claude/skills/code-review/references/ide-lint-errors-guide.md +173 -0
  78. package/.claude/skills/code-review/references/infrastructure-review.md +453 -0
  79. package/.claude/skills/code-review/references/iteration-review.md +264 -0
  80. package/.claude/skills/code-review/references/job-review.md +335 -0
  81. package/.claude/skills/code-review/references/layered-checklist-protocol.md +157 -0
  82. package/.claude/skills/code-review/references/logic-completeness.md +535 -0
  83. package/.claude/skills/code-review/references/mandatory-checklist.md +288 -0
  84. package/.claude/skills/code-review/references/multi-language-guide.md +800 -0
  85. package/.claude/skills/code-review/references/new-project-review.md +226 -0
  86. package/.claude/skills/code-review/references/non-code-files-review.md +451 -0
  87. package/.claude/skills/code-review/references/overlooked-issues.md +657 -0
  88. package/.claude/skills/code-review/references/platform-specific-review.md +195 -0
  89. package/.claude/skills/code-review/references/precision-analysis-protocol.md +260 -0
  90. package/.claude/skills/code-review/references/python-patterns.md +494 -0
  91. package/.claude/skills/code-review/references/rca-techniques.md +362 -0
  92. package/.claude/skills/code-review/references/report-template.md +430 -0
  93. package/.claude/skills/code-review/references/resource-limits-and-degradation.md +137 -0
  94. package/.claude/skills/code-review/references/review-dimensions.md +311 -0
  95. package/.claude/skills/code-review/references/review-guide.md +202 -0
  96. package/.claude/skills/code-review/references/review-knowledge-workflow.md +257 -0
  97. package/.claude/skills/code-review/references/review-progress-tracker-protocol.md +172 -0
  98. package/.claude/skills/code-review/references/review-record-template.md +195 -0
  99. package/.claude/skills/code-review/references/skill-orchestration.md +143 -0
  100. package/.claude/skills/code-review/references/ui-ux-review.md +470 -0
  101. package/.claude/skills/containerization/SKILL.md +313 -0
  102. package/.claude/skills/database-migrations/agents/database-admin.md +142 -0
  103. package/.claude/skills/database-migrations/agents/database-optimizer.md +144 -0
  104. package/.claude/skills/database-migrations/commands/migration-observability.md +408 -0
  105. package/.claude/skills/database-migrations/commands/sql-migrations.md +492 -0
  106. package/.claude/skills/finishing-a-development-branch/SKILL.md +319 -0
  107. package/.claude/skills/frontend-design/LICENSE.txt +177 -0
  108. package/.claude/skills/frontend-design/SKILL.md +587 -0
  109. package/.claude/skills/frontend-design/references/color-consistency.md +487 -0
  110. package/.claude/skills/frontend-design/references/color-palettes-full.md +657 -0
  111. package/.claude/skills/frontend-design/references/design-system-generator.md +285 -0
  112. package/.claude/skills/frontend-design/references/font-pairings-full.md +705 -0
  113. package/.claude/skills/frontend-design/references/industry-anti-patterns.md +281 -0
  114. package/.claude/skills/frontend-design/references/layout-anti-patterns.md +582 -0
  115. package/.claude/skills/frontend-design/references/motion-patterns.md +659 -0
  116. package/.claude/skills/frontend-design/references/pre-delivery-checklist.md +153 -0
  117. package/.claude/skills/frontend-design/references/responsive-design.md +555 -0
  118. package/.claude/skills/frontend-design/references/style-modification-rules.md +335 -0
  119. package/.claude/skills/frontend-design/references/ui-styles-full.md +383 -0
  120. package/.claude/skills/frontend-design/references/ui-styles-rating.md +191 -0
  121. package/.claude/skills/frontend-design/references/ux-guidelines.md +640 -0
  122. package/.claude/skills/fullstack-developer/SKILL.md +512 -0
  123. package/.claude/skills/fullstack-developer/references/api-contract-guide.md +312 -0
  124. package/.claude/skills/fullstack-developer/references/api-response-patterns.md +223 -0
  125. package/.claude/skills/fullstack-developer/references/async-patterns.md +220 -0
  126. package/.claude/skills/fullstack-developer/references/bug-prevention.md +914 -0
  127. package/.claude/skills/fullstack-developer/references/code-quality-checklist.md +271 -0
  128. package/.claude/skills/fullstack-developer/references/complete-development-workflow.md +278 -0
  129. package/.claude/skills/fullstack-developer/references/context-isolation-protocol.md +256 -0
  130. package/.claude/skills/fullstack-developer/references/database-migration.md +331 -0
  131. package/.claude/skills/fullstack-developer/references/dependency-and-integrity-protocol.md +390 -0
  132. package/.claude/skills/fullstack-developer/references/development-phases.md +333 -0
  133. package/.claude/skills/fullstack-developer/references/expert-guide.md +214 -0
  134. package/.claude/skills/fullstack-developer/references/file-import-patterns.md +114 -0
  135. package/.claude/skills/fullstack-developer/references/graceful-degradation-patterns.md +78 -0
  136. package/.claude/skills/fullstack-developer/references/ide-lint-errors-guide.md +183 -0
  137. package/.claude/skills/fullstack-developer/references/integration-testing.md +301 -0
  138. package/.claude/skills/fullstack-developer/references/mock-api-patterns.md +307 -0
  139. package/.claude/skills/fullstack-developer/references/phase-gate-template.md +249 -0
  140. package/.claude/skills/fullstack-developer/references/post-edit-quality-gate.md +30 -0
  141. package/.claude/skills/fullstack-developer/references/python-engineering.md +79 -0
  142. package/.claude/skills/fullstack-developer/references/skill-orchestration.md +214 -0
  143. package/.claude/skills/fullstack-developer/references/skill-router-table.md +304 -0
  144. package/.claude/skills/fullstack-developer/references/state-sync.md +217 -0
  145. package/.claude/skills/fullstack-developer/references/ui-testing-checklist.md +292 -0
  146. package/.claude/skills/fullstack-developer/scripts/format_code.py +611 -0
  147. package/.claude/skills/fullstack-developer/scripts/lint_check.py +816 -0
  148. package/.claude/skills/fullstack-developer/scripts/requirements.txt +36 -0
  149. package/.claude/skills/performance-optimization/SKILL.md +250 -0
  150. package/.claude/skills/product-requirements/SKILL.md +357 -0
  151. package/.claude/skills/product-requirements/references/acceptance-criteria.md +335 -0
  152. package/.claude/skills/product-requirements/references/answer-first-questioning-protocol.md +299 -0
  153. package/.claude/skills/product-requirements/references/competitive-analysis-guide.md +183 -0
  154. package/.claude/skills/product-requirements/references/document-accuracy-protocol.md +253 -0
  155. package/.claude/skills/product-requirements/references/document-management-protocol.md +278 -0
  156. package/.claude/skills/product-requirements/references/external-standards.md +62 -0
  157. package/.claude/skills/product-requirements/references/feature-spec-template.md +359 -0
  158. package/.claude/skills/product-requirements/references/knowledge-acquisition-protocol.md +251 -0
  159. package/.claude/skills/product-requirements/references/plan-execution-protocol.md +334 -0
  160. package/.claude/skills/product-requirements/references/plan-generation-protocol.md +264 -0
  161. package/.claude/skills/product-requirements/references/prioritization-frameworks.md +80 -0
  162. package/.claude/skills/product-requirements/references/requirement-decomposition-protocol.md +291 -0
  163. package/.claude/skills/product-requirements/references/user-story-examples.md +297 -0
  164. package/.claude/skills/product-requirements/references/workflow-templates.md +266 -0
  165. package/.claude/skills/react-best-practices/SKILL.md +198 -0
  166. package/.claude/skills/react-best-practices/references/advanced-patterns.md +94 -0
  167. package/.claude/skills/react-best-practices/references/bundle-optimization.md +182 -0
  168. package/.claude/skills/react-best-practices/references/client-data-fetching.md +112 -0
  169. package/.claude/skills/react-best-practices/references/complete-guide.md +2249 -0
  170. package/.claude/skills/react-best-practices/references/eliminating-waterfalls.md +169 -0
  171. package/.claude/skills/react-best-practices/references/javascript-performance.md +256 -0
  172. package/.claude/skills/react-best-practices/references/rendering-performance.md +230 -0
  173. package/.claude/skills/react-best-practices/references/rerender-optimization.md +214 -0
  174. package/.claude/skills/react-best-practices/references/server-performance.md +182 -0
  175. package/.claude/skills/security-audit/SKILL.md +226 -0
  176. package/.claude/skills/shared-references/advanced-debugging-techniques.md +186 -0
  177. package/.claude/skills/shared-references/code-quality-checklist.md +218 -0
  178. package/.claude/skills/shared-references/code-review-efficiency-guide.md +125 -0
  179. package/.claude/skills/shared-references/mcp-dependency-compatibility-protocol.md +276 -0
  180. package/.claude/skills/shared-references/skill-call-graph.md +230 -0
  181. package/.claude/skills/shared-references/skill-orchestration-protocol.md +281 -0
  182. package/.claude/skills/shared-references/subagent-dispatch-templates.md +199 -0
  183. package/.claude/skills/skill-expert-skills/LICENSE.txt +204 -0
  184. package/.claude/skills/skill-expert-skills/QUICK_NAVIGATION.md +374 -0
  185. package/.claude/skills/skill-expert-skills/SKILL.md +247 -0
  186. package/.claude/skills/skill-expert-skills/docs/_index.md +91 -0
  187. package/.claude/skills/skill-expert-skills/references/deep-research-methodology.md +389 -0
  188. package/.claude/skills/skill-expert-skills/references/docs-generation-workflow.md +398 -0
  189. package/.claude/skills/skill-expert-skills/references/domain-expertise-protocol.md +343 -0
  190. package/.claude/skills/skill-expert-skills/references/domain-knowledge/_index.md +54 -0
  191. package/.claude/skills/skill-expert-skills/references/domain-knowledge/backend-expertise.md +517 -0
  192. package/.claude/skills/skill-expert-skills/references/domain-knowledge/bug-fixing-expertise.md +363 -0
  193. package/.claude/skills/skill-expert-skills/references/domain-knowledge/code-review-expertise.md +392 -0
  194. package/.claude/skills/skill-expert-skills/references/domain-knowledge/frontend-expertise.md +410 -0
  195. package/.claude/skills/skill-expert-skills/references/domain-knowledge-template.md +503 -0
  196. package/.claude/skills/skill-expert-skills/references/examples.md +782 -0
  197. package/.claude/skills/skill-expert-skills/references/integration-examples.md +655 -0
  198. package/.claude/skills/skill-expert-skills/references/knowledge-validation-checklist.md +246 -0
  199. package/.claude/skills/skill-expert-skills/references/latest-knowledge-acquisition.md +461 -0
  200. package/.claude/skills/skill-expert-skills/references/mcp-tools-guide.md +439 -0
  201. package/.claude/skills/skill-expert-skills/references/official-best-practices.md +616 -0
  202. package/.claude/skills/skill-expert-skills/references/patterns.md +218 -0
  203. package/.claude/skills/skill-expert-skills/references/plugin-skills-guide.md +432 -0
  204. package/.claude/skills/skill-expert-skills/references/requirement-elicitation-protocol.md +290 -0
  205. package/.claude/skills/skill-expert-skills/references/skill-creator-SKILL.md +353 -0
  206. package/.claude/skills/skill-expert-skills/references/skill-templates.md +583 -0
  207. package/.claude/skills/skill-expert-skills/references/skills-knowledge-base.md +561 -0
  208. package/.claude/skills/skill-expert-skills/references/tools-guide.md +379 -0
  209. package/.claude/skills/skill-expert-skills/references/troubleshooting.md +378 -0
  210. package/.claude/skills/skill-expert-skills/references/universality-guide.md +205 -0
  211. package/.claude/skills/skill-expert-skills/references/writing-style-guide.md +466 -0
  212. package/.claude/skills/skill-expert-skills/scripts/__pycache__/quick_validate.cpython-313.pyc +0 -0
  213. package/.claude/skills/skill-expert-skills/scripts/__pycache__/universal_validate.cpython-313.pyc +0 -0
  214. package/.claude/skills/skill-expert-skills/scripts/analyze_trigger.py +425 -0
  215. package/.claude/skills/skill-expert-skills/scripts/diff_with_official.py +188 -0
  216. package/.claude/skills/skill-expert-skills/scripts/init_skill.py +349 -0
  217. package/.claude/skills/skill-expert-skills/scripts/package_skill.py +156 -0
  218. package/.claude/skills/skill-expert-skills/scripts/quick_validate.py +493 -0
  219. package/.claude/skills/skill-expert-skills/scripts/requirements.txt +2 -0
  220. package/.claude/skills/skill-expert-skills/scripts/universal_validate.py +182 -0
  221. package/.claude/skills/skill-expert-skills/scripts/upgrade_skill.py +431 -0
  222. package/.claude/skills/subagent-driven-development/SKILL.md +268 -0
  223. package/.claude/skills/test-driven-development/SKILL.md +246 -0
  224. package/.claude/skills/test-driven-development/references/testing-anti-patterns.md +192 -0
  225. package/.claude/skills/using-git-worktrees/SKILL.md +266 -0
  226. package/.claude/skills/using-skillstack/SKILL.md +127 -0
  227. package/.claude/skills/vercel-deploy/SKILL.md +166 -0
  228. package/.claude/skills/vercel-deploy/scripts/deploy.sh +249 -0
  229. package/.claude/skills/verification-before-completion/SKILL.md +305 -0
  230. package/.claude/skills/writing-plans/SKILL.md +259 -0
  231. package/README.md +69 -0
  232. package/bin/cli.js +468 -0
  233. package/lib/init.js +333 -0
  234. package/package.json +29 -0
@@ -0,0 +1,198 @@
1
+ # Batch Processing Strategy
2
+
3
+ ## 核心原则
4
+
5
+ **大范围 code review 必须分批处理,避免上下文溢出导致遗漏。**
6
+
7
+ ---
8
+
9
+ ## 分批阈值
10
+
11
+ | 指标 | 阈值 | 处理方式 |
12
+ |------|------|----------|
13
+ | 文件数 | ≤ 5 | 单批处理 |
14
+ | 文件数 | 6-15 | 分 2-3 批 |
15
+ | 文件数 | > 15 | 分 4+ 批 |
16
+ | 单文件行数 | ≤ 200 | 正常处理 |
17
+ | 单文件行数 | 201-500 | 重点关注 |
18
+ | 单文件行数 | > 500 | 单独一批 |
19
+ | 总变更行数 | ≤ 400 | 单批处理 |
20
+ | 总变更行数 | > 400 | 必须分批 |
21
+
22
+ ---
23
+
24
+ ## 分批策略
25
+
26
+ ### Strategy 1: 按依赖关系分批
27
+
28
+ ```
29
+ Batch 1: 基础层 (models, types, utils)
30
+
31
+ Batch 2: 服务层 (services, repositories)
32
+
33
+ Batch 3: 接口层 (controllers, routes, handlers)
34
+
35
+ Batch 4: 表现层 (components, views)
36
+ ```
37
+
38
+ **优点**: 按调用链顺序,便于追踪影响
39
+
40
+ ### Strategy 2: 按风险等级分批
41
+
42
+ ```
43
+ Batch 1: 高风险 (auth, payment, data)
44
+
45
+ Batch 2: 中风险 (business logic)
46
+
47
+ Batch 3: 低风险 (UI, utils)
48
+ ```
49
+
50
+ **优点**: 优先处理关键代码
51
+
52
+ ### Strategy 3: 按变更类型分批
53
+
54
+ ```
55
+ Batch 1: 新增文件
56
+
57
+ Batch 2: 修改文件 (核心逻辑)
58
+
59
+ Batch 3: 修改文件 (配置/测试)
60
+
61
+ Batch 4: 删除文件 (验证无残留引用)
62
+ ```
63
+
64
+ **优点**: 同类变更一起处理
65
+
66
+ ---
67
+
68
+ ## 分批执行流程
69
+
70
+ ```
71
+ ┌─────────────────────────────────────────────────────────────┐
72
+ │ Phase 1: 分批规划 │
73
+ │ ───────────────────────────────────────────────────────── │
74
+ │ 1. 统计文件数和行数 │
75
+ │ 2. 选择分批策略 │
76
+ │ 3. 创建批次计划 │
77
+ │ 4. 记录到 Progress Tracker │
78
+ └─────────────────────────────────────────────────────────────┘
79
+
80
+ ┌─────────────────────────────────────────────────────────────┐
81
+ │ Phase 2: 批次执行 │
82
+ │ ───────────────────────────────────────────────────────── │
83
+ │ For each batch: │
84
+ │ 1. 输出 "开始 Batch X/N" │
85
+ │ 2. 逐文件分析 + Checkpoint │
86
+ │ 3. 输出 "完成 Batch X/N" │
87
+ │ 4. 更新 Progress Tracker │
88
+ └─────────────────────────────────────────────────────────────┘
89
+
90
+ ┌─────────────────────────────────────────────────────────────┐
91
+ │ Phase 3: 跨批次验证 │
92
+ │ ───────────────────────────────────────────────────────── │
93
+ │ 1. 检查跨批次依赖 │
94
+ │ 2. 验证调用链完整性 │
95
+ │ 3. 汇总所有发现 │
96
+ └─────────────────────────────────────────────────────────────┘
97
+ ```
98
+
99
+ ---
100
+
101
+ ## 批次计划模板
102
+
103
+ ```markdown
104
+ ## Batch Plan
105
+
106
+ ### Overview
107
+ - **Total Files**: 12
108
+ - **Total Lines**: 1,500
109
+ - **Strategy**: 按依赖关系分批
110
+ - **Batches**: 3
111
+
112
+ ### Batch 1: 基础层 (4 files, ~400 lines)
113
+ | # | File | Lines | Risk |
114
+ |---|------|-------|------|
115
+ | 1 | models/user.ts | 120 | Medium |
116
+ | 2 | models/order.ts | 80 | Medium |
117
+ | 3 | types/index.ts | 50 | Low |
118
+ | 4 | utils/helpers.ts | 150 | Low |
119
+
120
+ ### Batch 2: 服务层 (4 files, ~600 lines)
121
+ | # | File | Lines | Risk |
122
+ |---|------|-------|------|
123
+ | 5 | services/auth.ts | 200 | High |
124
+ | 6 | services/order.ts | 180 | High |
125
+ | 7 | services/payment.ts | 150 | High |
126
+ | 8 | repositories/user.ts | 70 | Medium |
127
+
128
+ ### Batch 3: 接口层 (4 files, ~500 lines)
129
+ | # | File | Lines | Risk |
130
+ |---|------|-------|------|
131
+ | 9 | routes/auth.ts | 150 | High |
132
+ | 10 | routes/order.ts | 120 | Medium |
133
+ | 11 | controllers/user.ts | 130 | Medium |
134
+ | 12 | middleware/auth.ts | 100 | High |
135
+ ```
136
+
137
+ ---
138
+
139
+ ## 批次完成确认
140
+
141
+ 每个批次完成后,必须输出:
142
+
143
+ ```markdown
144
+ ## Batch X/N Complete
145
+
146
+ ### Summary
147
+ - **Files Analyzed**: 4/4
148
+ - **Issues Found**: 3 (1×P0, 1×P1, 1×P2)
149
+ - **Checkpoints**: CP-001 ~ CP-004
150
+
151
+ ### Cross-Batch Dependencies
152
+ | Symbol | Defined In | Used In Next Batch |
153
+ |--------|------------|-------------------|
154
+ | `User` | models/user.ts | services/auth.ts |
155
+ | `validateToken()` | utils/helpers.ts | middleware/auth.ts |
156
+
157
+ ### Ready for Next Batch: ✅
158
+ ```
159
+
160
+ ---
161
+
162
+ ## 上下文恢复机制
163
+
164
+ 如果 review 中断,可以从 Progress Tracker 恢复:
165
+
166
+ ```markdown
167
+ ## Resume Point
168
+
169
+ **Last Completed**:
170
+ - Batch: 2/3
171
+ - File: services/payment.ts
172
+ - Checkpoint: CP-007
173
+
174
+ **Pending**:
175
+ - Batch 3: 4 files
176
+ - Files: routes/auth.ts, routes/order.ts, controllers/user.ts, middleware/auth.ts
177
+
178
+ **Resume Command**:
179
+ 继续从 Batch 3 开始,先读取 CP-001 ~ CP-007 的发现摘要
180
+ ```
181
+
182
+ ---
183
+
184
+ ## 与 Progress Tracker 集成
185
+
186
+ 在 Progress Tracker 中添加批次信息:
187
+
188
+ ```markdown
189
+ ## Batch Progress
190
+
191
+ | Batch | Files | Status | Issues |
192
+ |-------|-------|--------|--------|
193
+ | 1/3 | 4 | ✅ Done | 1 |
194
+ | 2/3 | 4 | ✅ Done | 2 |
195
+ | 3/3 | 4 | 🔄 In Progress | - |
196
+
197
+ **Current**: Batch 3, File 2/4 (routes/order.ts)
198
+ ```
@@ -0,0 +1,166 @@
1
+ # Call Chain Analysis Protocol
2
+
3
+ ## 核心原则
4
+
5
+ **深度追踪调用链,确保不遗漏间接影响的 bug。**
6
+
7
+ ---
8
+
9
+ ## 调用链分析层级
10
+
11
+ ```
12
+ ┌─────────────────────────────────────────────────────────────┐
13
+ │ Level 0: 当前文件内的调用 │
14
+ │ ───────────────────────────────────────────────────────── │
15
+ │ 函数 A → 函数 B → 函数 C (同一文件内) │
16
+ └─────────────────────────────────────────────────────────────┘
17
+
18
+ ┌─────────────────────────────────────────────────────────────┐
19
+ │ Level 1: 直接依赖 (import/require) │
20
+ │ ───────────────────────────────────────────────────────── │
21
+ │ 当前文件 → 直接导入的模块 │
22
+ └─────────────────────────────────────────────────────────────┘
23
+
24
+ ┌─────────────────────────────────────────────────────────────┐
25
+ │ Level 2: 间接依赖 (依赖的依赖) │
26
+ │ ───────────────────────────────────────────────────────── │
27
+ │ 当前文件 → 模块 A → 模块 B │
28
+ └─────────────────────────────────────────────────────────────┘
29
+
30
+ ┌─────────────────────────────────────────────────────────────┐
31
+ │ Level 3: 反向依赖 (谁调用了我) │
32
+ │ ───────────────────────────────────────────────────────── │
33
+ │ 调用者 A → 当前文件 │
34
+ │ 调用者 B → 当前文件 │
35
+ └─────────────────────────────────────────────────────────────┘
36
+ ```
37
+
38
+ ---
39
+
40
+ ## 分析深度规则
41
+
42
+ | 变更类型 | 分析深度 | 原因 |
43
+ |----------|----------|------|
44
+ | 函数签名变更 | Level 3 (所有调用者) | 可能破坏调用方 |
45
+ | 返回值类型变更 | Level 3 (所有调用者) | 可能导致类型错误 |
46
+ | 内部逻辑变更 | Level 1 (直接依赖) | 影响范围有限 |
47
+ | 新增函数 | Level 0 (当前文件) | 无现有调用者 |
48
+ | 删除函数 | Level 3 (所有调用者) | 必须确认无残留调用 |
49
+ | 修改公共类型 | Level 2+ (递归追踪) | 影响范围广 |
50
+
51
+ ---
52
+
53
+ ## 使用 MCP 工具分析调用链
54
+
55
+ ### 使用 serena 工具
56
+
57
+ ```
58
+ 1. 查找符号定义:
59
+ mcp__serena__find_symbol(name_path="functionName", include_body=true)
60
+
61
+ 2. 查找引用:
62
+ mcp__serena__find_referencing_symbols(name_path="functionName", relative_path="src/file.ts")
63
+
64
+ 3. 获取文件概览:
65
+ mcp__serena__get_symbols_overview(relative_path="src/file.ts", depth=1)
66
+ ```
67
+
68
+ ### 分析流程
69
+
70
+ ```
71
+ Step 1: 识别变更的符号
72
+
73
+ Step 2: 使用 find_referencing_symbols 查找调用者
74
+
75
+ Step 3: 对每个调用者,递归查找其调用者
76
+
77
+ Step 4: 直到达到入口点 (API/UI/Job) 或无更多调用者
78
+
79
+ Step 5: 记录完整调用链到 Progress Tracker
80
+ ```
81
+
82
+ ---
83
+
84
+ ## 调用链记录格式
85
+
86
+ ```markdown
87
+ ## Call Chain Analysis
88
+
89
+ ### Symbol: `validateUser()`
90
+
91
+ **Definition**: src/services/auth.ts:45
92
+
93
+ **Call Chain (Depth 3)**:
94
+ ```
95
+ validateUser() [src/services/auth.ts:45]
96
+ ├── login() [src/controllers/auth.ts:20]
97
+ │ ├── POST /api/login [src/routes/auth.ts:15]
98
+ │ └── LoginForm.onSubmit() [src/components/LoginForm.tsx:30]
99
+ ├── register() [src/controllers/auth.ts:50]
100
+ │ └── POST /api/register [src/routes/auth.ts:25]
101
+ └── refreshToken() [src/services/auth.ts:80]
102
+ └── GET /api/refresh [src/routes/auth.ts:35]
103
+ ```
104
+
105
+ **Impact Analysis**:
106
+ - 入口点: 3 个 API 端点, 1 个 UI 组件
107
+ - 影响范围: 认证流程全部受影响
108
+ - 风险等级: HIGH
109
+ ```
110
+
111
+ ---
112
+
113
+ ## 关键符号识别
114
+
115
+ ### 高风险符号类型
116
+
117
+ | 类型 | 示例 | 分析深度 |
118
+ |------|------|----------|
119
+ | 认证/授权 | `validateToken`, `checkPermission` | Level 3 |
120
+ | 数据访问 | `findUser`, `saveOrder` | Level 2 |
121
+ | 业务逻辑 | `calculatePrice`, `processPayment` | Level 2 |
122
+ | 工具函数 | `formatDate`, `parseJSON` | Level 1 |
123
+ | 类型定义 | `User`, `Order` | Level 2 |
124
+
125
+ ### 自动识别规则
126
+
127
+ ```
128
+ 如果符号名包含以下关键词,自动提升分析深度:
129
+ - auth, login, token, permission → Level 3
130
+ - save, update, delete, create → Level 2
131
+ - validate, check, verify → Level 2
132
+ - payment, order, transaction → Level 3
133
+ ```
134
+
135
+ ---
136
+
137
+ ## 与 Checkpoint 集成
138
+
139
+ 在 Checkpoint 中记录调用链分析:
140
+
141
+ ```markdown
142
+ ### [CP-001] src/services/auth.ts
143
+
144
+ **Call Chain Analysis**:
145
+ | Symbol | Callers | Depth | Risk |
146
+ |--------|---------|-------|------|
147
+ | validateUser() | 4 | 3 | HIGH |
148
+ | hashPassword() | 2 | 2 | MEDIUM |
149
+ | generateToken() | 3 | 2 | HIGH |
150
+
151
+ **Cross-File Impact**:
152
+ - auth.ts 变更影响 5 个文件
153
+ - 需要检查: controllers/auth.ts, routes/auth.ts, components/LoginForm.tsx
154
+ ```
155
+
156
+ ---
157
+
158
+ ## 终止条件
159
+
160
+ 调用链追踪在以下情况停止:
161
+
162
+ 1. **到达入口点**: API 路由、UI 事件处理、定时任务
163
+ 2. **到达外部边界**: 第三方库、系统 API
164
+ 3. **循环检测**: 发现循环依赖
165
+ 4. **深度限制**: 超过 5 层(可配置)
166
+ 5. **无更多调用者**: 符号未被任何代码引用
@@ -0,0 +1,321 @@
1
+ # Common Patterns & Anti-Patterns
2
+
3
+ Frequently identified issues and their solutions during code review.
4
+
5
+ ## JavaScript/TypeScript
6
+
7
+ ### Async/Await Issues
8
+
9
+ ```typescript
10
+ // 🚫 Anti-Pattern: Sequential when parallel possible
11
+ const user = await getUser(id);
12
+ const posts = await getPosts(id);
13
+ const comments = await getComments(id);
14
+
15
+ // ✅ Pattern: Parallel execution
16
+ const [user, posts, comments] = await Promise.all([
17
+ getUser(id),
18
+ getPosts(id),
19
+ getComments(id)
20
+ ]);
21
+ ```
22
+
23
+ ```typescript
24
+ // 🚫 Anti-Pattern: Unhandled promise rejection
25
+ async function load() {
26
+ const data = await fetch(url); // Unhandled rejection
27
+ }
28
+ load();
29
+
30
+ // ✅ Pattern: Proper error handling
31
+ async function load() {
32
+ try {
33
+ const data = await fetch(url);
34
+ } catch (error) {
35
+ handleError(error);
36
+ }
37
+ }
38
+ ```
39
+
40
+ ```typescript
41
+ // 🚫 Anti-Pattern: await in loop
42
+ for (const id of ids) {
43
+ const result = await fetch(id); // Sequential, slow
44
+ }
45
+
46
+ // ✅ Pattern: Promise.all for parallel
47
+ const results = await Promise.all(ids.map(id => fetch(id)));
48
+
49
+ // ✅ Pattern: For rate limiting, use p-limit
50
+ import pLimit from 'p-limit';
51
+ const limit = pLimit(5);
52
+ const results = await Promise.all(ids.map(id => limit(() => fetch(id))));
53
+ ```
54
+
55
+ ### Type Safety
56
+
57
+ ```typescript
58
+ // 🚫 Anti-Pattern: Type assertion without validation
59
+ const user = data as User;
60
+
61
+ // ✅ Pattern: Runtime validation
62
+ import { z } from 'zod';
63
+ const UserSchema = z.object({
64
+ id: z.string(),
65
+ name: z.string(),
66
+ });
67
+ const user = UserSchema.parse(data);
68
+ ```
69
+
70
+ ```typescript
71
+ // 🚫 Anti-Pattern: any type
72
+ function process(data: any) { }
73
+
74
+ // ✅ Pattern: Proper typing
75
+ function process<T extends BaseData>(data: T): ProcessedData<T> { }
76
+ ```
77
+
78
+ ### Null Safety
79
+
80
+ ```typescript
81
+ // 🚫 Anti-Pattern: Truthy check for 0 or ''
82
+ if (value) { } // Fails for 0, '', false
83
+
84
+ // ✅ Pattern: Explicit null check
85
+ if (value != null) { }
86
+ if (value !== undefined) { }
87
+ ```
88
+
89
+ ```typescript
90
+ // 🚫 Anti-Pattern: Optional chaining without fallback
91
+ const name = user?.profile?.name; // Could be undefined
92
+
93
+ // ✅ Pattern: Nullish coalescing
94
+ const name = user?.profile?.name ?? 'Anonymous';
95
+ ```
96
+
97
+ ## React
98
+
99
+ ### State Management
100
+
101
+ ```typescript
102
+ // 🚫 Anti-Pattern: Derived state in useState
103
+ const [fullName, setFullName] = useState(`${firstName} ${lastName}`);
104
+
105
+ // ✅ Pattern: Compute derived values
106
+ const fullName = useMemo(() => `${firstName} ${lastName}`, [firstName, lastName]);
107
+ ```
108
+
109
+ ```typescript
110
+ // 🚫 Anti-Pattern: Stale closure
111
+ useEffect(() => {
112
+ const interval = setInterval(() => {
113
+ setCount(count + 1); // Always uses initial count
114
+ }, 1000);
115
+ }, []);
116
+
117
+ // ✅ Pattern: Functional update
118
+ useEffect(() => {
119
+ const interval = setInterval(() => {
120
+ setCount(c => c + 1); // Uses current value
121
+ }, 1000);
122
+ return () => clearInterval(interval);
123
+ }, []);
124
+ ```
125
+
126
+ ### Performance
127
+
128
+ ```typescript
129
+ // 🚫 Anti-Pattern: Inline handlers creating new references
130
+ <Button onClick={() => handleClick(id)} />
131
+
132
+ // ✅ Pattern: Stable reference with useCallback
133
+ const handleButtonClick = useCallback(() => handleClick(id), [id]);
134
+ <Button onClick={handleButtonClick} />
135
+ ```
136
+
137
+ ```typescript
138
+ // 🚫 Anti-Pattern: Missing key or using index
139
+ {items.map((item, index) => <Item key={index} />)}
140
+
141
+ // ✅ Pattern: Stable unique key
142
+ {items.map(item => <Item key={item.id} />)}
143
+ ```
144
+
145
+ ### Component Design
146
+
147
+ ```typescript
148
+ // 🚫 Anti-Pattern: Prop drilling
149
+ <GrandParent>
150
+ <Parent data={data}>
151
+ <Child data={data}>
152
+ <GrandChild data={data} /> // Only one that uses it
153
+ </Child>
154
+ </Parent>
155
+ </GrandParent>
156
+
157
+ // ✅ Pattern: Context or composition
158
+ const DataContext = createContext();
159
+ <DataContext.Provider value={data}>
160
+ <GrandParent>
161
+ <Parent>
162
+ <Child>
163
+ <GrandChild /> // Uses useContext
164
+ </Child>
165
+ </Parent>
166
+ </GrandParent>
167
+ </DataContext.Provider>
168
+ ```
169
+
170
+ ## Database/SQL
171
+
172
+ ### Query Optimization
173
+
174
+ ```sql
175
+ -- 🚫 Anti-Pattern: SELECT *
176
+ SELECT * FROM users WHERE id = 1;
177
+
178
+ -- ✅ Pattern: Select only needed columns
179
+ SELECT id, name, email FROM users WHERE id = 1;
180
+ ```
181
+
182
+ ```sql
183
+ -- 🚫 Anti-Pattern: No index on WHERE clause
184
+ SELECT * FROM orders WHERE created_at > '2024-01-01';
185
+
186
+ -- ✅ Pattern: Add appropriate index
187
+ CREATE INDEX idx_orders_created_at ON orders(created_at);
188
+ ```
189
+
190
+ ```sql
191
+ -- 🚫 Anti-Pattern: OR on different columns
192
+ SELECT * FROM users WHERE email = 'x' OR phone = 'y';
193
+
194
+ -- ✅ Pattern: UNION for different indexes
195
+ SELECT * FROM users WHERE email = 'x'
196
+ UNION
197
+ SELECT * FROM users WHERE phone = 'y';
198
+ ```
199
+
200
+ ### Transaction Safety
201
+
202
+ ```typescript
203
+ // 🚫 Anti-Pattern: No transaction for related operations
204
+ await db.users.update(userId, { balance: newBalance });
205
+ await db.transactions.create({ userId, amount }); // What if this fails?
206
+
207
+ // ✅ Pattern: Use transaction
208
+ await db.transaction(async (tx) => {
209
+ await tx.users.update(userId, { balance: newBalance });
210
+ await tx.transactions.create({ userId, amount });
211
+ });
212
+ ```
213
+
214
+ ## API Design
215
+
216
+ ### Error Handling
217
+
218
+ ```typescript
219
+ // 🚫 Anti-Pattern: Generic error response
220
+ res.status(500).json({ error: 'Something went wrong' });
221
+
222
+ // ✅ Pattern: Structured error response
223
+ res.status(400).json({
224
+ code: 'VALIDATION_ERROR',
225
+ message: 'Invalid input',
226
+ details: [
227
+ { field: 'email', error: 'Invalid email format' }
228
+ ]
229
+ });
230
+ ```
231
+
232
+ ### Input Validation
233
+
234
+ ```typescript
235
+ // 🚫 Anti-Pattern: No validation
236
+ app.post('/users', (req, res) => {
237
+ db.users.create(req.body); // Trust user input
238
+ });
239
+
240
+ // ✅ Pattern: Validate and sanitize
241
+ app.post('/users', async (req, res) => {
242
+ const validated = UserCreateSchema.parse(req.body);
243
+ const sanitized = sanitize(validated);
244
+ await db.users.create(sanitized);
245
+ });
246
+ ```
247
+
248
+ ## Testing
249
+
250
+ ### Test Quality
251
+
252
+ ```typescript
253
+ // 🚫 Anti-Pattern: Testing implementation details
254
+ expect(component.state.isLoading).toBe(true);
255
+
256
+ // ✅ Pattern: Test behavior/output
257
+ expect(screen.getByRole('progressbar')).toBeInTheDocument();
258
+ ```
259
+
260
+ ```typescript
261
+ // 🚫 Anti-Pattern: Brittle snapshot
262
+ expect(component).toMatchSnapshot(); // Breaks on any change
263
+
264
+ // ✅ Pattern: Specific assertions
265
+ expect(screen.getByText('Welcome')).toBeInTheDocument();
266
+ expect(screen.getByRole('button', { name: 'Submit' })).toBeEnabled();
267
+ ```
268
+
269
+ ### Mock Patterns
270
+
271
+ ```typescript
272
+ // 🚫 Anti-Pattern: Over-mocking
273
+ jest.mock('./database');
274
+ jest.mock('./cache');
275
+ jest.mock('./logger');
276
+ jest.mock('./utils');
277
+ // Test is now meaningless
278
+
279
+ // ✅ Pattern: Minimal mocking
280
+ jest.mock('./externalApi'); // Only mock external dependencies
281
+ // Let internal modules work naturally
282
+ ```
283
+
284
+ ## Security Patterns
285
+
286
+ ### Authentication
287
+
288
+ ```typescript
289
+ // 🚫 Anti-Pattern: Password in URL
290
+ GET /login?password=secret
291
+
292
+ // ✅ Pattern: POST with body
293
+ POST /login
294
+ { "password": "secret" } // Over HTTPS
295
+ ```
296
+
297
+ ```typescript
298
+ // 🚫 Anti-Pattern: Predictable session ID
299
+ const sessionId = `user-${userId}`;
300
+
301
+ // ✅ Pattern: Cryptographic randomness
302
+ const sessionId = crypto.randomBytes(32).toString('hex');
303
+ ```
304
+
305
+ ### Data Exposure
306
+
307
+ ```typescript
308
+ // 🚫 Anti-Pattern: Return entire user object
309
+ res.json(user); // Includes passwordHash
310
+
311
+ // ✅ Pattern: Explicit field selection
312
+ res.json({
313
+ id: user.id,
314
+ name: user.name,
315
+ email: user.email
316
+ });
317
+
318
+ // Or use a DTO
319
+ res.json(UserDTO.fromEntity(user));
320
+ ```
321
+