From swe-assistant
Use when the user is about to ask a colleague for help, is hesitating to ask (worried about being annoying or seeming inexperienced), is preparing or drafting a question, has been stuck a while and wondering whether to keep digging or ask, or is reflecting on whether they ask too much or too little. Triggers include "I have a question for X", "I don't want to interrupt", "how do I ask without sounding dumb", "I've been stuck for hours", "should I ask or keep trying", "how should I frame this question", "I feel like I'm always asking my teammate things", or asking how to balance independence with getting help. Walks through the asking-for-help framework from The Missing Readme (Chapter 2) — do your research first, timebox before asking, show your work when you do, respect others' focus, prefer multicast and async communication, batch synchronous requests. Goal — be neither a drain (asks too much, never tries) nor a martyr (never asks, burns hours alone). Do not trigger when the user is asking the AI assistant directly or asking how to prompt AI tools — those have different dynamics, covered elsewhere.
How this skill is triggered — by the user, by Claude, or both
Slash command
/swe-assistant:asking-for-helpThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
*The Missing Readme*, Chapter 2, "Getting to Conscious Competence" (Section B: Asking Questions). This is the partner skill to [`learning-toolkit`](../learning-toolkit/SKILL.md) — together they cover the two halves of the chapter's goal: build the practice of learning on your own, AND get help well when you do need it.
The Missing Readme, Chapter 2, "Getting to Conscious Competence" (Section B: Asking Questions). This is the partner skill to learning-toolkit — together they cover the two halves of the chapter's goal: build the practice of learning on your own, AND get help well when you do need it.
Knowing how to ask for help well is one of the highest-leverage skills in early-career engineering — and one of the least often taught. The skill fires when the user is in (or about to enter) a moment of asking, or when they're reflecting on whether they're getting the balance right.
The goal is to be neither a drain nor a martyr.
The middle is: try first, timebox the trying, then ask well, with respect for others' focus. This skill is the operating manual for that middle.
This skill exists because it accelerates the climb from Stage 2 (conscious incompetence) to Stage 3 (conscious competence). When you're stuck, you're in Stage 2 — you can see the gap. A good question moves you toward Stage 3 in one conversation; a bad question (or no question) keeps you in Stage 2 for hours or days. See learning-toolkit for the full four-stages framework.
A sentence or two. Surface the mindset (drain vs martyr) if they sound stuck on either failure mode.
Useful framings:
For each case, the most useful pieces of the framework are different. Don't dump everything — pick 2–4 sections.
Use the template under "Show Your Work" below. Walk them through it section by section. Often the act of writing the question well solves the question (that's rubber ducking — see callout).
One or two sentences. Confirm the move, offer to look at the question draft if they want a second pair of eyes.
A quick checklist before reaching out:
Keep notes on where you looked and what you tried. When you do ask, you can show your work — and it makes the ask far better.
Set the limit before you begin researching. Otherwise you'll either ask too quickly (no research) or burn the afternoon (no asking).
Soft heuristics — adjust for your context:
Work backward from urgency. When does the answer actually need to be known? Leave enough time for: writing the question well, the responder seeing it, them responding, and you acting on what you learn.
Stopping when the timebox is up is not failure — it's data. Hitting the limit means: ask now.
The book's two examples make the difference visible.
Bad question (no context, no work shown):
"Hey Alice, any idea why
testKeyValuesis failing inTestKVStore? It really slows down our builds to rerun this. Thanks"
Alice has nothing to go on. She has to ask you four follow-up questions before she can think about the actual problem. That's an interruption with no payoff.
Good question (context, work shown, current hypothesis, clear ask):
"Hey Alice, I'm having trouble figuring out why
testKeyValuesis failing inTestKVStore(in theDistKVrepo). Shaun pointed me your way.The test fails for me about every third execution; it seems random. I tried running it in isolation and it's still failing, so I don't think it's an interaction between tests. Shaun ran the test in a loop on his machine but was unable to reproduce it. I don't see anything obvious in the source code to explain the failure. It seems like some kind of race condition. Any thoughts?
There's no terrible urgency around this — I'm told it's unlikely to be affecting production. Still, the flapping test costs us 20–30 minutes every time it happens, so I'd love to figure out how to fix it. I've attached logs that show failures and all of my current environment settings, just in case.
Thanks."
Alice can engage immediately. She has context, the work you've already done, your hypothesis, the urgency level, and supporting data.
The template that produces this kind of question:
1. Context (1–2 sentences):
What I'm trying to do. Why this matters.
2. What I've tried (with results):
- [thing I tried] → [what happened]
- [thing I tried] → [what happened]
- [where I looked] → [what I found / didn't find]
3. My current hypothesis (even if uncertain):
"It seems like X, but I'm not sure because Y."
4. What I need from you:
A pointer? A sanity check? A fix? A review of my approach?
5. Urgency / blast radius:
How time-sensitive is this? Who else is affected?
6. (Optional) Attached: logs, screenshots, env details, links to the relevant
code or PR.
Length isn't the goal — signal is. A four-line question with all five elements beats a four-paragraph wall of text that buries the ask.
Respect focus. Interruption is expensive — most engineers need 15–25 minutes to fully re-enter flow after being pulled out.
Universal signals to look for and respect:
The exception is genuine urgency — prod is down, customer-facing issue, a real deadline. For those, see incident-response. Outside of true urgency, assume async unless you have a reason for sync.
Instead of DM-ing one person and asking for an answer now, post in a shared channel and let the answer arrive whenever someone has it.
Why this is almost always better:
How to do it well:
#eng-payments, not #general).When sync DM is right: sensitive topics, urgent incidents (use the incident channel, not a DM), or genuinely personal conversations.
For non-urgent questions, queue them up for a scheduled time rather than asking each one as it arises.
A side benefit: by the time the meeting arrives, you'll often have solved half the questions yourself. The list itself is a forcing function for trying first.
A surprisingly effective technique attributed to The Pragmatic Programmer (Hunt & Thomas): when you're stuck, explain the problem out loud — to a rubber duck on your desk, a notebook, a colleague who isn't listening, or the AI.
The act of articulating the problem in full sentences — "Okay, so I'm trying to do X, and I expected Y, but I'm getting Z because…" — forces your brain to clarify what you actually know and don't know. Half the time, the answer arrives mid-sentence, before you finish explaining.
Two practical ways to rubber duck:
On using the AI as a rubber duck: this is one of the legitimate ways to use AI in service of learning. Tell it what you're trying to do, what you've tried, and what you think is happening. The AI's response is sometimes useful, but the real value is that explaining to a "thoughtful listener" forces you to clarify your own thinking. See learning-toolkit's AI callout for more on this distinction.
learning-toolkit.incident-response.growth-self-check.Surfaced as a reference but not yet folded in — see READING-LIST.md for the full entry.
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
npx claudepluginhub tmerrien/swe-assistant --plugin swe-assistant