The process your AI coding agents follow to ship a change, prove it in production, and improve. Every time.
AGENTS.md says what to build. FLYWHEEL.md is the playbook for how it ships: build it, prove it in production, learn, improve, with a human in the loop where it counts.
Here is the whole thing. Drop it in your repo root, next to your AGENTS.md, and your agents read it before they touch anything. Copy this starter, then make it yours.
# FLYWHEEL.md How an agent ships and improves this project, turn by turn. `AGENTS.md` = what to do. `SOUL.md` = who to be. `FLYWHEEL.md` = how to ship. ## The loop Ship, verify, learn, improve. Each turn compounds. ## The stages (the four the wheel turns, split or rename to fit) 1. Ship. Plan the approach and blast radius, build in small reversible steps, review diff/tests/data flow, then merge, release, deploy. Gate: a human signs off on anything risky or irreversible. 2. Verify. Prove it in production, with evidence. A passing test is not proof. 3. Learn. Cost, regressions, feedback. Gate (often): wait for real-world signal. 4. Improve. Fix the cause, raise the bar, delete the toil. ## The bar (holds every stage) - Done means deployed and verified, with evidence. - Every iteration costs money. - Know your data flow. - Fix the cause, never the symptom. - Leave a trail.
New to it? Browse example flywheels for CLIs, libraries, services, frontends, and ML projects. Steal it, fork it, no attribution needed.
FLYWHEEL.md is not a wall poster or a checklist humans nod at. It is context your coding agent loads before it acts, the same way it reads AGENTS.md, and it changes what the agent does at every step.
So why a file at all? You already have these steps. What's new is that an autonomous agent now runs them at machine speed. The gates and the evidence bar are what keep a closed loop from shipping confident, untested change while you sleep.
No tool reads a file named FLYWHEEL.md on its own. But every coding agent already loads AGENTS.md (or its own CLAUDE.md, .cursor/rules, GEMINI.md). So you don't wire up a new file per tool. You point the file they already read at this one. One line, and the loop rides in with it.
## Process Follow the loop in ./FLYWHEEL.md for every change. Don't mark a stage done without the evidence it requires. Stop at any gate marked (human) and wait for a person.
Paste that into the context file your agent already reads. Because that file is auto-loaded, FLYWHEEL.md travels with it, for Claude Code, Cursor, Codex, Gemini CLI, and anything else that honors AGENTS.md. No plugin, no per-tool config to keep current.
Agents can write code all day. The hard part is everything after: does it actually work, in production, for a real person? And can you prove it?
That's the loop: ship → verify → learn → improve. Run it with discipline and software starts improving itself, safely. Run it without and you get confident, untested, unobservable change, at machine speed. The question under every autonomous codebase: what happens when the loop closes without a human in it?
This isn't theoretical. When agentic coding became the default inside Anthropic's own Claude Code org, the bottleneck moved: coding stopped being the slow part, and verification, review, and ownership became it. The old norms quietly stopped working and had to be rewritten to keep shipping (Fiona Fung, Code w/ Claude 2026). FLYWHEEL.md is where you write the new ones down.
Another way to see it: a company without this loop is an open-loop control system. Decisions go out, signal comes back lossy and late, error compounds, the system drifts. With agents in the work, the drift is at machine speed. A flywheel is the closed loop: tight feedback into the next turn, so error stays in check (Diana Hu, YC, Stanford CS 153).
This is what's inside FLYWHEEL.md: the four stages a change moves through, the same four the wheel turns. Each stage has a finish line, and some have a gate, a point where the agent stops and waits for a human before going on. Four is the default. Split Ship into plan, build, and review, or add stages, to match how your team works.
Three things to read here: the stages (the steps a change travels), the gates (where a human stays in control), and the bar (the rules that hold at every stage).
Plan the approach and name the blast radius, build in small reversible steps, review your own diff, tests, and data flow, then merge, release, and deploy. Land the whole chain, not just the merge.
Prove it works in production, by you, with evidence: a real request, a screenshot, real output. Better yet, automation that catches it before you or a user does. Your evidence is your eval, the one you trust for your product, not someone else's leaderboard.
Capture what actually happened: cost, regressions, the surprise, user feedback.
Fix the cause, raise the bar, delete the toil.
Read the full FLYWHEEL.md on GitHub →
Humans stay in the loop. A flywheel is not "run unattended forever." It says exactly where a human gates a stage and the agent pauses for feedback, then resumes when you reply. Put the gates where human judgment still wins: risk and trust boundaries, irreversible changes, legal, and product taste. And keep the gates themselves deterministic, written as code your CI runs, not as instructions the agent grades itself on. The agent's work between gates is latent; the gates and the evidence are not. A CLI, a model, and a web service each get a different loop and different gates.
The loop is the shape of your process. These don't change between stages, whatever stages you choose.
No. Tools load AGENTS.md or CLAUDE.md, not an arbitrary file in your repo. Reference FLYWHEEL.md from there with one line and it travels with them on every run. See how agents load it.
No. Ship, Verify, Learn, and Improve are the default. Split a stage, add one, remove one, or reorder to match how your project actually ships. The shape is yours; the discipline is the point.
No. It's instructions an agent follows, like any other guidance, not hard enforcement. To make a gate actually block, wire the same rule into your CI. The file makes the intent explicit; your pipeline makes it binding.
They don't compete. AGENTS.md says what to do, FLYWHEEL.md says how to ship it. An explicit prompt from you overrides both.
A checklist is a one-time gate you pass or fail. A flywheel is a loop: Learn feeds the next turn, so each change starts smarter than the last. It compounds instead of resetting.
Yes. Treat it as living documentation that lives in your repo, next to the code, in the loop. A doc that lives outside the loop rots.
This only works if you can actually watch the loop run: every iteration, every cost, every change. Use whatever observability you already trust. The standard is open and tool-agnostic.
FLYWHEEL.md is maintained by the team behind ClawMetry, observability for AI agents. The file costs nothing and needs no tool to adopt.