principle-minimize-reader-load
GitHub旨在降低代码阅读负担,通过追踪间接层数和隐藏状态来优化可维护性。建议内联无用的包装器、缩小可变状态范围、优先使用纯函数,并在边界命名不变量,确保新读者能快速定位数据源和变化点。
Trigger Scenarios
Install
npx skills add sediman-agent/OpenSkynet --skill principle-minimize-reader-load -g -y
SKILL.md
Frontmatter
{
"name": "principle-minimize-reader-load",
"description": "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.",
"disable-model-invocation": true
}
Minimize Reader Load
Maintainability is the work a reader must do to understand code. Track two axes:
- Layers to trace. How many indirections sit between the question and the answer.
- 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.
Version History
- c9d8953 Current 2026-07-05 19:53


