moicle 2.0.0 → 2.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 (43) hide show
  1. package/README.md +20 -9
  2. package/assets/architecture/_shared/severity-levels.md +34 -0
  3. package/assets/architecture/_shared/stack-detection.md +34 -0
  4. package/assets/commands/marketing.md +7 -7
  5. package/assets/skills/docs/sync/SKILL.md +159 -519
  6. package/assets/skills/docs/write/SKILL.md +89 -186
  7. package/assets/skills/feature/new/SKILL.md +152 -192
  8. package/assets/skills/feature/refactor/SKILL.md +152 -233
  9. package/assets/skills/fix/hotfix/SKILL.md +139 -305
  10. package/assets/skills/fix/incident/SKILL.md +107 -19
  11. package/assets/skills/fix/pr-comment/SKILL.md +98 -224
  12. package/assets/skills/fix/root-cause/SKILL.md +161 -104
  13. package/assets/skills/{docs → marketing}/content/SKILL.md +4 -4
  14. package/assets/skills/marketing/logo/SKILL.md +252 -0
  15. package/assets/skills/marketing/seo-blog/SKILL.md +367 -0
  16. package/assets/skills/marketing/video/SKILL.md +258 -0
  17. package/assets/skills/research/onboarding/SKILL.md +127 -510
  18. package/assets/skills/research/spike/SKILL.md +128 -436
  19. package/assets/skills/research/web/SKILL.md +124 -83
  20. package/assets/skills/review/architect/SKILL.md +157 -306
  21. package/assets/skills/review/branch/SKILL.md +153 -208
  22. package/assets/skills/review/pr/SKILL.md +129 -519
  23. package/assets/skills/review/tdd/SKILL.md +108 -69
  24. package/bin/cli.js +2 -2
  25. package/dist/commands/install.d.ts.map +1 -1
  26. package/dist/commands/install.js +176 -8
  27. package/dist/commands/install.js.map +1 -1
  28. package/dist/commands/list.d.ts.map +1 -1
  29. package/dist/commands/list.js +31 -1
  30. package/dist/commands/list.js.map +1 -1
  31. package/dist/commands/status.d.ts.map +1 -1
  32. package/dist/commands/status.js +30 -1
  33. package/dist/commands/status.js.map +1 -1
  34. package/dist/commands/uninstall.d.ts.map +1 -1
  35. package/dist/commands/uninstall.js +64 -8
  36. package/dist/commands/uninstall.js.map +1 -1
  37. package/dist/utils/symlink.d.ts +1 -0
  38. package/dist/utils/symlink.d.ts.map +1 -1
  39. package/dist/utils/symlink.js +8 -6
  40. package/dist/utils/symlink.js.map +1 -1
  41. package/package.json +1 -1
  42. package/assets/skills/docs/logo/SKILL.md +0 -492
  43. package/assets/skills/docs/video/SKILL.md +0 -666
@@ -5,7 +5,7 @@ description: Quick bug fix workflow with rollback plan. Use when fixing bugs, ho
5
5
 
6
6
  # Hotfix Workflow
7
7
 
8
- Fast-track workflow for fixing bugs with safety rollback plan.
8
+ Fast-track bug fix with a rollback plan. Use when the cause is identifiable in under an hour of investigation.
9
9
 
10
10
  ## When to use this skill
11
11
 
@@ -18,363 +18,196 @@ Fast-track workflow for fixing bugs with safety rollback plan.
18
18
 
19
19
  ## Read Architecture First
20
20
 
21
- Read `ddd-architecture.md` + stack-specific doc to understand layer placement of the fix.
21
+ Read `ddd-architecture.md` + stack-specific doc the fix must land in the right layer (usecase / handler / infra) per architecture rules.
22
22
 
23
- ## Workflow Overview
23
+ ## Severity
24
+
25
+ Use `~/.claude/architecture/_shared/severity-levels.md` (incident table). Hotfix typically covers P2-P4. P1 → start with `/fix:incident` for triage / comms.
26
+
27
+ ---
28
+
29
+ ## Workflow
24
30
 
