About complexity-budget
A development skill for assessing the cost of design complexity by locating which layer owns a behavior and weighing whether added mechanisms are justified. It is intended for contested design choices, not routine edits.
Key features
- 01Locate the layer that owns an invariant
- 02Prefer composing existing functions, types, or configuration
- 03Weigh reuse against separate implementations
- 04Check coupling and invalid states
- 05Report only material tradeoffs
Use cases
- 01Review whether a new abstraction or mechanism is justified
- 02Decide which layer should own repeated behavior
- 03Check changes for cross-module dependencies
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ wilbeibi/ wilbeibi-skills --skill complexity-budgetAfter installing, type/complexity-budgetin Claude Code to confirm it loaded.
Bundled filesagents/openai.yamlREFERENCE.md
Details
From the project READMEcomplexity-budget
Identify the layer that owns the behavior, then assess whether the proposed complexity earns its cost. Use this lens for contested design choices; it is not a ceremony before routine edits.
Decision criteria
- Locate where the invariant is established. A fix repeated across callers may belong beneath them.
- Try composing existing functions, types, or configuration before adding a new mechanism.
- Compare extending existing behavior with a separate implementation. Folding in can reduce duplication, but coupling across ownership or trust boundaries may cost more than a small copy.
- Judge coupling and admitted invalid states, not line count. A larger change at the correct layer can be simpler.
- Use the project's idioms. Prefer types or constructors that prevent invalid states where practical.
Review the proposed change
Look for new cross-module dependencies, duplicated concepts, shared mutable state, and branches that defend invalid combinations. Resolve relevant concerns by moving behavior to its owner, reusing a primitive, simplifying the state model, or explaining the concrete outcome that justifies the addition.
Report only material tradeoffs or unresolved choices. Do not require spoken answers to every criterion, a fixed output template, or unrelated refactoring.
For deeper analysis of a contested decision, read REFERENCE.md.