A Claude Code skill that breaks investigation loops. When you're stuck — same fix failing twice, about to declare something impossible, or facing an open-ended problem with no clear path — it runs a structured 11-agent pipeline to find the real mechanism and prove the fix works.
LLMs loop. Same probe, same wall, same "it doesn't work." The failure compounds when the user has counter-evidence ("but I saw it work") and the model keeps explaining why it can't be so instead of finding out why the model is wrong.
This skill operationalizes a different mode: stop repeating, question the framing, read the source, prove it empirically.
Three phases, guarded by a candidate-flag mechanism: any agent can short-circuit to the empirical gate at any point. When a flag fires, the pipeline jumps to Builder → Verifier to prove or refute the belief. Confirmed = committed. Refuted = Debugger analyzes the failure and the pipeline resumes from where it was interrupted — no restart.
Questions the problem before trying to solve it:
| Step | Agent | What it does |
|---|---|---|
| S1 | Researcher | Has someone already solved this publicly? A found solution raises a candidate flag. |
| S2 | Historian | Have WE solved or failed this before? Surfaces prior dead-ends too. |
| S3 | Reframer | Is this the right problem, or a better adjacent one? |
| S4 | Constraint-questioner | Decomposes every premise and assumption; ranks by load-bearing weight. |
| S5 | Researcher | Verifies each ledger row — real / false / stale / unverifiable. |
| S6 | First-principles | Strips fallen premises; states the minimal true problem. Trivially solvable → candidate flag. |
| Step | Agent | What it does |
|---|---|---|
| S7 | Orchestrator | Classifies the problem type (T1–T6) + Cynefin gate. |
| S8 | Orchestrator | Selects 3–4 thinkers from the library; justifies each pick. |
| S9 | Thinkers | Innovator / Analogist / Debugger run the problem from distinct angles. |
| S10 | Skeptic | Attacks the leading candidate; advisory verdict. Survivors go to the gate. |
| Step | Agent | What it does |
|---|---|---|
| S11 | Builder | Constructs the candidate in _scratch/ (skipped if the fix uses an existing thing). |
| S12 | Verifier | Exercises it by any means — runs code, drives a browser, checks a live API. The observed result is the verdict. |
| S13 | Pragmatist | Sequences the proven fix; maximizes Claude automation; minimizes manual user steps. |
| S14 | Chairman | Commits to the proven fix + one concrete next action + named blind spots. |
One governing rule: correctness is settled by the Verifier's observed run, never by confidence or opinion. The Skeptic's verdict is advisory. The Verifier's result is final.
| # | Type | Signal | Thinkers |
|---|---|---|---|
| T1 | Diagnosis | Behavior ≠ expected; correct state is known | Debugger |
| T2 | Approach-unknown | Goal clear, no candidate method | Innovator + Analogist |
| T3 | Stress-test | Fix chosen; high cost of being wrong | Skeptic + Debugger |
| T4 | Unblock | "Impossible" / "gated" — but counter-evidence exists | Debugger + Innovator |
| T5 | Wicked/contested | Genuine fork; multiple valid framings | Innovator + Skeptic + Analogist |
| T6 | Generate | Creative output; quality is judged | Innovator + Analogist + Skeptic-as-critic |
Cynefin modifier: Clear → apply the known fix directly, don't dispatch. Complicated → analyze. Complex → probe with safe-to-fail builds. Chaotic → stabilize first.
Fire when at least one holds:
- The same approach has failed twice.
- You are about to write "doesn't work / isn't supported / is gated / needs a workaround / is impossible" — especially if the user has counter-evidence.
- The problem is genuinely open-ended with no clear approach.
Do NOT fire on: first failure, trivial problems, anything solvable in one or two more reads. This is an escape hatch, not the default path.
Copy both files into your Claude Code global config:
SKILL.md → ~/.claude/skills/figure-it-out/SKILL.md
rule.md → ~/.claude/rules/figure-it-out.md
Claude Code auto-loads skills from ~/.claude/skills/ and rules from ~/.claude/rules/. No other configuration needed. The skill becomes available as /figure-it-out in any Claude Code session.
| Agent | Role | Phase |
|---|---|---|
| Researcher | Web + ecosystem search; prior-solution hunting | 0, 5 |
| Historian | Cross-session memory; prior dead-ends | 0 |
| Reframer | Problem framing; adjacent problem discovery | 0 |
| Constraint-questioner | Premise teardown; assumption ledger | 0 |
| First-principles | Minimal true problem reconstruction | 0 |
| Innovator | 10+ distinct approaches; named techniques | 1 |
| Analogist | Cross-domain analogy; structural isomorphism | 1 |
| Debugger | Root-cause analysis; mechanism tracing | 1, 2 |
| Skeptic | Adversarial review; failure mode hunting | 1 |
| Builder | Artifact construction in _scratch/ |
2 |
| Verifier | Empirical proof by any available means | 2 |
| Pragmatist | Rollout sequencing; automation-first | 2 |
Built from a real incident: enabling Claude Code Agent Teams in the VS Code extension chat panel. Across roughly ten sessions the model kept concluding "doesn't work in the panel — use the terminal," citing a GitHub issue, re-asking the same questions, running the same dead probes. The user had video proof it worked.
The fix took one source read. Grepping the extension's extension.js showed its env-builder hardcodes CLAUDE_CODE_ENABLE_TASKS="0" and injects environment variables only from VS Code's claudeCode.environmentVariables setting — never from .claude/settings.json, where the flag had been sitting unused the whole time. No plan gate. No teams block. The answer was on disk the entire time.
The rule this skill enforces: the installed artifact is the authority. Everything else describes some other version.