Start a phase
A phase is the active unit of work. Starting one moves you out of planning and into execution, and it commits the project to a single focus until the phase is verified and closed.
The phase loop
Section titled “The phase loop”The phase loop has five steps:
- Start —
exo phase start <id>activates the phase. - Plan — populate the phase with tasks via
exo task add. Stop here for approval before writing code; no code is written until the plan is agreed. - Implement — write code and tests, recording work as you go with
exo taskcommands (task start,task log,task complete). - Verify — run
exo verify. The phase is not finishable until it passes. - Finish —
exo phase finishcommits and closes the phase. The--messageflag commits and finishes in one step.
Start a phase only when the previous work is cleanly committed and the next unit of work has a clear goal. The active phase should immediately expose the next task, current status, and verification path.
A dirty working tree is a signal, not a blocker
Section titled “A dirty working tree is a signal, not a blocker”If the working tree is dirty when you start or resume, Exosuit steers you through a deterministic review loop rather than letting an agent “clean up” by deleting files (RFC 0117):
- Orient — run
exo phase statusto see what the active phase implies about the changes. - Inspect — read
git status --porcelainandgit diff. - Recommend — if the changes touch source, context, or RFCs, the recommended path is commit + PR. If they look generated-only, confirm intent before acting.
- Wait — pause for user feedback before any destructive action.
Deletion is exceptional. Files are only removed when they are generated and disposable, explicitly deprecated, or the user confirms deletion is desired. The usual resolution is to commit the work and open a PR, not to discard it.
Once the tree is clean and the next goal is clear, start the phase and move into the SOAR loop. When the work is done, verify and close.