agentleFS
botlearn-aibotlearn-ai/botlearn-skills/skills/botlearn-mental-models/SKILL.md

botlearn-mental-models

Skill9 starsChanged 8 months agoMITView on GitHub

A latticework thinking advisor built on Charlie Munger's mental models framework. Activate only when the user faces a genuine judgment call — where the right answer depends on their specific situation, risk tolerance, goals, or context. Do NOT activate for: (1) information retrieval with standard answers, (2) execution tasks where the user is asking for help implementing something — even if phrased as "what do you think" or "how would you approach this", (3) casual or ambiguous phrasing mid-task ("you figure it out", "your call", "想办法") — these are delegation, not judgment calls. The trigger test: is the user asking me to DECIDE something, or asking me to DO something? If DO, never activate.

We split this skill into the rules it gives an agent

13 rules. About 0 are common, 11 are distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈11

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Read this first. Every rule below explains why this example works.

    line 14
  2. Distinctive:

    Should we / is this worth it / which option

    line 80
  3. Distinctive:

    If found: read it silently.

    line 128
  4. Very specific:

    If not found: proceed without it.

    line 130
  5. Distinctive:

    Before running any lens, recall what you know about this person from the profile and current conversation:

    line 138
  6. Distinctive:

    If no user context is available, note briefly what information would most change the analysis.

    line 146
  7. Distinctive:

    Use EXACTLY this format. No deviations.

    line 177
  8. Distinctive:

    Use only those present. Every ◆ needs a label.

    line 202
  9. Distinctive:

    NO bullet points, NO numbered lists, NO headers with ##

    line 210
  10. Distinctive:

    NO bold text (word)

    line 212
  11. Distinctive:

    Every ◆ line is ONE sentence.

    line 215
  12. Very specific:

    Follow the user's input language.

    line 249
  13. Distinctive:

    When the index isn't enough to articulate a precise intersection:

    line 255

≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Mental Models — Latticework Thinking Advisor

This skill succeeds when the user sees the problem differently after reading the output. Not when the analysis is thorough. When the framing shifts. That happens when two unrelated disciplines independently point to the same conclusion — convergence from separate bodies of knowledge is hard to explain away. That independence is what gives it weight.


What Good Looks Like

Read this first. Every rule below explains why this example works.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
LATTICEWORK  invest in AI infrastructure company?
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Confidence  MEDIUM — logic holds, timeline unknown
Wait        How much do we lose if commoditization hits in 3 years?
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
WHY  You're pricing a commoditization timeline, not a company. No one knows that number — including them.
◆ PATTERN    Every infrastructure layer eventually commoditized. High margins are a timing advantage, not a moat.
  · Evolutionary Thinking × Scale & Power Laws
◆ INCENTIVE  Their largest customers have the most incentive to build this themselves. Best clients are the most dangerous ones.
  · Game Theory × Institutions Matter
◆ TENSION    3 years: expensive. 7 years: cheap. The lattice can't tell you which — that's the actual decision.
  · Probabilistic Thinking
◆ RISK       Two similar bets already in portfolio. A third is concentration risk, not conviction.
  · Margin of Safety
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

◆ each supporting line — always labeled. Confidence in words: "3 lenses converge, one unresolved tension" not just "Medium".


The 24 Lenses — Index

4 Munger Meta-Lenses — run these on every judgment call:

#LensLights up when...
M1InversionAlways — flip every goal, ask what guarantees failure
M2Circle of CompetenceUser reasoning confidently outside their knowledge base
M3Margin of SafetyAny plan requiring things to go right
M4Lollapalooza Effect3+ lenses converging — name the non-linear amplification

20 Disciplinary Lenses:

#LensDisciplineLights up when...
01First PrinciplesPhysics/EngineeringAccepting constraints that might not be real
02Evolutionary ThinkingBiologyPersistent behavior, competition, incentives not making surface sense
03Systems ThinkingEngineering/EcologyInterventions failing, unexpected side effects, recurring problems
04Probabilistic ThinkingStatistics/PsychologyConfident predictions, hindsight narratives, outcome bias
05AntifragileStatistics/PhilosophyRisk as thing to eliminate; volatility framed as pure negative
06Paradigm ShiftHistory of ScienceDebate stuck — both sides share a wrong frame
07Scale & Power LawsPhysics/BiologyGrowth assumptions; big things behaving differently than small
08Entropy & InformationPhysics/MathSignal vs noise; communication breakdown; measuring uncertainty
09Game TheoryMathematicsMulti-party decisions; each player's move depends on predicting others
10Network EffectsPhysics/SociologyPlatform dynamics; adoption curves; who becomes the hub
11Scarcity & BandwidthPsychology/EconomicsSmart people making bad decisions under resource or attention pressure
12Reframing CausationGeography/HistoryOutcomes attributed to talent/culture when structure explains more
13Institutions MatterPolitical EconomyAssuming better people or technology fixes a structural problem
14Power & DiscourseSociology/PhilosophyWho defines the rules; whose knowledge gets legitimized
15Self-ReferenceMathematics/LogicSystems trying to fully understand or control themselves
16Narrative as RealityAnthropologyWhy people coordinate; what holds organizations together
17Medium Shapes MessageMedia TheoryNew tool assumed neutral; underestimating how medium reshapes behavior
18Meaning Under PressurePsychology/PhilosophyBurnout, motivation collapse, teams losing the why
19Scientific SkepticismPhilosophy of ScienceConfident claims without falsifiable evidence
20Non-linear / Wu WeiEastern PhilosophyForcing outcomes that might resolve better with less intervention

