Run this before trusting the skill in a real loop. The structural checks take a minute; the paper test takes ten and finds the gaps the structural checks cannot.
- Name is a verb-first gerund in kebab-case and matches its directory name
- Description starts with "Use when" and contains zero workflow summary
- Core principle is one sentence and mentions the iteration bound, the ledger, and the exit check
- When NOT to use exists and each bullet says what to do instead
- The ledger has a named file, a field list, and an unconditional iteration-1 bootstrap
- Every counter any exit condition reads appears in the ledger field list
- Every counter has a written reset rule (what resets it, and when)
- Iteration step 3 (or earlier) explicitly says to check the exit table, and the table heading says which step checks it
- The work step says FIRST item and names the deterministic order
- Exit table covers all four families: success, stall, regression, budget
- Regression action names the exact undo command, not just "revert"
- Stop-and-report actions say what the report contains
- The example includes a budget and the sample ledger entry shows every schema field
- Every term of art (tick, sweep, lease, certify) is defined at first use
Hand the skill file to a fresh agent (one with no other context) and ask it to answer scenarios using only the skill text, citing sections. No commands, paper only. Minimum scenario set:
- A condition matching the stall or repeated-failure exit, PLUS a tempting new piece of work in the same iteration. The agent must stop, not work.
- The regression condition. The agent must name the exact undo and what its report says.
- Iteration 1 with no ledger file. The agent must describe the bootstrap without inventing anything.
- An input that tempts batching (several broken items at once). The agent must pick exactly one, by the stated order.
- Ask where every counter in the exit table is stored. The answer must be the ledger for all of them.
Then ask the agent for ambiguities, undefined terms, and anything it needed that the text did not provide. Fix what it found, rerun the failed scenarios, and repeat until every scenario gets one unambiguous answer.
A scenario the agent resolves only by good judgment, rather than by the text, is a gap: the next agent may have different judgment at 2am.
- Run one real iteration with the budget set to 1 and watch it: bootstrap, observe, exit check, one unit of work, ledger entry
- Confirm the ledger entry matches the schema in the skill
- Kill the loop mid-iteration, restart it, and confirm iteration 2 resumes from the ledger without repeating finished work