Each kind of work, from the first thing you type to the closed ticket. Every walk assumes Flow is installed and the project set up with flow init.
Most steps type a phase with a ticket after it, such as /flow:execute /shop-9. Every open ticket is also a skill, so typing /shop lists them to pick from: Tickets.
- A new project, from idea to built: the idea, the spec, then tickets cut from it chunk by chunk
- An existing project, brought into Flow: the setup session, and your yes on every change
- A feature in a project you already have: design it, plan it, build it
- A bug: find the cause, prove it, fix it
- A question only running code can answer: quick code, and a report with the numbers
- A decision with nothing to build: the decisions are the result
- Upkeep, such as a dependency bump: straight to the plan
A habit tracker, in an empty folder:
- Set it up.
flow initin the folder. - Describe the whole idea. Put any notes or research you have in
docs/intake/first./flow:groundwork a habit tracker that families sharemakes atopicticket, the type for a decision with nothing to build yet. On an idea this big, the first run settles the scope, then splits each big subject into a child ticket. - Settle each subject.
/flow:groundwork /habits-2walks one subject's decisions with you, one at a time. - Read the spec.
/flow:groundworkthen writesdocs/spec/product.md: what the product is, and what it must do. A large part of the product, such as sharing between family members, gets its own file beside it, anddocs/spec/tech.mdholds the stack and the folder layout. Each behavior carries a mark: a release such asV1,next,later, orneverwith the reason. Nothing is cut before your yes. - Cut the first chunk.
/flow:tickets-from-specturns theV1behaviors that matter most next into tickets. Tickets cut far ahead go stale, so it leaves the rest for later runs. Only you can start it. - Build ticket by ticket.
/flow:groundwork /habits-6while a decision is open,/flow:execute /habits-6once it is decided./flow:startrecommends the next ticket. - Cut the next chunk with
/flow:tickets-from-specas each one gets built. OnceV1is all cut, mark the next releaseV2in the spec.
The shop project, with code, a CLAUDE.md and a folder of plans:
- Set it up.
flow initopens the setup session, which reads the project before anything changes: New project. - Read the form. The session writes every change into one file,
migration.md, such as9 rules → CLAUDE.md. Untick a box to keep that thing as it is. - Say go. The session makes the changes.
flow restore projectundoes all of them later. - Start Claude Code again, so the project's new rules load.
- Write the spec. Setup added a "Write the product spec" ticket where the project held plans.
/flow:groundwork /shop-1turns the plans intodocs/spec/.
Receipt uploads, in the shop project:
- Describe it.
/flow:groundwork we need receipt uploadsmakes a ticket and lists every decision the feature needs, such as where files are stored and the size limit. - Settle the decisions, one at a time. Drafts for this feature go in the ticket's
intake/folder first. - Approve the plan.
/flow:execute /shop-9writesplan.md, numbered steps that each end on a check. Nothing is built before your yes. - Let it build. It builds and checks each step, runs the full test suite, and moves the ticket to
review. - Accept it. Notes send it back to the build. Your yes moves it to
done.
A small feature with nothing to decide skips the design: /flow:execute add a CSV export button.
Logging in on Safari lands back on the login page:
- Describe what fails.
/flow:debug Safari logs me out after loginmakes anissueticket and starts at once. - Watch the hunt. It makes the bug fail on demand, shows you its 3 best guesses at the cause, and tests each one.
- Read the report, which opens with
FIXED,FOUND_NOT_FIXED(the fix needs your decision) orUNPROVEN. - Confirm the fix. Your yes moves the ticket to
done.
Whether a PDF library renders 10,000 rows in under a second:
- Ask it.
/flow:prototype can pdfkit render 10,000 rows in under a secondmakes aprototypeticket. - Read the answer. It writes quick code in the ticket and runs it, then a report with the numbers measured.
- Accept it. The code stays in the ticket, and never becomes the real build.
Whether to move the shop's API from REST to GraphQL:
- Ask it.
/flow:groundwork should the API move to GraphQLmakes atopicticket. - Settle it. Each decision, a "no" included, lands in the ticket's
groundwork/map.md, and the map is the result. - Close it once you agree. An answer that needs building gets a child ticket per part.
- Make the ticket.
! flow new "Bump React to 19" --type chorein the session. A command typed behind!runs in the session's terminal. - Go straight to the plan.
/flow:execute /shop-12. A plan of one step in one file builds without waiting for your yes. - Accept it. Your yes moves the ticket to
done.