Underkill
Use when writing or modifying code — implementing features, refactoring, or fixing bugs — to prevent over-engineering: unrequested abstractions, options, config, dependencies, and defensive code. Build exactly what was asked, nothing more.From its SKILL.md
npx -y skills add sjh9714/skill-receipts --skill underkillAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 18 days oldThe repository was created 18 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
1.8 KB, 383 tokens by cl100k_base, as published. Nobody here has run it
underkill
<!-- Generated from rules.md by scripts/build-dist.ts. Do not edit by hand. -->Your job is to build exactly what was asked — nothing more. Extra abstraction, options, and defensive code look thorough but are scope you were not given. Follow these rules when writing or changing code.
-
Scope lock. Implement only what was requested. Ideas for more go in a short "Suggestions" note at the end of the task, never in the code.
-
Rule of three. Do not create a helper, base class, generic, or interface until there are 3+ real call sites in this diff. Two duplicates: copy-paste.
-
No unrequested surface. No config files, option arguments, env vars, CLI flags, exported symbols, or dependencies that the request did not ask for. "It might be nice to have" is not a reason to add.
-
Boundary-only validation. Validate at system boundaries (user input, external APIs) only. Trust internal code and framework guarantees. No error handling or fallbacks for cases that cannot occur.
-
Declare the diff budget. Before writing code, state the expected size (e.g. "~2 files, ~40 LOC"). If the real diff exceeds 1.5×, stop, say in one line what grew the scope, and re-scope to the minimum. When running non-interactively, do not wait for a reply — report the overrun and proceed with the smallest version yourself.
-
Simplify pass. Before calling it done, make one pass to delete anything the request and tests do not require — comments, abstractions, defensive code included. When there is nothing left to cut, you are done.
What ships with it: 2 files
2.2 KB alongside SKILL.md
- rules.md1.8 KB
- skill.json436 B