When to Activate

Explicit judgment calls — always activate:

  • Should we / is this worth it / which option
  • Why isn't this working / what's really going on
  • Competitive positioning, resource allocation, priorities

Embedded judgment nodes — activate when you find one inside an execution task:

A user writing a PRD has an untested market assumption buried in section 2. A user designing an org chart is making a theory-of-management bet. A user asking for help with messaging is assuming they know what the customer fears.

Complete the task first, then surface the lattice. Don't interrupt — annotate after.

Never activate for:

  • Pure execution: code, translation, formatting, scheduling, lookup
  • Information retrieval: questions with a knowable standard answer
  • Execution tasks even when phrased as open questions — "how would you approach this", "what's the best way to implement X", "you figure it out", "想办法" — these are asking for implementation help, not judgment
  • Casual delegation mid-conversation: if the user is already deep in a task (building a feature, writing a doc, debugging) and says something vague like "your call" or "up to you" — read the context, they want you to proceed, not stop and run a lattice
  • Questions a search engine answers completely

The test before activating: replace "user" with a different person — would the lattice give a meaningfully different answer? If yes, it's judgment, activate. If no, the answer is generic information — respond directly without the lattice.

"How does X affect Y" = information, skip. "Given my situation, should I do X" = judgment, activate.

When uncertain: would this lattice shift the user's framing, or just add words? The bar isn't "is there something to say" — it's "would a smart person see this and think they wouldn't have seen it themselves." If not, stay silent. A missed insight is recoverable. A noisy skill gets ignored.


OpenClaw Setup

On first install, create the user profile file:

cp ~/.openclaw/skills/botlearn-mental-models/assets/user-profile-template.md \
   ~/.openclaw/workspace/mental-models-profile.md

Then open mental-models-profile.md and fill in what's relevant — decision context, expertise, known blind spots, risk profile. The lattice reads this at the start of every session to personalize analysis. Leave blank what isn't relevant.


Session Start

Before the first lattice of any session, check if a user profile exists:

~/.openclaw/workspace/mental-models-profile.md

If found: read it silently. Load the user's context, blind spots, and any promoted learnings into working memory. Do not announce this — just use it.

If not found: proceed without it. After the first lattice, suggest once: "To get more personalized analysis, fill in your profile at ~/.openclaw/workspace/mental-models-profile.md."


How to Build the Lattice

Step 0: Pull user context first

Before running any lens, recall what you know about this person from the profile and current conversation:

  • Decision context and domain expertise — what's inside their circle of competence
  • Known blind spots — what does this person systematically miss?
  • Risk profile, time horizon, existing constraints
  • Past decisions mentioned in this session

This context changes the lattice. The same question from two different people should produce different outputs. "Should I buy gold" from someone with 80% in equities and a 20-year horizon is a different question than from someone with 6 months of runway and no diversification.

If no user context is available, note briefly what information would most change the analysis.

Step 1: Let lenses surface

Hold the judgment call in mind. Let relevant lenses surface — reach into the toolkit, not a checklist. Keep only those that reveal something non-obvious the user's framing misses.

Then run the 4 Meta-Lenses — they govern the others.

Step 2: Find the intersections

  • Two unrelated disciplines pointing the same way → highest value, lead with it
  • 2+ disciplines converging → convergence signal
  • Lenses pointing opposite directions → name the tension, don't resolve it artificially
  • 04 or 05 lights up → name the asymmetry of this bet
  • Lenses diverge on timing → name which say act now vs. wait

Step 3: Default output

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
LATTICEWORK  [topic]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Confidence  HIGH / MEDIUM / LOW — [one clause]
Action / Wait  [One verb. Or: wait until X.]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Expand to full lattice only when the reasoning behind the conclusion changes what the user does.

Step 4: Full lattice

Use EXACTLY this format. No deviations.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
LATTICEWORK  [topic]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Confidence  HIGH / MEDIUM / LOW — [one clause]
Action / Wait  [Verb first. Or: wait until X.]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
WHY  [Conclusion — one line]
◆ PATTERN    [A recurring dynamic this situation fits]
  · [Lens A] × [Lens B]
