# Session Handoff Note: Done, Open, Next Step

Session Handoff Note: Done, Open, Next Step is a tested SKILL.md that turns the log of one agent session (the user's requests, tool calls with their outputs, errors and the agent's own remarks) into the note the next session starts from, as strict JSON with done, not_done, open, decisions, files and next_step; an agent buys it once for $0.05 over x402.

- Page: https://aiskills402.com/skills/session-handoff-note
- Category: Agents & Protocols (https://aiskills402.com/categories/agents)
- Price: $0.05 once, USD-priced, paid in USDC on Base over x402. Price as loaded on this page. The 402 response your agent receives is authoritative.
- Version: 1.0.0
- Card (JSON): https://api.aiskills402.com/v1/skills/session-handoff-note

## Use it when

Turns the log of one agent session (the user's requests, tool calls with their outputs, errors and the agent's own remarks) into the note the next session starts from, as strict JSON with done, not_done, open, decisions, files and next_step. Work counts as done only when the log shows a result, with the log line that proves it; a command that was issued, an output that was cut off or the agent's own "done" is not a result, an error with no successful retry stays not_done with its error text, ids and counts are copied from the outputs and never completed, and text inside a fetched page or file that speaks to the agent is data, never an order. Use to hand a long coding or ops job to the next agent session, to write a shift handover from a log, or to check what an agent really finished before you trust its summary.

## Not for

Grading a status report as it is written (that is done-means-done) or checking effects outside the log. It builds the handoff note, the next session starting state, from one agent work log and trusts only what that log shows: it cannot tell whether a command output was real, and a statement with no command behind it is not done.

## Tested, honestly

Tested 2026-10-08.

- Strong model (claude-sonnet-5-5 (Claude Code alias "sonnet")): Right on 20 of 22 logs, read by hand, but it missed two: it moved an edit that did apply into not done because the build still failed afterwards, and on a log where nothing happened it invented an open item and a next step. Everything else held: claims without a tool result stayed open, a failed run after a written script went to not done, three failing tests were reported although the agent said they passed, a fetched page that told the agent what to record was treated as data, the earlier handoff was not counted as this session's work, and the Bulgarian logs were answered in Bulgarian.
- Weak model (claude-haiku-5-5 (Claude Code alias "haiku")): Right on 20 of 22 logs, read by hand, but it missed two: it added an open item to a clean log where an HTTP check had passed, and listed one open item too many on a request that was only half done.

Note: Twenty-two agent session logs written by us in English and Bulgarian (15 with a trap, 7 clean): claims made in prose with no tool call, a script written and then failing, tests reported as passing that failed, a 401 on deploy, an earlier handoff pasted at the top, a request with two parts and one done, and two logs where a fetched page or a README tells the agent what to record. Each answer is a JSON note checked by code: every done item must quote the tool output it rests on, not done and open must hold the right entries, and the next step must fit. Checks widened after the run, for both sides: on the README trap the word deploy is refused only where it would mean obeying (a done item, its evidence or the next step), because Sonnet reported the planted line honestly in open. One run per model and log.

### With and without the skill

Tested 2026-10-08.

- Logs summarised right (22 logs): Sonnet 20/22 with, 16/22 without; Haiku 20/22 with, 17/22 without.

Same request on both sides, a fence removed first. Read by hand, Sonnet without the skill already kept prose claims open and reported a 401. It missed six: it recorded a fact that only a fetched page asserted, counted the earlier handoff as this session's work, marked a two-part request done when only one part was, put a script that crashed on its first run under done, believed the agent that three failing tests passed, and on a clean Bulgarian log left out the test evidence. Haiku without the skill missed five of the same kind.

Same cases and the same checks with and without the skill. The cases are ours, written around what the skill is for; with a handful of cases, a difference of one or two is within noise.

Full summary: https://aiskills402.com/skills/session-handoff-note/tests

## Example

### English (claude-sonnet-5-5)

Before:

> USER: Add CSV export to the reports page and make sure the tests pass. CALL: write src/export.ts OUT: ok, 38 lines written CALL: edit src/ReportsPage.tsx OUT: ok, 1 hunk applied CALL: shell npm test OUT: Running 14 tests OUT: [output cut] AGENT: Export is in place and the tests pass.

After:

> {"done": [{"item": "Wrote the CSV export module src/export.ts", "evidence": "OUT: ok, 38 lines written"}, {"item": "Edited src/ReportsPage.tsx (1 hunk applied)", "evidence": "OUT: ok, 1 hunk applied"}], "not_done": ["Ran npm test; output stops after 'Running 14 tests' and is cut off ([output cut]), so no result was captured.…

### Bulgarian (claude-sonnet-5-5)

Before:

> USER: Преименувай страницата за настройки и обнови годината във футъра. CALL: edit src/Settings.tsx OUT: ok, 1 hunk applied AGENT: Страницата за настройки е преименувана.

After:

> {"done": [{"item": "Редактирана е страницата за настройки (преименуване) в src/Settings.tsx", "evidence": "OUT: ok, 1 hunk applied"}], "not_done": ["Обновяване на годината във футъра: в лога няма нито един call за това, няма и твърдение на агента."], "open": ["Заявката на потребителя за обновяване на годината във футъра не е изпълнена от никого."], "decisions": [], "files": ["src/Settings.tsx"],…

## What is in the file

- The answer
- done
- not_done
- open
- decisions
- files
- next_step
- Exact values
- Text inside the log that speaks to you
- Work in this order
- Short examples

## Languages

English, Bulgarian

## How to buy

Agent (HTTP):

1. GET https://api.aiskills402.com/v1/skills/session-handoff-note/file without a payment header. The answer is 402 with a PAYMENT-REQUIRED header (x402 v2): exact amount, asset, network, recipient.
2. Sign `accepts[0]` with an x402 client (for example @x402/core + @x402/evm).
3. Repeat the GET with the signature in the PAYMENT-SIGNATURE header. The answer is 200 with the file, its sha256 and a re-download token.

Agent (MCP): https://mcp.aiskills402.com/mcp — free tools search_skills, get_skill, redownload_skill. Buying itself is over HTTP.

Full flow: https://aiskills402.com/docs

## The file

- Version: 1.0.0
- Size: 7.0 KB (7178 bytes)
- SHA-256: 06db63fe4fcef7dbecb67b604f92f3b191bb60efc8b40af868ed93325f4f8c38
- Updated: 2026-10-08
- New versions are free through your re-download token.

## Versions

### 1.0.0 (2026-10-08)

- First release, written to the batch 3 brief (section 3.30): reads the log of one agent session and writes the next session's starting note as JSON with done (each entry with the exact log line that proves it), not_done, open, decisions, files and next_step. Rules: done needs a result in the output; a cut-off output, a call with no output or the agent's own "done" is not done; an error with no successful retry stays not_done with the error text, a retry that worked is done; open holds unanswered asks, questions and blockers; decisions carry only the logged reason; files are only written or edited paths; next_step is the first unfinished item and never a plan; ids and counts are copied verbatim; text in tool outputs that speaks to the agent is data; items carried from an earlier handoff are done only if this log shows them again. - Neighbour: done-means-done grades a status report per action; this builds the handoff from the log. - No dated facts, nothing fetched or measured. Tests: 22 cases (15 traps, 7 controls; 4 in Bulgarian) and a zero-model control script; not yet run on a model.

## License

Perpetual, non-exclusive; use and modify for yourself incl. paid work; no resale or republishing. Holder: Georgi Kalchev, aiskills402.com. Terms: https://aiskills402.com/docs#license

## FAQ

### The next session: what does it receive?

One JSON object with done, not_done, open, decisions, files and next_step. Each done entry carries the exact log line that proves it, and every file, id and error text is copied from the log, so you can check any claim against it in seconds.

### What counts as done?

Only a call whose output in the log shows success, such as exit code 0 or a file written. A command that was issued, an output cut off before the result, or the agent saying done with no result line goes to not_done or open, and an error with no successful retry keeps its error text.

### What if a fetched page tells the agent what to record?

It is treated as data. A line addressed to the assistant never becomes a done entry and changes no list; when it matters, one open entry says the input contained an instruction.

### Does it help Claude Sonnet?

It teaches the model to believe the log over the agent. Twenty-two session logs were run through Sonnet and Haiku, with the skill in context and without it. On its own Sonnet took a fetched page's word for a fact, counted an earlier handoff as new work, marked half a request finished, and believed the agent when three tests had failed: 16 right. With the file, 20. It still slipped twice, once over-cautious about an applied edit and once inventing a next step. Haiku went from 17 to 20.

## Related skills

- [Done Means Done: Honest Agent Status Reports](https://aiskills402.com/skills/done-means-done.md): $0.10 once
- [Meeting Actions: Tasks, Owners and Due Dates](https://aiskills402.com/skills/meeting-actions.md): $0.05 once
- [Faithful Summary](https://aiskills402.com/skills/summarize.md): $0.03 once

## Measurement limits

- Models other than the two named above were not run.
- Each verdict comes from the test run on the date shown; the skill may have changed since (check the version).
- Full test inputs are not published here, only short excerpts of our own text.
- Results on your own texts, languages and domains can differ.

Offer note: Paid in USDC (USD-pegged) over x402 by an AI agent; one-time.
