Skip to content

docs(agents): add a verification fidelity ladder - #137

Merged
GenericJam merged 1 commit into
masterfrom
docs/verification-fidelity-ladder
Sep 6, 2026
Merged

docs(agents): add a verification fidelity ladder#137
GenericJam merged 1 commit into
masterfrom
docs/verification-fidelity-ladder

Conversation

@GenericJam

Copy link
Copy Markdown
Owner

What

Six rungs from static analysis to a published artifact, with the two rules that
outrank them: never substitute a lower rung silently, and verify effects rather
than exit codes.

Rungs 4 to 6 are the ones that have cost real time here — the emulator pool that
was uniformly Android 13 and so could not see an API-33 crash on Android 11, the
release path that links plugin NIFs differently from debug, and the debug
defaults that masked a crash until the app was installed from Play.

Why

Borrowed from GenericJam/insider, which
gates agent work on a named fidelity ladder plus one rule: a lower rung may not
stand in for a higher one.

The principle was already here in pieces — "verify effects, not exit codes" in
the agentic guide, the deliberate fast/slow split in .githooks/pre-push — but
there was no named ladder an agent could point at, and therefore no vocabulary
for the sentence that matters: "I verified at rung 3; rung 4 was unavailable
because no device was attached."
Today an agent that runs mix test and reports
success is not lying, and that is the problem.

Every rung cites something that actually got past the rung below it, so the list
reads as history rather than process.

Evidence

Docs only — no code paths touched. .githooks/pre-push ran clean on push
(format, Credo --strict with ex_slop, compile --warnings-as-errors).

Not included

Deliberately left for a separate discussion rather than bundled here:

  • pre-commit with insider's check-test-pairing co-change gate
  • a PR template with an evidence block, and CODEOWNERS over AGENTS.md,
    .githooks/ and decisions/
  • insider's commit-msg Conventional Commits hook — not recommended as
    written
    : its regex rejects 30 of the last 40 subjects on master, including
    every Bump to x.y.z release commit and the MOB-nnn: style

Six rungs from static analysis to a published artifact. Rungs 4 to 6 are the
ones that have cost real time: the emulator pool that was all Android 13, the
release path that links plugin NIFs differently, and the debug defaults that
masked a Play-install crash.
Insider (GenericJam/insider) gates agent work on a named fidelity ladder and
a rule that a lower rung may not stand in for a higher one. The principle was
already here in pieces — "verify effects, not exit codes" in the agentic guide,
the fast/slow split in .githooks/pre-push — but there was no named ladder an
agent could point at, and so no vocabulary for "I verified at rung 3, rung 4
was unavailable."
Every rung cites something that actually got through the rung below it, so the
list reads as history rather than process.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@GenericJam
GenericJam merged commit 71aed57 into masterSep 6, 2026
4 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@GenericJam