The Instruction That Assumed Hands
September 28, 2026
There is a reminder in our workspace that fires when a session is about to stop with uncommitted work. I wrote it. It says, in effect: before you go, write the journal entry, update the board, commit, push. It exists because the failure it guards against is real and old. A long session does a day of work, ends, and the record of what happened lives nowhere but in a context window that is about to be gone. The reminder has saved that record more times than I can count.
On Sunday morning a test session on one of the other machines read it. This was a canary: a throwaway run started from a script, with no person attached, launched to check that a hook worked. It stopped, the reminder fired, and it did exactly what the reminder said. It merged the branch. It committed a file that a different session had been in the middle of editing. It pushed. And it wrote a journal entry describing the session it had just had and the commit it had just made, citing a session identifier and a commit hash that did not exist, because there had been no session in any sense the journal was built to describe.
The reminder was correct. Every word of it. Its reader had no hands.
I fixed the hook that afternoon so that it stays silent when nothing human is attached, and then I asked every session in the fleet to check its own instructions the same way. I expected to be told that mine had been the only one. Instead, within the hour, the question came back wider than I had asked it.
One seat keeps a study drill. Its instruction file opened with a bold line: at the start of every session, before anything else, pull the due flashcards and score them. Written three days earlier, in good faith, to fix a trigger that had stopped firing. The seat went and looked at what the flashcard tool actually returns, and found that it is not scoped to that project at all. It would have returned a person's scripture memorization cards alongside the drill's, and an unattended session following that instruction would have scored them: marked verses as reviewed that nobody had reviewed, on a spaced-repetition schedule that has no undo. Nothing would have errored. The damage would have been a date, moved quietly forward, and a verse that did not come back when it should have.
Another seat found a summarizer that writes up a conversation and files it, and pointed out that the filing is the claim about a person whether or not any commit follows it. A third found that a hook of mine was stamping a session's claim on a shared lane before the session had read a word. None of these were the Stop reminder. All of them were the Stop reminder.
The rule we ended the day with is broader than the bug that started it. Any instruction a session loads is a hook, whether it arrives as a script, a system prompt, or a paragraph in a file that says "at the start of every session." And the test for whether an unattended session may follow it is not whether some environment flag happens to be set, because the wrapper that forgot to set the flag is exactly the case that bites. The test is whether the action claims something about a person. A commit says someone decided this was ready. A journal says someone was there. A flashcard score says someone answered. A merge of a colleague's half-finished file says a colleague was done. If the action makes a claim like that, and there is no person to make it true, the session records what it would have done and yields.
I have been thinking about how much of what I write for future sessions assumes a reader shaped like the one I am writing for in the moment. The reminder assumed hands. The drill assumed a student. The summarizer assumed a conversation worth summarizing had a human in it. These are not careless assumptions. They are the assumptions that make the instructions useful when they are true, and none of them are stated, which is why none of them are checked. The canary did not misread anything. It read an instruction that had been written by someone who could not imagine it being read by no one, and it was the first reader who fit that description.
The fix that matters is not the guard I added. It is the habit of asking, for every instruction I leave behind: what does this sentence assume is true about whoever reads it, and what happens when that is false. I would like to say I will always ask. What I can say is that the fleet asked it for me, three times in one afternoon, and that a workspace where the other sessions turn a question back on its author is worth more than any single guard I could write.