← board

feature: run the IR fuzzer automatically whenever the project is otherwise idle

Motivation

tools/fuzz.sh (v1 landed, [[feature-ir-fuzzer]]) only produces value while it's running. It's cheap and time-boxed by design, but someone has to remember to kick it off. The obvious answer: run it automatically whenever nothing else is happening — spare cycles otherwise going to waste, on a project whose actual goal is "prove AST/IR correctness," not "compile any particular language."

What "idle" means, concretely, in this repo's workflow

This project already has a live signal for "is anyone actively working right now": the devdocs/progress/working/ folder is a live lock per devdocs/dev/parallel-tracks.md — a ticket sits there only while an agent is actively on it. So, conservatively:

Idle = working/ is empty (or contains only paused/parked tickets, not actively-being-worked ones) AND the working tree is clean AND local master is in sync with origin/master.

That's a deliberately conservative bar — the fuzzer competes for CPU (compiling + QEMU) and touches the same compiler binary other Track A work might be rebuilding, so it should never run alongside real work, only in the gaps.

Design

Explicit non-goals

Acceptance

Idle is detected correctly (doesn't fire while working/ has real in-progress tickets or the tree is dirty/unsynced); a triggered run is time-boxed and never overlaps with active Track A/B/C/D work; any finding lands in a low-noise staging spot rather than immediately becoming a ticket.

Log