@lvlup-sw/exarchos 2.0.1
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/.claude-plugin/marketplace.json +22 -0
- package/.claude-plugin/plugin.json +17 -0
- package/.mcp.json +17 -0
- package/AGENTS.md +59 -0
- package/CLAUDE.md.template +62 -0
- package/LICENSE +202 -0
- package/README.md +258 -0
- package/commands/autocompact.md +37 -0
- package/commands/checkpoint.md +85 -0
- package/commands/cleanup.md +99 -0
- package/commands/debug.md +145 -0
- package/commands/delegate.md +56 -0
- package/commands/ideate.md +82 -0
- package/commands/plan.md +150 -0
- package/commands/refactor.md +139 -0
- package/commands/reload.md +37 -0
- package/commands/resume.md +130 -0
- package/commands/review.md +51 -0
- package/commands/sync-schemas.md +74 -0
- package/commands/synthesize.md +122 -0
- package/commands/tdd.md +58 -0
- package/dist/exarchos-cli.js +8828 -0
- package/dist/exarchos-mcp.js +50 -0
- package/hooks/hooks.json +53 -0
- package/package.json +59 -0
- package/rules/coding-standards.md +46 -0
- package/rules/mcp-tool-guidance.md +26 -0
- package/rules/pr-descriptions.md +12 -0
- package/rules/rm-safety.md +9 -0
- package/rules/skill-path-resolution.md +10 -0
- package/rules/tdd.md +41 -0
- package/rules/telemetry-awareness.md +9 -0
- package/scripts/assess-refactor-scope.sh +239 -0
- package/scripts/check-benchmark-regression.sh +229 -0
- package/scripts/check-coderabbit.sh +288 -0
- package/scripts/check-coverage-thresholds.sh +194 -0
- package/scripts/check-polish-scope.sh +245 -0
- package/scripts/check-property-tests.sh +167 -0
- package/scripts/check-tdd-compliance.sh +265 -0
- package/scripts/coderabbit-review-gate.sh +518 -0
- package/scripts/debug-review-gate.sh +201 -0
- package/scripts/extract-fix-tasks.sh +179 -0
- package/scripts/extract-task.sh +67 -0
- package/scripts/generate-traceability.sh +209 -0
- package/scripts/investigation-timer.sh +171 -0
- package/scripts/needs-schema-sync.sh +174 -0
- package/scripts/new-project.sh +103 -0
- package/scripts/post-delegation-check.sh +317 -0
- package/scripts/pre-synthesis-check.sh +440 -0
- package/scripts/reconcile-state.sh +346 -0
- package/scripts/reconstruct-stack.sh +432 -0
- package/scripts/review-diff.sh +63 -0
- package/scripts/review-verdict.sh +169 -0
- package/scripts/security-scan.sh +248 -0
- package/scripts/select-debug-track.sh +186 -0
- package/scripts/setup-worktree.sh +323 -0
- package/scripts/spec-coverage-check.sh +230 -0
- package/scripts/static-analysis-gate.sh +236 -0
- package/scripts/sync-labels.sh +122 -0
- package/scripts/validate-companion.sh +161 -0
- package/scripts/validate-dotnet-standards.sh +267 -0
- package/scripts/validate-installation.sh +101 -0
- package/scripts/validate-plugin.sh +223 -0
- package/scripts/validate-refactor.sh +234 -0
- package/scripts/validate-rm.sh +93 -0
- package/scripts/verify-delegation-saga.sh +240 -0
- package/scripts/verify-doc-links.sh +211 -0
- package/scripts/verify-ideate-artifacts.sh +296 -0
- package/scripts/verify-plan-coverage.sh +228 -0
- package/scripts/verify-review-triage.sh +219 -0
- package/scripts/verify-worktree-baseline.sh +159 -0
- package/scripts/verify-worktree.sh +84 -0
- package/settings.json +47 -0
- package/skills/brainstorming/SKILL.md +127 -0
- package/skills/brainstorming/references/design-template.md +65 -0
- package/skills/cleanup/SKILL.md +147 -0
- package/skills/cleanup/references/merge-verification.md +40 -0
- package/skills/debug/SKILL.md +204 -0
- package/skills/debug/references/hotfix-track.md +134 -0
- package/skills/debug/references/investigation-checklist.md +217 -0
- package/skills/debug/references/rca-template.md +150 -0
- package/skills/debug/references/state-schema.md +294 -0
- package/skills/debug/references/thorough-track.md +194 -0
- package/skills/debug/references/triage-questions.md +155 -0
- package/skills/debug/references/troubleshooting.md +47 -0
- package/skills/delegation/SKILL.md +150 -0
- package/skills/delegation/references/adaptive-orchestration.md +31 -0
- package/skills/delegation/references/agent-teams-saga.md +248 -0
- package/skills/delegation/references/fix-mode.md +74 -0
- package/skills/delegation/references/fixer-prompt.md +162 -0
- package/skills/delegation/references/implementer-prompt.md +322 -0
- package/skills/delegation/references/parallel-strategy.md +124 -0
- package/skills/delegation/references/pbt-patterns.md +172 -0
- package/skills/delegation/references/pr-fixes-mode.md +154 -0
- package/skills/delegation/references/state-management.md +51 -0
- package/skills/delegation/references/testing-patterns.md +129 -0
- package/skills/delegation/references/troubleshooting.md +33 -0
- package/skills/delegation/references/workflow-steps.md +127 -0
- package/skills/delegation/references/worktree-enforcement.md +64 -0
- package/skills/dotnet-standards/SKILL.md +269 -0
- package/skills/dotnet-standards/references/csharp-standards.md +120 -0
- package/skills/dotnet-standards/templates/.editorconfig +366 -0
- package/skills/dotnet-standards/templates/Directory.Build.props +56 -0
- package/skills/dotnet-standards/templates/Directory.Packages.props +69 -0
- package/skills/dotnet-standards/templates/global.json +6 -0
- package/skills/dotnet-standards/templates/nuget.config +9 -0
- package/skills/dotnet-standards/templates/stylecop.json +37 -0
- package/skills/git-worktrees/SKILL.md +255 -0
- package/skills/implementation-planning/SKILL.md +233 -0
- package/skills/implementation-planning/references/plan-document-template.md +42 -0
- package/skills/implementation-planning/references/spec-tracing-guide.md +51 -0
- package/skills/implementation-planning/references/task-template.md +43 -0
- package/skills/implementation-planning/references/testing-strategy-guide.md +88 -0
- package/skills/quality-review/SKILL.md +278 -0
- package/skills/quality-review/references/code-quality-checklist.md +159 -0
- package/skills/quality-review/references/review-report-template.md +65 -0
- package/skills/quality-review/references/security-checklist.md +79 -0
- package/skills/quality-review/references/typescript-standards.md +24 -0
- package/skills/refactor/COMMAND.md +67 -0
- package/skills/refactor/SKILL.md +198 -0
- package/skills/refactor/phases/auto-chain.md +262 -0
- package/skills/refactor/phases/brief.md +176 -0
- package/skills/refactor/phases/explore.md +132 -0
- package/skills/refactor/phases/overhaul-delegate.md +136 -0
- package/skills/refactor/phases/overhaul-plan.md +312 -0
- package/skills/refactor/phases/overhaul-review.md +304 -0
- package/skills/refactor/phases/polish-implement.md +349 -0
- package/skills/refactor/phases/polish-validate.md +218 -0
- package/skills/refactor/phases/update-docs.md +234 -0
- package/skills/refactor/references/brief-template.md +81 -0
- package/skills/refactor/references/doc-update-checklist.md +110 -0
- package/skills/refactor/references/explore-checklist.md +73 -0
- package/skills/refactor/references/overhaul-track.md +215 -0
- package/skills/refactor/references/polish-track.md +170 -0
- package/skills/shared/prompts/context-reading.md +58 -0
- package/skills/shared/prompts/report-format.md +54 -0
- package/skills/shared/prompts/tdd-requirements.md +39 -0
- package/skills/shepherd/SKILL.md +264 -0
- package/skills/shepherd/references/assess-checklist.md +124 -0
- package/skills/shepherd/references/fix-strategies.md +191 -0
- package/skills/spec-review/SKILL.md +229 -0
- package/skills/spec-review/references/review-checklist.md +60 -0
- package/skills/sync-schemas/SKILL.md +114 -0
- package/skills/sync-schemas/references/configuration.md +73 -0
- package/skills/synthesis/SKILL.md +129 -0
- package/skills/synthesis/references/pr-descriptions.md +87 -0
- package/skills/synthesis/references/synthesis-steps.md +109 -0
- package/skills/synthesis/references/troubleshooting.md +115 -0
- package/skills/validate-all-skills.sh +57 -0
- package/skills/validate-frontmatter.sh +237 -0
- package/skills/workflow-state/SKILL.md +210 -0
- package/skills/workflow-state/references/mcp-tool-reference.md +111 -0
- package/skills/workflow-state/references/phase-transitions.md +141 -0
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: hotfix-track
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Hotfix Track
|
|
6
|
+
|
|
7
|
+
## Purpose
|
|
8
|
+
|
|
9
|
+
Fix production issues or critical regressions ASAP. Speed over ceremony.
|
|
10
|
+
|
|
11
|
+
## Phases
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
Triage -> Investigate -> Implement -> Validate -> Completed
|
|
15
|
+
| | | | |
|
|
16
|
+
| | | | +- Human checkpoint: merge
|
|
17
|
+
| | | +- Smoke tests only
|
|
18
|
+
| | +- Minimal fix, no worktree
|
|
19
|
+
| +- 15 min max, focused on root cause
|
|
20
|
+
+- Capture symptom, select track
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Phase Details
|
|
24
|
+
|
|
25
|
+
### 1. Triage Phase
|
|
26
|
+
|
|
27
|
+
Use `@skills/debug/references/triage-questions.md` to gather:
|
|
28
|
+
- Symptom description
|
|
29
|
+
- Reproduction steps
|
|
30
|
+
- Urgency justification
|
|
31
|
+
- Affected area
|
|
32
|
+
|
|
33
|
+
Run deterministic track selection:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
scripts/select-debug-track.sh --urgency <critical|high|medium|low> --root-cause-known <yes|no>
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
**On exit 0:** Hotfix track selected.
|
|
40
|
+
**On exit 1:** Thorough track selected.
|
|
41
|
+
|
|
42
|
+
**Save triage results and advance:**
|
|
43
|
+
```
|
|
44
|
+
action: "set", featureId: "debug-<issue-slug>", updates: {
|
|
45
|
+
"triage": {
|
|
46
|
+
"symptom": "<symptom>",
|
|
47
|
+
"reproduction": "<steps>",
|
|
48
|
+
"affectedArea": "<area>",
|
|
49
|
+
"impact": "<impact>"
|
|
50
|
+
},
|
|
51
|
+
"urgency": {
|
|
52
|
+
"level": "<level>",
|
|
53
|
+
"justification": "<justification>"
|
|
54
|
+
},
|
|
55
|
+
"track": "hotfix"
|
|
56
|
+
}, phase: "investigate"
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### 2. Investigate Phase (15 min max)
|
|
60
|
+
|
|
61
|
+
Use `@skills/debug/references/investigation-checklist.md`.
|
|
62
|
+
|
|
63
|
+
Run the investigation timer to enforce the 15-minute time-box:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
scripts/investigation-timer.sh --state-file <state-file>
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
**On exit 0:** Within budget -- continue investigation.
|
|
70
|
+
**On exit 1:** Budget exceeded -- escalate to thorough track.
|
|
71
|
+
|
|
72
|
+
**Record findings:**
|
|
73
|
+
```
|
|
74
|
+
action: "set", featureId: "debug-<issue-slug>", updates: {
|
|
75
|
+
"investigation": { "findings": ["<finding>"] }
|
|
76
|
+
}
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
**When root cause found:**
|
|
80
|
+
```
|
|
81
|
+
action: "set", featureId: "debug-<issue-slug>", updates: {
|
|
82
|
+
"investigation": {
|
|
83
|
+
"rootCause": "<root cause>",
|
|
84
|
+
"completedAt": "<ISO8601>"
|
|
85
|
+
}
|
|
86
|
+
}, phase: "implement"
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### 3. Implement Phase
|
|
90
|
+
|
|
91
|
+
Apply minimal fix directly (no worktree):
|
|
92
|
+
- Change only what's necessary
|
|
93
|
+
- No new features or refactoring
|
|
94
|
+
- Record fix approach in state
|
|
95
|
+
|
|
96
|
+
```
|
|
97
|
+
action: "set", featureId: "debug-<issue-slug>", updates: {
|
|
98
|
+
"artifacts": { "fixDesign": "<brief fix description>" }
|
|
99
|
+
}, phase: "validate"
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### 4. Validate Phase
|
|
103
|
+
|
|
104
|
+
Run affected tests only:
|
|
105
|
+
```bash
|
|
106
|
+
npm run test:run -- <affected-test-files>
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
If tests pass:
|
|
110
|
+
|
|
111
|
+
```
|
|
112
|
+
action: "set", featureId: "debug-<issue-slug>", updates: {
|
|
113
|
+
"followUp": { "rcaRequired": true }
|
|
114
|
+
}, phase: "completed"
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Create follow-up task for proper RCA:
|
|
118
|
+
```bash
|
|
119
|
+
cat > docs/follow-ups/$(date +%Y-%m-%d)-<issue-slug>.json << EOF
|
|
120
|
+
{
|
|
121
|
+
"type": "follow-up",
|
|
122
|
+
"created": "$(date -u +%Y-%m-%dT%H:%M:%SZ)",
|
|
123
|
+
"source": "hotfix:<state-file>",
|
|
124
|
+
"task": "Create proper RCA for hotfix: <issue-slug>",
|
|
125
|
+
"context": {
|
|
126
|
+
"symptom": "<symptom>",
|
|
127
|
+
"quickFix": "<fix description>",
|
|
128
|
+
"affectedFiles": ["<files>"]
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
EOF
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
**Human checkpoint:** Confirm merge.
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
# Investigation Checklist
|
|
2
|
+
|
|
3
|
+
Systematic approach to finding root cause during the investigate phase.
|
|
4
|
+
|
|
5
|
+
## Investigation Process
|
|
6
|
+
|
|
7
|
+
### Step 1: Reproduce the Issue
|
|
8
|
+
|
|
9
|
+
Before investigating, ensure you can trigger the bug:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
# Run the reproduction steps
|
|
13
|
+
# Observe the failure
|
|
14
|
+
# Capture any error output (redact secrets/PII before sharing)
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
**If cannot reproduce:**
|
|
18
|
+
- Check environment differences (local vs prod)
|
|
19
|
+
- Check data differences (test vs real data)
|
|
20
|
+
- Check timing/race conditions
|
|
21
|
+
- Ask for more context from reporter
|
|
22
|
+
|
|
23
|
+
### Step 2: Identify Entry Point
|
|
24
|
+
|
|
25
|
+
Find where the problem manifests:
|
|
26
|
+
|
|
27
|
+
| Entry Point Type | How to Find |
|
|
28
|
+
|-----------------|-------------|
|
|
29
|
+
| Error message | Search codebase for exact text |
|
|
30
|
+
| Failing test | Read test output for assertion location |
|
|
31
|
+
| User report | Trace from UI component to backend |
|
|
32
|
+
| Log entry | Search logs for timestamp, correlate with code |
|
|
33
|
+
|
|
34
|
+
**Tools:**
|
|
35
|
+
```bash
|
|
36
|
+
# Search for error message
|
|
37
|
+
Grep({ pattern: "exact error text", output_mode: "content" })
|
|
38
|
+
|
|
39
|
+
# Find related files
|
|
40
|
+
Glob({ pattern: "**/auth/**/*.ts" })
|
|
41
|
+
|
|
42
|
+
# Read suspicious file
|
|
43
|
+
Read({ file_path: "/path/to/file.ts" })
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Step 3: Trace Execution Path
|
|
47
|
+
|
|
48
|
+
Follow the code from entry point to failure:
|
|
49
|
+
|
|
50
|
+
1. **Identify the call stack** - What functions are called?
|
|
51
|
+
2. **Check input values** - Are parameters valid?
|
|
52
|
+
3. **Trace data flow** - Where does data transform?
|
|
53
|
+
4. **Find the divergence** - Where does actual != expected?
|
|
54
|
+
|
|
55
|
+
**Tracing Pattern:**
|
|
56
|
+
```text
|
|
57
|
+
Entry Point → Function A → Function B → [FAILURE POINT] → Function C (never reached)
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Step 4: Narrow Down Location
|
|
61
|
+
|
|
62
|
+
Use binary search to isolate the problem:
|
|
63
|
+
|
|
64
|
+
1. Add logging/breakpoints at midpoint
|
|
65
|
+
2. Determine which half contains bug
|
|
66
|
+
3. Repeat until isolated to specific lines
|
|
67
|
+
|
|
68
|
+
**Quick Logging:**
|
|
69
|
+
```typescript
|
|
70
|
+
console.log('[DEBUG] checkpoint 1:', { value });
|
|
71
|
+
console.log('[DEBUG] checkpoint 2:', { transformed });
|
|
72
|
+
console.log('[DEBUG] checkpoint 3:', { result });
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Step 5: Understand the Why
|
|
76
|
+
|
|
77
|
+
Once located, understand the mechanism:
|
|
78
|
+
|
|
79
|
+
- **What condition fails?** (if/else, validation, null check)
|
|
80
|
+
- **Why is that condition triggered?** (bad input, state corruption, race)
|
|
81
|
+
- **When was this introduced?** (recent change, always broken, regression)
|
|
82
|
+
|
|
83
|
+
## Hotfix Time-Boxing (15 Minutes)
|
|
84
|
+
|
|
85
|
+
For hotfix track, investigation is time-boxed:
|
|
86
|
+
|
|
87
|
+
```text
|
|
88
|
+
0:00 - Start investigation
|
|
89
|
+
0:05 - Should have identified entry point
|
|
90
|
+
0:10 - Should have narrowed to general area
|
|
91
|
+
0:15 - DECISION POINT
|
|
92
|
+
│
|
|
93
|
+
├─ Root cause found → Continue to fix phase
|
|
94
|
+
│
|
|
95
|
+
└─ Root cause NOT found → Switch to thorough track
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### 15-Minute Checkpoint Questions
|
|
99
|
+
|
|
100
|
+
At 15 minutes, ask:
|
|
101
|
+
1. Do I know the exact cause?
|
|
102
|
+
2. Do I know exactly what code to change?
|
|
103
|
+
3. Am I confident the fix won't break other things?
|
|
104
|
+
|
|
105
|
+
If any answer is "no" -> switch to thorough track.
|
|
106
|
+
|
|
107
|
+
### Switching to Thorough Track
|
|
108
|
+
|
|
109
|
+
**Switch track and record findings:**
|
|
110
|
+
|
|
111
|
+
```
|
|
112
|
+
action: "set", featureId: "debug-<issue-slug>", updates: {
|
|
113
|
+
"track": "thorough",
|
|
114
|
+
"investigation.findings": ["Investigated for 15 min, narrowed to auth module but root cause unclear"]
|
|
115
|
+
}
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## Investigation Tools
|
|
119
|
+
|
|
120
|
+
### For Code Search
|
|
121
|
+
|
|
122
|
+
```typescript
|
|
123
|
+
// Find error message source
|
|
124
|
+
Grep({ pattern: "Error: something failed", output_mode: "content" })
|
|
125
|
+
|
|
126
|
+
// Find function definition
|
|
127
|
+
Grep({ pattern: "function handleLogin", output_mode: "content" })
|
|
128
|
+
|
|
129
|
+
// Find all usages
|
|
130
|
+
Grep({ pattern: "handleLogin\\(", output_mode: "files_with_matches" })
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### For Codebase Exploration
|
|
134
|
+
|
|
135
|
+
```typescript
|
|
136
|
+
// Use Explore agent for complex investigation
|
|
137
|
+
Task({
|
|
138
|
+
subagent_type: "Explore",
|
|
139
|
+
description: "Find auth error handling",
|
|
140
|
+
prompt: "Find where authentication errors are handled and what could cause a 500 response"
|
|
141
|
+
})
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### For Test Execution
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
# Run specific test to see failure
|
|
148
|
+
npm run test:run -- --grep "login"
|
|
149
|
+
|
|
150
|
+
# Run tests with verbose output
|
|
151
|
+
npm run test:run -- --reporter=verbose
|
|
152
|
+
|
|
153
|
+
# Run tests in specific file
|
|
154
|
+
npm run test:run -- src/auth/login.test.ts
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### For Git History
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
# Find when file was last changed
|
|
161
|
+
git log --oneline -10 -- src/auth/login.ts
|
|
162
|
+
|
|
163
|
+
# Find what changed recently
|
|
164
|
+
git diff HEAD~5 -- src/auth/
|
|
165
|
+
|
|
166
|
+
# Blame specific lines
|
|
167
|
+
git blame -L 50,60 src/auth/login.ts
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
## Recording Findings
|
|
171
|
+
|
|
172
|
+
**Add finding:**
|
|
173
|
+
|
|
174
|
+
```
|
|
175
|
+
action: "set", featureId: "debug-<issue-slug>", updates: {
|
|
176
|
+
"investigation.findings": ["Error occurs in handleLogin when session is null"]
|
|
177
|
+
}
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
**Record root cause:**
|
|
181
|
+
|
|
182
|
+
```
|
|
183
|
+
action: "set", featureId: "debug-<issue-slug>", updates: {
|
|
184
|
+
"investigation.rootCause": "Session cookie not being set due to SameSite attribute mismatch"
|
|
185
|
+
}
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
**Mark investigation complete:**
|
|
189
|
+
|
|
190
|
+
```
|
|
191
|
+
action: "set", featureId: "debug-<issue-slug>", updates: {
|
|
192
|
+
"investigation.completedAt": "2026-01-27T10:30:00Z"
|
|
193
|
+
}
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
## Common Bug Patterns
|
|
197
|
+
|
|
198
|
+
Quick reference for common root causes:
|
|
199
|
+
|
|
200
|
+
| Symptom | Common Causes |
|
|
201
|
+
|---------|---------------|
|
|
202
|
+
| Null/undefined error | Missing null check, async race, optional field |
|
|
203
|
+
| Type error | Wrong cast, schema mismatch, serialization issue |
|
|
204
|
+
| Timeout | N+1 query, missing index, external service slow |
|
|
205
|
+
| 500 error | Unhandled exception, missing env var, DB connection |
|
|
206
|
+
| Wrong data | Cache stale, transaction isolation, merge conflict |
|
|
207
|
+
| UI not updating | State not propagated, missing re-render, stale closure |
|
|
208
|
+
|
|
209
|
+
## Escalation Triggers
|
|
210
|
+
|
|
211
|
+
During investigation, escalate to `/exarchos:ideate` if you discover:
|
|
212
|
+
|
|
213
|
+
- [ ] Fundamental design flaw requiring architectural change
|
|
214
|
+
- [ ] Multiple interconnected bugs requiring coordinated fix
|
|
215
|
+
- [ ] Security vulnerability requiring careful handling
|
|
216
|
+
- [ ] Data corruption requiring recovery strategy
|
|
217
|
+
- [ ] Issue affecting multiple teams/services
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
# RCA Template
|
|
2
|
+
|
|
3
|
+
Use this template when documenting root cause analysis for bugs.
|
|
4
|
+
|
|
5
|
+
## Template
|
|
6
|
+
|
|
7
|
+
```markdown
|
|
8
|
+
# RCA: [Issue Title]
|
|
9
|
+
|
|
10
|
+
## Summary
|
|
11
|
+
|
|
12
|
+
[1-2 sentences: What broke and why]
|
|
13
|
+
|
|
14
|
+
## Symptom
|
|
15
|
+
|
|
16
|
+
[How the bug manifested - error messages, behavior, user reports]
|
|
17
|
+
|
|
18
|
+
### Reproduction Steps
|
|
19
|
+
|
|
20
|
+
1. [Step 1]
|
|
21
|
+
2. [Step 2]
|
|
22
|
+
3. [Step N]
|
|
23
|
+
|
|
24
|
+
### Observed Behavior
|
|
25
|
+
|
|
26
|
+
[What happened]
|
|
27
|
+
|
|
28
|
+
### Expected Behavior
|
|
29
|
+
|
|
30
|
+
[What should have happened]
|
|
31
|
+
|
|
32
|
+
## Root Cause
|
|
33
|
+
|
|
34
|
+
[Technical explanation of why this happened]
|
|
35
|
+
|
|
36
|
+
### Code Location
|
|
37
|
+
|
|
38
|
+
File: `[path/to/file.ts]`
|
|
39
|
+
Line: [N]
|
|
40
|
+
|
|
41
|
+
### Analysis
|
|
42
|
+
|
|
43
|
+
[Detailed technical analysis of the bug mechanism]
|
|
44
|
+
|
|
45
|
+
## Contributing Factors
|
|
46
|
+
|
|
47
|
+
[What conditions allowed this bug to exist/ship]
|
|
48
|
+
|
|
49
|
+
- [ ] Missing test coverage
|
|
50
|
+
- [ ] Inadequate code review
|
|
51
|
+
- [ ] Unclear requirements
|
|
52
|
+
- [ ] Race condition / timing issue
|
|
53
|
+
- [ ] Edge case not considered
|
|
54
|
+
- [ ] External dependency failure
|
|
55
|
+
- [ ] Configuration error
|
|
56
|
+
- [ ] Other: [describe]
|
|
57
|
+
|
|
58
|
+
## Fix Approach
|
|
59
|
+
|
|
60
|
+
[High-level approach to fixing - not full implementation details]
|
|
61
|
+
|
|
62
|
+
### Changes Required
|
|
63
|
+
|
|
64
|
+
| File | Change |
|
|
65
|
+
|------|--------|
|
|
66
|
+
| `path/to/file.ts` | [Brief description] |
|
|
67
|
+
|
|
68
|
+
### Risks
|
|
69
|
+
|
|
70
|
+
[Any risks introduced by the fix]
|
|
71
|
+
|
|
72
|
+
## Prevention
|
|
73
|
+
|
|
74
|
+
[How to prevent similar issues in future]
|
|
75
|
+
|
|
76
|
+
### Immediate Actions
|
|
77
|
+
|
|
78
|
+
- [ ] [Action 1]
|
|
79
|
+
- [ ] [Action 2]
|
|
80
|
+
|
|
81
|
+
### Long-term Improvements
|
|
82
|
+
|
|
83
|
+
- [ ] [Improvement 1]
|
|
84
|
+
- [ ] [Improvement 2]
|
|
85
|
+
|
|
86
|
+
## Timeline
|
|
87
|
+
|
|
88
|
+
| Event | Date | Notes |
|
|
89
|
+
|-------|------|-------|
|
|
90
|
+
| Reported | YYYY-MM-DD | [How it was reported] |
|
|
91
|
+
| Investigated | YYYY-MM-DD | [Time spent] |
|
|
92
|
+
| Fixed | YYYY-MM-DD | [PR/commit reference] |
|
|
93
|
+
| Verified | YYYY-MM-DD | [How verified in production] |
|
|
94
|
+
|
|
95
|
+
## Related
|
|
96
|
+
|
|
97
|
+
- Issue: [link or N/A]
|
|
98
|
+
- PR: [link or N/A]
|
|
99
|
+
- Related RCAs: [links or N/A]
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## Usage
|
|
103
|
+
|
|
104
|
+
1. Copy template to `docs/rca/YYYY-MM-DD-<issue-slug>.md`
|
|
105
|
+
2. Fill in all sections during investigation
|
|
106
|
+
3. Update timeline as work progresses
|
|
107
|
+
4. Link to PR when fix is merged
|
|
108
|
+
|
|
109
|
+
## Naming Convention
|
|
110
|
+
|
|
111
|
+
`YYYY-MM-DD-<issue-slug>.md`
|
|
112
|
+
|
|
113
|
+
Examples:
|
|
114
|
+
- `2026-01-27-null-user-session.md`
|
|
115
|
+
- `2026-01-27-api-timeout-on-large-payload.md`
|
|
116
|
+
- `2026-01-27-login-redirect-loop.md`
|
|
117
|
+
|
|
118
|
+
## Abbreviated Template (Hotfix Follow-up)
|
|
119
|
+
|
|
120
|
+
For RCAs created after a hotfix, use this abbreviated version:
|
|
121
|
+
|
|
122
|
+
```markdown
|
|
123
|
+
# RCA: [Issue Title]
|
|
124
|
+
|
|
125
|
+
## Summary
|
|
126
|
+
|
|
127
|
+
[What broke and the quick fix applied]
|
|
128
|
+
|
|
129
|
+
## Hotfix Reference
|
|
130
|
+
|
|
131
|
+
- State file: `~/.claude/workflow-state/debug-<issue>.state.json`
|
|
132
|
+
- Commit: [hash]
|
|
133
|
+
- Date: YYYY-MM-DD
|
|
134
|
+
|
|
135
|
+
## Root Cause
|
|
136
|
+
|
|
137
|
+
[Now that you have time, document the actual root cause]
|
|
138
|
+
|
|
139
|
+
## Why Hotfix Worked
|
|
140
|
+
|
|
141
|
+
[Explain why the quick fix resolved the symptom]
|
|
142
|
+
|
|
143
|
+
## Proper Fix (if needed)
|
|
144
|
+
|
|
145
|
+
[If the hotfix was not the ideal solution, document what should be done]
|
|
146
|
+
|
|
147
|
+
## Prevention
|
|
148
|
+
|
|
149
|
+
[How to prevent similar issues]
|
|
150
|
+
```
|