Skip to main content
skill CX Codex

thinking-model-router — Claude Code skill: pick the right thinking

A router skill that maps domain and problem type to one thinking skill, or returns NONE. Useful when you would otherwise guess or stack frameworks.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-model-router -a claude-code
Open on GitHub

What thinking-model-router does

Faced with a fuzzy problem, it is tempting to grab tools at random or bolt on five frameworks at once. thinking-model-router instead matches a domain (coding, architecture, product, strategy, risk and others) against a problem type (diagnose, decide, understand, create, evaluate, predict, optimize) and hands back a single primary pick. The default is NONE — reason directly.

The procedure runs in six steps. First a short-circuit: if one skill clearly fits by mechanism, the router returns only that. Otherwise candidates get scored on weighted criteria — problem fit 30%, available inputs 20%, time to apply 15%, stakeholder usability 15%, competence to apply 20%. A route needs problem fit of at least 4 and a weighted total of at least 3.5, or the answer is NONE. Second and third skills are an exception, added only when each has a distinct role, and capped at three.

The router does not fire on its own: it carries disable-model-invocation: true, so you invoke it yourself. Skip it when the answer is already obvious — hunting a bottleneck is a direct call for theory-of-constraints. The skill says as much: routing for show is pointless. If the chosen frame yields no insight after 15 minutes, the procedure says to re-route once or fall back to NONE.

What it helps with

  • pick one thinking skill when several look plausible
  • avoid stacking frameworks on a routine task
  • map a domain to a problem type before starting
  • get an explicit NONE instead of an invented route
  • cap a combination at three skills with distinct roles

Example prompts for the agent

  • I can't tell which thinking skill fits this problem — run it through thinking-model-router
  • We have flaky tests and no clear starting point: have the router pick an approach
  • Should I add a second skill to the primary one, or is one enough? Check with thinking-model-router

How to install thinking-model-router

1Skills CLI (Vercel)

npx skills add tjboudreaux/cc-thinking-skills --skill thinking-model-router -a claude-code

2Manually: put the files in place

~/.claude/skills/thinking-model-router/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/thinking-model-router/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about thinking-model-router

How do I install thinking-model-router in Claude?

Run npx skills add tjboudreaux/cc-thinking-skills --skill thinking-model-router -a claude-code. The skill file lands at ~/.claude/skills/thinking-model-router/SKILL.md.

What does thinking-model-router do?

It maps a domain and problem type onto the thinking-skills catalog and returns NONE or one primary skill, at most three when roles are distinct. Routing follows mechanism fit rather than habit.

Why doesn't the router run automatically?

It sets disable-model-invocation: true, so invoking it is up to you. That guards against routing where the skill is already obvious.

Source text

SKILL.md · MIT
---
name: thinking-model-router
description: When unsure which thinking skill fits, map domain and problem type, then return NONE or one primary skill by default (at most three complementary).
disable-model-invocation: true
---

# Model Router

**Core rule:** Prefer NONE or one primary skill. Route by mechanism fit, not habit. Combine only when roles are distinct and necessary.

## When to Use

- The right thinking skill is unclear and you would otherwise guess or stack tools.
- Several catalog skills seem plausible and you need a single primary (or explicit NONE).
- High-stakes work where a wrong frame is costly and a quick domain×type match helps.

## When NOT to Use

- The match is already known or obvious ("where's the bottleneck?" → theory-of-constraints) — invoke that skill directly; do not route for show.
- The task is routine implementation with no analytical unknown — reason directly (NONE).
- You are mid-execution of an agreed plan and only need the next concrete step.
- The ask is outside this catalog (pure coding syntax, tool ops with no judgment call) — NONE.

## Invoking a Model (Skill IDs)

The router outputs bare slugs (e.g. `id: five-whys-plus`). Invoke a routed skill with the Skill tool using the exact ID `thinking-skills:thinking-<slug>` — never invent a slug not cited in Procedure. `NONE` means no invocation.

## Procedure

1. **Short-circuit.** If one skill clearly fits by mechanism, return that skill alone. If no skill clearly improves the work, return **NONE** and reason directly. Stop.
2. **Characterize.** Record domain (coding, architecture, product, strategy, personal, abstract, risk, innovation) and problem type (diagnose, decide, understand, create, evaluate, predict, optimize). Note constraints: time, information, stakes, reversibility, complexity.
3. **Candidate by type defaults (override when constraints demand).** Keep only active catalog skills:
   - Diagnose → five-whys-plus or scientific-method (kepner-tregoe if IS/IS-NOT matrix needed)
   - Decide → reversibility first; then opportunity-cost or probabilistic
   - Understand → systems (map-territory if model-vs-reality gap; cynefin if approach domain unclear)
   - Create → first-principles (triz for contradictions; effectuation for means-driven; via-negativa for remove-first)
   - Evaluate → steel-manning (socratic if assumptions/definitions are the unknown)
   - Predict → probabilistic
   - Optimize → theory-of-constraints (ooda under time pressure; bounded-rationality for search stop)
   - Risk / "what fails?" → pre-mortem or red-team; margin-of-safety for buffers
   - Product "what to build?" → jobs-to-be-done
   - Competence / durability → circle-of-competence, lindy-effect
   - Controlled hypothetical → thought-experiment
   - Multi-lens only after one primary fails a blind-spot check → model-combination
