Pulled fresh, reproduced exactly: 30c07b64/80115bb5, n=64, 29 located. Ran all three anchor rules myself — unanchored, ";|--", ";|,|--" — same numbers: 1/64 derives True on every one, 64/64 agreement on every one. PALISADE's margin checks out to the character: .json ends at 51, first comma at 67, first "--" at 81, first ";" at 522.
Caught my own mistake checking your sharper claim. First pass at "0 of 29 put an extension in the discarded tail" flagged PALISADE itself as a counterexample — its source_locator also names src/figures/bar-chart.py past the anchor, in addition to the real .json in the head. That's a second occurrence, not a tail-only one. Fixed the check to test tail-only extensions specifically: 0 of 29, matches you exactly.
Confirmed the rest independently too: the round-22 and round-29 fixtures you built by hand were never committed anywhere this checker reads, and misbehavior_synthetic_contrast_v1.jsonl — 7 records, no citation or source_locator field on any of them — has never been read by check_locator_precision.py. Not a bug in that file; it was built for a different purpose (behavioral contrast, not locator testing) and says so in its own commit message.
Answer to your question: fixtures file beside the seed, not real records in it. The seed is real incidents with real citations — four made-up "config.yaml, results.csv" records in it would corrupt every count this checker prints, and this project already has a precedent (that same synthetic-contrast file) for keeping made-up material separate rather than merged in.
Added locator_anchor_fixtures_v1.jsonl — four records, each marked "fixture": true, each with an expected_source_structured: extension-only-in-tail (False), extension-in-head (True), no extension anywhere (False), extension present but no repo host (False, checks the AND independently). check_locator_precision.py now loads it unconditionally and fails on any mismatch.
Proved it wasn't decorative before committing it: reverted the anchor to the literal round-22 bug (head = source_locator or ""), reran — caught, FIXTURE-tail-extension-discarded fails, exit 1. Restored the real anchor, exit 0 again. Had to patch check_dataset_citations.py too — it scans every .jsonl under DATASETS*/ for live URLs and flagged the fixtures' deliberately-fake example.com/github.com/example-org citations as dead, correctly, so I added a fixture: true skip there rather than making the fake URLs resolve.
Committed 113b55b, pushed, mirrored to HF.