The Vibe Coder's Bible
Chapter 37

The Safety Checklist

Start with hazards removed. End with attention deployed. Never reverse that order.

Chapter 37 - The Safety Checklist

Part: VIII - The Field Manual

Thesis

A safety checklist organized by the hierarchy of controls asks the right questions in the right order. Strongest controls first. Human attention last.

Key Line

Start with hazards removed. End with attention deployed. Never reverse that order.

What The Checklist Is For

A safety checklist is not a compliance form. It is a structured forcing function that surfaces the most common failure modes before they become production incidents.

The hierarchy of controls determines the order. Elimination and substitution questions come first because they prevent entire classes of failure. Engineering controls come next because they run automatically. Administrative controls confirm process ran. PPE questions are last because human attention is the most expensive and least reliable defense.

Answering the checklist honestly takes five minutes. An incident review takes five hours.

How To Use It

Three contexts call for the checklist: pre-commit (before crossing the commit boundary), pre-merge (before the PR is approved), and pre-deploy (before production).

Not every question applies at every stage. The column headers indicate where each question is required.

If any answer is “no” or “unknown,” pause. Do not proceed past that control level without either satisfying the question or explicitly accepting the risk. Accepted risk must be documented.

The Checklist

Elimination - Have Dangerous Capabilities Been Removed?

QuestionPre-commitPre-mergePre-deploy
Does this change give the agent access to any system it did not previously have access to?RequiredRequiredRequired
Are there credentials, secrets, or tokens in the diff?RequiredRequiredRequired
Does the agent’s scope now include production databases, payment systems, or user data it did not before?-RequiredRequired
Have unnecessary permissions been removed from any tool, API, or service?-RequiredRequired

Substitution - Are The Safer Alternatives In Use?

QuestionPre-commitPre-mergePre-deploy
Are staging environments used instead of production for agent experiments?RequiredRequired-
Are schema-validated tool interfaces used instead of raw string outputs?RequiredRequired-
Is the agent operating on a branch, not main?RequiredRequired-

Engineering Controls - Did The Automated Guards Fire?

QuestionPre-commitPre-mergePre-deploy
Do all unit tests pass?RequiredRequiredRequired
Do integration tests pass?-RequiredRequired
Does the type check pass with no errors?RequiredRequiredRequired
Does schema validation pass at all relevant boundaries?RequiredRequiredRequired
Does the CI pipeline pass end-to-end?-RequiredRequired
Are there no new lint errors?RequiredRequired-
If this touches a database, does the migration run cleanly and reversibly?-RequiredRequired

Administrative Controls - Did The Process Run?

QuestionPre-commitPre-mergePre-deploy
Is there a linked issue that defines the scope of this change?RequiredRequired-
Is the PR template complete with controls listed?-Required-
Has an agent handoff file been written if the session is ending?Required--
Is there an ADR for any significant architectural decision made in this session?-Required-
Is the CLAUDE.md updated if project constraints changed?RequiredRequired-
Is there a named on-call person for this deployment?--Required
Is the rollback procedure documented and tested?-RequiredRequired

PPE - Was Human Attention Applied Correctly?

QuestionPre-commitPre-mergePre-deploy
Has every generated file been read, not just summarized?RequiredRequired-
Has the diff been reviewed for behavioral change, not just syntactic change?RequiredRequired-
Can the reviewer explain what this code does and why it is structured this way?-Required-
Has the plausibility trap review been run (Ch 31)?RequiredRequired-
Is there a person who explicitly accepts ownership of this change?RequiredRequiredRequired

The Runtime Capability Checklist

Everything above governs generated code before it merges. A model running inside a shipped product needs its own checklist, run before a new capability goes live and reviewed periodically for capabilities already granted. The hierarchy still sets the order.

Elimination And Substitution - Is The Capability As Narrow As It Can Be?

QuestionRequired before granting
Can the model directly reach a consequential sink - a write, an executed action, a publish call - with nothing checking the proposal first?If yes, this must change before granting
Is the tool’s exposed capability narrower than what raw access to the underlying system would allow?Yes
Is there a reversible or compensating action for every operation this capability can perform?Yes, or the irreversible case is explicitly named and accepted