25
31
  ```
26
- ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
27
- │1. IDENTIFY──▶│2. REPRODUCE──▶│ 3. FIX │──▶│4. VERIFY │──▶│5. DEPLOY │
28
- └──────────┘ └──────────┘ └──────────┘ └──────────┘ └──────────┘
29
- │ │
30
- │ Fail? │
31
- │ ┌────────────────────┘
32
- ▼ ▼
33
- ┌──────────────────┐
34
- │ 6. ROLLBACK │
35
- │ (if needed) │
36
- └──────────────────┘
32
+ IDENTIFY → REPRODUCE → FIX → VERIFY → DEPLOY
33
+ ↑ ↓
34
+ └── ROLLBACK (if needed)
37
35
  ```
38
36
 
39
37
  ---
40
38
 
41
- ## Phase 1: IDENTIFY
39
+ ## Phase 1: IDENTIFY (≤15 min)
42
40
 
43
- **Goal**: Identify exactly what the bug is
41
+ **Goal:** capture exactly what's broken no speculation.
44
42
 
45
- ### Actions
46
- 1. Gather information:
47
- - Error message / stack trace
48
- - Steps to reproduce
49
- - Expected vs actual behavior
50
- - Environment (prod/staging/dev)
51
- - Affected users/scope
43
+ ### Capture
44
+ - Error message / stack trace (verbatim)
45
+ - Steps to reproduce
46
+ - Expected vs actual behavior
47
+ - Environment (prod / staging / dev)
48
+ - Affected users (all / subset / specific tenant)
49
+ - Recent deploys / config changes (last 24-48h)
52
50
 
53
- 2. **Identify project stack and read architecture doc**
51
+ ### 5 Whys (worked example)
52
+ > Q1: Why does checkout fail? A1: `OrderService.calculate` returns NaN.
53
+ > Q2: Why NaN? A2: `quantity * price` where price is undefined.
54
+ > Q3: Why undefined? A3: New SKUs from supplier feed have null price.
55
+ > Q4: Why null? A4: Feed schema added optional `price` field, defaulted to null.
56
+ > Q5: Why didn't validation catch it? A5: Import worker skips schema validation for "perf".
54
57
 
55
- 3. Assess severity:
56
- ```
57
- 🔴 CRITICAL - Production down, data loss
58
- 🟠 HIGH - Major feature broken, many users affected
59
- 🟡 MEDIUM - Feature degraded, workaround exists
60
- 🟢 LOW - Minor issue, cosmetic
61
- ```
62
-
63
- ### Output
64
- ```markdown
65
- ## Bug Report
66
- **Severity**: [CRITICAL/HIGH/MEDIUM/LOW]
67
- **Stack**: [Flutter/React/Go/Laravel/Remix]
68
- **Architecture Doc**: [path]
69
- **Error**: [error message]
70
- **Steps**:
71
- 1. ...
72
- 2. ...
73
- **Expected**: [what should happen]
74
- **Actual**: [what happens]
75
- **Environment**: [prod/staging/dev]
76
- ```
58
+ → Root cause: skipped validation in import worker. Fix at the import boundary, not in checkout.
77
59
 
78
60
  ### Gate
