prove-a-procedure-on-a-fixturelisted
Install: claude install-skill damson/hard-won-skills
# Prove a procedure on a fixture
Documentation that ships commands is untested code with a readership. Nothing
compiles it, no suite runs it, and its failures are silent in the worst
direction: a step that errors is discovered immediately, while a step that
answers *confidently and wrongly* is followed. Reading it is not verification.
The reader is not going to read it; they are going to run it.
A fixture is cheap, and it is the only thing that separates a procedure that
works from one that reads as though it does.
## Procedure
1. **List the cases the text claims to handle, in its own words.** Quote the
claim. "Classifies every dirty path" is a list: modified, deleted, renamed,
untracked, already-landed. A claim you cannot turn into cases is too vague to
verify, and that is itself the finding.
2. **Add the awkward cases the prose implies but never names.** These are where
confident wrongness lives, and each one is a real defect found this way:
| Shape | What it breaks |
|---|---|
| a path containing a space | quoting, and any `read` that splits on it |
| a path beginning with `-` | every command that parses it as an option |
| a symlink | tools that follow it and compare the wrong thing |
| a binary file | line-based logic that reports zero differences |
| a mode-only change | byte comparisons that call it unchanged |
| an empty result | loops that treat "nothing" as "done" |
3. **Build one throwaway fixture holding all of them**, ou