Contents

Rounds

A round is one pass over the project. Its output is one folder — .spec4/v0/ for the first round, v1/ for the next, and so on — and every round after the first starts from the code, not from the previous plan.

A round is a feature or a rework. For a change smaller than that, don't run one.

Starting on existing code

A directory with files in it gets one question when you open it — Is there an existing project here? — because a uv init skeleton and a codebase you're modifying look the same to a file listing. Existing project starts the round with CodeScanner; New project starts with Brainstormer. You're asked again next session; the answer isn't written to disk.

CodeScanner reads the repository locally and sends the model a bounded summary — manifests, entry points, samples — not the tree. What comes back is code_review.json: architecture, stack, commands, entry points, and conventions, each as a fact with a source or inferred_from. Every later agent plans against that file rather than against what it would guess.

Revision rounds

A revision round is any round after one that has been implemented. Four things are different from a first round:

What that means per agent:

In Spec4's own rounds, .spec4/v2/vision.json records that v1 deferred the setup wizard, the gate card, the directory picker, and the Designer wizard, and that v2 picked them up — a decision carried across rounds, visible in the file.

Stale inputs

Every artifact is dated against the ones upstream of it. The project page recomputes each agent's state from the files on disk every time it renders; nothing is cached.

Agent Goes stale when any of these is newer than its output
Brainstormer code_review.json
Agentifier vision.json, code_review.json
Designer vision.json, ai_features.json
StackAdvisor vision.json, ai_features.json, code_review.json, design/manifest.json
Phaser vision.json, ai_features.json, stack.json, code_review.json, design/mock.html
Deployer ai_features.json, stack.json, feature_specs.json, phases/, design/mock.html

CodeScanner reads the repository, not an artifact, so it has no upstream. usage.json is a record for you, read by no agent, and never makes anything stale.

StackAdvisor depends on Designer's manifest.json — the data model and screen structure — and not on mock.html: a purely visual change cannot invalidate a stack choice. The mock is Phaser's and Deployer's dependency, because they hand it to the coding agent.

One exception. A newer feature_specs.json is caught when Deployer runs — the conversation opens with a staleness note — but not yet by the project page's button, which does not consider that file. A Deployer whose only newer input is feature_specs.json shows Modify, not Needs Update.

What you see on the project page:

Button Meaning
Start The agent's inputs exist and it hasn't produced its output yet.
Continue Same as Start, but this session already has an unfinished conversation with the agent.
Modify The agent's output exists and is at least as new as every input it depends on.
Needs Update The output exists, but an upstream artifact has changed since it was written.
Not Ready A required input is missing, or the inputs are out of order — an upstream artifact is newer than one downstream of it.
Required The previous round is implemented and the next hasn't started. Only CodeScanner shows this.

So if you re-run Brainstormer after StackAdvisor, the project page shows StackAdvisor as Needs Update. Re-running an agent appends to usage.json; nothing is overwritten.

IMPLEMENTED

The last phase's final instruction is touch .spec4/v{N}/IMPLEMENTED. It is appended to the phase file by Spec4, not written by the model.

When your coding agent has built the phases, that marker is what tells Spec4 the round is done: the project page shows CodeScanner as Required and every other agent as Not Ready, because the next round always begins by reading what was built — even when the previous round was greenfield. Choose Existing project and run CodeScanner to open v{N+1}/.

The screenshot on the front page is this state: Spec4's own project page after v2 was implemented, waiting for the re-scan.

Evidence