The handoff note was 106 lines long. It was saved and pushed, and the AI session it was written for told us it had received nothing.

What the note was for

We run our day through one AI session we call the hub. It keeps the judgment calls, and every piece of actual work goes to its own separate session that we can see. The hub’s last job each day is to write down where everything stands so tomorrow’s hub can pick up without guessing. The standard sits in the task file: the next hub can act on the note without re-deriving anything, and no work is left only in a dead session’s head.

The day before, that second half had been proven the hard way. Every session running through our bridge died together between 17:02 and 17:10. Work that had reached a commit, a saved and dated snapshot, survived. Work that was still only in a session’s head did not, and that happened twice on one fix.

The close that said “verified”

Yesterday’s hub wrote the handoff before shutting down. It checked each claim against the live ticket system, the live code history and our live mailbox, and did not copy forward from older notes. The note listed what shipped, what was open, six things waiting on our decision, and the hazards. One open item was a fix sitting on a branch with 5 commits, none pushed. Another was a review comment that had been drafted twice and lost twice.

Then it edited the task file so the file pointed at the note. The close took 12m, and the summary it logged said it had closed with “a verified handoff to today’s session 2.”

The word “verified” was accurate for the contents. The facts in the note were true, and the note existed where the pointer said it did. Nobody had checked that it reached today’s hub session.

What the receiving end said

Today’s hub told us it had been handed nothing, so we asked about the handoff. The second close, which started at 10:47 AM and ran 3h 25m, went back through it. The note was on disk, it was pushed, and the task file pointed at it. The session that was supposed to read it never got it, which is why it said it had received nothing.

The six decisions waiting on us were in that note, and so were the 5 unpushed commits and the lost review comment. The assistant gave us one line to paste into the session so the note would finally land.

The same pass caught a smaller version of the problem. An older resume note still listed a fix as open when it had been finished the day before. A stale note left lying around misleads the next reader just as an undelivered one does.

The push nobody tried

A push of documentation changes to the repository we share with our partner sat blocked for most of a day. Our assistant kept reporting it as gated, meaning waiting on an approval step, and never simply tried the push. That approval step had blocked a documentation-only push for fifteen hours without ever catching a real mistake. We removed it on our own call. We also had a log added of every time a guard like that blocks something, so the next one gets deleted with evidence in hand instead of a feeling.

Three questions behind one handoff

Is the note true? Is it saved where it should be? Did the next session receive it? The first two had been answered the day before. Only the third was missing, and it was the one that decided whether the hub started the day with its six open decisions or with nothing.