Blog · · 7 min read

End every AI chat with a handoff file

#The situation

Some work doesn't fit in one chat. A price change, a move to a new supplier, a grant application, a product launch: it takes three or four sittings over a few weeks, and you do each of them with an AI assistant.

The first session goes well. You lay out the problem, it asks good questions, you decide a few things. The second session starts with a blank box. You scroll back through last week's chat to remember what you agreed, paste half of it in, forget the number that mattered, and spend twenty minutes getting back to where you already were. By the fourth session the chat history is a long thread nobody will read again, and the decisions in it are scattered between drafts you rejected.

The assistant doesn't remember, and the parts of the chat that matter are mixed in with the parts that don't. So the last thing a session should produce is a short file that holds the parts that matter.

#Ask the AI

Paste this at the end of a working session, in the same chat. It works in ChatGPT, Claude, Gemini, or an agent that can write files directly.

We're stopping here. Before we do, write a handoff file so the next session
(with you, a different assistant, or me in two weeks) can pick this up without
this chat.

Name it: <project-slug>/<today's date YYYY-MM-DD>-handoff.md

The file:
- Starts with frontmatter: title (the project), date, session (a number, one
  more than the last handoff), status (in progress, blocked or done), and
  previous: the filename of the last handoff, if there was one.
- Then a # heading and three sentences: what the project is, where it stands
  now, and the single next step.
- "## Decided": every decision so far, including earlier sessions, one line
  each, with the reason in a few words. Mark the ones made today with (new).
- "## Changed today": anything that replaced an earlier decision or fact,
  written as "was X, now Y, because Z".
- "## Numbers and dates": every figure and deadline the next session needs, in
  a table. Only numbers that appear in the conversation or earlier handoffs.
- "## Open": - [ ] questions nobody has answered yet, each with who or what can
  answer it.
- "## Next session": what to do first, second, third.
- If a deadline is within 30 days, put it in a > [!important] callout at the
  top, under the heading.
- Link the previous handoff as a relative Markdown link: [previous
  handoff](<its filename>).

Rules: no summary of how we got here, only where we are. Don't invent
numbers, names or dates; if something is unclear, put it under Open. Write it
so someone who never saw this chat can act on it.

Reply in the chat with the filename only. Then the file, in one code block
fenced with four backticks.

Next time, start the new chat by pasting the latest handoff file and writing "Continue from this." That's the whole habit.

Four lines in the prompt do most of the work.

"Every decision so far, including earlier sessions." Each handoff carries the full list forward, so you only ever need the latest one to start. The older files are history, not required reading.

"Changed today." Plans move. A handoff that only lists the current state hides the fact that the date was different last week, and that's exactly the detail someone will quote from an old email. "Was X, now Y, because Z" keeps the reason with the change.

"Don't invent numbers." Asked to summarise, an assistant will round, smooth and fill gaps. Pointing anything unclear to Open turns a gap into a question instead of a quiet guess.

"Someone who never saw this chat." That someone is usually you, two weeks from now. It is also a different assistant: the file doesn't depend on which tool wrote it.

#What comes back

We tried it on the second session of a made-up but realistic project: a small time-tracking app raising its prices, with the first session's handoff pasted at the top of the chat. The assistant replied with the filename, tally-pricing/2026-10-12-handoff.md, and this file. It's shortened for the page: five lines of Decided, eight table rows and two open questions are cut, and a few lines are condensed.

---
title: Tally pricing change
date: 2026-10-12
session: 2
status: in progress
previous: 2026-10-05-handoff.md
---
# Tally pricing change: handoff after session 2

> [!important]
> The email to existing customers must go out by **2026-11-03** (90 days'
> notice before the 2027-02-01 change date). That is 22 days from today,
> 2026-10-12.

Tally is a time-tracking app for freelancers, raising prices to cover higher
sync-server and support costs, aiming for about 25% more revenue without a
wave of cancellations. We chose plan C and the customer email is drafted, but
the yearly price is not final and the coupon is unconfirmed. The next step is
to settle the yearly price ($64 or $60).

