Turns open-ended requests into things to think WITH instead of answers to accept. Audits the hidden assumptions inside a topic, inverts them into sharp "what if" provocations, branches each one outward, and delivers a fully-expanded mind map image plus the written wonderings. Fire this when the person signals they want to open up a space and think alongside you — "wonder about X", "what are the weird angles on X", "help me think about what this could be", "I want to explore, not decide yet" — or when they invoke /wonder or /wonderpill. Do NOT fire when the same topic is attached to a request for concrete, usable, or decided output: a named deliverable, a count ("give me 5 names"), a deadline ("ideas I can ship this week"), or a "which / what should I pick" question — those want straight answers, not a wonder pill. When it is genuinely unclear which they want, this skill opens by asking one line rather than branching. Not for factual lookups or executing a plan already chosen.
npx skills add https://github.com/ara-mkr/Wonder-Pill --skill wonder-pill
Ordinary brainstorming gets treated like a search query: find the nearest well-trodden answers, rank them, hand them over. That produces a list the person picks from, which quietly makes them the *chooser* instead of the *thinker*, and anchors them to whatever you happened to say first.
This skill produces something different: provocations to think with. Questioned assumptions, sharp what-ifs, and branches that keep going — handed back as a map of the thought-space rather than a recommendation. The person stays the thinker. Nothing converges unless they ask it to.
The thing that kills this skill is "generic wild" — what-ifs that *sound* expansive but have no hook to pull on. "What if plants were different?" is worse than useless: it hands the work back without giving anything to push against. "What if plants could hear?" is alive, because you can immediately feel what would have to change.
Everything below exists to force specificity. The central mechanism:
> Never invent a what-if freely. Always derive it by inverting a named assumption.
That traceability is the whole trick. If you can't say which assumption a what-if is pushing against, it isn't ready.
This skill is easy to trigger by accident on someone who just wants ideas they can use. Check first:
ask_user_input_v0 (tappable): *"Want a wonder pill — questioned assumptions and what-ifs to think with — or a straight list of ideas you can act on?"* Only start branching if they pick the wonder pill./wonder, /wonderpill, or "wonder about X" skips this check. They asked for it by name; go straight to Stage 0.Ask three questions, no more, before any thinking. These aren't generic clarification — the quality of a what-if is almost entirely determined by how far it's allowed to drift from the person's reality, and that's unguessable. "What if plants could hear" is great for a curious kid and useless for someone submitting a materials list in three days.
Use ask_user_input_v0 (tappable options are much easier than typing):
Skip intake entirely if the request already answers all three. A person who writes "I have two weeks, $30, and it has to fit on a poster board" has told you everything; asking again is annoying and wastes their patience.
If Stage 0 gave permission, take one cheap pass to find a genuinely odd, specific fact or unresolved tension in the topic. Search if that helps. This becomes the session's opening spark and sets the tone — it's the most alive entry point because it's rooted in something real rather than an abstract inversion.
Two rules:
A real oddity is specific and slightly uncomfortable — a thing that shouldn't work but does, a measurement nobody can explain, two accepted facts that don't quite fit together. Not a trivia factoid.
Surface 3–5 load-bearing assumptions buried in the request. Load-bearing means: if it stopped being true, the shape of the whole thing would change.
For "science fair project," the buried assumptions might be:
Rules that keep this honest:
| Assumption | Weak what-if (generic wild) | Strong what-if (has a hook) |
|---|---|---|
| A project has to be finished to be judged | What if it weren't finished? | What if the project were a *thing still running* — measurements arriving during the judging, no known result yet? |
| Plants don't perceive stimuli like animals do | What if plants were different? | What if plants could hear, and had been responding to sound the whole time? |
| The experiment happens where you are | What if location changed? | What if the same experiment ran in 40 kitchens at once and the *disagreement between them* was the data? |
The pattern: strong what-ifs name a specific mechanism or consequence, so there's something to grab. Weak ones just negate. The strong-column phrasing *is* the map handle — write the what-if that way the first time and you don't have to reword it later.
Then pair each what-if with a one-clause pull: what you'd push on, what would have to change, why it's alive. "…and every acoustics choice in the room becomes a growing decision." The handle says what the what-if is; the pull says where the thread has tension. Both ride on the node.
Each what-if from Stage 2 spawns 2–3 follow-on what-ifs — "and if that's true, then…". This is where the *wondering* quality comes from; a single question that stops after one hop reads like a prompt, not thinking.
Each tendril gets the same two parts as a branch: a handle (a full sentence that could stand alone on the map, not a fragment) and a one-clause pull. "seawater as a curing agent" is not a tendril; "what if seawater cured the concrete instead of weakening it, the way Roman harbour concrete did" is.
Generate tendrils by running the branch through these dimensions, rather than freewheeling (freewheeled tendrils feel arbitrary):
Vary which dimensions you use across branches. Running all five branches through "scale" makes the output read like a template, which is its own kind of death.
Let depth be uneven. Some branches deserve one hop; some deserve four. If a tendril opens a real question, follow it — tendril to sub-wondering to sub-sub-wondering. A map where every branch is exactly three deep is a map that stopped thinking on schedule rather than when the thread ran out. Uneven depth is evidence of actual attention.
Keep the scraps. When a what-if gets generated and then discarded, don't delete it — log three separate things about it, not one blended line:
Plausibility and generativity are different axes, and only one of them may kill a what-if. A what-if may be scrapped for failing *generativity* — it's a genuine dead end, nothing more to ask once you're standing in it. It may never be scrapped for failing *plausibility* — sounding unlikely, weird, or hard to build is not a valid reason on its own. Implausible-but-generative stays every time; plausible-and-flat can still die. Say so explicitly in the judgment-call line: name that this was checked against "does it open anything further," not "does it sound reasonable."
This distinction has to be written down and applied deliberately because the kill decision happens in the same breath as the generation — there's no outside check on it, which is exactly the moment a bias toward safe-sounding output would sneak back in unannounced.
Worked example: "What if the bridge floated?" — derivation: inverting the assumption that a bridge has to be a fixed structure. flaw: trades a 500-year erosion problem for a 5-year mooring-maintenance problem. judgment: scrapped for generativity, not plausibility — floating is perfectly buildable, but the thread just swaps one bounded maintenance problem for another and doesn't open a new question past that trade.
Scrapped threads live detached at the edge of the map, not attached to any branch — and the person can still see all three fields and disagree with the call.
One line per branch naming where the real difficulty or interest is buried. Not an answer. Not a feasibility verdict. It tells the person where to push if they chase that thread.
Shape: *"This only gets interesting if the hard part is actually X, not Y."*
Also tag each branch tethered or feral:
Never prune the feral ones. They're not failures of the process, they're the point of allowing the process to run loose. The tags feed the map's styling in Stage 5.
Three parts, in this order. Read references/mindmap.md before rendering the map — clutter is the real risk and that file has the layout spec.
An explorable HTML map rendered inline, fully expanded from the start: drag to pan, buttons to zoom, click any node to read its gut-check. Nothing hidden behind a reveal — the whole thought-space exists at once and the person moves around inside it.
It must not look like a tidy tree radiating uniformly from a center. Real thinking isn't uniform, and a map that pretends otherwise hides the information the person actually wants. So:
Render it with the Visualizer (call visualize:read_me with the diagram module first, silently — never narrate loading it). Read references/mindmap.md for the build spec; it is written against the Visualizer's real constraints, which are stricter than they look. When someone wants to record or present the map, also write a standalone .html copy to the outputs directory and present it.
Short. Names the throughlines, not the nodes: which tension kept recurring, which direction turned out most interesting, where it went genuinely feral. This orients the person *before* they read the map — it is not a synopsis of it. Listing the nodes back in prose is wasted space; they're right there in the image.
The readable linear companion, for anyone who'd rather read than scan. Per branch, exactly this spine:
### [Short branch title]
**Premise:** [the assumption, stated plainly]
**What if:** [the sharp provocation — the full handle sentence]
- **[tendril handle]** — [the pull: what it opens or what you'd push on]
- **[tendril handle]** — [the pull]
- **[tendril handle]** — [the pull]
**Gut-check:** [where the real difficulty or interest hides]
Do not converge. Close with an invitation only — something like *"if one of these is itching at you, say which and I'll go deeper on just that thread."*
The strongest temptation in this whole skill is to quietly turn back into a recommendation engine by the last paragraph — ranking the branches, picking a favorite, suggesting which is most practical. That undercuts the entire premise. The person asked for a space to think in, not a verdict. If they want convergence they'll say so, and then you can help them land one.
Re-run Stages 2–4 on that single branch. The branch becomes the new topic; its tendrils become the new assumptions to audit. Skip intake (already calibrated) and skip the oddity hunt (already spent). Still don't converge.
Take ara-mkr/wonder-pill from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.