Engineering Controls - What Verifies The Proposal Before It Commits?

QuestionRequired before granting
Does a schema validate the proposal’s structure before anything downstream reads it?Yes
Does an authorization check run independently of what the model claims the caller may do?Yes
Does a domain validator check state legality - not just structure - against current, live state?Yes
For claims: is there a source-binding gate before the claim may become public?Yes, for any public-facing claim
For computation: does a deterministic engine produce the authoritative result, not the model?Yes, wherever a wrong number has consequence
Is authoritative randomness - dice, seeds, sampling used as game or simulation chance - owned by a named deterministic component, seeded, and logged?Yes, wherever the system needs typed randomness

Administrative Controls - Is There A Person And A Process?

QuestionRequired before granting
Is there a named person who can revoke this capability?Yes
Is there an approval record for granting this specific capability?Yes
Is there a staged or canary rollout plan for this capability’s first release?Recommended, required for high-consequence capabilities

PPE - What Does The Person Closest To The Output See?

QuestionRequired before granting
Does the user-facing surface disclose uncertainty where the model’s output has not been independently verified?Yes, wherever unverified content reaches a user
Is there a user-visible fallback if the model’s proposal is rejected?Yes

The Trace Requirement, Across All Tiers

QuestionRequired before granting
Is every proposal - accepted or rejected - recorded with enough detail to reconstruct what happened?Yes
Would a spike in the escape rate for this capability be noticed, and by whom?Yes

When To Override

The checklist can be overridden. Overrides must be documented.

Document: which question was overridden, what the risk is, who accepted the risk, and what the monitoring plan is if the risk materializes.

An undocumented override is not an override. It is a skip.

The Incident Review Addendum

After a production incident caused by an AI-generated change, run this addendum:

QuestionAnswer
Which checklist item, if answered honestly, would have flagged the failure?
Was that item present on the checklist that was run?
If present: why was the answer recorded as acceptable?
If absent: should it be added to the standard checklist?
What change to the checklist or process prevents recurrence?

The goal of the addendum is not blame. It is checklist improvement. The checklist should get better every time the system fails.

Practical Artifact - The Pre-Commit Minimum

For teams that cannot run the full checklist on every commit, this is the minimum:

- [ ] No secrets in the diff
- [ ] Agent ran on a branch, not main
- [ ] All tests pass
- [ ] Type check passes
- [ ] I have read every generated file, not just the summary
- [ ] I can explain what this code does
- [ ] There is a linked issue for this change

If any box is unchecked, do not commit. Fix the gap first.


Export

Copy this block into your CLAUDE.md, agent instructions, or project checklist.

Start with hazards removed. End with attention deployed. Never reverse that order.

vcb_chapter: 37
title: "The Safety Checklist"
key_line: "Start with hazards removed. End with attention deployed. Never reverse that order."
thesis: "A safety checklist organized by the hierarchy of controls asks the right questions in the right order. Strongest controls first. Human attention last."
checklist:
 - item: "Are there secrets or credentials in the diff?"
 protects: "against credential exposure in committed code"
 - item: "Does the agent operate on a branch, not main?"
 protects: "against unreviewed changes reaching the truth branch"
 - item: "Do all tests pass and does the type check succeed?"
 protects: "against logic errors and interface drift in generated code"
 - item: "Has every generated file been read, not just summarized?"
 protects: "against plausible-but-wrong output passing review"
 - item: "Is there a person who explicitly owns this change?"
 protects: "against diffuse responsibility and unowned failures"
 - item: "Is the rollback procedure documented and tested?"
 protects: "against unrecoverable production deployments"
  • No secrets in the diff - protects against credential exposure
  • Agent ran on a branch, not main - protects against unreviewed changes on main
  • All tests pass, type check passes - protects against logic errors and interface drift
  • CI pipeline passes end-to-end - protects against control gaps between local and CI
  • Every generated file has been read, not summarized - protects against plausible-but-wrong output
  • Reviewer can explain what the code does - protects against ownership gap
  • Linked issue defines scope - protects against undocumented scope creep
  • Rollback procedure documented and tested - protects against unrecoverable deployments
  • Named person accepts ownership - protects against diffuse responsibility