All guides
Get started
The BLOM method
Agents
Developers
Administration
DocsThe BLOM method
Handoffs
A handoff passes work to whoever comes next: what was done, attempted, verified, and left open. A closure is a handoff, never completion.
In BLOMTaskHandoffs
Why handoffs matter
Work moves between people and agents, and one session rarely finishes a task. The BLOM method asks every handoff to keep three things: what's known, what's authorized, and what's still open. Then the next person or agent picks up the work without guessing, and without mistaking someone's report for proof. See Core terms in the method.
BLOM holds two records for this, both on a task's page under Handoffs:
- A context export: what BLOM's records say about the task, gathered for whoever works on it.
- A closure: what a session did, returned when it ends.
Context exports
Before working on a task, export its context. Select Export context, choose Full or Compact, and select Export context again. BLOM gathers, from its own records:
- the task and its brief;
- each governing document the brief cites, at its exact revision;
- the standards in force where the task is filed;
- the process version the task runs under, with its phases and gates;
- the next action, with what counts as done and its outcomes;
- the steps done, approvals, claims, blocked-by links, linked evidence, and GitHub observations;
- the last closure, and what changed since the last handoff.
A manifest lists each part as Supplied, Deferred, Unavailable, or Not applicable, with a reason, and the export says whether it's Complete: all required context supplied. Records you can't read are left out, without a count. Select Get the rest while more remains, and Refresh for what changed since. Copy as Markdown, Download Markdown, and Download JSON carry what was supplied, with its completeness and revisions.
Anyone who can read the task can export its context. Each export is kept in the task's handoff history. An export grants no claim, permission, or approval, and it may be out of date.
Closures
When a session ends, its person or agent returns a closure: a structured account of the session. Select Return a closure and fill in:
- Session name
- A name for the session, such as "invite-expiry-build, first session".
- What changed and why
- Each part of the work, with why, and how far it got: Completed, Partial, Unverified, or Abandoned.
- Artifacts and changes
- Commits, pull requests, and other links.
- Checks attempted
- Each check with the result you report: Passed, Failed, Partial, Not run, or Unknown. A check not run says why.
- Evidence links
- Links you submit, such as a CI run. BLOM records them as reported.
- Assumptions, Blockers, Remaining work
- What the session assumed, what stopped it, and what's left.
- Found during this session
- Tasks you captured for work you found along the way.
- Named next actor
- Who should pick it up. It's named only: not assigned, and no claim.
- Context used
- The context exports the session worked from.
Checks attempted, Blockers, and Remaining work each need an answer: entries, or None, as stated. Select Return the closure.
You can return one on a task whose next action waits on you, or whose claim you hold or held. A closure is never edited. It also records what was in effect: the brief revision, and each governing document's revision and pin.
A closure is a handoff, not completion
Completing a task means its criteria were met. A closure only reports what a session did, so returning one changes nothing about where the work stands: the next action, the phase, and the gates stay as they were. If the session held the task's active claim, the closure hands it off.
BLOM shows a closure as the actor's statement. Its header calls it "a handoff, not completion", and its checks read "as reported by" the actor. They're never a requirement's result. Completing a step is separate: Complete on the task's page, or the agent's own completion. Next actions and claims covers steps.
Picking up where someone left off
Open the task, and its Handoffs section starts with what the next person needs:
- Latest closure gives who returned it, when, and through which channel, such as the MCP agent channel. Then what happened to their claim, the next actor they named, what changed and why, and what they Left open: remaining work, blockers, parts they classified Unverified, and checks they didn't run. Each item left open says whether a later record marks it done. Select Open the closure for all of it.
- Since the last handoff compares the task with the latest closure, or with the context export of someone whose claim has since ended or gone Stale. It lists what changed since, grouped, such as Brief, Governing documents and approvals, Next actions, Evidence, and Claims. "Nothing recorded has changed" appears only when the comparison was made and found nothing. A comparison BLOM can't make never reads as no change.
- If the next action's claim is Stale, its lease ran out without being renewed. The section shows the claim, with Go to Assignment, where you can take the task on.
The Closures and Context exports tabs list every one, newest first. Each opens in full.
For example, Codex returns a closure on invite-expiry-build with browser tests reported not run and "Review the change" as remaining work. Grace Hopper opens the Job and sees both under Left open, and, under Since the last handoff, what changed after Codex returned it.
The agent's side
Agents make the same records through BLOM's MCP server: blom_export_context to export and refresh context, and blom_return_closure to return a closure. An agent takes back its own Stale claim with blom_claim. The CLI has blom context export and blom closure return. Start, refresh, and return walks through an agent's session, call by call.
Related
Write to us, and we'll answer and add it here.