minimalismlisted
Install: claude install-skill tmj-90/gaffer
# Minimalism — least code that fully works
Modelled on [ponytail](https://github.com/DietrichGebert/ponytail), which measures
~54% less code while keeping every safety property. The goal is the *smallest correct
delivery*: fewer tokens, less code, fewer moving parts — never fewer guarantees. You
still satisfy every acceptance criterion in full; you just refuse the scope, layers,
and abstractions the ticket didn't ask for.
This is a lens, not a stage. Apply it while you implement (alongside `plan-change` and
whatever build skill the ticket needs), and confirm it in `self-review` before submitting.
## The four questions (ask in order, stop at the first that resolves it)
1. **YAGNI — does this need to exist at all?** Question the task before writing it.
Delete speculative code paths, config knobs, options, and "future-proofing" nobody
asked for. The cheapest line is the one you don't write. If a whole file/class/flag
isn't required by an AC, it isn't in scope.
2. **Standard library before custom code.** Reach for what the language already ships
(built-in collections, string/date/JSON utilities, iterators) before hand-rolling it.
Don't reimplement what `Array`/`Map`/`itertools`/`stdlib` already does correctly.
3. **Native platform features before a new dependency.** Prefer what the runtime,
framework, or browser already provides over adding a package. A new dependency is
debt (supply chain, CVEs, build weight) and in this factory needs human approval
a