agentleFS
babypochi06babypochi06/cc-thinking-skills/skills/thinking-map-territory/SKILL.md

thinking-map-territory

Skill2 starsChanged 9 months agoMITView on GitHub

Recognize limits of mental models and diagrams. Use when models diverge from reality, debugging expectation mismatches, or questioning abstraction accuracy.

The file

We split this skill into the rules it gives an agent

6 rules. About 0 are common, 6 are distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈6

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Core Principle: All models are wrong; some are useful.

    line 12
  2. Distinctive:

    When a "perfect plan" meets messy reality

    line 20
  3. Distinctive:

    Every representation omits details:

    line 36
  4. Distinctive:

    When we mistake the map for the territory:

    line 66
  5. Distinctive:

    No validation feedback loop

    line 232
  6. Distinctive:

    When the map and territory diverge, update the map or change your navigation—but never insist the territory is wrong because your map says …

    line 284

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 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

Map-Territory Thinking

Overview

Map-Territory thinking, originated by Alfred Korzybski and popularized in general semantics, reminds us that "the map is not the territory." Every representation—mental model, diagram, metric, specification, or abstraction—is a simplified view that necessarily loses information. Confusing the map with the territory leads to flawed decisions, debugging dead-ends, and misaligned expectations.

Core Principle: All models are wrong; some are useful. The question is: how wrong, and useful for what?

When to Use

  • Debugging when behavior doesn't match expectations
  • Evaluating whether documentation/specs match implementation
  • Questioning metrics that seem to tell the "full story"
  • Architecture decisions based on diagrams or models
  • When a "perfect plan" meets messy reality
  • Resolving disagreements where parties hold different mental models
  • Analyzing why estimates consistently miss reality

Decision flow:

Expectation ≠ Reality? → yes → Are you trusting a model/abstraction? → yes → CHECK MAP-TERRITORY FIT
                                                                    ↘ no → Model exists but isn't explicit
                    ↘ no → Model may be accurate (verify anyway)

Key Concepts

1. Maps Are Abstractions

Every representation omits details:

Territory (Reality)Map (Representation)What's Lost
Running codeArchitecture diagramTiming, error paths, state
User behaviorAnalytics dashboardContext, emotion, edge cases
System performanceSLO metricsTail latencies, correlations
Team dynamicsOrg chartInformal influence, trust
Customer needUser storyNuance, unstated assumptions

2. Multiple Maps, One Territory

The same reality can have many valid representations:

Territory: E-commerce checkout flow

Maps:
├── Sequence diagram (shows interactions)
├── State machine (shows transitions)
├── User journey (shows experience)
├── Data flow (shows information movement)
├── Code (shows implementation)
└── Metrics (shows performance)

Each map reveals AND conceals different aspects

3. Map-Territory Confusion

When we mistake the map for the territory:

Confusion: "The tests pass, so the code works"
Reality: Tests are a map of expected behavior, not the territory of all behavior

Confusion: "The architecture diagram shows this is simple"
Reality: The diagram omits error handling, edge cases, and race conditions

Confusion: "Our metrics show users are happy"
Reality: Metrics measure what we chose to measure, not satisfaction itself

4. Abstraction Leakage

Even good abstractions eventually break:

Abstraction: "The network is reliable"
Leak: Timeout, partition, packet loss

Abstraction: "Memory is infinite"
Leak: OOM, cache eviction, GC pause

Abstraction: "The database is ACID"
Leak: Connection pool exhaustion, replication lag

The Map-Territory Alignment Process

Step 1: Identify Your Maps

List all representations you're relying on:

Decision: Scaling the payment service
Maps in use:
- Architecture diagram (last updated 6 months ago)
- Performance benchmarks (from staging, not prod)
- Capacity planning spreadsheet (based on assumptions)
- Team's mental model (from building v1)

Step 2: Assess Map Freshness

For each map, determine:

MapLast UpdatedCreated FromDrift Risk
Arch diagram6 monthsOriginal designHigh
Benchmarks2 monthsStaging envMedium
Capacity sheet1 monthExtrapolationHigh
Mental model2 yearsBuilding v1Very High

Step 3: Check Correspondence

For critical maps, verify against territory:

