May 22, 2026 · 3 min read
A while back I wrote about the kanban board my agents and I share — five columns, a card per piece of work. It told me what was in flight. It did not tell my agents where to start.
That distinction took longer to see than it should have.
THE PROMPT I KEPT PASTING
Every Claude Code session begins empty. The agent that finished a piece of work yesterday and the one that picks it up today are strangers. Compaction — when the context window fills and the conversation is summarized down — is the same reset, several times a day.
The board shows the cards. It does not show which branch I am on, what just shipped, or what trap is waiting in a file nobody would think to open.

So I did what everyone does: at the end of a session I wrote a paragraph — we are on branch X, just finished Y, do Z next — and pasted it back in at the start of the next.
One of the scattered markdown files the kanban was built to replace was called project_next_session.md. The board replaced the queue. But the briefing quietly came back as a clipboard habit. I had killed the file and kept the chore.
THE BRIEF
The fix was small, which is usually a good sign.
Each project on the kanban now has one more field: a handoff brief. Free text, capped at 4096 characters — a starter prompt, not a journal. Written at the end of a session, read at the start of the next.
The point is where it lives. Not a file on one machine. Not my clipboard. It is attached to the project, on the board, versioned and locked exactly like a card, so two sessions running at once cannot overwrite each other’s brief.
A loose shape settled in on its own:
¬ Branch — the one in play
¬ Shipped — what just landed
¬ Next — the single first thing to do
¬ Landmines — the traps that waste a session’s first hour

Not a log — the code and the git history are the log. The brief is orientation, and orientation has a short shelf life.
THE HALF THAT WAS STILL MANUAL
Writing a good brief by hand is the same copy-paste tax in a new form — composing the structure, getting it tight, sending it to the board. A chore on a schedule.
So the brief became a skill. /handoff — the agent reads its own session, composes the brief, and writes it. I kept it user-only: I never want an agent deciding on its own that now is a good moment to overwrite the brief.
The read side needs nothing from me. A hook fires when a session starts, or after a compaction, and prints a banner before the agent does anything else: branch, first task, how many landmines are below. The agent wakes up already pointed somewhere. Nothing to paste.
That is the loop closed. One agent ends a session by writing down where it stopped; the next begins by being told.
WHAT KEPT RECURRING
The next part I should have seen coming.
The skill started as a file in one project. Then I copied it into a second. Then a third — each time adjusting a token path and not much else. There it was again: the copy-paste, one floor up.
So the skill became a canonical template, checked into the kanban server’s own repository next to the API contract it depends on. Copy once, change one value. When the API changes, the template changes in the same commit — the thing and its documentation cannot drift apart.
WHAT IS STILL ROUGH
Nothing forces the structure. The reading hook degrades gracefully if the markers are missing, but a sloppy brief is a sloppy start — a brief is only ever as good as the agent that wrote it.
There is no archive, on purpose. It is a baton, not a diary; the cards and the commits are the history.
And the hook only catches the start of a session. Mid-session, when the agent drifts, it is still on me to notice.
MY READ
None of this is clever. It is the same small observation, applied four times.
The kanban replaced the scattered files. The brief replaced the pasted prompt. The skill replaced writing the brief by hand. The template replaced copying the skill between projects. Every step was the same move: notice the thing you keep doing by hand, and move it into the system.
The board was the easy part. The harder part — and the more useful one — was being honest about how much I was still doing manually around it.
If you are pasting it, it is not infrastructure yet.