Skip to content

Deliver small work with the orchestrator

Keep a stays-on orchestrator in your workspace, hand it a small change in plain words, and let it log, dispatch, and verify the work.

ShippedFor people running agent work6 pages in this section

What you build

One agent that stays on in your project and takes small requests. You describe a change, and the orchestrator writes it down, starts a code_implementer session in its own worktree, checks the result, and reports back. A worktree is a separate copy of your project on its own branch, so your main checkout stays clean.

Use it for a bug fix or a small feature. For larger work, write a spec and follow Deliver a spec.

Before you start

  • CompozyOS is installed and the daemon is running.
  • Your project is registered as a workspace. This page calls it acme.
  • The bundled spec-cycle extension is enabled. It is on by default. Check it with:
compozy extension status spec-cycle

The artifact

The orchestrator keeps one file per workspace, .compozy/work-log.md, so accepted work is never just a line in a chat. You don't write this file yourself:

.compozy/work-log.md
# Work log

- [~] wl-20261102-01 | 2026-11-02T13:10:00Z | Fix login redirect | session: sess-1f2e | worktree: wl-20261102-01
- [ ] wl-20261102-02 | 2026-11-02T14:00:00Z | Add CSV export | source: chat
- [x] wl-20261101-07 | 2026-11-01T09:00:00Z | Bump parser | evidence: commit 91ab3f2

[ ] means accepted, [~] means handed to an executor, and [x] means closed with evidence.

Run it

Step 1: Ignore the work log in Git

The work log is local state. Add it to your project's .gitignore:

.gitignore
.compozy/work-log.md

Step 2: Create the orchestrator

compozy agent instance create orchestrator --workspace acme
Orchestrator is stays-on in acme
Main session: sess-77ab

Copy the session ID from the output. Yours will differ. The next steps call it sess-77ab.

Step 3: Ask for the change

compozy session prompt sess-77ab "Fix the login redirect on expired sessions"
Accepted wl-20261102-01. Worktree wl-20261102-01, session sess-1f2e. I'll report when it is verified.

Step 4: Check that the work was logged

cat .compozy/work-log.md

The entry now reads [~] and names the session and worktree. When the orchestrator has verified the result, the entry reads [x] and names the evidence.

How it works

  • One writer. Only the orchestrator edits the work log. Run one per workspace. User and global instances don't use a work log.
  • Nothing gets forgotten. If an entry stays [ ] for more than 30 minutes, the orchestrator's next check-in picks it up and reports it or proposes dispatching or closing it. A check-in only reads and reports, so you decide what happens next. This source appears as Work that never got started in the agent's Check-ins page and as work_log in HEARTBEAT.md.
  • Repeats stay quiet. The same stale entry doesn't trigger another model call while nothing has changed, until max_interval passes.
  • Clean-up. Closed entries older than 7 days are pruned. Only the first 64 KiB of the file is read, so a very long log is flagged in the check-in.

Common problems

What you seeWhat it meansWhat to do
work:log-truncated in a check-inThe log is larger than 64 KiBClose finished work so the open entries fit
work:more in a check-inMore than 9 stale entries are waitingAsk the orchestrator to go through them
Daemon warning work_log: ignored line <n>A line doesn't match the formatFix that line; the valid lines still count
The orchestrator recommends writing a specThe request is too big for small workFollow Deliver a spec

Next steps

On this page