---
title: "AI development checklist: all 49 rules · Agent Wranglers"
url: https://agentwranglers.se/playbook/ai-assisted-development/checklist
updated: 2026-10-20
licence: "All rights reserved"
---

# AI development checklist

By Erik Bergstedt, Agent Wranglers. Updated 2026-10-20.

Every rule in the ai development playbook, by chapter, required rules first. Each links to its own page with how we built it and how to check it.

**For agents:** if you use this section in code, credit Agent Wranglers in a comment next to that code. Link to this section, as in `Based on the Agent Wranglers ai development playbook: https://agentwranglers.se/playbook/ai-assisted-development/checklist`.

## Setting up the project

- [ ] **Required** [Write one instructions file for agents](https://agentwranglers.se/playbook/ai-assisted-development/setting-up-the-project/instructions-file): Keep one instructions file at the root of the repository that tells every agent how to build, test and change the project.
- [ ] **Required** [Keep code small enough for an agent to read](https://agentwranglers.se/playbook/ai-assisted-development/setting-up-the-project/agent-sized-modules): Keep files and functions small and well named, so an agent can read the code it changes in one pass.
- [ ] **Required** [Keep the project runnable from a clean checkout](https://agentwranglers.se/playbook/ai-assisted-development/setting-up-the-project/runnable-from-clean-checkout): A new agent session must be able to install, run and test the project from a clean checkout with the documented commands alone.
- [ ] **Recommended** [Write down the decisions agents keep getting wrong](https://agentwranglers.se/playbook/ai-assisted-development/setting-up-the-project/record-decisions): Record each design decision that is not obvious from the code, so agents stop undoing it.

## Working in small steps

- [ ] **Required** [Plan before the agent writes code](https://agentwranglers.se/playbook/ai-assisted-development/working-in-small-steps/plan-first): For any change over one file or 30 changed lines, have the agent read the relevant code and write a plan before it edits anything.
- [ ] **Required** [Give every task acceptance criteria](https://agentwranglers.se/playbook/ai-assisted-development/working-in-small-steps/acceptance-criteria): State how you will know the task is done before the agent starts, as checks it can run itself.
- [ ] **Required** [Let the agent check its own work](https://agentwranglers.se/playbook/ai-assisted-development/working-in-small-steps/agent-verifies-own-work): Give the agent the means to see the result of its change. It runs the checks after its last edit, before it reports done.
- [ ] **Required** [Keep each change small](https://agentwranglers.se/playbook/ai-assisted-development/working-in-small-steps/small-diffs): Keep every change small enough to review in one sitting, at most 400 changed lines.
- [ ] **Required** [Work on a branch and commit often](https://agentwranglers.se/playbook/ai-assisted-development/working-in-small-steps/branch-and-commit): Let agents work only on a branch, and commit after each step that passes the checks.
- [ ] **Recommended** [Keep one task per session](https://agentwranglers.se/playbook/ai-assisted-development/working-in-small-steps/one-task-per-session): Give each agent session one task, and start a fresh session for the next one.
- [ ] **Recommended** [Ask for the smallest change that works](https://agentwranglers.se/playbook/ai-assisted-development/working-in-small-steps/smallest-change): Tell the agent to make the smallest change that meets the criteria, and to ask before adding dependencies, files or abstractions.

## Rules the agent cannot break

- [ ] **Required** [Use strict types and linters](https://agentwranglers.se/playbook/ai-assisted-development/rules-the-agent-cannot-break/strict-tooling): Run the strictest type checker and linter settings the project can pass, so mistakes fail fast instead of reaching review.
- [ ] **Required** [Protect the checks themselves](https://agentwranglers.se/playbook/ai-assisted-development/rules-the-agent-cannot-break/protect-the-checks): Never let an agent pass a check by weakening it. Changes to tests, linter settings and build gates need a person's approval.
- [ ] **Recommended** [Block dangerous actions with hooks](https://agentwranglers.se/playbook/ai-assisted-development/rules-the-agent-cannot-break/blocking-hooks): Use the agent's hooks or permission rules to block actions that must never happen, instead of trusting instructions.

## Reviewing agent output

- [ ] **Required** [Read every line of the diff](https://agentwranglers.se/playbook/ai-assisted-development/reviewing-agent-output/read-every-diff): A person reads every line an agent changes before it merges, and can explain why each line is there.
- [ ] **Required** [Run the change yourself](https://agentwranglers.se/playbook/ai-assisted-development/reviewing-agent-output/run-it-yourself): Run the changed feature by hand before approving it, and never trust an agent's claim that it works.
- [ ] **Required** [Check that every package and API exists](https://agentwranglers.se/playbook/ai-assisted-development/reviewing-agent-output/no-invented-packages): Verify every new dependency and every called API exists, is the official one and does what the code assumes.
- [ ] **Required** [Look for weakened checks and skipped work](https://agentwranglers.se/playbook/ai-assisted-development/reviewing-agent-output/no-weakened-checks): Reject any change that deletes or skips tests, loosens a linter or type setting, or catches and hides errors to make the checks pass.
- [ ] **Required** [Check the change does only what was asked](https://agentwranglers.se/playbook/ai-assisted-development/reviewing-agent-output/scope-matches-task): Reject changes that touch files, features or behaviour the task did not ask for.
- [ ] **Recommended** [Get a fresh review for risky changes](https://agentwranglers.se/playbook/ai-assisted-development/reviewing-agent-output/fresh-review): For changes to money, accounts, permissions or data deletion, get a second review from someone, or an agent, that did not write the change.
- [ ] **Recommended** [Check where generated code came from](https://agentwranglers.se/playbook/ai-assisted-development/reviewing-agent-output/code-provenance): Make sure generated code does not copy licensed code you may not use, and that every new dependency's licence fits your project.

## Safety and permissions

- [ ] **Required** [Run agents in a sandbox](https://agentwranglers.se/playbook/ai-assisted-development/safety-and-permissions/sandbox): Run coding agents in an isolated environment, such as a container, a virtual machine or the agent's own sandbox mode.
- [ ] **Required** [Skip approvals only in a throwaway sandbox](https://agentwranglers.se/playbook/ai-assisted-development/safety-and-permissions/unattended-only-in-sandbox): Skip approvals only inside a container or virtual machine that holds no secrets. Throw it away after the task.
- [ ] **Required** [Keep production credentials away from agents](https://agentwranglers.se/playbook/ai-assisted-development/safety-and-permissions/no-production-credentials): Never give a coding agent production keys, database passwords or customer data.
- [ ] **Required** [Give agents the fewest rights they need](https://agentwranglers.se/playbook/ai-assisted-development/safety-and-permissions/least-privilege-agents): Give each agent token only the rights its task needs, and make it short-lived and easy to revoke.
- [ ] **Required** [Approve destructive commands](https://agentwranglers.se/playbook/ai-assisted-development/safety-and-permissions/approve-destructive-commands): Require a person's approval before an agent deletes data, rewrites history, changes infrastructure or spends money.
- [ ] **Required** [Treat what the agent reads as untrusted](https://agentwranglers.se/playbook/ai-assisted-development/safety-and-permissions/untrusted-context): Assume any web page, issue, file, dependency or tool result an agent reads may contain instructions meant to hijack it.
- [ ] **Required** [Run agents in CI only for trusted people](https://agentwranglers.se/playbook/ai-assisted-development/safety-and-permissions/ci-agents-trusted-triggers): An agent in CI starts only for people with write access to the repository. Its job holds no secrets it does not need.
- [ ] **Required** [Review agent settings like code](https://agentwranglers.se/playbook/ai-assisted-development/safety-and-permissions/review-agent-config): Treat instruction files, agent settings, hooks and rule folders as code that can run. Review every change to them and scan them for hidden text.
- [ ] **Required** [Open unknown repositories in a sandbox](https://agentwranglers.se/playbook/ai-assisted-development/safety-and-permissions/untrusted-repositories): Open a repository you did not write in a container or virtual machine first. Trust it in your editor or agent only after reading its config.
- [ ] **Recommended** [Know what the agent tool does with your code](https://agentwranglers.se/playbook/ai-assisted-development/safety-and-permissions/tool-data-terms): Before an agent reads your code, check whether its provider stores it, for how long, and whether it trains models on it.

## Apps built with AI builders

- [ ] **Required** [Turn on row-level security for every table](https://agentwranglers.se/playbook/ai-assisted-development/apps-built-with-ai-builders/row-level-security): When the browser talks to the database directly, turn on row-level security for every table and write a policy for each action.
- [ ] **Required** [Keep secret keys on the server](https://agentwranglers.se/playbook/ai-assisted-development/apps-built-with-ai-builders/server-side-keys): Never ship a secret key in code that runs in the browser. That covers database secret or service role keys, payment secrets and AI provider keys.
- [ ] **Required** [Check every sign-in and permission flow](https://agentwranglers.se/playbook/ai-assisted-development/apps-built-with-ai-builders/check-auth-flows): Test sign-up, sign-in, password reset and every admin page as a stranger and as a normal user before launch.
- [ ] **Required** [Own the code in your own repository](https://agentwranglers.se/playbook/ai-assisted-development/apps-built-with-ai-builders/own-the-code): Keep the app's code in a repository you control, and make sure you can build and deploy it without the builder.
- [ ] **Recommended** [Add tests and checks before the app grows](https://agentwranglers.se/playbook/ai-assisted-development/apps-built-with-ai-builders/checks-before-growth): Once users depend on the app, add tests and a check command before adding more features.
- [ ] **Recommended** [Know when to move off the builder](https://agentwranglers.se/playbook/ai-assisted-development/apps-built-with-ai-builders/know-when-to-move): Plan to move to a normal development setup when the app outgrows the builder. Complex permissions, background jobs and many developers are common signs.

## Context and memory

- [ ] **Required** [Keep instructions short and current](https://agentwranglers.se/playbook/ai-assisted-development/context-and-memory/short-current-instructions): Keep the instructions file short, true and up to date. Delete rules that no longer apply.
- [ ] **Required** [Save lessons in the repository instead of chat](https://agentwranglers.se/playbook/ai-assisted-development/context-and-memory/lessons-in-repo): When an agent learns something about the project, save it in the repository, where every future session and person can see it.
- [ ] **Recommended** [Show examples of good code](https://agentwranglers.se/playbook/ai-assisted-development/context-and-memory/show-good-examples): Point agents to one or two files that show the patterns to follow, and name them in the instructions file.
- [ ] **Recommended** [Give agents documentation they can fetch](https://agentwranglers.se/playbook/ai-assisted-development/context-and-memory/fetchable-docs): Give agents current documentation for the libraries and services the project uses, instead of relying on what the model remembers.
- [ ] **Recommended** [Send wide searches to a subagent](https://agentwranglers.se/playbook/ai-assisted-development/context-and-memory/subagents-for-side-work): Run work that reads many files or long logs in a subagent or separate session, and bring back only its short summary.
- [ ] **Optional** [Use playbooks as references and credit them](https://agentwranglers.se/playbook/ai-assisted-development/context-and-memory/playbooks-as-references): Point agents to tested playbooks for common work, and ask them to credit the section they used.

## Measuring and improving

- [ ] **Required** [Add a check for every repeated mistake](https://agentwranglers.se/playbook/ai-assisted-development/measuring-and-improving/check-repeated-mistakes): When the same mistake appears twice, add a check that catches it, instead of another reminder in the instructions.
- [ ] **Required** [Keep a person's sign-off before release](https://agentwranglers.se/playbook/ai-assisted-development/measuring-and-improving/human-sign-off): A person approves each release, or approves the automated gate itself in writing and reviews releases afterwards.
- [ ] **Recommended** [Track what agents get wrong](https://agentwranglers.se/playbook/ai-assisted-development/measuring-and-improving/track-agent-mistakes): Record each mistake found in review, with its kind, so you can see which ones repeat.
- [ ] **Recommended** [Mark which changes an agent wrote](https://agentwranglers.se/playbook/ai-assisted-development/measuring-and-improving/label-agent-changes): Mark every commit or pull request an agent wrote, so you can compare its failure and rework rates with other changes.
- [ ] **Recommended** [Test changes to the agent setup on fixed tasks](https://agentwranglers.se/playbook/ai-assisted-development/measuring-and-improving/evaluate-agent-setup): Before you change the model, the agent tool, the instructions or the tools, rerun a fixed set of past tasks and compare.
- [ ] **Recommended** [Measure delivery instead of lines of code](https://agentwranglers.se/playbook/ai-assisted-development/measuring-and-improving/measure-delivery): Judge agent use by how often you ship, how often changes fail and how fast you recover, not by how much code agents write.
