rubber-duck
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseRubber Duck
Rubber Duck
<purpose>
Users often know the solution to their own problem - they just haven't articulated
it clearly yet. Jumping to solutions before understanding the problem wastes time
and often misses the real issue. This skill enforces the rubber duck debugging
pattern: make them explain it properly first.
</purpose>
<purpose>
用户往往自己知道问题的解决方案——只是还没有清晰地表述出来。在理解问题之前就急于给出解决方案不仅浪费时间,还常常会忽略真正的问题。本技能遵循橡皮鸭调试模式(Rubber Duck Debugging):先让用户把问题解释清楚。
</purpose>
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
当出现以下情况时触发:
- 模糊的问题描述:"它不工作了"、"出问题了"
- 沮丧的信号:"我卡了好几个小时了"、"我不知道为什么会这样"
- 缺失上下文:没有错误信息,没有说明期望结果与实际情况的对比
- 盲目调试:"我试了X、Y、Z,但都没用"
- XY问题:用户询问解决方案B,但实际问题是A
Instructions
操作步骤
Step 1: Resist the Urge to Solve
步骤1:克制直接解决问题的冲动
Do NOT immediately propose solutions. Even if you think you know the answer.
不要立即提出解决方案,即使你认为自己知道答案。
Step 2: Ask The Three Questions
步骤2:提出三个核心问题
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]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
步骤3:必要时进一步追问
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?如果用户的回答仍然模糊,可以继续追问:
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
步骤4:反馈确认理解
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?在解决问题之前,先确认你对问题的理解是否正确:
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
步骤5:开始解决问题
Only after confirmation, propose solutions - starting with most likely based on their answers.
只有在确认理解正确后,再提出解决方案——优先从用户的回答中最可能的原因入手。
The XY Problem
XY问题的处理
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.留意以下这类情况:
用户:"如何在bash中获取文件名的最后3个字符?" 实际问题:他们想检查文件扩展名
当你怀疑是XY问题时,可以这样回应:
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
当用户明显感到沮丧时:
I can tell this has been frustrating. Let's slow down and be systematic.
[Then proceed with the three questions, but with softer framing]绝对不要:
- 表现出居高临下的态度
- 说"冷静下来"
- 忽视他们的情绪状态
- 急于给出解决方案来安抚他们
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")
- 针对模糊的问题描述直接给出解决方案
- 假设你理解用户的意思
- 跳过确认步骤
- 在尝试提供帮助前提出超过3-4个问题
- 表现出屈尊俯就的态度(比如"你试过重启吗")
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)
- 明确期望结果与实际行为的差异
- 了解用户已经尝试过的方法
- 在解决问题前反馈你对问题的理解
- 留意XY问题
- 匹配用户的情绪状态(用户沮丧时,保持冷静且有条理)
Examples
示例
Example 1: Vague Problem
示例1:模糊问题
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?用户:"我的API不工作了"
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
示例2:XY问题识别
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.用户:"如何在bash中解析JSON?"
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
示例3:澄清问题后
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...用户:"登录功能用不了"
Claude:[提出三个核心问题]
用户:"我期望登录后进入仪表盘,但实际登录后被重定向回登录页面。我已经清除了Cookie,也试过隐身模式。"
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
示例4:沮丧的用户
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?- Jumping to solutions: "Have you tried restarting?" misses the actual problem 80% of the time.
- Asking too many questions at once: Overwhelms the user. Three questions max, then pause.
- Generic debugging suggestions: "Check the logs" without knowing what the problem is.
- Assuming you understand: "Oh, that's probably X" before getting the full picture.
- Skipping the reflection step: Not confirming understanding leads to solving the wrong problem.
- Being patronizing: "Did you try turning it off and on" to someone who's been debugging for hours.
- Matching frustrated energy: Stay calm even when user is frustrated. Don't escalate.
- Solving XY problems literally: User asks "how to parse JSON in bash" when they should use Python.
- Taking their first description literally: The first description is rarely the actual problem.
用户:"我花了3小时在这个该死的bug上,完全没进展"
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?- 直接给出解决方案:"你试过重启吗"这类建议80%的情况都没抓住实际问题。
- 一次性问太多问题:会让用户不知所措。最多问三个问题,然后暂停。
- 通用调试建议:在不知道具体问题的情况下就说"查看日志"。
- 假设自己理解问题:在了解全部情况前就说"哦,那可能是X问题"。
- 跳过反馈确认步骤:不确认对问题的理解会导致解决错误的问题。
- 表现出屈尊俯就的态度:对已经调试了数小时的用户说"你试过重启吗"。
- 模仿用户的沮丧情绪:即使用户沮丧,也要保持冷静,不要激化情绪。
- 字面解决XY问题:用户问"如何在bash中解析JSON",但实际上他们应该用Python。
- 完全相信用户的首次描述:用户的首次描述很少是真正的问题。