From me
Structured rubber-duck debugging — forces the user to articulate the problem properly before any solution is proposed. On-demand only — triggers when the user types `/me:rubber-duck`, says "help me think through X", "I'm stuck on X", or "let me rubber-duck this". Asks 3 clarifying questions ONE AT A TIME, then asks the user for their own theory BEFORE Claude offers one. Do NOT propose fixes until the user has answered all questions and stated their theory.
How this skill is triggered — by the user, by Claude, or both
Slash command
/me:rubber-duckThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Forces the user to articulate a problem fully before jumping to solutions. Most bugs get solved at question 2 because stating the problem out loud surfaces the answer.
Forces the user to articulate a problem fully before jumping to solutions. Most bugs get solved at question 2 because stating the problem out loud surfaces the answer.
/me:rubber-duck # asks user to describe the problem
/me:rubber-duck <one-line problem> # uses the provided description as the starting point
If the user didn't provide a description, ask:
What's the problem in one sentence?
Wait for the answer. If the answer is vague ("it doesn't work", "something's broken"), ask ONE targeted clarification:
One sentence — what is it supposed to do, and what is it doing instead?
Do not proceed until you have a one-sentence problem statement.
Ask:
Question 1 of 3. What did you expect to happen, and what actually happened? Be specific — exact error message, exact output, or exact behavior.
Wait. If the answer is vague ("it fails"), push back ONCE:
Specifically — is it an exception, a wrong return value, a hang, a crash, or silent wrong output?
Ask:
Question 2 of 3. What changed right before this started? Your code, a dependency, config, data, environment, the moon?
Wait. If the user says "nothing changed" — push back ONCE:
Nothing on your machine, nothing deployed, no new input data, no dependency auto-update, no OS patch? Check
git logand recently-modified config files if unsure.
Ask:
Question 3 of 3. Does it fail every time, or only sometimes? If sometimes — what's the pattern? (specific input, specific user, specific time, specific order of operations?)
Wait for the answer.
Ask:
Before I look at anything — based on your own answers, what's your current best theory for why this is happening?
Wait for the user's theory. If they say "I don't know":
Take a guess. Even a bad theory narrows the search.
Do not proceed until the user states at least one theory.
Now, and only now, Claude can:
Output format for Step 6:
**Your theory:** <restated in one line>
**Evidence for it:** <from code/logs/their answers>
**Evidence against it:** <if any>
**Alternative theory (if warranted):** <...>
**Next diagnostic:** <one concrete action — run this command, add this log line, check this file>
No fixes yet. The diagnostic's purpose is to isolate the cause. After the user runs the diagnostic and reports back, then propose a fix.
If at any point the user says "just tell me the answer" or "skip the questions":
If the user invokes /me:rubber-duck on something that isn't a bug, say so once:
This looks like a task, not a bug — skipping the duck protocol. Want me to just do it?
Most stuck-debugging-sessions resolve during articulation, not during solution. The three questions (expected vs actual, what changed, scope) cover 90% of bugs without reading a line of code. Forcing the user to state a theory before Claude does prevents the common failure mode where Claude's guess anchors the user on the wrong path.
npx claudepluginhub panospro/protops-skills --plugin ship-readyCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.