parse-dont-validate
Installation
SKILL.md
Parse, Don't Validate
Do not merely check data and then throw the proof away. Parse it into a type that carries the proof.
Workflow
-
Find validators that return
bool,void, or throw while leaving the original untyped value in circulation. -
Define a target type whose construction proves the invariant.
-
Replace validation calls with parser or smart-constructor calls that return
Result,Either, option, or exceptions as appropriate for the language. -
Change downstream APIs to accept the parsed type.
-
Remove redundant re-validation.
Checks
- A parsed type should make invalid states unrepresentable.