moicle 1.6.0 → 2.0.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/README.md +82 -32
- package/assets/skills/docs/content/SKILL.md +269 -0
- package/assets/skills/{logo-design → docs/logo}/SKILL.md +31 -16
- package/assets/skills/{sync-docs → docs/sync}/SKILL.md +31 -1
- package/assets/skills/{video-content → docs/video}/SKILL.md +32 -17
- package/assets/skills/docs/write/SKILL.md +371 -0
- package/assets/skills/feature/api/SKILL.md +277 -0
- package/assets/skills/feature/deprecate/SKILL.md +276 -0
- package/assets/skills/{new-feature → feature/new}/SKILL.md +28 -12
- package/assets/skills/{refactor → feature/refactor}/SKILL.md +24 -12
- package/assets/skills/{hotfix → fix/hotfix}/SKILL.md +32 -30
- package/assets/skills/fix/incident/SKILL.md +272 -0
- package/assets/skills/{fix-pr-comment → fix/pr-comment}/SKILL.md +30 -1
- package/assets/skills/fix/root-cause/SKILL.md +219 -0
- package/assets/skills/{onboarding → research/onboarding}/SKILL.md +32 -31
- package/assets/skills/{spike → research/spike}/SKILL.md +33 -32
- package/assets/skills/research/web/SKILL.md +163 -0
- package/assets/skills/{architect-review → review/architect}/SKILL.md +37 -7
- package/assets/skills/{review-changes → review/branch}/SKILL.md +27 -7
- package/assets/skills/{pr-review → review/pr}/SKILL.md +31 -30
- package/assets/skills/review/tdd/SKILL.md +206 -0
- package/bin/cli.js +12 -1
- package/dist/commands/install.d.ts.map +1 -1
- package/dist/commands/install.js +219 -38
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +42 -2
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/postinstall.d.ts.map +1 -1
- package/dist/commands/postinstall.js +2 -0
- package/dist/commands/postinstall.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +31 -1
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/uninstall.d.ts.map +1 -1
- package/dist/commands/uninstall.js +93 -38
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/commands/upgrade.d.ts +7 -0
- package/dist/commands/upgrade.d.ts.map +1 -0
- package/dist/commands/upgrade.js +165 -0
- package/dist/commands/upgrade.js.map +1 -0
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/symlink.d.ts +8 -0
- package/dist/utils/symlink.d.ts.map +1 -1
- package/dist/utils/symlink.js +100 -0
- package/dist/utils/symlink.js.map +1 -1
- package/package.json +3 -1
- package/assets/skills/api-integration/SKILL.md +0 -883
- package/assets/skills/content-writer/SKILL.md +0 -721
- package/assets/skills/deep-debug/SKILL.md +0 -114
- package/assets/skills/deprecation/SKILL.md +0 -923
- package/assets/skills/documentation/SKILL.md +0 -1333
- package/assets/skills/incident-response/SKILL.md +0 -946
- package/assets/skills/research/SKILL.md +0 -124
- package/assets/skills/tdd/SKILL.md +0 -828
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: deep-debug
|
|
3
|
-
description: Deep bug investigation workflow for hard-to-trace errors. Systematic root cause analysis — no guessing, no blind fixes. Use when user says "deep debug", "deep-debug", "trace bug", "find root cause", "hard bug", "investigate bug".
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Deep Bug Investigation Workflow
|
|
7
|
-
|
|
8
|
-
For hard bugs that have been "fixed" multiple times without success. DO NOT guess — trace step by step to the root cause.
|
|
9
|
-
|
|
10
|
-
## Step 1: Collect evidence
|
|
11
|
-
|
|
12
|
-
Record exactly, DO NOT interpret:
|
|
13
|
-
|
|
14
|
-
- Exact error message
|
|
15
|
-
- Stack trace: file, line number, call chain
|
|
16
|
-
- Which environment is affected (production/staging/local)
|
|
17
|
-
- Happens every time or only in certain cases
|
|
18
|
-
|
|
19
|
-
## Step 2: Verify the code that is actually running
|
|
20
|
-
|
|
21
|
-
DO NOT assume the code on production = the code on local.
|
|
22
|
-
|
|
23
|
-
- Identify the exact version/commit currently deployed
|
|
24
|
-
- Compare it against the code you are reading locally
|
|
25
|
-
- If they DIFFER → read the deployed version before analyzing further
|
|
26
|
-
|
|
27
|
-
## Step 3: Trace the execution path
|
|
28
|
-
|
|
29
|
-
This is the most important step. Go from entry point → to the failing line. Trace EVERY step, DO NOT skip.
|
|
30
|
-
|
|
31
|
-
### 3a. Entry point → Error line
|
|
32
|
-
|
|
33
|
-
- Where does the request/event/job enter from?
|
|
34
|
-
- Which function calls which function? Follow the stack trace exactly.
|
|
35
|
-
- How is data passed through each layer?
|
|
36
|
-
|
|
37
|
-
### 3b. Where does the data at the failing line come from?
|
|
38
|
-
|
|
39
|
-
- Where is the faulty variable created/loaded from?
|
|
40
|
-
- Loaded directly from source (DB, API) or from cache/session?
|
|
41
|
-
- Does it go through serialize → unserialize?
|
|
42
|
-
- Does it go through any transform/convert?
|
|
43
|
-
|
|
44
|
-
### 3c. Type & state at the moment of failure
|
|
45
|
-
|
|
46
|
-
- What is the actual type of the variable? (string, object, null, enum...)
|
|
47
|
-
- What type does the code expect?
|
|
48
|
-
- Why does the actual type differ from the expected one?
|
|
49
|
-
|
|
50
|
-
### 3d. Framework internals (when the error is inside vendor/library)
|
|
51
|
-
|
|
52
|
-
- Read the source code at the EXACT line number from the stack trace
|
|
53
|
-
- Trace backwards: who calls that method, and with what arguments
|
|
54
|
-
- What condition drives the code into the failing branch
|
|
55
|
-
|
|
56
|
-
## Step 4: Find the root cause — Answer 3 questions
|
|
57
|
-
|
|
58
|
-
1. **Why does it fail?** — The specific technical cause
|
|
59
|
-
2. **Why didn't it fail before?** — What changed
|
|
60
|
-
3. **Reproduction conditions?** — When it fails, when it doesn't
|
|
61
|
-
|
|
62
|
-
If you can't answer all 3 → go back to Step 3, trace further.
|
|
63
|
-
|
|
64
|
-
## Step 5: Check hidden state sources
|
|
65
|
-
|
|
66
|
-
"Sometimes works, sometimes doesn't" bugs are usually caused by hidden state. Check in this order:
|
|
67
|
-
|
|
68
|
-
### Cache / Serialization
|
|
69
|
-
|
|
70
|
-
- Does the object pulled from cache lose any internal state? (transient fields, lazy-loaded properties, runtime caches)
|
|
71
|
-
- Does stale cache contain the old data format while new code expects the new format?
|
|
72
|
-
- Does serialize/unserialize change the type? (int↔float, null handling, enum↔string)
|
|
73
|
-
|
|
74
|
-
### Database / Storage
|
|
75
|
-
|
|
76
|
-
- Do collation/encoding affect comparisons?
|
|
77
|
-
- Do default values in the DB match the code's expectations?
|
|
78
|
-
- Has the schema been updated on production yet?
|
|
79
|
-
|
|
80
|
-
### Runtime cache / Compiled cache
|
|
81
|
-
|
|
82
|
-
- Any compiled/cached config, routes, or views that haven't been cleared?
|
|
83
|
-
- Does the bytecode cache (OPcache, compiled assets) serve the old file?
|
|
84
|
-
- Does CDN/proxy cache serve a stale asset?
|
|
85
|
-
|
|
86
|
-
### Environment
|
|
87
|
-
|
|
88
|
-
- Are env vars on production correct/complete?
|
|
89
|
-
- Does the runtime version (PHP, Node, Go, Python, etc.) differ from local?
|
|
90
|
-
- Do dependency versions differ?
|
|
91
|
-
|
|
92
|
-
## Step 6: Fix
|
|
93
|
-
|
|
94
|
-
Only fix once you have answered the 3 questions from Step 4. The fix must:
|
|
95
|
-
|
|
96
|
-
- Address the root cause, not the symptom
|
|
97
|
-
- Handle the edge case discovered (stale cache, type mismatch)
|
|
98
|
-
- Be defensive at data boundaries (cache, DB, external API) — not in internal logic
|
|
99
|
-
- Not break the normal code path in order to patch an edge case
|
|
100
|
-
|
|
101
|
-
## Step 7: Verify
|
|
102
|
-
|
|
103
|
-
- Reproduce the failure conditions from Step 4 → confirm the fix works
|
|
104
|
-
- Check the normal code path still works
|
|
105
|
-
- If cache-related → test both fresh load and cached load
|
|
106
|
-
- Verify against the actually deployed version (repeat Step 2)
|
|
107
|
-
|
|
108
|
-
## IMPORTANT
|
|
109
|
-
|
|
110
|
-
- **DO NOT GUESS** — Trace evidence, do not infer from variable names or "maybe it's..."
|
|
111
|
-
- **DO NOT FIX BEFORE UNDERSTANDING** — Fixing without knowing the root cause = creating a new bug
|
|
112
|
-
- **VERIFY DEPLOYED CODE** — Always check the running version, never assume production = local
|
|
113
|
-
- **CHECK CACHE FIRST** — Most "sometimes works, sometimes doesn't" bugs come from stale cached state
|
|
114
|
-
- **ONE ROOT CAUSE** — Every bug has one root cause. If multiple possibilities remain → trace further
|