dog/fuzz/NEIL.c — a six-property harness over NEILCleanup/NEILShift/ NEILCanon (reconstruction, token balance, hygiene, substantive-EQ preservation, splice canon, shift idempotence) — is orphaned: when NEIL moved to dog/ (DOG-002) graf/fuzz dropped its NEILfuzz target, the copied source never entered dog/fuzz/CMakeLists.txt, and it still includes graf/JOIN.h (JOINfile/JOINTokenize/JOINFree) which does not exist in libdog. It silently doesn't build anywhere. Method: Issues.
beagle/graf/fuzz/CMakeLists.txt:17 records the relocation; the beagle tree has the same unbuilt copy under dog/fuzz/NEIL.c.{toks,hashes}; dog/tok/TOK.h (TOKLexer) + the DIFF u64 hashing cover that locally.NEILfuzz builds in dog/fuzz/ (libdog standalone, no graf/) and runs; all six property checks preserved verbatim.graf/JOIN.h dependency with a local fuzz-file helper (or a dog-level equivalent if one already exists — check INDEX.md first).NEIL.c/BRAM.c algorithm edits: a property violation found is its own ticket, linked here (per todo.mkd). DOG-016 tracks a known NEILShift bound issue — cross-link, don't fix here.NEILfuzz; confirm it links against dog + abc-core.~/src/DOG-020, UNLANDED. The only NEIL.c change is the JOIN-block swap: local JOINfile + JOINTokenize (TOKLexer + tok32Pack + RAPHash into heap u32b/ u64b) — all six property checks byte-identical to the original (orchestrator diffed against the orphan copy to confirm).NEILCleanup is invoked directly (fuzz harness AND WEAVE.c:448), never via call(), so its 5 a_carve scratches leak into the caller's frame; the FUZZ macro never rewinds BASS between iterations, the 1 GB arena fills (a_carve returns BNOROOM mid-pipeline and the early-return leaves a malformed EDL (zero-len EQ). Fresh-process replay = empty arena = clean, hence the heisenbug. Fix in NEIL.c (+11 lines): NEILCleanup snapshots the BASS data slice at entry and rewinds on both returns — the exact call() idiom from PRO.h. Orchestrator-verified: campaigns clean, RSS flat CMakeLists.txt now defines the WITH_ASAN/WITH_FUZZ flag blocks inside the standalone guard (verbatim beagle root), so plain -DWITH_FUZZ=ON -DWITH_ASAN=ON links all five fuzz targets standalone — the cache-var workaround is obsolete. Beagle-child mode untouched by construction (guard is false there).a_carve's own failure path bypasses the new restore (benign once the arena stops filling).