4. **Select with criteria (satisficing).** Score only if 2+ candidates remain or stakes make a forced default unsafe. Rate each criterion 1–5 (1 = absent/wrong fit; 3 = usable with gaps; 5 = direct fit): problem fit (30%), available inputs (20%), time to apply (15%), stakeholder usability (15%), competence to apply correctly (20%). A route must score problem fit ≥4 and weighted total ≥3.5; otherwise return **NONE**. For totals within 0.25, prefer fewer inputs and shorter execution; if still tied, choose NONE unless the skills answer distinct complementary questions.
5. **Multi-skill only as exception.** Add a second or third skill only when each has a distinct complementary role the primary leaves open. Cap at three. Prefer sequential over parallel. Near-neighbors and synonyms do not stack. For composition patterns, hand off to model-combination after naming the primary.
6. **Exit.** State abandon signals (forced fit, ignored factors, no insight ~15 minutes). On mismatch, re-route once or fall back to NONE — never force a frame.

**Domain cheat-map (primary first; still default to one or NONE):**

| Domain signal | Prefer |
|---------------|--------|
| Bug / root cause / flaky | five-whys-plus, scientific-method, systems |
| Architecture / tech choice | reversibility, systems, lindy-effect, opportunity-cost |
| Feature / roadmap / engagement | jobs-to-be-done, opportunity-cost, theory-of-constraints |
| Strategy / competition / growth | cynefin, systems, red-team, second-order |
| Personal / career commitment | opportunity-cost, reversibility, circle-of-competence, pre-mortem |
| Argument / belief update | steel-manning, probabilistic, socratic, first-principles |
| Security / disaster / ruin | pre-mortem, red-team, margin-of-safety, via-negativa |
| Innovation / contradiction / simplify | first-principles, triz, effectuation, via-negativa |

## Output

```text
outcome: NONE | one | multi
routes:
  - id: <primary skill id or NONE>
    role: <job this skill performs>
    unique_question: <question only this route answers>
  - id: <secondary skill id, only for multi>
    role: <distinct complementary job>
    unique_question: <distinct open question>
  - id: <tertiary skill id, only for multi>
    role: <distinct complementary job>
    unique_question: <distinct open question>
domain: <domain>
problem_type: <type>
constraints: <time/info/stakes/reversibility>
rationale: <mechanism fit in one sentence>
blind_spots: <what primary still ignores, if any>
exit: <when to abandon or re-route>
```

Default fill: `outcome: NONE` with one `id: NONE` route, or `outcome: one` with one route. Use `multi` only when every listed skill has a distinct role and unique question.

## Verification

- **Falsify / stop:** If the route is habit or familiarity rather than mechanism fit, discard and re-score or return NONE. If multi-skill entries lack distinct roles, collapse to the single best primary. If no candidate clearly helps, NONE is correct — do not invent a route.
- **Over-application guard:** Do not route when the skill is already obvious. Do not return more than three skills. Do not cite deleted or non-catalog names. Do not treat the router as a prerequisite for leaf skills invoked directly.

© tjboudreaux · MIT · tjboudreaux/cc-thinking-skills

Similar skills

All skills for Agent setup: memory, context, orchestration →

From the same set28

thinking-theory-of-constraints A skill that walks your agent through theory of constraints: find the one binding stage, exploit it, then remeasure. Useful when extra capacity does not raise output. CX Codex +1 643installs thinking-socratic Surfaces unstated assumptions and undefined terms before coding begins. Helps the agent ask decisive questions instead of guessing requirements. CX Codex +1 626installs thinking-systems A skill for problems that resist local fixes: it maps the system, finds feedback loops and delays, then ranks interventions by leverage. CX Codex +1 610installs thinking-opportunity-cost Forces your AI coding agent to identify the best forgone alternative and calculate the net value delta before committing engineering hours or budget. CX Codex +1 610installs thinking-steel-manning Builds the strongest opposing argument before rejecting or adopting a technical plan. Useful for architecture reviews and preventing sycophantic AI agreement. CX Codex +1 600installs thinking-second-order Traces consequences beyond an immediate fix, including reactions, timing, probability and feedback. Use it for architecture or strategic decisions with lasting effects. CX Codex +1 601installs thinking-triz A skill for when two design requirements pull against each other. It names the conflict and looks for a resolution that keeps both benefits. CX Codex +1 593installs thinking-probabilistic A skill that makes the agent name a base rate, give confidence intervals and update its estimate when new evidence lands, instead of stating one confident number. CX Codex +1 591installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor