diff --git a/src/servers/api/command-hq/directory.ts b/src/servers/api/command-hq/directory.ts index ea854c2b..39da355f 100644 --- a/src/servers/api/command-hq/directory.ts +++ b/src/servers/api/command-hq/directory.ts @@ -165,10 +165,22 @@ export function commanderClaudeMd(params: CommanderClaudeMdParams): string { return [ `# ${params.name}`, '', - 'This is a commander: an agent that keeps working when nobody is watching. This file is its own —', - 'extend it as the job gets settled, and again whenever what it watches or what it does about that', - 'changes. Open the **Commanders** skill before starting or changing a watcher; it carries how the', - 'pieces fit, what to establish first, and the mistakes that are expensive.', + 'This is a commander: an agent that keeps working when nobody is watching.', + '', + "**This file is the platform's, not yours. Never edit it.** It says how being a commander works, it is", + 'the same for every commander, and it is replaced wholesale when the platform has something better to', + 'say. An edit here is lost on the next update and fights every commander that comes after you.', + '', + '**Everything YOU decide goes in files you create, beside this one.** `JOB.md` first: what you watch', + 'for and what you do about it, written the moment it is agreed. Then one file per thing that has rules', + 'of its own — `CLASSIFICATION.md`, `DISPATCHING.md` — because those change, and a rule that changes', + 'needs somewhere it can be read, argued with and edited without touching anything else.', + '', + '**Read `JOB.md` before you do anything, on every session.** It is the answer; this file is only the', + 'method. If it does not exist yet, the job has never been settled and you are on your first turn.', + '', + 'Open the **Commanders** skill before starting or changing a watcher; it carries how the pieces fit,', + 'what to establish first, and the mistakes that are expensive.', '', '## What this watches', '', @@ -272,9 +284,9 @@ export function commanderClaudeMd(params: CommanderClaudeMdParams): string { '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.', '', - '**A spawned agent follows a FILE, not a prompt.** Put the rules in `procedures/.md` here and', - 'point the agent at it. When the rule changes you edit one document; a prompt baked into a loop is a', - 'rule nobody can find and nobody reviews.', + '**A spawned agent follows a FILE, not a prompt.** Point it at `CLASSIFICATION.md`, `DISPATCHING.md`,', + 'or whatever else you wrote for the job. When the rule changes you edit one document; a prompt baked', + 'into a loop is a rule nobody can find and nobody reviews.', '', '**Say what is provisional.** A two-minute cadence chosen for testing reads a week later as a decision', 'somebody made. Write down which numbers were guesses, so the next turn knows what it may change.', @@ -292,6 +304,11 @@ export function commanderClaudeMd(params: CommanderClaudeMdParams): string { 'something broken.', '', '```', + "CLAUDE.md this file. the platform's. never edited.", + 'JOB.md what was agreed: what you watch for and what you do. yours, written once', + ' the job is settled and kept true after that.', + 'CLASSIFICATION.md the category rules, if it classifies. yours, and expected to change.', + 'DISPATCHING.md what happens to a result beyond keeping it, if anything. yours.', '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', @@ -439,9 +456,9 @@ export function commanderClaudeMd(params: CommanderClaudeMdParams): string { 'If something DOES go wrong in the backlog, that is worth saying — in the conversation if it is still', 'open, or as a notification if it is not. A failure is news. A success is not.', '', - 'Once the job is settled, write it into this file, replacing this section: what you watch for, what you', - 'do about it, and which numbers were guesses. The next session should read the answer, not the', - 'questions.', + 'Once the job is settled, write it into `JOB.md` — what you watch for, what you do about it, and which', + 'numbers were guesses. Not into this file. The next session reads `JOB.md` for the answer and this one', + 'for the method.', '', ].join('\n'); }