mirror of
https://github.com/pbakaus/impeccable.git
synced 2026-09-13 06:36:26 +03:00
Records stdout/stderr/exit/files for every impeccable verb over a fixed corpus and replays them against an alternate implementation. Adds a loader hook that captures per-function call vectors from the pure engine modules. Prepared with AI assistance (Claude Code).
Oracle: behavior goldens for every impeccable verb
lib.mjs runs each case (verb + args + staged workspace + stdin) against an
implementation and captures stdout, stderr, exit code, and named files, with
machine-specific paths and timestamps normalized.
record.mjswrites goldens from the JS scripts (skill/scripts,cli/bin).run.mjsreplays the corpus against$IMPECCABLE_BIN(or--jsfor a self-check) and diffs. Byte-equal is the bar;DELTAS.mdlists reviewed exceptions.cases/*.mjsdefine the corpus (default export: array or async function returning an array).workspaces/holds project fixtures that are copied to a temp dir per run, so cases can write freely.
Adding a case: append to the matching cases/*.mjs, run
node tests/oracle/record.mjs <prefix>, commit the golden.
Verb names are the binary's subcommands. cli-help and cli-version map to
impeccable --help / --version.