About reducing-entropy
reducing-entropy is a software development skill that favors a smaller final codebase over minimizing the immediate change. It requires loading a reference mindset first, then comparing code before and after and looking for deletions.
Key features
- 01Measure changes by final code size
- 02Load a reference mindset first
- 03Look for code that can be deleted
- 04Flag extra code from flexibility or separation
- 05Identify cases where the principle does not apply
Use cases
- 01Assess whether a feature can be solved with less code
- 02Review a refactor for opportunities to delete code
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ joshuadavidthomas/ agent-skills --skill reducing-entropyAfter installing, type/reducing-entropyin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
adding-reference-mindsets.mdreferences/data-over-abstractions.mddesign-is-taking-apart.mdexpensive-to-add-later.mdsimplicity-vs-easy.mdDetails
From the project READMEReducing Entropy
More code begets more code. Entropy accumulates. This skill biases toward the smallest possible codebase.
Core question: "What does the codebase look like after?"
Before You Begin
Load at least one mindset from references/
- List the files in the reference directory
- Read frontmatter descriptions to pick which applies
- Load at least one
- State which you loaded and its core principle
Do not proceed until you've done this.
The Goal
The goal is less total code in the final codebase - not less code to write right now.
- Writing 50 lines that delete 200 lines = net win
- Keeping 14 functions to avoid writing 2 = net loss
- "No churn" is not a goal. Less code is the goal.
Measure the end state, not the effort.
Three Questions
1. What's the smallest codebase that solves this?
Not "what's the smallest change" - what's the smallest result.
- Could this be 2 functions instead of 14?
- Could this be 0 functions (delete the feature)?
- What would we delete if we did this?
2. Does the proposed change result in less total code?
Count lines before and after. If after > before, reject it.
- "Better organized" but more code = more entropy
- "More flexible" but more code = more entropy
- "Cleaner separation" but more code = more entropy
3. What can we delete?
Every change is an opportunity to delete. Ask:
- What does this make obsolete?
- What was only needed because of what we're replacing?
- What's the maximum we could remove?
Red Flags
- "Keep what exists" - Status quo bias. The question is total code, not churn.
- "This adds flexibility" - Flexibility for what? YAGNI.
- "Better separation of concerns" - More files/functions = more code. Separation isn't free.
- "Type safety" - Worth how many lines? Sometimes runtime checks in less code wins.
- "Easier to understand" - 14 things are not easier than 2 things.
When This Doesn't Apply
- The codebase is already minimal for what it does
- You're in a framework with strong conventions (don't fight it)
- Regulatory/compliance requirements mandate certain structures
Reference Mindsets
See references/ for philosophical grounding.
To add new mindsets, see adding-reference-mindsets.md.
Bias toward deletion. Measure the end state.