Skip to main content

Supervise agents well

An agent is easy to start and easy to lose track of. Your job is to give each one a clear boundary and respond at the right moments. Saggar keeps the state visible, but it can't decide what the work is.

Saggar showing projects and agent sessions with live status

Decide what deserves its own session

Give a task its own session when it has one result you can review independently. Good boundaries include one bug, one issue, one migration step, or one piece of research. Name the session for that result, such as fix sign-in loop or audit cache invalidation.

Running several sessions in the same repository brings its own pitfalls. Work with agents in parallel locally covers when they collide and how to isolate them.

Put support processes in monitors

A dev server, test watcher, log tail, or compiler watch isn't another task. Run it in the monitor dock with ⌘⇧M. It stays visible without competing with agent sessions for your attention and turns amber when its recent output contains errors.

This leaves the Project menu describing pieces of work rather than every process needed to support them.

Give every agent a finish line

An agent is easier to leave alone when its first instruction names:

  • the outcome;
  • the relevant files or existing pattern;
  • what it must not change;
  • the checks it should run; and
  • what evidence should be waiting when it finishes.

For example:

Fix issue #123 in a new worktree. Follow the existing error-response pattern in
Sources/API. Add a regression test and run the affected test suite. Don't change
the public response schema. Finish with a concise summary of the cause, changed
files, and checks run.

The agent may discover a better implementation than the prompt suggests. The finish line matters more than prescribing every step.

Read state instead of watching terminals

Ignore Working sessions. A session stays Working while an agent's background work runs, such as a Claude subagent or a Codex shell it yielded, even after the visible turn ends. Respond to Needs you, investigate Failed, and review finished work that remains dirty. Press ⌘J to walk those claims in priority order until Saggar reads 0 waiting.

Attention cards let you answer routine prompts without leaving the session you are using. If the default answer is safe and repetitive, unsupervising a session allows Saggar to answer supported approval prompts. Its destructive-command guard still refuses unsafe work, and prompts it can't handle still enter the queue.

Don't unsupervise a vague task, an unfamiliar migration, or anything with a wide blast radius. Automatic approval removes interruptions, not responsibility.

Review before cleanup

Treat Ready for review as the start of your review, not proof that the work is correct. Read the diff, run the relevant checks if needed, and confirm the task's finish line. Commit or hand the work back before closing the session. Saggar asks before closing a session whose Claude subagents are still working, because closing stops them and may discard their work.

If the session ran in a worktree, remove it only after its changes are committed or deliberately discarded. Project workspace covers cleanup.

A reliable rhythm

  1. Split work into independently reviewable outcomes.
  2. Dock support processes as monitors.
  3. State the finish line before starting each agent.
  4. Leave Working sessions alone.
  5. Press ⌘J until the human queue is empty.
  6. Review dirty finished work before closing anything.

Use the workflow recipes for three complete examples.