79
- - [ ] Bug clearly described
80
- - [ ] Architecture doc identified
81
- - [ ] Severity assessed
82
- - [ ] Scope understood
61
+ - [ ] Error captured verbatim
62
+ - [ ] Reproduction steps known (or "intermittent" noted)
63
+ - [ ] Severity assigned (P2 / P3 / P4)
64
+ - [ ] Root cause identified (use `/fix:root-cause` if 5 Whys doesn't converge)
83
65
 
84
66
  ---
85
67
 
86
- ## Phase 2: REPRODUCE & ANALYZE
87
-
88
- **Goal**: Reproduce the bug and find root cause
89
-
90
- ### Actions
91
- 1. **Read architecture doc** to understand codebase structure
92
- 2. Reproduce locally following architecture patterns
93
- 3. Find root cause using 5 Whys:
94
- ```
95
- Why did it fail? [answer]
96
- Why? [deeper answer]
97
- Why? [even deeper]
98
- Why? → [root cause emerging]
99
- Why? → [ROOT CAUSE]
100
- ```
101
-
102
- 4. Identify fix location based on architecture:
103
- - Which layer? (from architecture doc)
104
- - Which file(s)?
105
- - What's the minimal change?
106
-
107
- 5. Check git blame:
108
- ```bash
109
- git log --oneline -10 -- [affected_file]
110
- git blame [affected_file] | grep -A5 -B5 "[problem_area]"
111
- ```
112
-
113
- ### Analysis Output
114
- ```markdown
115
- ## Root Cause Analysis
116
- **Architecture Reference**: [path to doc]
117
- **Affected Layer**: [layer from architecture doc]
118
- **Root Cause**: [description]
119
- **Introduced**: [commit/PR if known]
120
- **Affected Files**:
121
- - file1:123
122
- - file2:456
123
-
124
- **Fix Strategy**: [brief description following architecture patterns]
125
- ```
68
+ ## Phase 2: REPRODUCE (≤30 min)
69
+
70
+ **Goal:** reproduce locally before changing any code.
71
+
72
+ ### Steps
73
+ 1. Check out the deployed commit (NOT main if main has drifted)
74
+ 2. Reproduce with the exact data / inputs from Phase 1
75
+ 3. If you can't reproduce it's environment-specific. Check:
76
+ - Env vars on prod vs local
77
+ - DB state / data shape
78
+ - Cache / CDN state
79
+ - Runtime version differences
126
80
 
127
81
  ### Gate
128
- - [ ] Bug reproduced locally
129
- - [ ] Root cause identified
130
- - [ ] Fix location known (per architecture)
82
+ - [ ] Reproduced locally on the deployed commit
83
+ - [ ] OR documented why local reproduction is impossible + plan to test on staging
131
84
 
132
85
  ---
133
86
 
134
87
  ## Phase 3: FIX
135
88
 
136
- **Goal**: Implement minimal fix following architecture
137
-
138
- ### Principles
139
- 1. **Minimal change** - Fix only what's broken
140
- 2. **Follow architecture** - Respect layer boundaries from doc
141
- 3. **No refactoring** - Save for later
142
- 4. **No new features** - Stay focused
143
- 5. **Preserve behavior** - Don't change anything else
144
-
145
- ### Actions
146
- 1. Create hotfix branch:
147
- ```bash
148
- git checkout -b hotfix/[issue-id]-[short-description]
149
- ```
150
-
151
- 2. **Read architecture doc** for the affected layer
152
- 3. Implement fix following architecture patterns:
153
- - Use correct patterns from doc
154
- - Follow naming conventions from doc
155
- - Respect layer boundaries
156
-
157
- 4. Add inline comment explaining fix:
158
- ```
159
- // HOTFIX: [issue-id] - [brief description]
160
- // Root cause: [why this fixes it]
161
- [your fix code]
162
- ```
89
+ **Goal:** smallest correct change at the right layer.
90
+
91
+ ### Rules
92
+ - Fix at the **root cause**, not the symptom
93
+ - Land the fix in the right layer (boundary validation → handler/DTO; business rule → usecase; data shape → infra mapper)
94
+ - **Add a regression test first** (RED), then make it pass (GREEN). See `/review:tdd`.
95
+ - Don't refactor on the fix — separate PR
96
+ - If the fix requires schema migration, plan it as 2 deploys (compatible code first, then migration)
97
+
98
+ ### Boundary defense
99
+ For data-shape bugs (null where not expected, type mismatch from external API): defend at the **trust boundary** (handler / adapter), not inside business logic.
163
100
 
164
101
  ### Gate
165
- - [ ] Fix follows architecture doc
166
- - [ ] Fix implemented minimally
167
- - [ ] Code compiles
168
- - [ ] No unrelated changes
102
+ - [ ] Regression test added (red → green)
103
+ - [ ] Fix is in the right layer (per architecture)
104
+ - [ ] No unrelated changes in the PR
105
+ - [ ] Existing tests still pass
169
106
 
170
107
  ---
171
108
 
172
109
  ## Phase 4: VERIFY
173
110
 
174
- **Goal**: Confirm fix works without breaking other things
175
-
176
- ### Actions
177
- 1. Test the fix:
178
- - [ ] Original bug no longer occurs
179
- - [ ] Related functionality still works
180
- - [ ] Edge cases handled
181
-
182
- 2. Run existing tests (use command from architecture doc):
183
- ```bash
184
- flutter test # Flutter
185
- go test ./... # Go
186
- bun test # React/Remix
187
- php artisan test # Laravel
188
- ```
189
-
190
- 3. Add regression test following architecture patterns:
191
- ```
192
- // Test to prevent regression
193
- it('should [expected behavior] - fixes #[issue-id]', () => {
194
- // Arrange: setup that caused bug
195
- // Act: trigger the bug scenario
196
- // Assert: verify correct behavior
197
- });
198
- ```
199
-
200
- 4. Manual verification:
201
- - [ ] Reproduce original steps
202
- - [ ] Confirm bug is fixed
203
- - [ ] Test happy path
204
- - [ ] Test edge cases
111
+ **Goal:** confirm fix works without breaking other paths.
112
+
113
+ ### Local
114
+ - [ ] Original failure no longer reproducible
115
+ - [ ] All tests pass (`{test command}`)
116
+ - [ ] Linter clean
117
+ - [ ] Build green
118
+
119
+ ### Staging (if available)
120
+ - [ ] Deploy to staging
121
+ - [ ] Reproduce the failure scenario — should pass
122
+ - [ ] Smoke-test adjacent features (anything sharing the code path)
123
+ - [ ] Monitor logs for 5-15 min
205
124
 
206
125
  ### Gate
207
- - [ ] Original bug fixed
208
- - [ ] All tests pass
209
- - [ ] Regression test added (following arch patterns)
210
- - [ ] No new issues introduced
211
-
212
- ### Feedback Loop
213
- If verification fails:
214
- 1. Note what failed
215
- 2. Return to FIX phase
216
- 3. Adjust fix (following architecture)
217
- 4. Re-verify
126
+ - [ ] Local + staging both verified
127
+ - [ ] No regressions in adjacent features
218
128
 
219
129
  ---
220
130
 
221
131
  ## Phase 5: DEPLOY
222
132
 
223
- **Goal**: Ship the fix safely
224
-
225
- ### Actions
226
- 1. Commit with clear message:
227
- ```bash
228
- git add .
229
- git commit -m "fix: [short description] (#[issue-id])
133
+ ### Pre-deploy checklist
134
+ - [ ] PR reviewed (`/review:branch` self + `/review:pr` from teammate)
135
+ - [ ] Rollback plan documented (see below)
136
+ - [ ] On-call notified
137
+ - [ ] CHANGELOG entry
230
138
 
231
- Root cause: [brief explanation]
232
- Fix: [what was changed]
139
+ ### Rollback plan
140
+ Document **before** deploying:
141
+ - Rollback method: `revert PR` / `redeploy commit {sha}` / `feature flag off` / `DB migration down`
142
+ - Estimated rollback time
143
+ - Who has authority to roll back (usually IC or on-call)
144
+ - Signal to roll back (specific metric + threshold)
233
145
 
234
- Fixes #[issue-id]"
235
- ```
146
+ ### Deploy steps
147
+ 1. Deploy via normal pipeline (don't skip CI even under pressure)
148
+ 2. Watch metrics + logs for the symptom + adjacent code paths
149
+ 3. Hold deploy attention for at least 1× normal request cycle (15-30 min)
236
150
 
237
- 2. Create PR:
238
- ```bash
239
- gh pr create --title "fix: [description]" --body "$(cat <<'EOF'
240
- ## Summary
241
- Fixes #[issue-id]
151
+ ### Gate
152
+ - [ ] Deployed successfully
153
+ - [ ] Symptom no longer occurring
154
+ - [ ] No new errors in monitoring
155
+ - [ ] Stakeholders notified
242
156
 
243
- ## Root Cause
244
- [explanation]
157
+ ---
245
158
 
246
- ## Fix
247
- [what was changed, following architecture patterns]
159
+ ## Phase 6: ROLLBACK (if Phase 5 verify fails)
248
160
 
249
- ## Testing
250
- - [ ] Original bug no longer occurs
251
- - [ ] Regression test added
252
- - [ ] All tests pass
161
+ ### When to roll back
162
+ - Error rate increases post-deploy
163
+ - New error type appears
164
+ - Adjacent feature breaks
165
+ - Performance degrades meaningfully
253
166
 
254
- ## Rollback Plan
255
- Revert commit: `git revert [commit-sha]`
256
- EOF
257
- )"
258
- ```
167
+ ### How
168
+ 1. Announce: "Rolling back {fix} in 60s due to {observation}"
169
+ 2. Execute: revert / redeploy previous / flip flag / migration down
170
+ 3. Verify rollback: metrics return to baseline
171
+ 4. Post-mortem the rollback — what was missed in Phase 3/4?
259
172
 
260
- 3. Deploy (if applicable):
261
- ```bash
262
- # Follow your deployment process
263
- # Monitor for issues
264
- ```
173
+ ---
265
174
 
266
- ### Gate
267
- - [ ] PR created/merged
268
- - [ ] Deployed (if applicable)
269
- - [ ] Monitoring in place
175
+ ## Final Report
270
176
 
271
- ---
177
+ ```markdown
178
+ ## Hotfix: {short description}
272
179
 
273
- ## Phase 6: ROLLBACK (If Needed)
274
-
275
- **Goal**: Quickly revert if fix causes more problems
276
-
277
- ### When to Rollback
278
- - [ ] Fix introduced new bugs
279
- - [ ] Performance degraded
280
- - [ ] Unexpected side effects
281
- - [ ] Users reporting new issues
282
-
283
- ### Rollback Actions
284
-
285
- 1. **Quick Revert**:
286
- ```bash
287
- # Find the hotfix commit
288
- git log --oneline -5
289
-
290
- # Revert it
291
- git revert [hotfix-commit-sha]
292
- git push
293
- ```
294
-
295
- 2. **Feature Flag** (if available):
296
- ```
297
- // Disable the fix temporarily
298
- if (!featureFlags.hotfix_123_enabled) {
299
- // Original behavior
300
- }
301
- ```
302
-
303
- 3. **Redeploy previous version**:
304
- ```bash
305
- # Deploy previous known-good version
306
- git checkout [previous-tag]
307
- # Run deploy
308
- ```
309
-
310
- ### Post-Rollback
311
- 1. Document what went wrong
312
- 2. Return to REPRODUCE phase
313
- 3. Analyze why fix failed (check architecture compliance)
314
- 4. Create better fix
180
+ ### Root cause
181
+ {From Phase 1, 5 Whys final answer}
315
182
 
316
- ---
183
+ ### Fix
184
+ - File: `path/to/file:line`
185
+ - Layer: {handler / usecase / infra / etc.}
186
+ - Approach: {boundary defense / logic correction / data migration}
317
187
 
318
- ## Quick Reference
319
-
320
- ### Architecture Docs
321
- | Stack | Doc |
322
- |-------|-----|
323
- | All | `clean-architecture.md` |
324
- | Flutter | `flutter-mobile.md` |
325
- | React | `react-frontend.md` |
326
- | Go | `go-backend.md` |
327
- | Laravel | `laravel-backend.md` |
328
- | Remix | `remix-fullstack.md` |
329
- | Monorepo | `monorepo.md` |
330
-
331
- ### Hotfix vs Feature
332
-
333
- | Aspect | Hotfix | Feature |
334
- |--------|--------|---------|
335
- | Speed | Fast (< 1 hour) | Thorough |
336
- | Scope | Minimal | Full |
337
- | Testing | Targeted | Comprehensive |
338
- | Design | Skip | Required |
339
- | Risk | Higher, has rollback | Lower |
340
-
341
- ### Severity Response Time
342
-
343
- | Severity | Response | Fix Target |
344
- |----------|----------|------------|
345
- | 🔴 CRITICAL | Immediate | < 1 hour |
346
- | 🟠 HIGH | Same day | < 4 hours |
347
- | 🟡 MEDIUM | Next sprint | < 1 week |
348
- | 🟢 LOW | Backlog | When convenient |
349
-
350
- ### Commit Message Format
351
- ```
352
- fix: [short description] (#issue-id)
188
+ ### Tests
189
+ - Regression test: {file:line}
190
+ - All tests passing
353
191
 
354
- Root cause: [why it happened]
355
- Fix: [what was changed]
192
+ ### Deploy
193
+ - Deployed: {timestamp}
194
+ - Verified: {timestamp + how}
195
+ - Rollback plan: {revert / redeploy / flag / migration}
356
196
 
357
- Fixes #[issue-id]
197
+ ### Severity: {P2 / P3 / P4}
198
+ ### Status: SHIPPED ✅ (or ROLLED BACK + reason)
358
199
  ```
359
200
 
360
- ### Rollback Checklist
361
- - [ ] Identify rollback commit
362
- - [ ] Test rollback locally
363
- - [ ] Execute rollback
364
- - [ ] Verify system stable
365
- - [ ] Notify stakeholders
366
- - [ ] Document learnings
367
-
368
201
  ---
369
202
 
370
- ## Emergency Contacts
203
+ ## Hard Rules
371
204
 
372
- Add your team's emergency contacts here:
373
- ```
374
- On-call: [contact]
375
- Backend lead: [contact]
376
- DevOps: [contact]
377
- ```
205
+ - **Reproduce before fixing** no fix lands without local repro
206
+ - **Regression test required** — every fix gets a test that would have caught it
207
+ - **Fix at the root, not the symptom** — patching the symptom invites the bug back
208
+ - **No drive-by refactor** — fix PR is focused, refactor goes in a separate PR
209
+ - **Always have a rollback plan** documented before deploy
210
+ - **Don't skip CI** under pressure — bypassing CI is what causes the next incident
378
211
 
379
212
  ---
380
213
 
@@ -382,18 +215,19 @@ DevOps: [contact]
382
215
 
383
216
  | When | Use |
384
217
  |------|-----|
385
- | Production is down right now | `/fix:incident` (then hotfix) |
218
+ | Production is down right now | `/fix:incident` first, then hotfix |
386
219
  | Bug keeps coming back after fixes | `/fix:root-cause` |
387
220
  | Need to write regression test first | `/review:tdd` |
388
221
  | Bug is on an open PR | `/fix:pr-comment` |
389
- | After fix: reviewing own branch | `/review:branch` |
222
+ | Self-review before opening PR | `/review:branch` |
390
223
 
391
224
  ## Recommended Agents
392
225
 
393
226
  | Phase | Agent | Purpose |
394
227
  |-------|-------|---------|
395
- | FIX | Stack-specific dev agent | Bug fix |
228
+ | IDENTIFY | Stack-specific dev agent | Read error context |
229
+ | FIX | Stack-specific dev agent | Apply the fix |
396
230
  | FIX | `@security-audit` | Security-related bugs |
397
231
  | VERIFY | `@test-writer` | Regression test |
398
232
  | VERIFY | `@code-reviewer` | Quick code review |
399
- | DEPLOY | `@devops` | CI/CD + deployment |
233
+ | DEPLOY | `@devops` | CI/CD + monitoring |