unrepresentable
Installation
SKILL.md
Unrepresentable
Make invalid states unrepresentable: move correctness from runtime checks into type design, so the compiler rejects bad states instead of code detecting them at runtime. Enums delete impossible states, newtypes delete mixed-up values, typestate deletes out-of-order calls.
This deletes precondition checks, never error handling. The operation itself can still fail — a function whose arguments are all unforgeable still returns a result.
Agent contract
At a type-design moment (new type, new public signature, new module boundary), before writing the implementation: