dispatch is anything that leaves, and the deeplink now goes somewhere

the definition was "doing something with a result beyond keeping it",
which does not obviously cover a notification ABOUT classification failing.
it should: classification decided where the item goes and it went to
unclassified/. telling somebody is a different step, and its rule belongs
in DISPATCHING.md. the test is never what the message is about — it is
whether anything left.

and the commander notification pointed at officer://command-hq/{id} where
{id} is the DIRECTORY name, while /command-hq/:sessionId addresses a
commander by its transcript id. so the tap landed nowhere.

the two want different ids and cannot be reconciled today: threading wants
the directory name, stable from creation; the route wants the transcript
id, which does not exist when the commander is created. rather than make a
commander fetch its own transcript id before it can speak — an errand it
would rightly skip, as the language rule already proved — the tap opens
Command HQ and the owner picks. one tap worse, and correct.

the honest fix is a route that accepts a directory name. noted where
whoever does the mobile deep-link work will find it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Officer-Session: 656f5c85-e49a-4f1f-b9f3-042a04b4d043
This commit is contained in:
2026-08-25 08:02:34 +00:00
co-authored by Claude Opus 5
parent 141e470aee
commit a35df2afb2
2 changed files with 21 additions and 6 deletions
+8 -3
View File
@@ -228,9 +228,14 @@ export function commanderClaudeMd(params: CommanderClaudeMdParams): string {
' subdirectory of `data/` named for that category. It changes where the item IS, never what it is.',
' Optional, and most commanders do not need it: it earns its place only when there are enough items',
' that finding one matters. It is a STEP, not a place — the place is always `data/`.',
'- **Dispatch** — doing something with a result beyond keeping it. Telling the owner, handing it to',
' another agent, sending it somewhere. Optional, off until the owner arms it, and the only one of the',
' four that acts outside this directory.',
'- **Dispatch** — anything that LEAVES this commander. Telling the owner, waking another conversation,',
' handing work to an agent, sending something somewhere. Optional, off until the owner arms it, and the',
' only one of the four that acts outside this directory.',
'',
' Note what that includes: a notification saying classification could not place an item is DISPATCH,',
' not classification. Classification decided where the item goes and it went to `unclassified/`.',
' Telling somebody about it is a different step and its rule lives in `DISPATCHING.md`. The test is',
' never what the message is about — it is whether anything left.',
'',
'Storing the result is NOT dispatch. Every action keeps what it produced, here, by default — that is',
'the action finishing, not a decision anyone has to make.',