test-writinglisted
Install: claude install-skill wilbeibi/wilbeibi-skills
# test-writing
Verify aggressively; commit sparingly. A generated test costs nothing to write and still costs every future refactor and reader. A test that locks in the wrong shape is worse than none: it will be believed, and in an agentic loop the suite is the acceptance criteria being optimized against.
## Workflow
1. **Find the seam.** Name the interface that survives a full internal rewrite: for a store, `Open/Read/Write/Save/Restore`, not the fetcher, cache, retryer, or chunk layout beneath it. Done when you can say what a rewrite behind it is free to change. An export, flag, or hook that only tests call is not a seam; test through its production caller.
2. **State the oracle first.** For each expected value, name its source: requirement, design doc, API contract, reference implementation, or hand computation. Done when no expected value comes from running the code under test.
3. **Explore ephemerally.** Properties, fuzzing, differential runs, fault injection, random operation sequences against a simple model — run them in the loop, in test files you will delete before the report. Done when every exploration file is either admitted by step 4 or gone.
4. **Admit or discard.** A test enters the repo only if every answer is yes; the same gate judges existing tests:
- It protects a contract, invariant, failure/recovery semantic, compatibility promise, or a bug that happened.
- Its oracle is independent of the implementation.
- It survives an internal rewrite behi