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
- 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.
- 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.
- 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
- 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.
- 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.
- 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
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.
1---2name: thinking-model-router3description: When unsure which thinking skill fits, map domain and problem type, then return NONE or one primary skill by default (at most three complementary).4---5
6# Model Router
7
8**Core rule:** Prefer NONE or one primary skill. Route by mechanism fit, not habit. Combine only when roles are distinct and necessary.
9
10## When to Use
11
12- The right thinking skill is unclear and you would otherwise guess or stack tools.
13- Several catalog skills seem plausible and you need a single primary (or explicit NONE).
14- High-stakes work where a wrong frame is costly and a quick domain×type match helps.
15
16## When NOT to Use
17
18- The match is already known or obvious ("where's the bottleneck?" → theory-of-constraints) — invoke that skill directly; do not route for show.
19- The task is routine implementation with no analytical unknown — reason directly (NONE).
20- You are mid-execution of an agreed plan and only need the next concrete step.
21- The ask is outside this catalog (pure coding syntax, tool ops with no judgment call) — NONE.
22
23## Invoking a Model (Skill IDs)
24
25The 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.
26
27## Procedure
28
291. **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.
302. **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.
313. **Candidate by type defaults (override when constraints demand).** Keep only active catalog skills:
32 - Diagnose → five-whys-plus or scientific-method (kepner-tregoe if IS/IS-NOT matrix needed)
33 - Decide → reversibility first; then opportunity-cost or probabilistic
34 - Understand → systems (map-territory if model-vs-reality gap; cynefin if approach domain unclear)
35 - Create → first-principles (triz for contradictions; effectuation for means-driven; via-negativa for remove-first)
36 - Evaluate → steel-manning (socratic if assumptions/definitions are the unknown)
37 - Predict → probabilistic
38 - Optimize → theory-of-constraints (ooda under time pressure; bounded-rationality for search stop)
39 - Risk / "what fails?" → pre-mortem or red-team; margin-of-safety for buffers
40 - Product "what to build?" → jobs-to-be-done
41 - Competence / durability → circle-of-competence, lindy-effect
42 - Controlled hypothetical → thought-experiment
43 - Multi-lens only after one primary fails a blind-spot check → model-combination
444. **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.
455. **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.
466. **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.
47
48**Domain cheat-map (primary first; still default to one or NONE):**
49
50| Domain signal | Prefer |
51|---------------|--------|
52| Bug / root cause / flaky | five-whys-plus, scientific-method, systems |
53| Architecture / tech choice | reversibility, systems, lindy-effect, opportunity-cost |
54| Feature / roadmap / engagement | jobs-to-be-done, opportunity-cost, theory-of-constraints |
55| Strategy / competition / growth | cynefin, systems, red-team, second-order |
56| Personal / career commitment | opportunity-cost, reversibility, circle-of-competence, pre-mortem |
57| Argument / belief update | steel-manning, probabilistic, socratic, first-principles |
58| Security / disaster / ruin | pre-mortem, red-team, margin-of-safety, via-negativa |
59| Innovation / contradiction / simplify | first-principles, triz, effectuation, via-negativa |
60
61## Output
62
63```text
64outcome: NONE | one | multi
65routes:
66 - id: <primary skill id or NONE>
67 role: <job this skill performs>
68 unique_question: <question only this route answers>
69 - id: <secondary skill id, only for multi>
70 role: <distinct complementary job>
71 unique_question: <distinct open question>
72 - id: <tertiary skill id, only for multi>
73 role: <distinct complementary job>
74 unique_question: <distinct open question>
75domain: <domain>
76problem_type: <type>
77constraints: <time/info/stakes/reversibility>
78rationale: <mechanism fit in one sentence>
79blind_spots: <what primary still ignores, if any>
80exit: <when to abandon or re-route>
81```
82
83Default 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.
84
85## Verification
86
87- **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.
88- **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.