Test: Does the architecture diagram match the code?
Method: Trace a request through actual code, compare to diagram

Test: Do benchmarks reflect production?
Method: Run production traffic sample through benchmark setup

Test: Do metrics capture what matters?
Method: Interview users, compare their experience to metric story

Step 4: Identify Missing Maps

What aspects of the territory have no map?

Existing maps: Sequence diagrams, API specs, test coverage
Missing maps:
- Failure modes and recovery paths
- Implicit dependencies
- Performance under contention
- Operational runbooks

Step 5: Calibrate Confidence

Adjust trust in maps based on verification:

Map: Test suite
Verification: Tests pass, but manual testing found 3 bugs
Calibration: Tests cover happy path, not edge cases
Action: Add edge case tests, reduce confidence in "green = good"

Map-Territory Mismatches by Domain

Documentation vs. Code

Map: README says "run npm install"
Territory: Requires Node 18+, specific npm version, env vars
Mismatch: Documentation abstracts away prerequisites

Verification: Try setup from scratch on clean machine
Fix: Document actual requirements, automate verification

Specs vs. Implementation

Map: Spec says "API returns user object"
Territory: Sometimes returns 404, sometimes 500, sometimes times out
Mismatch: Spec describes happy path only

Verification: Test error cases, edge cases, failure modes
Fix: Spec error responses, add contract tests

Metrics vs. Outcomes

Map: "DAU increased 20%"
Territory: Users signing up but churning within a week
Mismatch: DAU doesn't capture retention quality

Verification: Add cohort retention, engagement depth metrics
Fix: Choose metrics closer to actual business outcomes

Estimates vs. Reality

Map: "This will take 2 weeks"
Territory: Took 6 weeks due to unforeseen complexity
Mismatch: Estimate was based on mental model, not investigation

Verification: Time-box investigation before estimating
Fix: Add uncertainty buffers, track estimate accuracy

Mental Models vs. Systems

Map: "The cache makes reads fast"
Territory: Cache has 30% hit rate, most reads hit DB
Mismatch: Mental model assumed better cache performance

Verification: Measure actual cache hit rates
Fix: Update mental model, improve caching strategy

Map Quality Indicators

Signs of a Good Map

  • Explicitly states what it omits
  • Has a clear purpose and audience
  • Recently verified against territory
  • Includes uncertainty ranges
  • Acknowledged as a model, not truth

Signs of a Dangerous Map

  • Treated as complete truth
  • No update mechanism
  • Created by someone who never saw the territory
  • Optimistic without error cases
  • No validation feedback loop

Integration with Systems Thinking

Map-Territory thinking complements systems thinking:

Systems Thinking asks: What are the feedback loops and emergent behaviors?
Map-Territory asks: Is my systems diagram actually capturing those dynamics?

Combined approach:
1. Draw the system map (feedback loops, stocks, flows)
2. Verify: Does measured behavior match predicted behavior?
3. Iterate: Where does the map fail? What's the territory really doing?
4. Update: Refine the map or accept its limitations

Verification Checklist

  • Listed all maps/models being relied upon
  • Assessed freshness of each map
  • Identified highest-risk map-territory gaps
  • Verified at least one critical map against reality
  • Acknowledged what the maps don't capture
  • Calibrated confidence based on verification results
  • Documented map limitations for others

Key Questions

  • "What representation am I trusting here?"
  • "When was this model last verified against reality?"
  • "What does this abstraction hide from me?"
  • "How would I know if this map is wrong?"
  • "What would I see if I looked at the territory directly?"
  • "Who created this map, and did they see the actual territory?"
  • "What happens in the territory that this map can't represent?"

Korzybski's Reminders

  1. The map is not the territory — The word "water" won't quench thirst
  2. The map doesn't cover all the territory — No model is complete
  3. The map is self-reflexive — We can make maps of maps (meta-models)

Practical Mantras

  • "All models are wrong, some are useful" — George Box
  • "The menu is not the meal"
  • "The org chart is not the organization"
  • "The test suite is not correctness"
  • "The metric is not the goal"
  • "The estimate is not the timeline"

When the map and territory diverge, update the map or change your navigation—but never insist the territory is wrong because your map says so.

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.