
Principle Minimize Reader Load
- 409 installs
- 2.5k repo stars
- Updated August 5, 2026
- cursor/plugins
Before merging or publishing code, reshape diffs so reviewers grasp intent quickly without decoding noise, indirection, or oversized changes.
About
Guides authors and agents to minimize reader cognitive load: write code and diffs so intent is obvious on first pass, reduce indirection and incidental edits, and structure changes so reviewers can approve confidently without reconstructing hidden reasoning.
- Prefer clear naming and structure
- Shrink cognitive jumps per file
- Order changes for narrative flow
- Remove incidental churn
- Make intent obvious in diffs
Principle Minimize Reader Load by the numbers
- 409 all-time installs (skills.sh)
- Ranked #258 of 1,352 Code Review & Quality skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/cursor/plugins --skill principle-minimize-reader-loadAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 409 |
|---|---|
| repo stars | ★ 2.5k |
| Last updated | August 5, 2026 |
| Repository | cursor/plugins ↗ |
What it does
Before merging or publishing code, reshape diffs so reviewers grasp intent quickly without decoding noise, indirection, or oversized changes.
Files
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: 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.
- Shrink state scope: prefer pure functions (returns over mutations), locals over fields, fields over module state, and module state over globals. Derive instead of sync.
- Name the invariant at the boundary, not in every consumer, so the reader learns it once.
- Before adding a layer or a piece of state, ask: does this reduce reader load somewhere else by at least as much?
The test: Can a new reader answer "where does X come from?" and "what can change X?" in under 30 seconds? If not, cut layers or cut state.