wtf
Skill2 starsChanged 7 months agoMITView on GitHub
Re-explain what the agent is currently asking or reporting to a user who has lost the thread, then drill into the parts they do not understand through a question loop. Use when the user invokes `/wtf`, says they do not follow, asks "what are you on about" or "what does this mean", or otherwise signals they lack the context to answer a question or act on findings.
19 other projects use a version of this.
Adopted by
Most recently taken up by
- MMACABRE/SKILLStheir own version, first seen Nov 8, 2026
- vic-lsh/agent-skillstheir own version, first seen Nov 8, 2026
- donnieprakoso/worktheflowtheir own version, first seen Nov 8, 2026
- ambroselittle/agent-skillstheir own version, first seen Oct 30, 2026
- damacus/agent-skillstheir own version, first seen Oct 29, 2026
- conjurer-rich/skillstheir own version, first seen Oct 25, 2026
Used with
Projects with it also use ce-skill-work, ce-explain and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
kieranklaassenSkillce-skill-work
Applies this repository's skill-authoring standard as a procedure. Use for any change to, or judgment about, a file under skills/** — a SKILL.md, a reference, a persona prompt, a bundled script's instructions: creating a skill, editing one, reviewing a skill change, or acting on review feedback (human or bot) about one. Not for src/, tests/, or scripts/ code.
Also in 5 projects that use this
kieranklaassenSkillce-explain
Explain how and why something has its current shape, or what happened over a window of work, grounded in evidence. Use when the user asks for an explanation. Use ce-pov for a judgment or recommendation.
Also in 5 projects that use this
PdbjorkSkillce-commit
Create a git commit with a clear, value-communication message. Use when the user asks to commit/save staged or unstaged changes with a repo-appropriate, value-communicating message.
Also in 5 projects that use this
PdbjorkSkillce-simplify-code
Simplify recently changed code for clarity, reuse, quality, and efficiency while preserving behavior. Use for tidy/refactor passes; use ce-debug for bugs.
Also in 5 projects that use this
- +4 more from kieranklaassen
- +4 more from Pdbjork
Other versions19 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 19
- kieranklaassen/compound-engineering-plugin★ 26ksame name
- EveryInc/every-marketplace★ 26ksame name
- EveryInc/compounding-engineering-plugin★ 26ksame name
- EveryInc/compound-engineering-plugin★ 26ksame name
- noobnooc/agent★ 1.4ksame name
- aspi6246/Claude-Code-Skills-for-Academics★ 153same name
- Yassimba/loom★ 9same name
- mgiovani/cc-arsenal★ 8same name
- donnieprakoso/worktheflow★ 3same name
- damacus/agent-skills★ 2same name
9 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository23 other files it gives its agents.
- .claude/CLAUDE.mdCLAUDE.md
- .copilot/copilot-instructions.mdCopilot instructions
- ahaSkill
- explain-prSkill
- fetch-planSkill
- generate-pr-descriptionSkill
- grill-meSkill
- improve-a-planSkill
- improve-codebaseSkill
- persistSkill
- planning-modeSkill
- planningSkill
- research-modeSkill
- review-prSkill
- rust-bevy-standardsSkill
- rust-bevy-test-conventionsSkill
- rust-standardsSkill
- tddSkill
- unslopSkill
- update-agentsSkill
- update-planSkill
- update-skillsSkill
- write-a-skillSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
18 rules. 0 are common, 15 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 18 edited versions we read keep these.
15
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 11
Treat the user as if they last looked at this repository, ticket or document years ago and forgot most of it.
- Distinctive: line 18
Do not ask the user what they want explained.
- Distinctive: line 27
The question: Ask which aspect they want more detail on (see Asking).
- Distinctive: line 42
When the user picks an aspect:
- Very specific: line 52
Always include a way back out: Zoom out (one level up) and Back to overview (Step 1).
- Distinctive: line 53
Ask (see Asking) and repeat.
- Very specific: line 59
When the user picks I'm on the same page now or says so in their own words:
- Distinctive: line 61
If the original subject was a question, restate the question in one or two sentences, now in terms the user has just confirmed they …
- Distinctive: line 62
If it was a report, restate the finding and the next step you are proposing in one or two sentences.
- Distinctive: line 64
Do not restart the loop. Do not summarise the whole conversation.
- Very specific: line 68
Claude Code: use the AskUserQuestion tool.
- Distinctive: line 78
No assumptions about what the user remembers.
- Distinctive: line 83
Prefer a visual over a paragraph wherever the shape of the problem can be drawn.
- Distinctive: line 84
Every message fits on one A4 page.
- Distinctive: line 88
Never exceed the one-page limit in a single message.
- Distinctive: line 89
Never end a message without a question until the user has said they are on the same page.
- Distinctive: line 90
Never take action, change code or continue the original task while this skill is active.
- Distinctive: line 91
Never blame the user for lacking context.
“Common” is measured: kept by at least 6 in 10 of the 18 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
WTF
The user has many workstreams. They have come back to this one cold and no longer know what it is about. Your last message (a question you need answered, or findings you presented) made no sense to them. Rebuild their context from the top and then let them steer into whatever is still unclear.
Treat the user as if they last looked at this repository, ticket or document years ago and forgot most of it. They are intelligent and know the product. They do not remember the code, the names or the history.
Step 0: Pick the subject
- No argument: the subject is your most recent substantive message. If that message was a question, the subject is the decision you are asking for. If it was a report, the subject is the finding.
- Argument given: the subject is that term, quoted message or topic. Still anchor it in the current workstream.
Do not ask the user what they want explained. That is what they are asking you.
Step 1: Overview
One message, hard limit of roughly one A4 page (about 45 lines or 400 words, visuals included). Four parts, in order:
- Recap paragraph. Two to four sentences. What you were tasked with, by whom or from where (ticket, PR, message), what the goal is and roughly where you are now. Example: "I was tasked to investigate ticket ITS-123, which reports that some users are logged out after a few minutes. I traced the token refresh flow and found the cause. I now need you to decide how to fix it."
- The point. Two to five sentences in plain language stating what you are trying to communicate. For a question: what the decision is, why it is yours to make, and what happens if it is not made. For findings: what is wrong, where, and what it means for the user.
- The aspects. Break the subject into three to six constituent parts. One line each, in the order a newcomer needs them. Each line names the aspect using the term the codebase or ticket uses, followed by a plain-language gloss. Present them as a visual where one fits: a tree, a flow with box-drawing characters, or a small table. Number them so the user can refer to them.
- The question. Ask which aspect they want more detail on (see Asking).
Example of the aspects part:
The refresh flow (why users get logged out):
Browser ──► 1. Access token ──► 2. Refresh endpoint ──► 3. Session store ──► 4. Expiry rule
short-lived key asks for a new key where sessions decides when a
that proves who when the old one live on the session is too
you are runs out server (Redis) old to renewStep 2: Drill-down loop
When the user picks an aspect:
- Print a breadcrumb line so they always know where they are, for example
ITS-123 › Refresh endpoint › Why it fails. - Explain that aspect in plain language, within the same one-page limit. Break it into its own sub-aspects (two to five) using the same shape as Step 1 part 3.
- Offer what you can go deeper on for this aspect. Typical options, pick the ones that apply:
- how it works
- why it matters for the current question or finding
- where it lives in the code, with paths
- what happens under each choice you are asking them to make
- the history, if you know it (when and why it was introduced)
- Always include a way back out:
Zoom out(one level up) andBack to overview(Step 1). IncludeI'm on the same page nowat every level. - Ask (see Asking) and repeat.
The free-text answer is part of the design. When the user types something that matches no option, treat it as a new subject at the current level. Explain it with the same shape and re-offer the loop. Never say the input did not match.
Step 3: Exit
When the user picks I'm on the same page now or says so in their own words:
- If the original subject was a question, restate the question in one or two sentences, now in terms the user has just confirmed they understand, and wait for the answer.
- If it was a report, restate the finding and the next step you are proposing in one or two sentences.
Do not restart the loop. Do not summarise the whole conversation.
Asking
- Claude Code: use the
AskUserQuestiontool. One question, one option per aspect, plus the navigation options from Step 2 part 4. The tool adds a free-text option itself. Put the one-line gloss in each option's description. - Other agents: if you have a built-in tool for asking the user a question with selectable options, use it the same way. Make sure a free-text answer is possible; if the tool has no free-text option of its own, add one labelled
Something elseand ask for detail when it is chosen. Otherwise print a numbered list, end withOr type anything else you want explained., and wait for a reply.
Language rules
- Explain every technical term at first use, in a bracket or short clause, unless it is obvious without context (like "latency" of an API request). When in doubt, explain.
- Use the names the codebase, ticket or document uses. Grep to confirm a name rather than guessing. Never coin a term and then rely on it. If you must introduce a name, define it in the sentence that introduces it and keep using that exact name.
- Give a location the first time you name a file, class, endpoint, flag or table, so the user can open it.
- Expand acronyms at first use.
- One idea per sentence. Analogies are welcome when they fit and are dropped once the real term is understood.
- No assumptions about what the user remembers. If a fact is needed, state it.
Visual rules
- Output renders in a terminal. Use box-drawing flows, indented trees, tables and numbered lists. No Mermaid, no images, no artifacts unless the user asks for one.
- Prefer a visual over a paragraph wherever the shape of the problem can be drawn. Keep each visual under about 15 lines.
- Every message fits on one A4 page. Cut detail rather than exceeding it. Detail is what the next loop iteration is for.
Critical rules
- Never exceed the one-page limit in a single message.
- Never end a message without a question until the user has said they are on the same page.
- Never take action, change code or continue the original task while this skill is active. Only explain.
- Never blame the user for lacking context. No "as I mentioned earlier".
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