Previous session: [previous handoff](2026-10-05-handoff.md)

## Decided
- Keep the free tier unchanged (session 1, reason not recorded).
- (new) Plan C: new prices for new customers now, existing customers move at
  their first renewal on or after 2027-02-01, because A (everyone at next
  renewal) feels hostile and B (existing keep their price forever) only gives
  about +6%.
- (new) Existing customers get 90 days' notice and 20% off their first
  renewal at the new price.
- (new) Team plan: yes, but deferred until after the price change lands. A
  separate project; it must not creep into this one.

## Changed today
- Change date: was 2027-01-01, now 2027-02-01, because 90 days before
  2027-01-01 was 2026-10-03, which had already passed.
- Email deadline: was 2026-10-03 (implied by the old date), now 2026-11-03,
  because the change date moved and the notice stays 90 days.

## Numbers and dates
| Item | Value |
|---|---|
| Current price | $6/month or $48/year |
| Paying users | about 1,900 (about 60% on yearly) |
| Proposed new price | $8/month, $64/year (yearly not final, see Open) |
| Monthly churn, monthly plans | 2.1% |
| Plan C revenue | +19% in year one, about +27% after (modelled with the old 2027-01-01 date and $64/year) |
| Discount | 20% off the first renewal at the new price |
| Email must go out by | 2026-11-03 |

## Open
- [ ] Yearly price: $64 or $60? The user decides. The model used $64, so
      rerun it if $60 is chosen. The email and FAQ both state the price, so
      this blocks them.
- [ ] Can the payment provider's coupon do "20% off the first renewal only"
      automatically? The user is checking with the provider.
- [ ] Where is the final edited email text? It was edited in the chat and is
      not in this file. The user needs to supply it, or the next session
      redrafts it from the points above.

## Next session
1. Settle the yearly price and, if it changes, rerun the revenue model for
   plan C with the 2027-02-01 date.
2. Get the payment provider's answer on the first-renewal coupon.
3. Write the FAQ, then finalise the email and send it to existing customers
   by 2026-11-03.

This is a good handoff. The deadline moved during the session, and the file says so twice: once in the callout, once under Changed today, with the arithmetic that forced it. It also noticed something the chat never said out loud: the revenue estimate was modelled before the date moved, so it may be stale.

Two things are worth a second look.

"22 days from today" will be wrong tomorrow. A relative number in a file you'll read later goes stale the moment it's written. The date next to it is the part to trust. If you care, add "no relative dates" to the rules.

The best line is an open question. Where is the final edited email text? The handoff points to the email; it doesn't hold it. That's the right call for a handoff, and it's a hint: anything you'll send or publish deserves its own file in the same folder, next to the handoff that mentions it.

#Save it as a file

Save it as 2026-10-12-handoff.md in a tally-pricing folder, next to last week's, and connect that folder in MD Flow (what browsing a folder of Markdown looks like).

#Why that matters next week

The latest handoff is easy to find. The file list shows each file's name, and a date-first name tells you which is newest at a glance. Open it and it reads as a document: the frontmatter as a header, the deadline as a coloured callout you can't miss, the open questions as a checklist.

The files link to each other. The previous handoff link at the top of each file opens the earlier one right in MD Flow, so you can walk back through the project session by session. When you want to know when the change date moved, and why, it's two clicks away instead of a scroll through four chats.

It's the same file in any assistant. Paste it into ChatGPT on Monday and Claude on Thursday; both start from the same place. If you use an agent that can read your folders, point it at the project folder instead of pasting: the newest handoff is its starting context, and it can update it at the end of the session. MD Flow's preview follows each save, so you can read along as it does.

Decisions stay findable after the project ends. Six months from now, someone will ask why existing customers got 20% off. Search by filename is free in MD Flow; with Pro, search also reaches inside the files, so discount or coupon finds the session where it was decided, with the line and its number.

A chat is where the thinking happens. The handoff is what the next session needs, and the folder of handoffs is the record of how you got there.