Start from a baseline, not from a draft
Anthropic's authoring guide asks for evaluations before extensive documentation. Run Claude on representative tasks without the skill and note where it fails, build three scenarios around those gaps, measure the baseline, then write only enough instructions to close them. That keeps the skill aimed at failures you saw rather than imagined ones, and leaves a baseline for every later edit.
Use a fresh session, and switch the skill off for the second run
The session must be fresh because context left over from writing the skill hides gaps in what got written down. In Claude Code, set a personal or project skill to "off" in skillOverrides for the second run; plugin skills are compared with claude plugin eval instead. The skill-creator plugin automates the loop, keeping test cases in evals/evals.json, running each in its own subagent and grading the result.
Test on each model, then watch how Claude reads it
A skill adds to a model, so the guide asks for a test on every model you plan to use: whether Haiku gets enough guidance, and whether Opus is told more than it needs. Then watch how Claude moves through the skill. A bundled file it never opens may be unnecessary or badly signposted, and one it reads every time may belong in SKILL.md itself.