verification evidence

why

green CI and a successful build prove the edit compiles, not that the changed boundary works. a type guard fix that passes typecheck may still miss one branch at runtime; a migration that succeeds locally may behave differently on the production schema.

rule

completion is evidence that the changed boundary works, not that an edit was made. choose the narrowest meaningful checks, then run broader checks before a repository-wide claim.

evidence order

  1. parse or generate the changed contract.
  2. typecheck the owner and direct consumer.
  3. build user-facing or shared outputs.
  4. exercise a narrow runtime smoke path when behavior changed.
  5. inspect the focused diff and git diff --check.

select the smallest proof that can falsify the claim

claimdirect evidenceevidence that is too weak alone
MDX/document contract is validparser/index rebuild and link/frontmatter inspectiona file existing on disk.
generated client matches its sourcegenerator run plus generated-diff inspectionediting generated files until typecheck passes.
package contract remains consumableowner and direct-consumer typecheck/buildtypechecking only the producer.
user flow works after releaselive route/flow probe and authoritative side effectsuccessful deploy command or health endpoint.
a fix solved a bugreproducer fails before and passes after the root-cause changean unrelated broad test suite.

decision process

  • start with the claim, ask what observation could prove it false, run that check first.
  • broaden only when the boundary has consumers, generated artifacts, shared runtime behavior, or a deployment effect the narrow check cannot cover.
  • never let a long green command list substitute for the one missing proof.

evidence record

  • record together: command or interaction, environment, observed output, scope, remaining unverified boundary.
  • a static check supports a source claim, not a live claim.
  • a live happy path supports one outcome, not every authorization or failure branch.

good and bad

bad

claim: the fix works
evidence: pnpm typecheck && pnpm build && pnpm test # all green
missing: the reproducer for the reported failure was never run
result: the bug ships; green checks substituted for the one proof

green CI never reproduces the reported failure; the one falsifying observation was never run, so a passing suite stands in for a proof it cannot provide, and nobody reopens the investigation until the next customer report for the same defect.

good

before: repro script fails on the pre-change build
change: root-cause fix applied at its owner
after: repro script passes on the rebuilt boundary
record: auth branches unverified by this proof — named, not hidden

the falsifying observation runs on both sides of the change, so the claim is grounded in behavior, not build status. naming the unverified boundary keeps the next reviewer from inheriting a completeness claim the evidence does not support.

do not

  • claim a deployment succeeded without live UAT.
  • add tests that only freeze incidental file structure.

search pages

go to any page