Apply when reviewing or shaping code that's hard to trace. Count layers between question and answer, and hidden state in the reader's head; collapse one-caller wrappers and shrink mutable scope.
Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.
What the file says
# Minimize Reader Load
Maintainability is the work a reader must do to understand code. Track two axes:
1. **Layers to trace.** How many indirections sit between the question and the answer.
2. **State to hold.** How much hidden or mutable context the reader must keep in their head.
**Why:** Code is read far more than it is written. LOC, cyclomatic complexity, and "clean architecture" are proxies. Reader load is the thing that matters. The two axes are independent. A flat file with 50 globals can be as hard to reason about as a 6-layer adapter stack. Guard both. This is the human analog of [Guard the Context Window](../principle-guard-the-context-window/SKILL.md): working memory is finite for readers too.
**The pattern:**
- **Collapse layers** that do not earn their keep: wrappers with one caller, adapters with no second implementation, indirection introduced for a future that never came. Inline them.
- **Make adjacent layers change the abstraction.** A layer that repeats the same methods and arguments adds reader load without compression. Collapse pass-through layers.
…
The line at the top of this page pins the label git:20260825.847374d, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.
GET https://markdownregistry.com/api/v1/artifacts/art_gofmyg2i3lijgusu
GET https://markdownregistry.com/api/v1/resolve?ref=edbertchan/catstack/principle-minimize-reader-load
GET https://markdownregistry.com/api/v1/blob/04bb6b1e6755bcfe63339597db5a6bc6dee9972d7f45f28978669a20232cff91
Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.
edbertchan/catstack · corpus/skills/cat-mode/SKILL.md · Edbert's personal working conventions, mined from real session history across his projects. Use when Edbert asks to…
edbertchan/catstack · corpus/skills/principle-assert-invariants-not-last-bug/SKILL.md · Apply after a bug ships past review or a passing grade/check: assert the general class of failure instead of patching…
edbertchan/catstack · corpus/skills/principle-bind-to-named-inventory/SKILL.md · Apply after an audit, scoring review, or a request for a "real classifier" / "less arbitrary weights" when existing…
edbertchan/catstack · corpus/skills/principle-build-the-lever/SKILL.md · Apply to any non-trivial work, not just bulk work: edits, migrations, analyses, checks. Build the tool that does it or…
edbertchan/catstack · corpus/skills/principle-encode-lessons-in-structure/SKILL.md · Apply when you catch yourself writing the same instruction a second time, or notice a recurring correction. Encode the…
edbertchan/catstack · corpus/skills/principle-experience-first/SKILL.md · Apply when product, UX, or feature-scope tradeoffs come up. Choose user delight over implementation convenience; ship…
edbertchan/catstack · corpus/skills/principle-fix-root-causes/SKILL.md · Apply when debugging. Trace each symptom to its root cause and fix it there; reproduce first, ask why until you reach…
edbertchan/catstack · corpus/skills/principle-flag-your-own-corrections/SKILL.md · Apply whenever you are about to admit fault in any wording — a fact, number, claim, or check you already stated turns…
edbertchan/catstack · corpus/skills/principle-generalize-from-rejection/SKILL.md · Apply when a mechanical gate — a lint, validator, blocked-command guard, or CI check — rejects your output for the same…
cursor/plugins · harness/pstack/claude-code/skills/principle-minimize-reader-load/SKILL.md · Apply when reviewing or shaping code that's hard to trace. Count layers between question and answer, and hidden state…
cursor/plugins · pstack/skills/principle-minimize-reader-load/SKILL.md · Apply when reviewing or shaping code that's hard to trace. Count layers between question and answer, and hidden state…
michael-denyer/pstack-claude · plugins/pstack/skills/principle-minimize-reader-load/SKILL.md · Apply when reviewing or shaping code that's hard to trace. Count layers between question and answer, and hidden state…
backnotprop/pstack · skills/principle-minimize-reader-load/SKILL.md · Apply when reviewing or shaping code that's hard to trace. Count layers between question and answer, and hidden state…
j-star-films-studios/vibecode-protocol-suite · assets/.agent/skills/engineering-principles/minimize-reader-load/SKILL.md · Apply when reviewing or shaping code that's hard to trace. Count layers between question and answer, and hidden state…
creedants/pstack-t3 · skills/principle-minimize-reader-load/SKILL.md · Apply when reviewing or shaping code that's hard to trace. Count layers between question and answer, and hidden state…
arjitj2/open-pstack · plugins/pstack/skills/principle-minimize-reader-load/SKILL.md · Apply when reviewing or shaping code that's hard to trace. Count layers between question and answer, and hidden state…
painhardcore/pstack · .opencode/skills/principle-minimize-reader-load/SKILL.md · Apply when reviewing or shaping code that's hard to trace. Count layers between question and answer, and hidden state…