@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,428 @@
1
+ # Root Cause Analysis Guide
2
+
3
+ > RCA techniques to identify true bug sources, not symptoms.
4
+
5
+ ## Table of Contents
6
+
7
+ - [RCA Principles](#rca-principles)
8
+ - [RCA Techniques](#rca-techniques)
9
+ - [Five Whys](#1-five-whys)
10
+ - [Fishbone Diagram (Ishikawa)](#2-fishbone-diagram-ishikawa)
11
+ - [Timeline Analysis](#3-timeline-analysis)
12
+ - [Fault Tree Analysis](#4-fault-tree-analysis)
13
+ - [Change Analysis](#5-change-analysis)
14
+ - [Git Bisect](#6-git-bisect-binary-search-debugging)
15
+ - [Code Path Tracing](#code-path-tracing)
16
+ - [Root Cause Categories](#root-cause-categories)
17
+ - [RCA Report Template](#rca-report-template)
18
+
19
+ Techniques for identifying the true source of bugs, not just symptoms.
20
+
21
+ ---
22
+
23
+ ## RCA Principles
24
+
25
+ 1. **Don't fix symptoms** - A fix that addresses symptoms will see the bug return
26
+ 2. **Ask "Why?" repeatedly** - Keep digging until you find the fundamental cause
27
+ 3. **Verify the cause** - Prove the root cause by showing the fix prevents the bug
28
+ 4. **Look for patterns** - Similar bugs may have the same root cause
29
+ 5. **Document for learning** - RCA helps prevent future similar bugs
30
+
31
+ ---
32
+
33
+ ## RCA Techniques
34
+
35
+ ### 1. Five Whys
36
+
37
+ Start with the problem and ask "Why?" five times:
38
+
39
+ ```markdown
40
+ **Problem**: Users receive duplicate emails
41
+
42
+ **Why 1**: Why do users receive duplicate emails?
43
+ → Because the email service is called twice.
44
+
45
+ **Why 2**: Why is the email service called twice?
46
+ → Because the submit handler fires twice.
47
+
48
+ **Why 3**: Why does the submit handler fire twice?
49
+ → Because the button click event bubbles and triggers twice.
50
+
51
+ **Why 4**: Why does the event bubble and trigger twice?
52
+ → Because there's no event.stopPropagation() or debouncing.
53
+
54
+ **Why 5**: Why is there no prevention for double submission?
55
+ → Because the form component was written without considering rapid clicks.
56
+
57
+ **Root Cause**: Form component lacks double-submission prevention.
58
+ ```
59
+
60
+ ### 2. Fishbone Diagram (Ishikawa)
61
+
62
+ Categorize potential causes:
63
+
64
+ ```
65
+ ┌─── People ──────┐
66
+ │ - Training gap │
67
+ │ - Human error │
68
+ │ │
69
+ ┌─── Process ──────┐│ │┌─── Technology ────┐
70
+ │ - Missing step ││ ││ - System bug │
71
+ │ - Wrong order ││ ││ - Integration issue│
72
+ │ - No validation ││ [BUG] ││ - Performance │
73
+ └──────────────────┘│ │└────────────────────┘
74
+ │ │
75
+ ┌─── Environment ──┐│ │┌─── Data ────────────┐
76
+ │ - Config diff ││ ││ - Invalid input │
77
+ │ - Network issue ││ ││ - Corrupted data │
78
+ │ - Resource limit │└──────────────────┘│ - Missing data │
79
+ └──────────────────┘ └──────────────────────┘
80
+ ```
81
+
82
+ ### 3. Timeline Analysis
83
+
84
+ For intermittent or timing-related bugs:
85
+
86
+ ```markdown
87
+ ## Timeline Analysis
88
+
89
+ | Time | Event | System State | Notes |
90
+ |------|-------|--------------|-------|
91
+ | 00:00 | User clicks Submit | Form data valid | |
92
+ | 00:01 | API call initiated | Loading state | |
93
+ | 00:02 | User clicks Submit again | Already loading | No prevention! |
94
+ | 00:03 | First API call completes | Success | |
95
+ | 00:04 | Second API call completes | Duplicate! | |
96
+
97
+ **Root Cause**: No loading state check before submit
98
+ ```
99
+
100
+ ### 4. Fault Tree Analysis
101
+
102
+ Work backwards from the failure:
103
+
104
+ ```
105
+ [Duplicate Email]
106
+
107
+ ┌────────────┴────────────┐
108
+ │ │
109
+ [Email sent twice] [Two records created]
110
+ │ │
111
+ ┌─────────┴─────────┐ │
112
+ │ │ │
113
+ [Double API call] [Retry logic] [Race condition]
114
+
115
+
116
+ [No debounce on button] ← ROOT CAUSE
117
+ ```
118
+
119
+ ### 5. Change Analysis
120
+
121
+ Compare working vs broken states:
122
+
123
+ ```markdown
124
+ ## Change Analysis
125
+
126
+ | Aspect | Working State | Broken State | Changed? |
127
+ |--------|---------------|--------------|----------|
128
+ | Code version | v1.2.3 | v1.2.4 | Yes ✓ |
129
+ | Config | prod.yaml | prod.yaml | No |
130
+ | Database | schema v42 | schema v42 | No |
131
+ | Dependencies | package.json | package.json | No |
132
+ | Environment | AWS us-east-1 | AWS us-east-1 | No |
133
+
134
+ **Focus Investigation On**: Code changes in v1.2.4
135
+
136
+ **Changed Files**:
137
+ - src/services/email.ts (modified)
138
+ - src/components/Form.tsx (modified) ← likely culprit
139
+
140
+ **Root Cause**: Form.tsx change removed debounce logic
141
+ ```
142
+
143
+ ### 6. Git Bisect (Binary Search Debugging)
144
+
145
+ **Best for**: Regression bugs where you know "it worked before"
146
+
147
+ When a recent change broke functionality, use binary search to find the culprit commit:
148
+
149
+ ```bash
150
+ # Start bisect session
151
+ git bisect start
152
+
153
+ # Mark current commit as broken
154
+ git bisect bad HEAD
155
+
156
+ # Mark last known working version
157
+ git bisect good v1.2.3 # or commit hash
158
+
159
+ # Git checks out middle commit - test it manually
160
+ # Then mark result:
161
+ git bisect good # if this commit works
162
+ git bisect bad # if this commit is broken
163
+
164
+ # Repeat until Git identifies the first bad commit
165
+ # Output: "abc1234 is the first bad commit"
166
+
167
+ # End session and return to original state
168
+ git bisect reset
169
+ ```
170
+
171
+ **Automated Bisect** (with test script):
172
+
173
+ ```bash
174
+ # Run test automatically on each commit
175
+ git bisect start HEAD v1.2.3
176
+ git bisect run npm test # or any command that exits 0=good, 1=bad
177
+ ```
178
+
179
+ **When to Use Git Bisect**:
180
+
181
+ | Scenario | Use Bisect? |
182
+ |----------|-------------|
183
+ | "It worked last week" | ✅ Yes |
184
+ | "It never worked" | ❌ No |
185
+ | Many commits between good/bad | ✅ Yes (efficient) |
186
+ | Only 2-3 commits | ❌ No (just check manually) |
187
+ | Can't reproduce reliably | ❌ No (need consistent test) |
188
+
189
+ ---
190
+
191
+ ## Code Path Tracing
192
+
193
+ ### Step 1: Identify Entry Point
194
+
195
+ Where does the bug start?
196
+
197
+ ```typescript
198
+ // Error message: "Cannot read property 'name' of undefined"
199
+ // Stack trace points to:
200
+ src/components/UserProfile.tsx:23
201
+ const name = user.name; // Error here
202
+ ```
203
+
204
+ ### Step 2: Trace Data Flow
205
+
206
+ Follow the data from source to error:
207
+
208
+ ```
209
+ Entry: UserProfile.tsx:23 (user.name)
210
+
211
+ │ user comes from props
212
+
213
+ Source: UserProfilePage.tsx:15
214
+
215
+ │ user comes from useUser hook
216
+
217
+ Source: hooks/useUser.ts:8
218
+
219
+ │ user comes from API response
220
+
221
+ Source: api/users.ts:12
222
+
223
+ │ API returns null when user not found
224
+
225
+ ROOT CAUSE: No handling for API returning null
226
+ ```
227
+
228
+ ### Step 3: Document the Path
229
+
230
+ ```markdown
231
+ ## Code Path
232
+
233
+ ### Execution Flow
234
+ ```
235
+ 1. UserProfilePage renders
236
+ └── Calls useUser(userId)
237
+ └── Fetches from /api/users/{id}
238
+ └── API returns null (user deleted)
239
+ └── useUser returns null
240
+ └── UserProfile receives user=null
241
+ └── Accesses user.name
242
+ └── TypeError!
243
+ ```
244
+
245
+ ### Missing Checks
246
+ | Location | Should Check | Current |
247
+ |----------|-------------|---------|
248
+ | API response | user exists | No ❌ |
249
+ | useUser hook | null handling | No ❌ |
250
+ | UserProfile | user prop | No ❌ |
251
+
252
+ ### Fix Location Options
253
+ 1. API: Return 404 (proper REST) ← Best
254
+ 2. Hook: Return loading/error state
255
+ 3. Component: Null check before render
256
+
257
+ ---
258
+
259
+ ## Root Cause Categories
260
+
261
+ ### Logic Errors
262
+
263
+ ```typescript
264
+ // Bug: Off-by-one error
265
+ for (let i = 0; i <= array.length; i++) { // <= should be <
266
+ process(array[i]); // undefined on last iteration
267
+ }
268
+
269
+ // Bug: Wrong operator
270
+ if (user.role = 'admin') { // = should be ===
271
+ // Always true, assigns 'admin' to role
272
+ }
273
+
274
+ // Bug: Incorrect condition
275
+ if (items.length > 0 || items.length < 10) { // || should be &&
276
+ // Always true if length > 0
277
+ }
278
+ ```
279
+
280
+ ### Async/Timing Errors
281
+
282
+ ```typescript
283
+ // Bug: Race condition
284
+ let data;
285
+ async function loadData() {
286
+ data = await fetchData();
287
+ }
288
+ loadData();
289
+ console.log(data); // undefined - loadData hasn't finished
290
+
291
+ // Bug: Stale closure
292
+ useEffect(() => {
293
+ const interval = setInterval(() => {
294
+ setCount(count + 1); // count is stale
295
+ }, 1000);
296
+ }, []); // missing count dependency
297
+
298
+ // Bug: Unhandled promise rejection
299
+ async function save() {
300
+ await api.save(data); // No try/catch
301
+ }
302
+ ```
303
+
304
+ ### State Errors
305
+
306
+ ```typescript
307
+ // Bug: Mutation of state
308
+ const [items, setItems] = useState([]);
309
+ function addItem(item) {
310
+ items.push(item); // Mutates state directly!
311
+ setItems(items); // Same reference, no re-render
312
+ }
313
+
314
+ // Bug: Invalid state transition
315
+ if (status === 'pending') {
316
+ setStatus('complete');
317
+ } else if (status === 'processing') {
318
+ setStatus('complete'); // Can go from processing to complete?
319
+ }
320
+ ```
321
+
322
+ ### Data Errors
323
+
324
+ ```typescript
325
+ // Bug: Unexpected data type
326
+ function formatDate(date) {
327
+ return date.toISOString(); // Fails if date is string
328
+ }
329
+
330
+ // Bug: Missing data validation
331
+ function createUser(data) {
332
+ return { email: data.email.toLowerCase() }; // Fails if email undefined
333
+ }
334
+
335
+ // Bug: Data shape assumption
336
+ function getFirstItem(response) {
337
+ return response.data.items[0].name; // Many assumptions!
338
+ }
339
+ ```
340
+
341
+ ### Integration Errors
342
+
343
+ ```typescript
344
+ // Bug: API contract mismatch
345
+ // Frontend expects: { user: { name: string } }
346
+ // Backend returns: { data: { user: { name: string } } }
347
+ const name = response.user.name; // undefined
348
+
349
+ // Bug: Version mismatch
350
+ // Library v1: axios.get().then(res => res.data)
351
+ // Library v2: axios.get().then(res => res.body)
352
+
353
+ // Bug: Environment difference
354
+ const apiUrl = process.env.API_URL; // undefined in production
355
+ ```
356
+
357
+ ---
358
+
359
+ ## RCA Report Template
360
+
361
+ ```markdown
362
+ # Root Cause Analysis Report
363
+
364
+ ## Bug Summary
365
+ | Field | Value |
366
+ |-------|-------|
367
+ | Bug ID | BUG-XXX |
368
+ | Summary | [One line] |
369
+ | Severity | Critical / High / Medium / Low |
370
+ | Date Found | [Date] |
371
+ | Date Fixed | [Date] |
372
+
373
+ ## Problem Statement
374
+ [Detailed description of the bug]
375
+
376
+ ## Impact
377
+ - Users affected: [Number/scope]
378
+ - Features affected: [List]
379
+ - Duration: [How long issue existed]
380
+
381
+ ## Root Cause
382
+
383
+ ### 5 Whys Analysis
384
+ [Complete 5 whys]
385
+
386
+ ### Root Cause Statement
387
+ **Category**: [Logic/Async/State/Data/Integration]
388
+
389
+ **Description**: [Clear statement of root cause]
390
+
391
+ **Code Location**:
392
+ - File: [path]
393
+ - Line: [number]
394
+ - Function: [name]
395
+
396
+ ## Fix
397
+
398
+ ### Solution
399
+ [Description of fix]
400
+
401
+ ### Code Changes
402
+ [Diff or description]
403
+
404
+ ### Why This Fix?
405
+ [Justification]
406
+
407
+ ## Verification
408
+ - [ ] Bug cannot be reproduced
409
+ - [ ] Tests added for bug case
410
+ - [ ] Related features verified
411
+
412
+ ## Prevention
413
+
414
+ ### Immediate Actions
415
+ - [Action 1]
416
+ - [Action 2]
417
+
418
+ ### Long-term Improvements
419
+ - [Improvement 1]
420
+ - [Improvement 2]
421
+
422
+ ## Lessons Learned
423
+ - [Lesson 1]
424
+ - [Lesson 2]
425
+
426
+ ## Related Bugs
427
+ - [BUG-XXX] - Similar issue in [component]
428
+ ```
@@ -0,0 +1,113 @@
1
+ # Similar Bug Patterns & Search Strategies
2
+
3
+ 修复一个 bug 后,使用本指南搜索整个项目中的相似问题。
4
+
5
+ ## 核心方法
6
+
7
+ ```
8
+ 1. 提取模式 → 2. 构建搜索 → 3. 全项目扫描 → 4. 逐一验证 → 5. 批量修复
9
+ ```
10
+
11
+ ## 常见 Bug 模式
12
+
13
+ ### 1. 硬编码数据 (Hardcoded Data)
14
+
15
+ **特征**: 使用静态值而非从配置/API获取
16
+
17
+ **搜索策略**:
18
+ - 搜索相同的硬编码值
19
+ - 搜索 `INITIAL_*`, `DEFAULT_*`, `MOCK_*` 常量
20
+ - 搜索初始化为非空数组的状态
21
+
22
+ **验证**: 该值应该从哪里获取?配置文件?API?
23
+
24
+ ---
25
+
26
+ ### 2. 占位符代码 (Placeholder Code)
27
+
28
+ **特征**: 函数只有日志/注释,没有实际逻辑
29
+
30
+ **搜索策略**:
31
+ - 搜索 `// TODO`, `// FIXME`, `// 后续实现`
32
+ - 搜索只有 `console.log` 的处理函数
33
+ - 搜索带 `placeholder`, `stub`, `mock` 注释的代码
34
+
35
+ **验证**: 函数应该做什么?实际做了吗?
36
+
37
+ ---
38
+
39
+ ### 3. 缺少集成 (Missing Integration)
40
+
41
+ **特征**: 前端有操作但没调用后端,或反之
42
+
43
+ **搜索策略**:
44
+ - 列出所有 `handle*` / `on*` 函数
45
+ - 检查哪些没有 API 调用
46
+ - 对比前端功能与后端 API 清单
47
+
48
+ **验证**: 每个用户操作都有对应的后端调用吗?
49
+
50
+ ---
51
+
52
+ ### 4. 契约不匹配 (Contract Mismatch)
53
+
54
+ **特征**: 前后端字段名/结构不一致
55
+
56
+ **搜索策略**:
57
+ - 对比前端表单字段与后端 Schema
58
+ - 搜索驼峰/下划线命名不一致
59
+ - 检查请求体结构与 API 期望
60
+
61
+ **验证**: 前端发送的字段名与后端期望的完全一致吗?
62
+
63
+ ---
64
+
65
+ ### 5. 状态不同步 (State Not Synced)
66
+
67
+ **特征**: 本地状态与服务器数据脱节
68
+
69
+ **搜索策略**:
70
+ - 搜索初始化为空但无数据获取的状态
71
+ - 搜索 CUD 操作后没有刷新列表的代码
72
+ - 检查乐观更新是否有回滚机制
73
+
74
+ **验证**: 状态从哪里来?操作后如何同步?
75
+
76
+ ---
77
+
78
+ ## 搜索执行模板
79
+
80
+ ```bash
81
+ # 通用搜索模板(根据实际情况调整)
82
+ # 建议:先缩小范围(疑似目录 + glob),再逐步扩展到全仓库(.)
83
+
84
+ # 1. 搜索特定值
85
+ rg -n "搜索词" path/to/suspected/area/ --glob "*.ext"
86
+
87
+ # 2. 搜索模式
88
+ rg -n "pattern" path/to/suspected/area/ --glob "*.{ts,tsx}"
89
+
90
+ # 3. 列出文件后人工检查
91
+ rg -l "pattern" path/to/suspected/area/ --glob "*.tsx"
92
+ ```
93
+
94
+ ## 报告模板
95
+
96
+ ```markdown
97
+ ## Similar Bug Hunt Report
98
+
99
+ **原始 Bug**: [简述]
100
+ **Bug 模式**: [硬编码/占位符/缺少集成/契约不匹配/状态不同步]
101
+ **搜索关键词**: [实际搜索的内容]
102
+
103
+ ### 搜索结果
104
+
105
+ | 文件 | 行号 | 问题描述 | 状态 |
106
+ |------|------|----------|------|
107
+ | xxx.tsx | 123 | 同样的问题 | ✅ 已修复 |
108
+ | yyy.tsx | 45 | 误报 | ⏭️ 跳过 |
109
+
110
+ ### 结论
111
+ 共发现 N 处相似问题,已全部修复。
112
+ ```
113
+