Skip to main content
Handbook/Automate/Page 85 · Workflow

The Path Every Task Follows

Share

Share this page

Pass it to someone who needs it.

Star on GitHub

Key takeaway: One path every task walks, on disk

Your agents have roles, a board to pull from, and a ledger that records what happened. What is still improvised is the part in between: how a task actually gets done. Ask for the same kind of work twice and you get two different routes, and the thinking behind both dies when you close the window. This chapter pins the route down.

9.15.1What happens in the session does not survive it

Most of what a working session produces is not the code. It is everything around the code: why that approach and not the other one, what the agent checked, what it ruled out, what broke on the first attempt. Close the window and all of it is gone.

A task workflow fixes that. It is one path every request walks, where each stop leaves a file behind. If a stop produced nothing on disk, it did not happen. The chat is where work gets discussed; the repository is where it gets kept.

9.15.2One path, six stops

Every request, however small, walks the same path:

  1. Ticket. Open one on the board before anything else, so the work exists outside the chat.
  2. Research. Read the code, the docs, and the decisions that already cover this, then write the findings down.
  3. Spec. State what will change and what done looks like, and get your yes before any code.
  4. Build. Implement only what the spec says, in slices.
  5. Verify. Run the tests and the app. A green run is the proof, not the agent's opinion.
  6. Record. Close the ticket, log any real choice as a decision, and note the outcome.

A one-line fix walks it in minutes and a feature takes a week. The path does not change, only the size of each stop.

9.15.3Three kinds of work walk it differently

Almost everything you will ever ask for is one of three things. The difference shows up at stops two and three:

Kind of workResearch meansWritten down before buildingThe trap
Feature. Add, change, or remove something users seeRead the spec and the decisions that already cover itWhat changes, and what done looks likeBuilding before anyone wrote down what done means
Bug. Something is wrong and you want it rightReproduce it, then find the causeThe cause, and a failing test that proves itFixing the symptom you can see instead of the cause
Improvement. Nothing is broken, something could be betterMeasure the thing you want to improveThe number to beat, taken before you touch anythingChanging code because it feels untidy, with nothing to compare

Removing a feature is a feature change, not a cleanup, and it takes the same path. Deletions break things exactly as often as additions do.

Improvement is the one people run wrong. Speed, security, readability, scale, and stale documentation all live here, and every one of them needs a before-number or a named weakness first. Without one you cannot tell improvement apart from churn, and neither can your agent.

9.15.4Who starts it does not change the path

Work reaches the path three ways: you ask for it, something in the system reacts to an event, or the clock starts a scheduled run. The last two get built later in this part.

None of them is a shortcut. An agent woken by a schedule at three in the morning opens a ticket, researches, and records the outcome exactly like you would. The whole value of the path is that a week later you cannot tell which work was yours.

Here is the whole thing on one page, from whatever started it to the records it leaves behind:

Any trigger lands on the same path; the rules file loads what that kind of work needs, and every stop reads or writes a real file.

The ticket is the hub. Everything the work touches hangs off it: the change that shipped, the reasoning behind it, and the feature document that now describes how the thing behaves.

9.15.5Demand evidence, not recall

Research is the stop people cut first, and it is the one that saves the most rework. An agent that has not opened your code will cheerfully invent how it works, and everything built on that invention has to come out again.

So write the standard down: every claim about your system names the file it read or the command it ran. No "should be", no "probably". If it did not check, it says it did not check.

9.15.6Write the path into the rules file

A path you have to remember to ask for is not a path. It belongs in the file your agent reads before every session, as a procedure it follows without being told:

# Task workflow, follow on every request 1. Open a ticket on the board. No ticket, no work. 2. Research first. Cite the file read or the command run behind every claim. Never guess. 3. Write the spec, then wait for my yes. 4. Build only what the spec says. 5. Run the tests and the app. Paste the output. 6. Close the ticket, log the decision, note the outcome. Steps 2 and 3 depend on the kind of work: - Feature: read the spec, define what done looks like. - Bug: reproduce it, find the cause, ship a failing test. - Improvement: measure first, state the number to beat. No number and no named weakness means no work. Same path whoever started it: me, an event, or the clock. Nothing important stays in this chat, and a step that produced no file is a step that is not done.

9.15.7Put your agents on the path

Ready prompt
Act as a senior engineer defining how my agents work. Read my rules file, my work board, and my decision log first, and match what those already do rather than inventing a parallel process beside them. Write one task workflow into my rules file as a numbered procedure to follow on every request: open a ticket, research and cite the file or command behind each claim, write down what will change and wait for my approval, build only that, run the tests and paste the output, then close the ticket and log the decision. Then record how the middle two steps differ by kind of work. For a feature, read the spec first and define what done looks like. For a bug, reproduce it and find the cause before proposing a fix, and ship a failing test with it. For an improvement, measure the thing first and state the number to beat, and refuse the work if there is no number and no named weakness. State that this holds no matter who started the work: me, an event, or a scheduled run. Add one standing line: nothing important stays in the chat, and a step that produced no file is not done. Then walk my next real task through all six stops, so I can watch the path work before it becomes a habit. If you need the full reasoning behind this step, read https://zalt.me/guides/vibe-coding/ai-os/task-workflow My system, and the next task I want done:

Do this now: paste the prompt so the path lands in your rules file, then run your next task through all six stops without skipping the research.

Mahmoud Zalt

Mahmoud Zalt

Software engineer, 16+ yrs · built Sistava.com in 3 months, idea to production, using these methods

Resources
Star on GitHubContribute
Donate

Support my work

A small tip keeps the free work coming.

© 2026 Mahmoud Zalt. Free to read, not to republish.
Copyright & license