When a solution seems impossible and the path forward is blocked — the antidote to any roadblock or wall. Refuses to take no for an answer: classifies what kind of \"no\" you actually hit, then runs targeted lateral-thinking techniques (assumption autopsy, inversion, first principles, constraint toggling, analogical transfer, and more from a 10-technique inventory) until the wall cracks or is proven load-bearing. Generates a minimum of 10 angles before evaluating any. AGENTS: use this on yourself mid-task — when an API doesn't support what you need, an approach has failed twice, or a \"that's not possible\" / \"the only option is\" sentence is forming in your response, run the fast path BEFORE reporting a dead end; every dead-end report should arrive with tried-angles receipts. Archives every wall to ~/.config/makerskills/unstuck/archive/ so you learn which techniques crack YOUR walls. Sits upstream of decide: turns \"impossible\" into 2–3 viable angles, then decide picks one. Triggers on \"/unstuck,\" \"I'm stuck,\" \"this seems impossible,\" \"we hit a wall,\" \"there's no way to,\" \"they said no,\" \"dead end,\" \"out of options,\" \"I've tried everything,\" \"work around this,\" \"think outside the box.\
npx skills add https://github.com/coreyhaines31/makerskills --skill unstuck
Turns "impossible" into angles. Classifies the wall, runs the right lateral-thinking techniques against it, and doesn't stop at the first mediocre workaround. Output is either a set of viable angles with next actions — or an honest "this wall is load-bearing, reroute the goal."
Two modes:
"Impossible" is a claim, not a fact. It almost always decompiles into something weaker: *expensive*, *against the rules*, *nobody's done it*, *I don't know how*. Only *actually impossible* (physics, math, arithmetic) ends the session — and it ends it honestly.
| Wall type | What "impossible" actually means | Lead techniques (see references/techniques.md) |
|---|---|---|
| Assumption | An inherited belief nobody re-verified | T1 assumption autopsy, T3 first principles |
| Framing | The goal is stated in a way that excludes the answer | T4 altitude shift, T2 inversion, T5 work backwards |
| Gatekeeper | A person/org said no | T10 interrogate the no, T6 analogical transfer |
| Tool/tech | "X doesn't support Y" | T9 SCAMPER (substitute the primitive), T6 analogical transfer |
| Resource | Not enough time/money/people | T7 constraint toggling, T8 provocation |
| Physics/math | Actually impossible (rare) | Honest exit — reroute the goal, the wall is load-bearing |
Get from the user (one structured message, don't round-trip):
If the user says "I've tried everything," ask for the list. "Everything" is usually 2–3 things.
Use the taxonomy above. State the classification and why. Two rules:
Run T1 from references/techniques.md regardless of wall type: enumerate every assumption embedded in the problem statement, mark each verified fact vs inherited belief, and attack the beliefs. Most walls die here — the ones that don't are at least correctly framed for Step 4.
Pick 2–3 more techniques by wall type (lead techniques in the table; full triage guidance in references/techniques.md). For each, generate 2–3 angles.
Rules of generation:
Sort every angle into:
/deep-research/decide.Archives live in ${MAKERSKILLS_CONFIG:-$HOME/.config/makerskills}/unstuck/archive/ (create the directory if missing). Never write archives inside the skill's own folder — skill installs and upgrades re-sync from source and wipe anything saved there.
Write to <archive dir>/<YYYY-MM-DD>-<slug>.md:
# Wall: <one-line>
**Date:** YYYY-MM-DD
**Invoked by:** user | agent
**Wall type:** assumption / framing / gatekeeper / tool / resource / physics
**Goal it blocked:** <one line>
## The wall as stated
<verbatim>
## The wall decompiled
<restated without "impossible">
## Assumptions attacked
- <belief> → <held / broke>
## Techniques run
T1, T4, T7 — <one line on what each surfaced>
## Angles (all of them)
1. <angle> — try now / research / wild / dead
2. …
## Committed
**<the angle(s) chosen>** — next action: <concrete step>
(or: "Wall is load-bearing — rerouted goal to <X>")
## Outcome (fill in later)
<did the angle work?>
Append to <archive dir>/INDEX.md (create if missing):
- 2026-07-14 — [<wall>](./<filename>.md) — <type> — **<committed angle or "rerouted">**
Over time this becomes a pattern library: grep it to learn which techniques actually crack *your* walls, and which wall types recur (a recurring wall is usually one unexamined assumption upstream).
For when YOU (the agent) hit the wall mid-task. Trigger condition: an API/tool doesn't support what's needed, an approach has failed twice, or you notice a "that's not possible," "unfortunately," or "the only option is" sentence forming in your response.
Before reporting a dead end to the user, run inline (no interactive capture — you already have the wall in context):
Invoked by: agent) when the wall was nontrivial — skip archiving for sub-minute walls.The success metric: the user stops seeing dead-end reports without tried-angles receipts.
decide — downstream: 2+ mutually exclusive viable angles become a /decide fork. Upstream: decide's Q19 ("what missing info would change it?") can route here when the missing thing is an *option*, not information.deep-research — "needs research" angles route there; the brief comes back and re-enters Step 5.business-brainstorm — its "angle to steal" move on Kill verdicts is this skill applied to business ideas.pm — a committed angle becomes a board task.second-brain — archive entries can compile into a "walls I've broken" wiki page.Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
Replace with description of the skill and when Claude should use it.
Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies
This skill should be used when the user wants to "create a skill", "add a skill to plugin", "write a new skill", "improve skill description", "organize skill content", or needs guidance on skill structure, progressive disclosure, or skill development best practices for Claude Code plugins.
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
Use when creating new skills, editing existing skills, or verifying skills work before deployment
Take coreyhaines31/unstuck 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.