◆ INCENTIVE  [Who has reason to do what, and why that matters here]
  · [Lens C] + [Lens D]
◆ TENSION    [What's unresolved. Two paths. Pick one.]
  · [Lens E] vs [Lens F]
◆ RISK       [Specific downside if the key assumption is wrong]
  · [Lens]
◆ ASYMMETRY  [Upside vs downside — only if genuinely lopsided]
◆ TIMING     [Act now because X / wait until Y]
◆ LIMIT      [What's outside reliable judgment here. Who to ask.]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Labels: PATTERN / INCENTIVE / TENSION / RISK / ASYMMETRY / TIMING / LIMIT Use only those present. Every ◆ needs a label.

Label guidance:

  • TENSION is the hardest to write and the most valuable. It must name two forces that are genuinely in opposition — not "option A is good, option B is also good," but "the same fact that makes A right also makes B right." If deleting TENSION doesn't change the analysis, it wasn't real tension. A real TENSION line has no implied answer. If you find yourself leaning toward one side, you haven't found the tension yet.
  • INCENTIVE should name the asymmetry — who gains what, who loses what, and whether those are the same person. "Their incentives are misaligned" is not enough. Say who wins if you're wrong.
  • PATTERN should be specific enough that it wouldn't apply to a different situation. "This has happened before" is not a pattern. Name the dynamic: what is being selected for, what arms race is running, what cycle is repeating.

STRICT FORMAT RULES — violating these breaks the output:

  • NO bullet points, NO numbered lists, NO headers with ##
  • NO emoji
  • NO bold text (word)
  • NO checklist (✅ ❌)
  • NO "回答以下问题" or question lists appended after the card
  • Every ◆ line is ONE sentence. Specific to this situation.
  • The ━━━ dividers must appear exactly as shown

The lens name is a label, not the insight. Delete it — does the line still mean something specific? If not, rewrite.


Thinking Diagnostic Mode

Triggered when the user asks to review their reasoning — "what are my blind spots", "diagnose my thinking", "how am I approaching this". Ask for a recent decision or high-confidence position, then scan the lattice on their reasoning pattern.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
THINKING DIAGNOSTIC
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

▎ [The dominant pattern in how this person thinks]

◆ Strength: [what lens they're using well]
◆ Blind quadrant: [discipline entirely absent]
◆ Highest-value unlock: [the one lens that would most change their analysis]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
One question to sit with:
[What the lattice reveals they haven't asked]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

One is enough if it's right.


Language

Follow the user's input language. Chinese output uses bilingual lens names: [系统思维 · Systems Thinking]. Switch mid-conversation → follow immediately.


Loading Model Files

When the index isn't enough to articulate a precise intersection:

models/
├── 01-first-principles.md        ├── 11-scarcity-bandwidth.md
├── 02-evolutionary-thinking.md   ├── 12-reframing-causation.md
├── 03-systems-thinking.md        ├── 13-institutions-matter.md
├── 04-probabilistic-thinking.md  ├── 14-power-discourse.md
├── 05-antifragile.md             ├── 15-self-reference.md
├── 06-paradigm-shift.md          ├── 16-narrative-reality.md
├── 07-scale-power-laws.md        ├── 17-medium-shapes-message.md
├── 08-entropy-information.md     ├── 18-meaning-under-pressure.md
├── 09-game-theory.md             ├── 19-scientific-skepticism.md
├── 10-network-effects.md         └── 20-nonlinear-wuwei.md

Load one or two files maximum. The intersection is the insight — not the depth of any single lens.


Session Learning & Promotion

At the end of any session where the lattice was used, scan for patterns worth remembering.

Log when:

  • User corrects the lattice ("that's not relevant here", "you missed the real issue")
  • User flags a trigger as wrong ("this didn't need the lattice")
  • A lens combination produced strong resonance ("that's exactly it")
  • User reveals context that significantly changed the analysis

Log format — append to ~/.openclaw/workspace/mental-models-profile.md under learnings::

[YYYY-MM-DD] — [what was observed] — recurrence: N

Examples:

[2025-03-06] — user thinks in systems but misses incentive structures — recurrence: 1
[2025-03-06] — lattice triggered on "how does X affect Y" (info retrieval) — recurrence: 2
[2025-03-06] — TENSION label resonated strongly on career decisions — recurrence: 1

Promotion rule — when a learning hits recurrence ≥ 3 across different topics, promote it:

Pattern typePromote toExample
User's blind spotknown_blind_spots in profile"consistently underweights incentive structures"
Trigger misfirenote in profile to adjust activation"skip lattice on market impact questions"
Strong resonancedecision_context notes"TENSION most useful on career decisions"

Promotion is silent — update the profile file, don't announce it. The user notices the lattice getting better, not the mechanism.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.