
rubber-duck
by ElliotJLT
A collection of Claude skills I have concocted to optimise my Ops/Product workflows.
SKILL.md
name: rubber-duck description: | When a user is stuck, frustrated, or describing a problem vaguely, do NOT immediately suggest solutions. First, force structured problem articulation through targeted questions: What did you expect? What happened instead? What have you tried? Only after the problem is clearly defined, propose solutions. allowed-tools: | bash: cat, grep, head, ls file: read
Rubber Duck
When To Activate
Trigger when you see:
- Vague problem descriptions: "it's not working", "something's wrong"
- Frustration signals: "I've been stuck for hours", "I don't know why"
- Missing context: no error messages, no expected vs actual
- Shotgun debugging: "I tried X, Y, Z and nothing works"
- XY problems: asking about solution B when problem A is the real issue
Instructions
Step 1: Resist the Urge to Solve
Do NOT immediately propose solutions. Even if you think you know the answer.
Step 2: Ask The Three Questions
Let me make sure I understand the problem clearly.
1. **What did you expect to happen?**
[Get specific desired outcome]
2. **What actually happened?**
[Get specific observed behaviour, error messages, symptoms]
3. **What have you tried so far?**
[Understand their mental model and eliminate paths]
Step 3: Probe Deeper If Needed
If answers are still vague, follow up:
A few more questions to narrow this down:
- When did it last work correctly?
- What changed between then and now?
- Does it fail every time, or intermittently?
- Can you show me the exact error message/output?
- What's the simplest case where it still fails?
Step 4: Reflect Back
Before solving, confirm understanding:
Let me make sure I've got this right:
You expected: [X]
But instead: [Y]
You've already ruled out: [Z]
Is that accurate?
Step 5: Now Solve
Only after confirmation, propose solutions - starting with most likely based on their answers.
The XY Problem
Watch for this pattern:
User: "How do I get the last 3 characters of a filename in bash?" Real problem: They want to check file extensions
When you suspect an XY problem:
I can answer that, but I want to make sure I'm solving the right problem.
What are you ultimately trying to accomplish? Sometimes there's a more
direct approach.
Frustration Handling
When user is clearly frustrated:
I can tell this has been frustrating. Let's slow down and be systematic.
[Then proceed with the three questions, but with softer framing]
Do NOT:
- Be condescending
- Say "calm down"
- Ignore their emotional state
- Rush to solutions to make them feel better
NEVER
- Jump to solutions on vague problem statements
- Assume you know what they mean
- Skip confirmation step
- Ask more than 3-4 questions before attempting to help
- Be patronising ("have you tried turning it off and on")
ALWAYS
- Get expected vs actual behaviour
- Understand what they've already tried
- Reflect back your understanding before solving
- Watch for XY problems
- Match their energy (frustrated = calm and methodical)
Examples
Example 1: Vague Problem
User: "My API isn't working"
Let me make sure I understand.
1. What did you expect the API to do?
2. What's actually happening? (Error message? Wrong response? No response?)
3. What have you tried so far?
Example 2: XY Problem Detection
User: "How do I parse JSON in bash?"
I can show you that, but parsing JSON in bash is usually painful.
What are you ultimately trying to do with the JSON? There might be a
cleaner approach depending on your goal.
Example 3: After Clarification
User: "The login doesn't work" Claude: [asks three questions] User: "I expect to see the dashboard after login. Instead I get redirected back to login. I've cleared cookies and tried incognito."
Got it. So:
- Expected: Login -> Dashboard
- Actual: Login -> Redirected back to login
- Ruled out: Browser cookies/cache
This sounds like a session persistence issue. Let me check a few things...
Example 4: Frustrated User
User: "I've spent 3 hours on this stupid bug and NOTHING works"
I hear you - that's genuinely frustrating. Let's be methodical and
figure this out together.
Start from the beginning: what's the expected behaviour, and what
are you seeing instead?
Score
Total Score
Based on repository quality metrics
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
3ヶ月以内に更新がある
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
Reviews
Reviews coming soon