The rules a system must never break usually live in one engineer's head. polynv gets them out — not by asking you to write formal logic, but by asking you to judge concrete scenarios it generates, then testing whether your answer actually holds under mutation.
The rules your system must never break live in one engineer's head, and nobody can write them down as predicates from a blank page.
An invariants.mjs a human confirmed line by line, and a grade for how many real defects it catches — so every other gate has something worth measuring against.
What goes in, the stages it runs, what it leaves behind. Step through the stages to trace the run.
An interview the machine leads, grounded in the system's own state space.
Drawn from the state machine's own vocabulary — terminal states, typed fields, effect kinds — so every candidate is grounded in what the system actually does.
Each candidate is checked against deliberately broken variants of the machine, so you're judging whether a rule catches real defects, not whether it sounds right.
polynv proposes, you confirm, reject, or refine; the result is an append-only ledger of intent, not a black-box guess.