Verification pipeline ยท Sheet 01
Make AI agents prove their code works. hyperfixer runs your project's quality gates in cost order, cheapest first, fail-fast, and produces a machine-readable verdict that any coding agent consumes to fix its own mistakes.
โ lint (67ms) โ typecheck (552ms) โ typetest (17ms) โ unit (120ms) โ pbt (38ms) โ e2e (814ms) OK, all gates passed in 1612ms
Agent-written code fails in layers, and each layer needs a different detector. Running everything on every change is wasteful; running only unit tests misses whole failure classes.
| Layer | Catches | Tool |
|---|---|---|
| Lint | Style drift, suspicious patterns | Biome |
| Typecheck | Type errors | tsc, strict |
| Type tests | Wrong public API types | expect-type |
| Unit tests | Broken behavior | bun test |
| Property-based | Edge cases nobody thought to write | fast-check |
| Mutation | Tests that pass but assert nothing | Stryker, opt-in |
npm i -D hyperfixer # or bun add -d hyperfixer, deno add npm:hyperfixer bunx hyperfixer init # detects your stack, writes hyperfixer.config.json bunx hyperfixer doctor # verify toolchain bunx hyperfixer run # run the pipeline bunx hyperfixer install-hooks # enforce on git commit and push
hyperfixer fix --quiet || hyperfixer hint
=> [typecheck] src/service.ts:42, Type 'string' is not assignable to type 'number'. (+3 more)
Exit codes are a strict contract: 0 verified, 1 the code is wrong, 2 the setup is wrong, 3 gate infrastructure failed (do not edit code). Agents branch on the exit code alone, fix clears the autofixable noise, and hint gives the exact file and line to fix first.
Gates with equal cost run in parallel. Gates that declare inputs are cached by input hash: an unchanged project re-verifies in milliseconds.
โ lint (0ms), cache hit โ typecheck (0ms), cache hit โ e2e (0ms), cache hit OK, all gates passed in 2ms