From d4b26be706e3919774216c96be07a6a875922561 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Padez?= Date: Tue, 25 Aug 2026 05:44:54 +0000 Subject: [PATCH] the directory is called data MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit it was `classification/`, and a commander produced `transcripts/` anyway — which is the same mistake one level up: a name taken from what this particular commander happens to make. `data/` describes the ROLE the directory plays, and that is identical for every commander there will ever be. classification is a STEP, not a place: when it runs, it moves items into subdirectories of `data/`. the place is always `data/`. so a commander that does not classify has a flat `data/` and that is the whole story. one that does has `data//` and `data/unclassified/`. Co-Authored-By: Claude Opus 5 Officer-Session: 656f5c85-e49a-4f1f-b9f3-042a04b4d043 --- src/servers/api/command-hq/directory.ts | 26 ++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/src/servers/api/command-hq/directory.ts b/src/servers/api/command-hq/directory.ts index 7ebeca1d..5ebd4778 100644 --- a/src/servers/api/command-hq/directory.ts +++ b/src/servers/api/command-hq/directory.ts @@ -204,9 +204,10 @@ export function commanderClaudeMd(params: CommanderClaudeMdParams): string { '- **Action** — the work done to ONE item because the trigger fired. It produces something. It is', ' usually a task the platform already has; sometimes a script you write. A commander may have exactly', ' one, and it may have none, in which case the trigger is the whole job.', - '- **Classification** — deciding which category a produced item belongs to. 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.', + '- **Classification** — deciding which category an item in `data/` belongs to, and moving it into a', + ' 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.', @@ -256,7 +257,7 @@ export function commanderClaudeMd(params: CommanderClaudeMdParams): string { 'those live here, in your own directory. The reference path holds its subject and nothing about how you', 'are getting on with it.', '', - 'Everything an action produces goes in THIS directory, under `classification/`. Never into the path you', + 'Everything an action produces goes in THIS directory, under `data/`. Never into the path you', 'watch — that holds its subject, not your work. Getting the result there is your problem to solve with', 'whatever ran the action; where it ends up is not negotiable.', '', @@ -280,19 +281,22 @@ export function commanderClaudeMd(params: CommanderClaudeMdParams): string { 'something broken.', '', '```', + 'data/ everything this commander has produced. ALWAYS called data.', + ' / only if it classifies — one directory per category, as they are agreed', + ' unclassified/ only if it classifies — produced and recorded, placement still open', 'state/ the loop pid and spawned session ids. The platform reads these. Always.', 'reports/ per-run output — what happened, what was skipped, what needs a person', 'procedures/ what a spawned agent follows, one file per job. Only if you spawn one.', - 'classification/ only if this commander classifies:', - ' / one directory per category, named as they are agreed', - ' unclassified/ handled and recorded, placement still open', '```', '', - 'When there IS classification, `classification/` is named for the SHAPE, not the payload. Whatever this', - 'commander produces, it is items being filed — so naming the directory after one job bakes that job', - 'into the layout, and the layout has to outlive it.', + '`data/` is called `data`. Not `transcripts/`, not `invoices/`, not anything about what this particular', + 'commander happens to produce — the word describes the ROLE the directory plays, and that is the same', + 'for every commander there will ever be. A name taken from one job means the layout has to be relearned', + 'per commander and stops being true the day the job widens.', '', - "**A file's directory is its state.** In a category, it is filed. In `unclassified/`, it is finished", + "**A file's directory is its state.** Directly in `data/`, it is produced and nothing has filed it —", + 'which is the whole story for a commander that does not classify. In a category, it is filed. In', + '`unclassified/`, it is finished', 'work waiting on a person — not a failure, and nothing should re-run the action on it. The ledger says', 'whether an item was handled; the directory says where it belongs. They answer different questions and', 'you need both.',