mental-models — Claude Code skill: what it does, how to install
Applies 21 built-in cognitive frameworks or your own custom markdown models to break down tough engineering decisions and spot hidden risks.
npx skills add cyperx84/claude-skills-mental-models --skill mental-models -a claude-codeWhat mental-models does
The skill guides agent reasoning when evaluating trade-offs, architecture choices, or operational bottlenecks. It includes 21 cognitive models from economics, psychology, systems thinking, and strategy. No extra runtime or tooling is required. Everything lives in plain Markdown files structured as an Open Knowledge Format bundle.
During execution, the agent loads models/index.md and scans for custom frameworks in .mental-models/ or ~/.claude/mental-models/. A custom model always overrides a bundled one with the same name. Instead of relying on a single angle, the agent selects 2 to 4 frameworks across different domains to prevent blind spots.
Each model file details specific reasoning steps, coaching prompts, and explicit conditions for when to avoid using it. The final report highlights where frameworks disagree. It concludes with 3 to 5 actionable next steps rather than abstract advice.
What it helps with
- evaluate architecture trade-offs using structured reasoning frameworks
- identify bottlenecks and second-order effects in complex system designs
- apply team-specific mental models stored in local Markdown folders
- uncover hidden biases or incentive conflicts during technical debates
Example prompts for the agent
- Help me think through our database migration using relevant mental models
- Apply inversion to our deployment pipeline to find where failures are most likely
- Evaluate this architectural trade-off using bottlenecks and leverage frameworks
How to install mental-models
1Skills CLI (Vercel)
npx skills add cyperx84/claude-skills-mental-models --skill mental-models -a claude-code2Manually: put the files in place
~/.claude/skills/mental-models/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/mental-models/
1Skills CLI (Vercel)
npx skills add cyperx84/claude-skills-mental-models --skill mental-models -a codex2Manually: put the files in place
.agents/skills/mental-models/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add cyperx84/claude-skills-mental-models --skill mental-models -a cursor2Manually: put the files in place
.cursor/skills/mental-models/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install cyperx84/claude-skills-mental-models mental-models2Manually: put the files in place
.github/skills/mental-models/SKILL.md1Skills CLI (Vercel)
npx skills add cyperx84/claude-skills-mental-models --skill mental-models -a gemini-cli2Platform CLI
gemini skills install https://github.com/cyperx84/claude-skills-mental-models --path skills/mental-modelsManually: put the files in place
.devin/skills/mental-models/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add cyperx84/claude-skills-mental-models --skill mental-models -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about mental-models
How to install mental-models in Claude Code?
Run npx skills add cyperx84/claude-skills-mental-models --skill mental-models -a claude-code.
What does the mental-models skill do?
It analyzes ambiguous problems by applying 2 to 4 frameworks from different fields like systems thinking or economics. It compares their conclusions, warns against misapplications, and outlines 3 to 5 concrete action items.
How do custom models work with this skill?
Place your Markdown files with YAML frontmatter inside .mental-models/ in your repository or ~/.claude/mental-models/ in your home folder. If a custom model shares a filename with a bundled one, the agent automatically prioritizes your version.
Source text
SKILL.md · MIT
---
name: mental-models
description: Apply mental models — your own, or 21 sourced ones — to any problem. Use when user requests decision analysis, says "help me think", "apply mental model", mentions model names (inversion, bottlenecks, second-order thinking), or needs structured thinking frameworks.
---
# Mental Models
Apply cognitive frameworks from several disciplines — systems, economics, psychology,
mathematics, strategy — to analyse problems, make decisions, and think more clearly.
Everything this skill needs is a file. No install, no dependencies, no tooling — you read
markdown.
## When to Activate
- User names a specific model ("apply inversion", "use bottlenecks")
- User asks "help me think through X" or "what model fits X"
- User requests decision analysis, trade-off evaluation, or structured reasoning
- User describes a complex/ambiguous problem and wants a framework
## Step 1 — Load the index
Read [`models/index.md`](./models/index.md). It lists every bundled model with a one-line
description. It is short; load it in full.
Then check for the user's own models. The bundled set is a starting point, not a fixed list:
| Path | Holds |
|---|---|
| `.mental-models/` (relative to the working directory) | this project's or team's models, committed with the code |
| `~/.claude/mental-models/` | the user's personal models, available everywhere |
**Always run both globs before selecting. Do not assume they are empty** — one tool call
settles it, and a model the user wrote for exactly this situation is the most valuable thing
you can find. This matters most when the problem is urgent: urgency is precisely when a
team's own hard-won model is worth more than a general one, and precisely when you are
tempted to skip the check.
If either has files, read each one's YAML frontmatter (`title`, `description`, `tags`) to
learn what is there. A directory may have its own `index.md`; read that instead if present.
If both are empty, carry on with the bundled models.
**A user model always wins a name collision with a bundled one.** If someone wrote their own
`inversion.md`, they meant it — use theirs, and don't mention the built-in unless asked.
Treat user models as first-class. A model a team wrote about their own domain usually beats
a general one at that domain.
## Step 2 — YOU select the models
Read the user's problem and pick **2–4 models from different areas**. Selection is a
reasoning task and you are better at it than any keyword matcher: cross-area coverage is the
entire point of a *latticework* — a single-area pick means blind spots go unchecked.
**Discovery heuristics** to bias your reading of the index:
- **Risk / uncertainty / reversibility** → inversion, margin of safety, randomness
- **Stuck / can't see options** → first-principles thinking, second-order thinking, framing
- **Conflict / negotiation / competition** → bias from incentives, asymmetric warfare, trade-offs
- **Complex system / unintended effects** → feedback loops, emergence, bottlenecks, leverage
- **Performance / optimization** → bottlenecks, leverage, activation energy
- **People / team / behaviour** → bias from incentives, social proof, confirmation bias
- **Evaluating evidence or results** → sampling, regression to the mean, randomness
- **Change that won't start, or won't stop** → activation energy, inertia
## Step 3 — Retrieve each pick
Read the file directly. Bundled models are flat files named by slug:
```
models/<slug>.md
```
e.g. `models/inversion.md`. The index gives you the exact filename — use it rather than
guessing. User models are at the path you found them.
## Step 4 — Apply
Each model file has YAML frontmatter and four parts:
- the **description prose** — what the idea is and where it comes from, with `[^footnotes]`
pointing at entries in the frontmatter's `sources`
- **When to Avoid** — read this *before* concluding, and surface it if it applies. It is what
separates a mental model from a slogan.
- **Thinking Steps** — walk these against the user's actual facts. Follow them; don't
paraphrase the framework away.
- **Coaching Questions** — ask these to deepen the analysis where useful.
Show where the chosen models agree, and where they disagree.
## Step 5 — Report
- Name which models you used and why you picked them
- Where models disagreed, say so explicitly rather than silently picking a winner
- End with 3–5 concrete, actionable next steps
- Name any "when to avoid" conditions that apply to this case
- If a source matters to the point you are making, cite it — the `sources` block has the link
## Core Guidelines
1. **2–4 models per analysis, from different areas** — coverage over quantity
2. **Follow the Thinking Steps verbatim** — don't paraphrase the framework away
3. **Always check When to Avoid** — warn the user if the model misfits
4. **Latticework**: show how chosen models connect and where they disagree
5. **Be actionable**: end with concrete next steps, not theory
6. **Name biases honestly**: if the user seems caught in one, surface it
## The format
`models/` is an [Open Knowledge Format](https://github.com/GoogleCloudPlatform/open-knowledge-format)
bundle: a directory of markdown files, each with YAML frontmatter carrying at minimum a
`type`. That means any OKF bundle can be dropped into `.mental-models/` and read the same way,
and this bundle can be consumed by any OKF-aware agent.
Obsidian vaults work too — treat `[[wikilink]]` as a link to `wikilink.md`.
To write your own, copy [`TEMPLATE.md`](./TEMPLATE.md).
## Files in This Skill
- `SKILL.md` — this entry point
- `TEMPLATE.md` — the format; copy it to write your own model
- `models/` — the bundled OKF bundle: `index.md` plus one file per model
Outside this skill, and never overwritten by an update:
- `.mental-models/*.md` — the working directory's own models
- `~/.claude/mental-models/*.md` — the user's personal models
Source: <https://github.com/cyperx84/claude-skills-mental-models>
© cyperx84 · MIT · cyperx84/claude-skills-mental-models