Close out and resume
Everything else in mcue is scaffolding around these two commands. A closeout is the only routine way state advances; a resume packet is the only thing you read when coming back.
Closing out
mcue closeout payments-api --editor
A closeout records five things, and each one earns its place:
- Intent — what you set out to do. Not what you did; what you meant to.
- Outcome — what actually happened, including the part that did not work.
- Blockers — what is in the way, stated concretely enough to act on.
- Next action — the single next thing, small enough to start cold.
- Resume pointer — the file, the branch, the failing test, the open tab.
The gap between intent and outcome is the most valuable field in the whole system. It is where "I meant to add caching but spent four hours on a connection-pool bug" gets recorded, and that sentence is worth more in three weeks than any diff.
closeout does not interrogate you. --editor opens the five fields in your
editor; otherwise pass them as flags (--intent, --outcome, --blockers,
--next-action, --resume-pointer), read any of them from disk with
--intent-from-file and friends, or pipe a whole payload with --from-stdin-json.
A week with mcue shows all of it against real
output.
Writing one worth reading
A closeout is written for a stranger, and in three weeks you are that stranger.
Weak:
Worked on refunds. Made progress. Continue tomorrow.
Useful:
Intended to wire refunds to the ledger. Ledger client assumes idempotency keys are UUIDs; ours are ULIDs, so every retry double-posts. Blocked on whether to change our key format or wrap the client. Next: ask Sam which one the ledger team will support. Resume at
internal/ledger/client.go:88, testTestRefundRetrycurrently fails.
The second one takes ninety seconds longer to write and saves an afternoon.
Partial and interrupted closeouts
If a closeout is interrupted, mcue does not leave you with a half-written record.
See Recover a broken session — mcue recover produces a
degraded checkpoint, and closeout --retroactive captures a session you already
walked away from.
Resuming
mcue resume payments-api
You get a resume packet: a bounded brief capped at roughly 300 or 1000 tokens depending on the tier you ask for.
The cap is the point. An unbounded dump of project history costs you the same re-reading you were trying to avoid, and it is useless to an agent with a context budget. A packet is meant to be small enough to paste into a conversation and complete enough to act on.
A packet is derived on demand, never stored as truth. Improving how packets are assembled never rewrites your history.
Looking without closing out
Two commands read state without advancing it:
mcue review payments-api # inspect state without a full closeout
mcue history payments-api # browse the checkpoint history
review is the one to reach for mid-session when you want to see where things
stand. It changes nothing.
Updating metadata without a closeout
mcue update payments-api
Changes mutable project metadata without writing a checkpoint. Use it for corrections — a wrong title, a stale description — not for recording work. Work belongs in a closeout.
A rhythm that works
- Close out when you stop, not when you finish. Most sessions do not finish.
- Close out before a context switch, even a short one. The cost of writing it is lower than the cost of reconstructing it.
- Resume before you open the editor. Reading the packet first is what stops you re-deriving yesterday's conclusion.
- Run
mcue indexon Monday to see what has gone quiet.
Next
- Give agents your state — hand the same packet to an agent.
- Projects, lanes, and plans — when one lane stops being enough.