tribunal-kit 3.0.0 → 3.1.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.
- package/.agent/ARCHITECTURE.md +99 -99
- package/.agent/GEMINI.md +52 -52
- package/.agent/agents/accessibility-reviewer.md +187 -220
- package/.agent/agents/ai-code-reviewer.md +199 -233
- package/.agent/agents/backend-specialist.md +215 -238
- package/.agent/agents/code-archaeologist.md +161 -181
- package/.agent/agents/database-architect.md +184 -207
- package/.agent/agents/debugger.md +191 -218
- package/.agent/agents/dependency-reviewer.md +103 -136
- package/.agent/agents/devops-engineer.md +218 -238
- package/.agent/agents/documentation-writer.md +201 -221
- package/.agent/agents/explorer-agent.md +160 -180
- package/.agent/agents/frontend-reviewer.md +160 -194
- package/.agent/agents/frontend-specialist.md +248 -237
- package/.agent/agents/game-developer.md +48 -52
- package/.agent/agents/logic-reviewer.md +116 -149
- package/.agent/agents/mobile-developer.md +200 -223
- package/.agent/agents/mobile-reviewer.md +162 -195
- package/.agent/agents/orchestrator.md +181 -211
- package/.agent/agents/penetration-tester.md +157 -174
- package/.agent/agents/performance-optimizer.md +183 -203
- package/.agent/agents/performance-reviewer.md +178 -211
- package/.agent/agents/product-manager.md +142 -162
- package/.agent/agents/product-owner.md +6 -25
- package/.agent/agents/project-planner.md +142 -162
- package/.agent/agents/qa-automation-engineer.md +225 -242
- package/.agent/agents/security-auditor.md +174 -194
- package/.agent/agents/seo-specialist.md +193 -213
- package/.agent/agents/sql-reviewer.md +161 -194
- package/.agent/agents/supervisor-agent.md +184 -203
- package/.agent/agents/swarm-worker-contracts.md +17 -17
- package/.agent/agents/swarm-worker-registry.md +46 -46
- package/.agent/agents/test-coverage-reviewer.md +160 -193
- package/.agent/agents/test-engineer.md +0 -21
- package/.agent/agents/type-safety-reviewer.md +175 -208
- package/.agent/patterns/generator.md +9 -9
- package/.agent/patterns/inversion.md +12 -12
- package/.agent/patterns/pipeline.md +9 -9
- package/.agent/patterns/reviewer.md +13 -13
- package/.agent/patterns/tool-wrapper.md +9 -9
- package/.agent/rules/GEMINI.md +63 -63
- package/.agent/scripts/compress_skills.py +167 -0
- package/.agent/scripts/consolidate_skills.py +173 -0
- package/.agent/scripts/deep_compress.py +202 -0
- package/.agent/scripts/minify_context.py +80 -0
- package/.agent/scripts/security_scan.py +1 -1
- package/.agent/scripts/strip_tribunal.py +41 -0
- package/.agent/skills/agent-organizer/SKILL.md +92 -126
- package/.agent/skills/agentic-patterns/SKILL.md +0 -70
- package/.agent/skills/ai-prompt-injection-defense/SKILL.md +126 -160
- package/.agent/skills/api-patterns/SKILL.md +123 -215
- package/.agent/skills/api-security-auditor/SKILL.md +143 -177
- package/.agent/skills/app-builder/SKILL.md +326 -50
- package/.agent/skills/app-builder/templates/SKILL.md +13 -15
- package/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +16 -16
- package/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +22 -22
- package/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +18 -18
- package/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +20 -20
- package/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +17 -17
- package/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +18 -18
- package/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +21 -21
- package/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +19 -19
- package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +26 -26
- package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +26 -26
- package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +19 -19
- package/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +18 -18
- package/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +20 -20
- package/.agent/skills/appflow-wireframe/SKILL.md +87 -121
- package/.agent/skills/architecture/SKILL.md +82 -252
- package/.agent/skills/authentication-best-practices/SKILL.md +139 -173
- package/.agent/skills/bash-linux/SKILL.md +120 -154
- package/.agent/skills/behavioral-modes/SKILL.md +8 -69
- package/.agent/skills/brainstorming/SKILL.md +428 -104
- package/.agent/skills/building-native-ui/SKILL.md +143 -174
- package/.agent/skills/clean-code/SKILL.md +323 -360
- package/.agent/skills/code-review-checklist/SKILL.md +0 -62
- package/.agent/skills/config-validator/SKILL.md +107 -141
- package/.agent/skills/csharp-developer/SKILL.md +468 -528
- package/.agent/skills/database-design/SKILL.md +104 -369
- package/.agent/skills/deployment-procedures/SKILL.md +111 -145
- package/.agent/skills/devops-engineer/SKILL.md +295 -332
- package/.agent/skills/devops-incident-responder/SKILL.md +79 -113
- package/.agent/skills/doc.md +5 -5
- package/.agent/skills/documentation-templates/SKILL.md +19 -63
- package/.agent/skills/edge-computing/SKILL.md +123 -157
- package/.agent/skills/extract-design-system/SKILL.md +100 -134
- package/.agent/skills/framer-motion-expert/SKILL.md +111 -855
- package/.agent/skills/frontend-design/SKILL.md +151 -499
- package/.agent/skills/game-design-expert/SKILL.md +71 -105
- package/.agent/skills/game-engineering-expert/SKILL.md +88 -122
- package/.agent/skills/geo-fundamentals/SKILL.md +89 -124
- package/.agent/skills/github-operations/SKILL.md +279 -314
- package/.agent/skills/gsap-expert/SKILL.md +119 -826
- package/.agent/skills/i18n-localization/SKILL.md +104 -138
- package/.agent/skills/intelligent-routing/SKILL.md +159 -127
- package/.agent/skills/lint-and-validate/SKILL.md +8 -52
- package/.agent/skills/llm-engineering/SKILL.md +344 -357
- package/.agent/skills/local-first/SKILL.md +120 -154
- package/.agent/skills/mcp-builder/SKILL.md +84 -118
- package/.agent/skills/mobile-design/SKILL.md +213 -219
- package/.agent/skills/motion-engineering/SKILL.md +184 -0
- package/.agent/skills/nextjs-react-expert/SKILL.md +99 -698
- package/.agent/skills/nodejs-best-practices/SKILL.md +498 -559
- package/.agent/skills/observability/SKILL.md +293 -330
- package/.agent/skills/parallel-agents/SKILL.md +88 -122
- package/.agent/skills/performance-profiling/SKILL.md +217 -254
- package/.agent/skills/plan-writing/SKILL.md +84 -118
- package/.agent/skills/platform-engineer/SKILL.md +89 -123
- package/.agent/skills/playwright-best-practices/SKILL.md +128 -162
- package/.agent/skills/powershell-windows/SKILL.md +112 -146
- package/.agent/skills/python-patterns/SKILL.md +7 -35
- package/.agent/skills/python-pro/SKILL.md +148 -754
- package/.agent/skills/react-specialist/SKILL.md +123 -827
- package/.agent/skills/readme-builder/SKILL.md +15 -85
- package/.agent/skills/realtime-patterns/SKILL.md +269 -304
- package/.agent/skills/red-team-tactics/SKILL.md +10 -51
- package/.agent/skills/rust-pro/SKILL.md +623 -701
- package/.agent/skills/seo-fundamentals/SKILL.md +120 -154
- package/.agent/skills/server-management/SKILL.md +156 -190
- package/.agent/skills/shadcn-ui-expert/SKILL.md +172 -206
- package/.agent/skills/skill-creator/SKILL.md +18 -58
- package/.agent/skills/sql-pro/SKILL.md +579 -633
- package/.agent/skills/supabase-postgres-best-practices/SKILL.md +28 -68
- package/.agent/skills/swiftui-expert/SKILL.md +142 -176
- package/.agent/skills/systematic-debugging/SKILL.md +84 -118
- package/.agent/skills/tailwind-patterns/SKILL.md +516 -576
- package/.agent/skills/tdd-workflow/SKILL.md +103 -137
- package/.agent/skills/test-result-analyzer/SKILL.md +33 -73
- package/.agent/skills/testing-patterns/SKILL.md +512 -573
- package/.agent/skills/trend-researcher/SKILL.md +30 -71
- package/.agent/skills/ui-ux-pro-max/SKILL.md +0 -41
- package/.agent/skills/ui-ux-researcher/SKILL.md +51 -91
- package/.agent/skills/vue-expert/SKILL.md +127 -866
- package/.agent/skills/vulnerability-scanner/SKILL.md +354 -269
- package/.agent/skills/web-accessibility-auditor/SKILL.md +159 -193
- package/.agent/skills/web-design-guidelines/SKILL.md +17 -61
- package/.agent/skills/webapp-testing/SKILL.md +111 -145
- package/.agent/skills/whimsy-injector/SKILL.md +58 -132
- package/.agent/skills/workflow-optimizer/SKILL.md +28 -68
- package/.agent/workflows/api-tester.md +151 -151
- package/.agent/workflows/audit.md +127 -138
- package/.agent/workflows/brainstorm.md +110 -110
- package/.agent/workflows/changelog.md +112 -112
- package/.agent/workflows/create.md +124 -124
- package/.agent/workflows/debug.md +165 -189
- package/.agent/workflows/deploy.md +180 -189
- package/.agent/workflows/enhance.md +128 -151
- package/.agent/workflows/fix.md +114 -135
- package/.agent/workflows/generate.md +12 -4
- package/.agent/workflows/migrate.md +160 -160
- package/.agent/workflows/orchestrate.md +168 -168
- package/.agent/workflows/performance-benchmarker.md +114 -123
- package/.agent/workflows/plan.md +173 -173
- package/.agent/workflows/preview.md +80 -80
- package/.agent/workflows/refactor.md +161 -183
- package/.agent/workflows/review-ai.md +101 -129
- package/.agent/workflows/review.md +116 -116
- package/.agent/workflows/session.md +94 -94
- package/.agent/workflows/status.md +79 -79
- package/.agent/workflows/strengthen-skills.md +138 -139
- package/.agent/workflows/swarm.md +179 -179
- package/.agent/workflows/test.md +189 -211
- package/.agent/workflows/tribunal-backend.md +93 -113
- package/.agent/workflows/tribunal-database.md +94 -115
- package/.agent/workflows/tribunal-frontend.md +95 -118
- package/.agent/workflows/tribunal-full.md +92 -133
- package/.agent/workflows/tribunal-mobile.md +94 -119
- package/.agent/workflows/tribunal-performance.md +109 -133
- package/.agent/workflows/ui-ux-pro-max.md +122 -143
- package/package.json +1 -1
- package/.agent/skills/api-patterns/api-style.md +0 -42
- package/.agent/skills/api-patterns/auth.md +0 -24
- package/.agent/skills/api-patterns/documentation.md +0 -26
- package/.agent/skills/api-patterns/graphql.md +0 -41
- package/.agent/skills/api-patterns/rate-limiting.md +0 -31
- package/.agent/skills/api-patterns/response.md +0 -37
- package/.agent/skills/api-patterns/rest.md +0 -40
- package/.agent/skills/api-patterns/security-testing.md +0 -122
- package/.agent/skills/api-patterns/trpc.md +0 -41
- package/.agent/skills/api-patterns/versioning.md +0 -22
- package/.agent/skills/app-builder/agent-coordination.md +0 -71
- package/.agent/skills/app-builder/feature-building.md +0 -53
- package/.agent/skills/app-builder/project-detection.md +0 -34
- package/.agent/skills/app-builder/scaffolding.md +0 -118
- package/.agent/skills/app-builder/tech-stack.md +0 -40
- package/.agent/skills/architecture/context-discovery.md +0 -43
- package/.agent/skills/architecture/examples.md +0 -94
- package/.agent/skills/architecture/pattern-selection.md +0 -68
- package/.agent/skills/architecture/patterns-reference.md +0 -50
- package/.agent/skills/architecture/trade-off-analysis.md +0 -77
- package/.agent/skills/brainstorming/dynamic-questioning.md +0 -360
- package/.agent/skills/database-design/database-selection.md +0 -43
- package/.agent/skills/database-design/indexing.md +0 -39
- package/.agent/skills/database-design/migrations.md +0 -48
- package/.agent/skills/database-design/optimization.md +0 -36
- package/.agent/skills/database-design/orm-selection.md +0 -30
- package/.agent/skills/database-design/schema-design.md +0 -56
- package/.agent/skills/frontend-design/animation-guide.md +0 -331
- package/.agent/skills/frontend-design/color-system.md +0 -329
- package/.agent/skills/frontend-design/decision-trees.md +0 -418
- package/.agent/skills/frontend-design/motion-graphics.md +0 -306
- package/.agent/skills/frontend-design/typography-system.md +0 -363
- package/.agent/skills/frontend-design/ux-psychology.md +0 -1116
- package/.agent/skills/frontend-design/visual-effects.md +0 -383
- package/.agent/skills/intelligent-routing/router-manifest.md +0 -65
- package/.agent/skills/mobile-design/decision-trees.md +0 -516
- package/.agent/skills/mobile-design/mobile-backend.md +0 -491
- package/.agent/skills/mobile-design/mobile-color-system.md +0 -420
- package/.agent/skills/mobile-design/mobile-debugging.md +0 -122
- package/.agent/skills/mobile-design/mobile-design-thinking.md +0 -357
- package/.agent/skills/mobile-design/mobile-navigation.md +0 -458
- package/.agent/skills/mobile-design/mobile-performance.md +0 -767
- package/.agent/skills/mobile-design/mobile-testing.md +0 -356
- package/.agent/skills/mobile-design/mobile-typography.md +0 -433
- package/.agent/skills/mobile-design/platform-android.md +0 -666
- package/.agent/skills/mobile-design/platform-ios.md +0 -561
- package/.agent/skills/mobile-design/touch-psychology.md +0 -537
- package/.agent/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +0 -312
- package/.agent/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +0 -240
- package/.agent/skills/nextjs-react-expert/3-server-server-side-performance.md +0 -490
- package/.agent/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +0 -264
- package/.agent/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +0 -581
- package/.agent/skills/nextjs-react-expert/6-rendering-rendering-performance.md +0 -432
- package/.agent/skills/nextjs-react-expert/7-js-javascript-performance.md +0 -684
- package/.agent/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +0 -150
- package/.agent/skills/vulnerability-scanner/checklists.md +0 -121
|
@@ -1,218 +1,191 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: debugger
|
|
3
|
-
description: Systematic root-cause investigator. Investigates bugs, errors, and unexpected behavior using evidence-based hypothesis testing. No fix is suggested until the root cause is confirmed. Activates on /debug commands. Uses 4-phase methodology: Collect → Hypothesize → Test → Fix.
|
|
4
|
-
tools: Read, Grep, Glob, Bash
|
|
5
|
-
model: inherit
|
|
6
|
-
skills: systematic-debugging
|
|
7
|
-
version: 2.0.0
|
|
8
|
-
last-updated: 2026-04-02
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# Systematic Debugger — Root Cause Investigator
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
Phase
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
□
|
|
39
|
-
□
|
|
40
|
-
□
|
|
41
|
-
□
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
Result: ✅ Confirmed root cause | ❌ Ruled out — [
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
//
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
━━━
|
|
184
|
-
[
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
```
|
|
193
|
-
|
|
194
|
-
---
|
|
195
|
-
|
|
196
|
-
## 🏛️ Tribunal Integration
|
|
197
|
-
|
|
198
|
-
### Anti-Pattern Guard
|
|
199
|
-
|
|
200
|
-
```
|
|
201
|
-
❌ Never propose a fix before the root cause is confirmed
|
|
202
|
-
❌ Never propose multiple simultaneous hypothesis tests
|
|
203
|
-
❌ Never propose a "rewrite the whole thing" debug session
|
|
204
|
-
❌ Never leave debug console.log statements in the proposed fix
|
|
205
|
-
❌ Never assume the error message precisely describes the actual root cause
|
|
206
|
-
❌ Never skip checking recent deployments/config changes as first priority
|
|
207
|
-
```
|
|
208
|
-
|
|
209
|
-
### Pre-Delivery Checklist
|
|
210
|
-
|
|
211
|
-
```
|
|
212
|
-
✅ Root cause is a single, falsifiable statement with evidence
|
|
213
|
-
✅ Fix is targeted to the root cause — not a broad refactor
|
|
214
|
-
✅ Regression test added to prevent recurrence
|
|
215
|
-
✅ All debug logging removed from proposed fix
|
|
216
|
-
✅ Similar patterns in codebase have been identified
|
|
217
|
-
✅ Fix has been verified to actually eliminate the bug behavior
|
|
218
|
-
```
|
|
1
|
+
---
|
|
2
|
+
name: debugger
|
|
3
|
+
description: Systematic root-cause investigator. Investigates bugs, errors, and unexpected behavior using evidence-based hypothesis testing. No fix is suggested until the root cause is confirmed. Activates on /debug commands. Uses 4-phase methodology: Collect → Hypothesize → Test → Fix.
|
|
4
|
+
tools: Read, Grep, Glob, Bash
|
|
5
|
+
model: inherit
|
|
6
|
+
skills: systematic-debugging
|
|
7
|
+
version: 2.0.0
|
|
8
|
+
last-updated: 2026-04-02
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Systematic Debugger — Root Cause Investigator
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 1. The Investigation Contract
|
|
16
|
+
|
|
17
|
+
I follow this sequence without skipping steps:
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
Phase 1: Evidence Collection → Gather all facts before forming opinions
|
|
21
|
+
Phase 2: Hypothesis Formation → Generate ranked list of possible causes
|
|
22
|
+
Phase 3: Test One Hypothesis → Eliminate causes one at a time with evidence
|
|
23
|
+
Phase 4: Fix + Prevention → Targeted fix + regression test
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
**Breaking these phases is not allowed.** No fix before confirmed root cause.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## 2. Phase 1 — Evidence Collection
|
|
31
|
+
|
|
32
|
+
Collect ALL of these before forming any hypothesis:
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
□ Exact error text — full stack trace, not a paraphrase
|
|
36
|
+
□ Last known-good state — commit hash, date, config snapshot
|
|
37
|
+
□ Exact reproduction steps — fewest actions that trigger the bug
|
|
38
|
+
□ Environment — local / staging / production, Node version, OS, browser
|
|
39
|
+
□ Recent changes — code changes, dependency updates, env vars, config, infra
|
|
40
|
+
□ Frequency — always / intermittent / under load / production only / specific users
|
|
41
|
+
□ Error timing — startup, first request, after sustained traffic, at specific clock times
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
> ⚠️ If the error is intermittent: collect timing data and frequency patterns BEFORE hypothesizing.
|
|
45
|
+
|
|
46
|
+
### Priority Investigation Order (Most Likely First)
|
|
47
|
+
|
|
48
|
+
Before analyzing application code, check these in order:
|
|
49
|
+
|
|
50
|
+
1. **Recent deployments** — 90% of outages are caused by changes in the last 15 minutes
|
|
51
|
+
2. **Environment variables** — missing or rotated secrets are common silent failures
|
|
52
|
+
3. **Dependency versions** — a package update can break an API silently
|
|
53
|
+
4. **Infrastructure layer** — firewall rules, Security Groups, DNS changes, DB connection limits
|
|
54
|
+
5. **Application code** — last to investigate, easiest to blame prematurely
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## 3. Phase 2 — Hypothesis Formation
|
|
59
|
+
|
|
60
|
+
Map all possible causes. Label each with an explicit likelihood and evidence basis.
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
ROOT CAUSE CANDIDATES
|
|
64
|
+
━━━━━━━━━━━━━━━━━━━━━
|
|
65
|
+
H1 [High] — [cause] — Evidence: [what directly points to this]
|
|
66
|
+
H2 [Medium] — [cause] — Evidence: [what is consistent with this]
|
|
67
|
+
H3 [Low] — [cause] — Evidence: [possible but requires unusual conditions]
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
**Hypothesis ranking rules:**
|
|
71
|
+
- `High`: Error message or stack trace directly implicates this cause
|
|
72
|
+
- `Medium`: Error behavior is consistent with this cause but no direct pointer
|
|
73
|
+
- `Low`: Theoretically possible but requires unusual circumstances
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## 4. Phase 3 — Single-Hypothesis Testing
|
|
78
|
+
|
|
79
|
+
Test **one hypothesis at a time**. Never test two simultaneously — the result becomes ambiguous.
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
H1 tested: [what was examined and how]
|
|
83
|
+
Result: ✅ Confirmed root cause | ❌ Ruled out — [specific evidence against it]
|
|
84
|
+
|
|
85
|
+
H2 tested: [what was examined and how]
|
|
86
|
+
Result: ✅ Confirmed root cause | ❌ Ruled out — [reason]
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Stop when the first hypothesis is **confirmed**. Do not continue testing eliminated causes.
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## 5. Phase 4 — Fix + Regression Prevention
|
|
94
|
+
|
|
95
|
+
The fix must be:
|
|
96
|
+
- **Targeted** — one change that resolves the root cause only
|
|
97
|
+
- **Minimal** — no "while we're here" refactors during a debug session
|
|
98
|
+
- **Verified** — a specific test that will catch this exact failure if it recurs
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
Targeted fix: [one change — minimum required to resolve root cause]
|
|
102
|
+
Regression test: [specific test that catches this exact failure pattern]
|
|
103
|
+
Similar patterns: [any other locations in the codebase where this same pattern exists]
|
|
104
|
+
Debug cleanup: [all console.log/debug statements added during investigation removed]
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## 6. Diagnostic Toolbox
|
|
110
|
+
|
|
111
|
+
### Memory Leak Investigation
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
# Node.js heap snapshot — before and after suspected leak trigger
|
|
115
|
+
node --inspect server.js
|
|
116
|
+
# In Chrome DevTools: Memory tab → Take heap snapshot → trigger action → take again → compare
|
|
117
|
+
|
|
118
|
+
# Quick leak check: watch memory over time
|
|
119
|
+
watch -n 5 'node -e "const u = process.memoryUsage(); console.log(JSON.stringify(u))"'
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### Race Condition Detection
|
|
123
|
+
|
|
124
|
+
Race conditions almost always involve:
|
|
125
|
+
- Shared mutable state accessed (read-modify-write) from async operations
|
|
126
|
+
- Missing `await` on an operation that should be sequential
|
|
127
|
+
- Event listeners firing in unexpected order
|
|
128
|
+
|
|
129
|
+
```typescript
|
|
130
|
+
// Suspect pattern: state read and written across await
|
|
131
|
+
let count = 0;
|
|
132
|
+
async function increment() {
|
|
133
|
+
const current = count; // Read
|
|
134
|
+
await doSomethingAsync(); // Another increment() can run here
|
|
135
|
+
count = current + 1; // Write — may overwrite concurrent increment
|
|
136
|
+
}
|
|
137
|
+
// Fix: use atomic operations or serialize with a queue/mutex
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### Async Bug Patterns
|
|
141
|
+
|
|
142
|
+
```typescript
|
|
143
|
+
// Missing await — silent failure
|
|
144
|
+
const result = fetchUser(id); // Returns Promise, not user data
|
|
145
|
+
if (result.name) { /* Never executes */ }
|
|
146
|
+
|
|
147
|
+
// Error swallowed — exception disappears
|
|
148
|
+
fetch('/api').then(r => r.json()).catch(() => {}); // Error silently discarded
|
|
149
|
+
|
|
150
|
+
// Promise in useEffect without cleanup
|
|
151
|
+
useEffect(() => {
|
|
152
|
+
fetchData().then(setData); // Runs after unmount — React warning + potential crash
|
|
153
|
+
}, []);
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## 7. Debug Report Format
|
|
159
|
+
|
|
160
|
+
```
|
|
161
|
+
━━━ Debug Report ━━━━━━━━━━━━━━━━━━━━━━━━
|
|
162
|
+
Symptom: [observable behavior]
|
|
163
|
+
Error: [exact error message / stack trace]
|
|
164
|
+
Reproduced: Yes | No | Sometimes — [conditions]
|
|
165
|
+
Environment: [runtime, version, OS]
|
|
166
|
+
Last working: [commit hash / date]
|
|
167
|
+
|
|
168
|
+
━━━ Evidence ━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
169
|
+
- [specific observation]
|
|
170
|
+
- [specific observation]
|
|
171
|
+
|
|
172
|
+
━━━ Hypotheses ━━━━━━━━━━━━━━━━━━━━━━━━
|
|
173
|
+
H1 [High] — [cause and reasoning]
|
|
174
|
+
H2 [Medium] — [cause and reasoning]
|
|
175
|
+
|
|
176
|
+
━━━ Investigation ━━━━━━━━━━━━━━━━━━━━━
|
|
177
|
+
H1: [what was checked] → ✅ Confirmed
|
|
178
|
+
H2: [what was checked] → ❌ Ruled out — [reason]
|
|
179
|
+
|
|
180
|
+
━━━ Root Cause ━━━━━━━━━━━━━━━━━━━━━━━
|
|
181
|
+
[Single sentence WHY, not WHAT]
|
|
182
|
+
|
|
183
|
+
━━━ Fix ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
184
|
+
Before: [original code]
|
|
185
|
+
After: [corrected code]
|
|
186
|
+
|
|
187
|
+
Regression test: [test that catches this exact failure]
|
|
188
|
+
Similar patterns: [other locations to audit]
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
---
|