@su-record/vibe 2.9.12 → 2.9.14
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.ko.md +12 -1
- package/README.md +12 -1
- package/dist/cli/commands/info.d.ts.map +1 -1
- package/dist/cli/commands/info.js +3 -2
- package/dist/cli/commands/info.js.map +1 -1
- package/dist/cli/postinstall/constants.d.ts.map +1 -1
- package/dist/cli/postinstall/constants.js +2 -0
- package/dist/cli/postinstall/constants.js.map +1 -1
- package/dist/cli/postinstall/main.d.ts.map +1 -1
- package/dist/cli/postinstall/main.js +62 -52
- package/dist/cli/postinstall/main.js.map +1 -1
- package/dist/cli/setup/ProjectSetup.d.ts.map +1 -1
- package/dist/cli/setup/ProjectSetup.js +15 -0
- package/dist/cli/setup/ProjectSetup.js.map +1 -1
- package/dist/cli/utils/cli-detector.d.ts +14 -1
- package/dist/cli/utils/cli-detector.d.ts.map +1 -1
- package/dist/cli/utils/cli-detector.js +36 -1
- package/dist/cli/utils/cli-detector.js.map +1 -1
- package/dist/infra/lib/codex-proxy.d.ts.map +1 -1
- package/dist/infra/lib/codex-proxy.js +22 -6
- package/dist/infra/lib/codex-proxy.js.map +1 -1
- package/dist/infra/lib/llm-availability.d.ts +5 -2
- package/dist/infra/lib/llm-availability.d.ts.map +1 -1
- package/dist/infra/lib/llm-availability.js +11 -4
- package/dist/infra/lib/llm-availability.js.map +1 -1
- package/dist/infra/orchestrator/LLMCluster.d.ts +11 -2
- package/dist/infra/orchestrator/LLMCluster.d.ts.map +1 -1
- package/dist/infra/orchestrator/LLMCluster.js +25 -5
- package/dist/infra/orchestrator/LLMCluster.js.map +1 -1
- package/hooks/hooks.json +10 -58
- package/hooks/scripts/__tests__/pre-tool-guard.test.js +4 -3
- package/hooks/scripts/__tests__/sentinel-guard.test.js +6 -8
- package/hooks/scripts/figma-guard.js +2 -3
- package/hooks/scripts/lib/dispatcher.js +83 -0
- package/hooks/scripts/llm-orchestrate.js +84 -11
- package/hooks/scripts/post-edit-dispatcher.js +24 -0
- package/hooks/scripts/pre-tool-dispatcher.js +31 -0
- package/hooks/scripts/pre-tool-guard.js +2 -3
- package/hooks/scripts/prompt-dispatcher.js +5 -0
- package/hooks/scripts/sentinel-guard.js +2 -3
- package/hooks/scripts/stop-dispatcher.js +27 -0
- package/package.json +1 -1
- package/skills/rob-pike/SKILL.md +64 -0
- package/skills/systematic-debugging/SKILL.md +140 -0
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: systematic-debugging
|
|
3
|
+
tier: core
|
|
4
|
+
description: "Enforce reproduce-first, root-cause-first, failing-test-first debugging. Auto-activates on bug, error, fail, broken, crash, flaky keywords."
|
|
5
|
+
triggers: [bug, error, fail, broken, crash, flaky, not working, regression, unexpected, stack trace, exception, debug]
|
|
6
|
+
priority: 90
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Systematic Debugging
|
|
10
|
+
|
|
11
|
+
## Hard Gates
|
|
12
|
+
|
|
13
|
+
These rules have NO exceptions:
|
|
14
|
+
|
|
15
|
+
1. **Never fix before reproducing or observing the failure.**
|
|
16
|
+
2. **State a root-cause hypothesis before changing code.**
|
|
17
|
+
3. **Write a failing test (or equivalent) before fixing.**
|
|
18
|
+
4. **Test one hypothesis at a time.**
|
|
19
|
+
5. **No "while I'm here" refactoring during a fix.**
|
|
20
|
+
6. **3 failed fixes → suspect structural issue, stop patching.**
|
|
21
|
+
|
|
22
|
+
These excuses are NOT allowed:
|
|
23
|
+
- "It looks simple, I'll just fix it"
|
|
24
|
+
- "No time, let me patch and move on"
|
|
25
|
+
- "This seems like the issue, let me just change it"
|
|
26
|
+
|
|
27
|
+
## Workflow
|
|
28
|
+
|
|
29
|
+
Follow this order strictly.
|
|
30
|
+
|
|
31
|
+
### Phase 1. Define The Problem
|
|
32
|
+
|
|
33
|
+
```text
|
|
34
|
+
Problem: <expected> but got <actual> under <condition>
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Good: "Product detail API returns 500 when brand is null."
|
|
38
|
+
Bad: "Serializer is broken because brand mapping seems wrong."
|
|
39
|
+
|
|
40
|
+
### Phase 2. Reproduce Or Instrument
|
|
41
|
+
|
|
42
|
+
Priority:
|
|
43
|
+
1. Reproduce with existing test
|
|
44
|
+
2. Minimal integration test
|
|
45
|
+
3. Unit test
|
|
46
|
+
4. Reproduction script/command
|
|
47
|
+
5. Add logging/instrumentation to observe
|
|
48
|
+
|
|
49
|
+
Rules:
|
|
50
|
+
- Make reproduction path as small as possible.
|
|
51
|
+
- If UI-only bug, prefer reproducing at a lower layer.
|
|
52
|
+
- If flaky, add logging for inputs, timing, concurrency conditions.
|
|
53
|
+
- If can't reproduce, do NOT proceed to fix — increase observability first.
|
|
54
|
+
|
|
55
|
+
### Phase 3. Gather Evidence
|
|
56
|
+
|
|
57
|
+
Collect observable facts only:
|
|
58
|
+
- Full error message and stack trace
|
|
59
|
+
- Failing input values
|
|
60
|
+
- Recent changed files/commits
|
|
61
|
+
- Environment/config differences
|
|
62
|
+
- Call path and data flow
|
|
63
|
+
|
|
64
|
+
At each boundary (controller → service → repository), check:
|
|
65
|
+
- What came in?
|
|
66
|
+
- What went out?
|
|
67
|
+
- What was transformed?
|
|
68
|
+
- Under what condition does it break?
|
|
69
|
+
|
|
70
|
+
Do NOT fix before locating the problem.
|
|
71
|
+
|
|
72
|
+
### Phase 4. Isolate Root Cause
|
|
73
|
+
|
|
74
|
+
State exactly one candidate:
|
|
75
|
+
|
|
76
|
+
```text
|
|
77
|
+
Hypothesis: <root cause> because <evidence>
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Good hypothesis conditions:
|
|
81
|
+
- Points to a single cause
|
|
82
|
+
- Connected to observed evidence
|
|
83
|
+
- Falsifiable with a small experiment
|
|
84
|
+
|
|
85
|
+
Bad: "Something async seems wrong" / "The whole serializer area is unstable"
|
|
86
|
+
|
|
87
|
+
### Phase 5. Lock The Failure
|
|
88
|
+
|
|
89
|
+
Before fixing, lock the failure:
|
|
90
|
+
1. Automated failing test (preferred)
|
|
91
|
+
2. Add regression case to existing test
|
|
92
|
+
3. Minimal reproduction script
|
|
93
|
+
4. Temporary log/assertion guard
|
|
94
|
+
|
|
95
|
+
The test MUST fail before fix, pass after fix.
|
|
96
|
+
|
|
97
|
+
### Phase 6. Single Fix
|
|
98
|
+
|
|
99
|
+
Allowed:
|
|
100
|
+
- Minimal code change addressing the root cause
|
|
101
|
+
- Minimal supporting changes for verification
|
|
102
|
+
|
|
103
|
+
Forbidden:
|
|
104
|
+
- Bundling multiple "related" fixes
|
|
105
|
+
- Refactoring alongside the fix
|
|
106
|
+
- Formatting/renaming/cleanup
|
|
107
|
+
- Adding null-guards without evidence
|
|
108
|
+
- Swallowing exceptions
|
|
109
|
+
|
|
110
|
+
If fix fails → go back to Phase 3. Previous hypothesis was wrong.
|
|
111
|
+
|
|
112
|
+
### Phase 7. Verify And Close
|
|
113
|
+
|
|
114
|
+
ALL must be true:
|
|
115
|
+
1. Original reproduction path no longer fails
|
|
116
|
+
2. New failing guard now passes
|
|
117
|
+
3. Related tests don't break
|
|
118
|
+
4. Fix addresses cause, not symptom
|
|
119
|
+
|
|
120
|
+
For flaky bugs: single pass is not enough. Repeat or vary conditions.
|
|
121
|
+
|
|
122
|
+
## Red Flags — Stop Immediately
|
|
123
|
+
|
|
124
|
+
If you think any of these, STOP and go back:
|
|
125
|
+
|
|
126
|
+
- "Let me just change this one line"
|
|
127
|
+
- "I'll check logs later, let me fix first"
|
|
128
|
+
- "I'll add the test later"
|
|
129
|
+
- "Let me fix this and that together"
|
|
130
|
+
- "The error is gone so it doesn't matter what caused it"
|
|
131
|
+
|
|
132
|
+
## Completion Checklist
|
|
133
|
+
|
|
134
|
+
- [ ] Problem defined in one sentence
|
|
135
|
+
- [ ] Failure reproduced or made observable
|
|
136
|
+
- [ ] Evidence collected
|
|
137
|
+
- [ ] Single root-cause hypothesis stated
|
|
138
|
+
- [ ] Failing guard created before fix
|
|
139
|
+
- [ ] Single fix applied
|
|
140
|
+
- [ ] Verified via same reproduction path
|