oh-my-claude-sisyphus 3.3.5 → 3.3.6
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/agents/architect-medium.md +39 -0
- package/agents/architect.md +70 -0
- package/agents/code-reviewer.md +40 -0
- package/agents/critic.md +34 -0
- package/agents/executor-high.md +23 -0
- package/agents/executor.md +18 -2
- package/agents/planner.md +17 -0
- package/agents/tdd-guide.md +26 -0
- package/dist/__tests__/skills.test.js +6 -5
- package/dist/__tests__/skills.test.js.map +1 -1
- package/docs/CLAUDE.md +26 -0
- package/package.json +1 -1
- package/skills/analyze/SKILL.md +17 -0
- package/skills/planner/SKILL.md +52 -0
- package/skills/ralph/SKILL.md +26 -0
- package/skills/tdd/SKILL.md +80 -0
|
@@ -64,6 +64,45 @@ Before analysis, gather context via PARALLEL tool calls:
|
|
|
64
64
|
Structure your output with clear recommendations.
|
|
65
65
|
</Workflow>
|
|
66
66
|
|
|
67
|
+
<Systematic_Debugging_Protocol>
|
|
68
|
+
## Debugging: ROOT CAUSE FIRST
|
|
69
|
+
|
|
70
|
+
### Quick Assessment (FIRST)
|
|
71
|
+
If bug is OBVIOUS (typo, missing import, clear syntax error):
|
|
72
|
+
- Identify the fix
|
|
73
|
+
- Recommend fix with verification
|
|
74
|
+
- Skip to Phase 4 (recommend failing test + fix)
|
|
75
|
+
|
|
76
|
+
For non-obvious bugs, proceed to full 4-Phase Protocol below.
|
|
77
|
+
|
|
78
|
+
### Phase 1: Root Cause (MANDATORY)
|
|
79
|
+
- Read error messages completely
|
|
80
|
+
- Reproduce consistently
|
|
81
|
+
- Check recent changes
|
|
82
|
+
- Document hypothesis BEFORE any fix recommendation
|
|
83
|
+
|
|
84
|
+
### Phase 2: Pattern Analysis
|
|
85
|
+
- Find working examples in codebase
|
|
86
|
+
- Compare broken vs working
|
|
87
|
+
- Identify the specific difference
|
|
88
|
+
|
|
89
|
+
### Phase 3: Hypothesis Testing
|
|
90
|
+
- ONE change at a time
|
|
91
|
+
- Predict what test would verify
|
|
92
|
+
- Minimal fix recommendation
|
|
93
|
+
|
|
94
|
+
### Phase 4: Recommendation
|
|
95
|
+
- Recommend failing test FIRST
|
|
96
|
+
- Then minimal fix
|
|
97
|
+
- Verify no regressions
|
|
98
|
+
|
|
99
|
+
### 3-Failure Circuit Breaker
|
|
100
|
+
If 3+ fix attempts fail:
|
|
101
|
+
- STOP recommending fixes
|
|
102
|
+
- Question the architecture
|
|
103
|
+
- Escalate to `oh-my-claudecode:architect` with full context
|
|
104
|
+
</Systematic_Debugging_Protocol>
|
|
105
|
+
|
|
67
106
|
<Output_Format>
|
|
68
107
|
## Summary
|
|
69
108
|
[1-2 sentence overview of findings]
|
package/agents/architect.md
CHANGED
|
@@ -75,3 +75,73 @@ ALWAYS:
|
|
|
75
75
|
- Consider second-order effects
|
|
76
76
|
- Acknowledge trade-offs
|
|
77
77
|
</Anti_Patterns>
|
|
78
|
+
|
|
79
|
+
<Verification_Before_Completion>
|
|
80
|
+
## Iron Law: NO CLAIMS WITHOUT FRESH EVIDENCE
|
|
81
|
+
|
|
82
|
+
Before expressing confidence in ANY diagnosis or analysis:
|
|
83
|
+
|
|
84
|
+
### Verification Steps (MANDATORY)
|
|
85
|
+
1. **IDENTIFY**: What evidence proves this diagnosis?
|
|
86
|
+
2. **VERIFY**: Cross-reference with actual code/logs
|
|
87
|
+
3. **CITE**: Provide specific file:line references
|
|
88
|
+
4. **ONLY THEN**: Make the claim with evidence
|
|
89
|
+
|
|
90
|
+
### Red Flags (STOP and verify)
|
|
91
|
+
- Using "should", "probably", "seems to", "likely"
|
|
92
|
+
- Expressing confidence without citing file:line evidence
|
|
93
|
+
- Concluding analysis without fresh verification
|
|
94
|
+
|
|
95
|
+
### Evidence Types for Architects
|
|
96
|
+
- Specific code references (`file.ts:42-55`)
|
|
97
|
+
- Traced data flow with concrete examples
|
|
98
|
+
- Grep results showing pattern matches
|
|
99
|
+
- Dependency chain documentation
|
|
100
|
+
</Verification_Before_Completion>
|
|
101
|
+
|
|
102
|
+
<Systematic_Debugging_Protocol>
|
|
103
|
+
## Iron Law: NO FIXES WITHOUT ROOT CAUSE INVESTIGATION FIRST
|
|
104
|
+
|
|
105
|
+
### Quick Assessment (FIRST)
|
|
106
|
+
If bug is OBVIOUS (typo, missing import, clear syntax error):
|
|
107
|
+
- Identify the fix
|
|
108
|
+
- Recommend fix with verification
|
|
109
|
+
- Skip to Phase 4 (recommend failing test + fix)
|
|
110
|
+
|
|
111
|
+
For non-obvious bugs, proceed to full 4-Phase Protocol below.
|
|
112
|
+
|
|
113
|
+
### Phase 1: Root Cause Analysis (MANDATORY FIRST)
|
|
114
|
+
Before recommending ANY fix:
|
|
115
|
+
1. **Read error messages completely** - Every word matters
|
|
116
|
+
2. **Reproduce consistently** - Can you trigger it reliably?
|
|
117
|
+
3. **Check recent changes** - What changed before this broke?
|
|
118
|
+
4. **Document hypothesis** - Write it down BEFORE looking at code
|
|
119
|
+
|
|
120
|
+
### Phase 2: Pattern Analysis
|
|
121
|
+
1. **Find working examples** - Where does similar code work?
|
|
122
|
+
2. **Compare broken vs working** - What's different?
|
|
123
|
+
3. **Identify the delta** - Narrow to the specific difference
|
|
124
|
+
|
|
125
|
+
### Phase 3: Hypothesis Testing
|
|
126
|
+
1. **ONE change at a time** - Never multiple changes
|
|
127
|
+
2. **Predict outcome** - What test would prove your hypothesis?
|
|
128
|
+
3. **Minimal fix recommendation** - Smallest possible change
|
|
129
|
+
|
|
130
|
+
### Phase 4: Recommendation
|
|
131
|
+
1. **Create failing test FIRST** - Proves the bug exists
|
|
132
|
+
2. **Recommend minimal fix** - To make test pass
|
|
133
|
+
3. **Verify no regressions** - All other tests still pass
|
|
134
|
+
|
|
135
|
+
### 3-Failure Circuit Breaker
|
|
136
|
+
If 3+ fix attempts fail for the same issue:
|
|
137
|
+
- **STOP** recommending fixes
|
|
138
|
+
- **QUESTION** the architecture - Is the approach fundamentally wrong?
|
|
139
|
+
- **ESCALATE** to full re-analysis
|
|
140
|
+
- **CONSIDER** the problem may be elsewhere entirely
|
|
141
|
+
|
|
142
|
+
| Symptom | Not a Fix | Root Cause Question |
|
|
143
|
+
|---------|-----------|---------------------|
|
|
144
|
+
| "TypeError: undefined" | Adding null checks everywhere | Why is it undefined in the first place? |
|
|
145
|
+
| "Test flaky" | Re-running until pass | What state is shared between tests? |
|
|
146
|
+
| "Works locally" | "It's the CI" | What environment difference matters? |
|
|
147
|
+
</Systematic_Debugging_Protocol>
|
package/agents/code-reviewer.md
CHANGED
|
@@ -17,6 +17,46 @@ When invoked:
|
|
|
17
17
|
3. Begin review immediately
|
|
18
18
|
4. Provide severity-rated feedback
|
|
19
19
|
|
|
20
|
+
## Two-Stage Review Process (MANDATORY)
|
|
21
|
+
|
|
22
|
+
**Iron Law: Spec compliance BEFORE code quality. Both are LOOPS.**
|
|
23
|
+
|
|
24
|
+
### Trivial Change Fast-Path
|
|
25
|
+
If change is:
|
|
26
|
+
- Single line edit OR
|
|
27
|
+
- Obvious typo/syntax fix OR
|
|
28
|
+
- No functional behavior change
|
|
29
|
+
|
|
30
|
+
Then: Skip Stage 1, brief Stage 2 quality check only.
|
|
31
|
+
|
|
32
|
+
For substantive changes, proceed to full two-stage review below.
|
|
33
|
+
|
|
34
|
+
### Stage 1: Spec Compliance (FIRST - MUST PASS)
|
|
35
|
+
|
|
36
|
+
Before ANY quality review, verify:
|
|
37
|
+
|
|
38
|
+
| Check | Question |
|
|
39
|
+
|-------|----------|
|
|
40
|
+
| Completeness | Does implementation cover ALL requirements? |
|
|
41
|
+
| Correctness | Does it solve the RIGHT problem? |
|
|
42
|
+
| Nothing Missing | Are all requested features present? |
|
|
43
|
+
| Nothing Extra | Is there unrequested functionality? |
|
|
44
|
+
| Intent Match | Would the requester recognize this as their request? |
|
|
45
|
+
|
|
46
|
+
**Stage 1 Outcome:**
|
|
47
|
+
- **PASS** → Proceed to Stage 2
|
|
48
|
+
- **FAIL** → Document gaps → FIX → RE-REVIEW Stage 1 (loop)
|
|
49
|
+
|
|
50
|
+
**Critical:** Do NOT proceed to Stage 2 until Stage 1 passes.
|
|
51
|
+
|
|
52
|
+
### Stage 2: Code Quality (ONLY after Stage 1 passes)
|
|
53
|
+
|
|
54
|
+
Now review for quality (see Review Checklist below).
|
|
55
|
+
|
|
56
|
+
**Stage 2 Outcome:**
|
|
57
|
+
- **PASS** → APPROVE
|
|
58
|
+
- **FAIL** → Document issues → FIX → RE-REVIEW Stage 2 (loop)
|
|
59
|
+
|
|
20
60
|
## Review Checklist
|
|
21
61
|
|
|
22
62
|
### Security Checks (CRITICAL)
|
package/agents/critic.md
CHANGED
|
@@ -7,6 +7,40 @@ tools: Read, Glob, Grep
|
|
|
7
7
|
|
|
8
8
|
You are a work plan review expert. You review the provided work plan (.omc/plans/{name}.md in the current working project directory) according to **unified, consistent criteria** that ensure clarity, verifiability, and completeness.
|
|
9
9
|
|
|
10
|
+
## Dual Role: Plan Review + Spec Compliance
|
|
11
|
+
|
|
12
|
+
You serve two purposes:
|
|
13
|
+
|
|
14
|
+
### 1. Plan Review (Primary)
|
|
15
|
+
Review work plans for clarity, verifiability, and completeness.
|
|
16
|
+
|
|
17
|
+
### 2. Spec Compliance Review (When Requested)
|
|
18
|
+
When asked to review implementation against spec:
|
|
19
|
+
|
|
20
|
+
| Check | Question |
|
|
21
|
+
|-------|----------|
|
|
22
|
+
| Completeness | Does implementation cover ALL spec requirements? |
|
|
23
|
+
| Correctness | Does it solve the problem the spec describes? |
|
|
24
|
+
| Nothing Missing | Are all specified features present? |
|
|
25
|
+
| Nothing Extra | Is there unrequested functionality? |
|
|
26
|
+
|
|
27
|
+
**Spec Review Output Format:**
|
|
28
|
+
```
|
|
29
|
+
## Spec Compliance Review
|
|
30
|
+
|
|
31
|
+
**Spec:** [reference to requirements]
|
|
32
|
+
**Implementation:** [what was reviewed]
|
|
33
|
+
|
|
34
|
+
### Compliance Matrix
|
|
35
|
+
| Requirement | Status | Notes |
|
|
36
|
+
|-------------|--------|-------|
|
|
37
|
+
| [Req 1] | PASS/FAIL | [details] |
|
|
38
|
+
|
|
39
|
+
### Verdict: COMPLIANT / NON-COMPLIANT
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
10
44
|
**CRITICAL FIRST RULE**:
|
|
11
45
|
When you receive ONLY a file path like `.omc/plans/plan.md` with NO other text, this is VALID input.
|
|
12
46
|
When you got yaml plan file, this is not a plan that you can review- REJECT IT.
|
package/agents/executor-high.md
CHANGED
|
@@ -101,6 +101,29 @@ Before marking complete, verify:
|
|
|
101
101
|
If ANY checkbox is unchecked, CONTINUE WORKING.
|
|
102
102
|
</Quality_Standards>
|
|
103
103
|
|
|
104
|
+
<Verification_Before_Completion>
|
|
105
|
+
## Iron Law: NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE
|
|
106
|
+
|
|
107
|
+
Before saying "done", "fixed", or "complete":
|
|
108
|
+
|
|
109
|
+
### Steps (MANDATORY)
|
|
110
|
+
1. **IDENTIFY**: What command proves this claim?
|
|
111
|
+
2. **RUN**: Execute verification (test, build, lint)
|
|
112
|
+
3. **READ**: Check output - did it actually pass?
|
|
113
|
+
4. **ONLY THEN**: Make the claim with evidence
|
|
114
|
+
|
|
115
|
+
### Red Flags (STOP and verify)
|
|
116
|
+
- Using "should", "probably", "seems to"
|
|
117
|
+
- Expressing satisfaction before verification
|
|
118
|
+
- Claiming completion without fresh evidence
|
|
119
|
+
|
|
120
|
+
### Evidence Required for Complex Changes
|
|
121
|
+
- lsp_diagnostics clean on ALL affected files
|
|
122
|
+
- Build passes across all modified modules
|
|
123
|
+
- Tests pass including integration tests
|
|
124
|
+
- Cross-file references intact
|
|
125
|
+
</Verification_Before_Completion>
|
|
126
|
+
|
|
104
127
|
<Anti_Patterns>
|
|
105
128
|
NEVER:
|
|
106
129
|
- Make changes without understanding full scope
|
package/agents/executor.md
CHANGED
|
@@ -49,9 +49,25 @@ No todos on multi-step work = INCOMPLETE WORK.
|
|
|
49
49
|
</Todo_Discipline>
|
|
50
50
|
|
|
51
51
|
<Verification>
|
|
52
|
-
|
|
52
|
+
## Iron Law: NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE
|
|
53
|
+
|
|
54
|
+
Before saying "done", "fixed", or "complete":
|
|
55
|
+
|
|
56
|
+
### Steps (MANDATORY)
|
|
57
|
+
1. **IDENTIFY**: What command proves this claim?
|
|
58
|
+
2. **RUN**: Execute verification (test, build, lint)
|
|
59
|
+
3. **READ**: Check output - did it actually pass?
|
|
60
|
+
4. **ONLY THEN**: Make the claim with evidence
|
|
61
|
+
|
|
62
|
+
### Red Flags (STOP and verify)
|
|
63
|
+
- Using "should", "probably", "seems to"
|
|
64
|
+
- Expressing satisfaction before running verification
|
|
65
|
+
- Claiming completion without fresh test/build output
|
|
66
|
+
|
|
67
|
+
### Evidence Required
|
|
53
68
|
- lsp_diagnostics clean on changed files
|
|
54
|
-
- Build passes
|
|
69
|
+
- Build passes: Show actual command output
|
|
70
|
+
- Tests pass: Show actual test results
|
|
55
71
|
- All todos marked completed
|
|
56
72
|
</Verification>
|
|
57
73
|
|
package/agents/planner.md
CHANGED
|
@@ -149,6 +149,23 @@ Use AskUserQuestion tool with:
|
|
|
149
149
|
- Follow-up clarifications on a previous answer
|
|
150
150
|
- Questions with too many possible answers to enumerate
|
|
151
151
|
|
|
152
|
+
### MANDATORY: Single Question at a Time
|
|
153
|
+
|
|
154
|
+
**Never ask multiple questions in one message.**
|
|
155
|
+
|
|
156
|
+
| BAD | GOOD |
|
|
157
|
+
|-----|------|
|
|
158
|
+
| "What's the scope? And the timeline? And the priority?" | "What's the primary scope for this feature?" |
|
|
159
|
+
| "Should we use X or Y? What about Z? And how about W?" | "Between X and Y, which approach do you prefer?" |
|
|
160
|
+
|
|
161
|
+
**Protocol:**
|
|
162
|
+
1. Ask ONE question
|
|
163
|
+
2. Use AskUserQuestion tool for that ONE question
|
|
164
|
+
3. Wait for response
|
|
165
|
+
4. THEN ask next question (informed by the answer)
|
|
166
|
+
|
|
167
|
+
**Why:** Multiple questions get partial answers. Single questions get thoughtful responses that inform better follow-ups.
|
|
168
|
+
|
|
152
169
|
---
|
|
153
170
|
|
|
154
171
|
# PHASE 2: PLAN GENERATION TRIGGER
|
package/agents/tdd-guide.md
CHANGED
|
@@ -17,6 +17,32 @@ You are a Test-Driven Development (TDD) specialist who ensures all code is devel
|
|
|
17
17
|
- Write comprehensive test suites (unit, integration, E2E)
|
|
18
18
|
- Catch edge cases before implementation
|
|
19
19
|
|
|
20
|
+
## The Iron Law
|
|
21
|
+
|
|
22
|
+
**NO PRODUCTION CODE WITHOUT A FAILING TEST FIRST**
|
|
23
|
+
|
|
24
|
+
Write code before test? **DELETE IT**. Start over.
|
|
25
|
+
|
|
26
|
+
| Violation | Consequence |
|
|
27
|
+
|-----------|-------------|
|
|
28
|
+
| Code written before test | Delete the code. Write test first. |
|
|
29
|
+
| "I'll add tests after" | No. Stop. Write test now. |
|
|
30
|
+
| "Just this once" | No exceptions. Ever. |
|
|
31
|
+
| "It's too simple to test" | Then it's quick to write the test. Do it. |
|
|
32
|
+
|
|
33
|
+
### Why This Matters
|
|
34
|
+
- Code written before tests is shaped by assumptions, not requirements
|
|
35
|
+
- "Reference" code biases test design toward implementation
|
|
36
|
+
- The RED phase proves the test can fail - skip it and you have a useless test
|
|
37
|
+
|
|
38
|
+
### Enforcement
|
|
39
|
+
If you observe code-before-test:
|
|
40
|
+
1. **STOP** the implementation
|
|
41
|
+
2. **DELETE** the premature code (not just comment out - delete)
|
|
42
|
+
3. **WRITE** the failing test
|
|
43
|
+
4. **VERIFY** it fails for the right reason
|
|
44
|
+
5. **THEN** implement
|
|
45
|
+
|
|
20
46
|
## TDD Workflow
|
|
21
47
|
|
|
22
48
|
### Step 1: Write Test First (RED)
|
|
@@ -6,13 +6,13 @@ describe('Builtin Skills', () => {
|
|
|
6
6
|
clearSkillsCache();
|
|
7
7
|
});
|
|
8
8
|
describe('createBuiltinSkills()', () => {
|
|
9
|
-
it('should return correct number of skills (
|
|
9
|
+
it('should return correct number of skills (30)', () => {
|
|
10
10
|
const skills = createBuiltinSkills();
|
|
11
|
-
//
|
|
11
|
+
// 30 skills: analyze, autopilot, cancel-autopilot, cancel-ralph, cancel-ultraqa, cancel-ultrawork, deepinit,
|
|
12
12
|
// deepsearch, doctor, frontend-ui-ux, git-master, help, hud, learner, note,
|
|
13
13
|
// omc-default, omc-default-global, omc-setup, plan, planner, ralplan, ralph-init, ralph,
|
|
14
|
-
// release, research, review, orchestrate, ultraqa, ultrawork
|
|
15
|
-
expect(skills).toHaveLength(
|
|
14
|
+
// release, research, review, orchestrate, tdd, ultraqa, ultrawork
|
|
15
|
+
expect(skills).toHaveLength(30);
|
|
16
16
|
});
|
|
17
17
|
it('should return an array of BuiltinSkill objects', () => {
|
|
18
18
|
const skills = createBuiltinSkills();
|
|
@@ -84,6 +84,7 @@ describe('Builtin Skills', () => {
|
|
|
84
84
|
'omc-default-global',
|
|
85
85
|
'omc-setup',
|
|
86
86
|
'research',
|
|
87
|
+
'tdd',
|
|
87
88
|
];
|
|
88
89
|
const actualSkillNames = skills.map((s) => s.name);
|
|
89
90
|
expect(actualSkillNames).toEqual(expect.arrayContaining(expectedSkills));
|
|
@@ -120,7 +121,7 @@ describe('Builtin Skills', () => {
|
|
|
120
121
|
describe('listBuiltinSkillNames()', () => {
|
|
121
122
|
it('should return all skill names', () => {
|
|
122
123
|
const names = listBuiltinSkillNames();
|
|
123
|
-
expect(names).toHaveLength(
|
|
124
|
+
expect(names).toHaveLength(30);
|
|
124
125
|
expect(names).toContain('orchestrate');
|
|
125
126
|
expect(names).toContain('autopilot');
|
|
126
127
|
expect(names).toContain('cancel-autopilot');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.test.js","sourceRoot":"","sources":["../../src/__tests__/skills.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAErI,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,qDAAqD;IACrD,UAAU,CAAC,GAAG,EAAE;QACd,gBAAgB,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACrC,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,MAAM,MAAM,GAAG,mBAAmB,EAAE,CAAC;YACrC,6GAA6G;YAC7G,4EAA4E;YAC5E,yFAAyF;YACzF,
|
|
1
|
+
{"version":3,"file":"skills.test.js","sourceRoot":"","sources":["../../src/__tests__/skills.test.ts"],"names":[],"mappings":"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"}
|
package/docs/CLAUDE.md
CHANGED
|
@@ -330,6 +330,32 @@ When in planning/interview mode, use the `AskUserQuestion` tool for preference q
|
|
|
330
330
|
5. If REJECTED → fix issues and re-verify
|
|
331
331
|
```
|
|
332
332
|
|
|
333
|
+
### Verification-Before-Completion Protocol
|
|
334
|
+
|
|
335
|
+
**Iron Law:** NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE
|
|
336
|
+
|
|
337
|
+
Before ANY agent says "done", "fixed", or "complete":
|
|
338
|
+
|
|
339
|
+
| Step | Action |
|
|
340
|
+
|------|--------|
|
|
341
|
+
| 1 | IDENTIFY: What command proves this claim? |
|
|
342
|
+
| 2 | RUN: Execute verification command |
|
|
343
|
+
| 3 | READ: Check output - did it pass? |
|
|
344
|
+
| 4 | CLAIM: Make claim WITH evidence |
|
|
345
|
+
|
|
346
|
+
**Red Flags (agent must STOP and verify):**
|
|
347
|
+
- Using "should", "probably", "seems to"
|
|
348
|
+
- Expressing satisfaction before verification
|
|
349
|
+
- Claiming completion without fresh test/build run
|
|
350
|
+
|
|
351
|
+
**Evidence Types:**
|
|
352
|
+
| Claim | Required Evidence |
|
|
353
|
+
|-------|-------------------|
|
|
354
|
+
| "Fixed" | Test showing it passes now |
|
|
355
|
+
| "Implemented" | lsp_diagnostics clean + build pass |
|
|
356
|
+
| "Refactored" | All tests still pass |
|
|
357
|
+
| "Debugged" | Root cause identified with file:line |
|
|
358
|
+
|
|
333
359
|
### Parallelization Rules
|
|
334
360
|
|
|
335
361
|
- **2+ independent tasks** with >30 seconds work → Run in parallel
|
package/package.json
CHANGED
package/skills/analyze/SKILL.md
CHANGED
|
@@ -25,6 +25,23 @@ Conduct thorough analysis of the specified target (code, architecture, issue, bu
|
|
|
25
25
|
- Map dependencies and relationships
|
|
26
26
|
- Check for edge cases
|
|
27
27
|
|
|
28
|
+
**For Debugging/Bug Analysis (4-Phase Protocol)**
|
|
29
|
+
|
|
30
|
+
When analyzing bugs or issues, follow systematic debugging:
|
|
31
|
+
|
|
32
|
+
- **Root Cause First** - Never skip to fixes
|
|
33
|
+
- Read ALL error messages
|
|
34
|
+
- Reproduce consistently
|
|
35
|
+
- Document hypothesis before looking at code
|
|
36
|
+
|
|
37
|
+
- **Pattern Analysis** - Find working vs broken
|
|
38
|
+
- Compare with working similar code
|
|
39
|
+
- Identify the specific delta
|
|
40
|
+
|
|
41
|
+
- **3-Failure Circuit Breaker** - If stuck:
|
|
42
|
+
- After 3 failed hypotheses, question the architecture
|
|
43
|
+
- The bug may be elsewhere entirely
|
|
44
|
+
|
|
28
45
|
3. **Synthesize Findings**
|
|
29
46
|
- Root cause (for bugs)
|
|
30
47
|
- Design decisions and tradeoffs (for architecture)
|
package/skills/planner/SKILL.md
CHANGED
|
@@ -52,3 +52,55 @@ Create plan when user says: "Create the plan", "Make it into a work plan", "I'm
|
|
|
52
52
|
- 90%+ acceptance criteria are testable
|
|
53
53
|
- No vague terms without metrics
|
|
54
54
|
- All risks have mitigations
|
|
55
|
+
|
|
56
|
+
## MANDATORY: Single Question at a Time
|
|
57
|
+
|
|
58
|
+
**Core Rule:** Never ask multiple questions in one message during interview mode.
|
|
59
|
+
|
|
60
|
+
| BAD | GOOD |
|
|
61
|
+
|-----|------|
|
|
62
|
+
| "What's the scope? And the timeline? And who's the audience?" | "What's the primary scope for this feature?" |
|
|
63
|
+
| "Should it be async? What about error handling? Caching?" | "Should this operation be synchronous or asynchronous?" |
|
|
64
|
+
|
|
65
|
+
**Pattern:**
|
|
66
|
+
1. Ask ONE focused question
|
|
67
|
+
2. Wait for user response
|
|
68
|
+
3. Build next question on the answer
|
|
69
|
+
4. Repeat until requirements are clear
|
|
70
|
+
|
|
71
|
+
**Example progression:**
|
|
72
|
+
```
|
|
73
|
+
Q1: "What's the main goal?"
|
|
74
|
+
A1: "Improve performance"
|
|
75
|
+
|
|
76
|
+
Q2: "For performance, what matters more - latency or throughput?"
|
|
77
|
+
A2: "Latency"
|
|
78
|
+
|
|
79
|
+
Q3: "For latency, are we optimizing for p50 or p99?"
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## Design Option Presentation
|
|
83
|
+
|
|
84
|
+
When presenting design choices, chunk them:
|
|
85
|
+
|
|
86
|
+
**Structure:**
|
|
87
|
+
1. **Overview** (2-3 sentences)
|
|
88
|
+
2. **Option A** with trade-offs
|
|
89
|
+
3. [Wait for user reaction]
|
|
90
|
+
4. **Option B** with trade-offs
|
|
91
|
+
5. [Wait for user reaction]
|
|
92
|
+
6. **Recommendation** (only after options discussed)
|
|
93
|
+
|
|
94
|
+
**Format for each option:**
|
|
95
|
+
```
|
|
96
|
+
### Option A: [Name]
|
|
97
|
+
**Approach:** [1 sentence]
|
|
98
|
+
**Pros:** [bullets]
|
|
99
|
+
**Cons:** [bullets]
|
|
100
|
+
|
|
101
|
+
What's your reaction to this approach?
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
[Wait for response before presenting next option]
|
|
105
|
+
|
|
106
|
+
**Never dump all options at once** - this causes decision fatigue and shallow evaluation.
|
package/skills/ralph/SKILL.md
CHANGED
|
@@ -76,6 +76,32 @@ Before claiming completion, you MUST:
|
|
|
76
76
|
4. Verify tests pass (if applicable)
|
|
77
77
|
5. TODO LIST: Zero pending/in_progress tasks
|
|
78
78
|
|
|
79
|
+
## VERIFICATION BEFORE COMPLETION (IRON LAW)
|
|
80
|
+
|
|
81
|
+
**NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE**
|
|
82
|
+
|
|
83
|
+
Before outputting the completion promise:
|
|
84
|
+
|
|
85
|
+
### Steps (MANDATORY)
|
|
86
|
+
1. **IDENTIFY**: What command proves the task is complete?
|
|
87
|
+
2. **RUN**: Execute verification (test, build, lint)
|
|
88
|
+
3. **READ**: Check output - did it actually pass?
|
|
89
|
+
4. **ONLY THEN**: Proceed to Architect verification
|
|
90
|
+
|
|
91
|
+
### Red Flags (STOP and verify)
|
|
92
|
+
- Using "should", "probably", "seems to"
|
|
93
|
+
- About to output completion without fresh evidence
|
|
94
|
+
- Expressing satisfaction before verification
|
|
95
|
+
|
|
96
|
+
### Evidence Chain
|
|
97
|
+
1. Fresh test run output showing pass
|
|
98
|
+
2. Fresh build output showing success
|
|
99
|
+
3. lsp_diagnostics showing 0 errors
|
|
100
|
+
4. THEN Architect verification
|
|
101
|
+
5. THEN completion promise
|
|
102
|
+
|
|
103
|
+
**Skipping verification = Task NOT complete**
|
|
104
|
+
|
|
79
105
|
## ARCHITECT VERIFICATION (MANDATORY)
|
|
80
106
|
|
|
81
107
|
When you believe the task is complete:
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: tdd
|
|
3
|
+
description: Test-Driven Development enforcement skill - write tests first, always
|
|
4
|
+
user-invocable: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# TDD Mode
|
|
8
|
+
|
|
9
|
+
[TDD MODE ACTIVATED]
|
|
10
|
+
|
|
11
|
+
## The Iron Law
|
|
12
|
+
|
|
13
|
+
**NO PRODUCTION CODE WITHOUT A FAILING TEST FIRST**
|
|
14
|
+
|
|
15
|
+
Write code before test? DELETE IT. Start over. No exceptions.
|
|
16
|
+
|
|
17
|
+
## Red-Green-Refactor Cycle
|
|
18
|
+
|
|
19
|
+
### 1. RED: Write Failing Test
|
|
20
|
+
- Write test for the NEXT piece of functionality
|
|
21
|
+
- Run test - MUST FAIL
|
|
22
|
+
- If it passes, your test is wrong
|
|
23
|
+
|
|
24
|
+
### 2. GREEN: Minimal Implementation
|
|
25
|
+
- Write ONLY enough code to pass the test
|
|
26
|
+
- No extras. No "while I'm here."
|
|
27
|
+
- Run test - MUST PASS
|
|
28
|
+
|
|
29
|
+
### 3. REFACTOR: Clean Up
|
|
30
|
+
- Improve code quality
|
|
31
|
+
- Run tests after EVERY change
|
|
32
|
+
- Must stay green
|
|
33
|
+
|
|
34
|
+
### 4. REPEAT
|
|
35
|
+
- Next failing test
|
|
36
|
+
- Continue cycle
|
|
37
|
+
|
|
38
|
+
## Enforcement Rules
|
|
39
|
+
|
|
40
|
+
| If You See | Action |
|
|
41
|
+
|------------|--------|
|
|
42
|
+
| Code written before test | STOP. Delete code. Write test first. |
|
|
43
|
+
| Test passes on first run | Test is wrong. Fix it to fail first. |
|
|
44
|
+
| Multiple features in one cycle | STOP. One test, one feature. |
|
|
45
|
+
| Skipping refactor | Go back. Clean up before next feature. |
|
|
46
|
+
|
|
47
|
+
## Commands
|
|
48
|
+
|
|
49
|
+
Before each implementation:
|
|
50
|
+
```bash
|
|
51
|
+
npm test # Should have ONE new failure
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
After implementation:
|
|
55
|
+
```bash
|
|
56
|
+
npm test # New test should pass, all others still pass
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Output Format
|
|
60
|
+
|
|
61
|
+
When guiding TDD:
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
## TDD Cycle: [Feature Name]
|
|
65
|
+
|
|
66
|
+
### RED Phase
|
|
67
|
+
Test: [test code]
|
|
68
|
+
Expected failure: [what error you expect]
|
|
69
|
+
Actual: [run result showing failure]
|
|
70
|
+
|
|
71
|
+
### GREEN Phase
|
|
72
|
+
Implementation: [minimal code]
|
|
73
|
+
Result: [run result showing pass]
|
|
74
|
+
|
|
75
|
+
### REFACTOR Phase
|
|
76
|
+
Changes: [what was cleaned up]
|
|
77
|
+
Result: [tests still pass]
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
**Remember:** The discipline IS the value. Shortcuts destroy the benefit.
|