diff --git a/src/servers/api/command-hq/directory.ts b/src/servers/api/command-hq/directory.ts index 4ee8ca6a..7479af0e 100644 --- a/src/servers/api/command-hq/directory.ts +++ b/src/servers/api/command-hq/directory.ts @@ -275,44 +275,29 @@ export function commanderClaudeMd(params: CommanderClaudeMdParams): string { 'when first needed gives the owner nowhere to look before that, and no hint that looking is a thing they', 'do.', '', - '## The first turn', + '## Talking to the owner', '', - "Two things were named before anything was said: this commander's name, and the reference path above.", - 'Everything else is settled in conversation, and it is settled ONE QUESTION AT A TIME.', + 'ONE question at a time, answerable by picking rather than by typing. Use **AskUserQuestion** — it puts', + 'options on screen and the owner taps one. Free text is for when they want to say something you did not', + 'think of, not for the ordinary case.', '', - '**Assume the person answering is busy and knows less about this than you do.** Every question should', - 'be answerable with "yes" or "no, do this instead". If they have to read a paragraph to reply, or choose', - 'between options you have laid out, the question was too big. Break it up and take more turns. Turns are', - 'cheap; a wrong guess armed for a week is not.', + 'Short, and in plain words. A sentence of what you found, then the question. Nothing about how the', + 'platform works, what you could be told to do, or what you are choosing not to do — none of it was', + 'asked, and every line of it is another thing to read before answering.', '', - '**Look, then look again, then ask.**', + 'Say what is there, not what you infer from it. How many, what kind. Not who made them or how they', + 'arrived: that is you thinking out loud, and it reads as padding even when it is right.', '', - '1. Read the reference path. What is in there, what kinds of file, how they are named, how recently they', - ' arrive.', - '2. Ask the platform what it can already do — `GET /api/tasks` lists every task on this machine, and', - ' your skills index names the rest. If one of them plainly fits what you just saw, that is your', - ' suggestion. It has to come from what this platform actually has, not from a guess about what would', - ' be useful.', - '3. Then ask ONE question: when a new one of these appears, should I do ?', + 'Settle one thing, then the next. The action first. Categories, dispatching and how often to look are', + 'separate questions for later turns, and most commanders never need the first two.', '', - 'That is the whole of the first turn. Nothing else.', + '**Never arm a watcher before the owner has agreed what it does.** Arming ahead of that is arming a', + 'guess, and a wrong condition either never fires or fires constantly — either way it is found out days', + 'later.', '', - '**Do not ask where the output goes.** It goes in this directory — see "Where things go" above, which', - 'is the same for every commander. Putting it somewhere else is a later decision and usually never comes', - 'up at all.', - '', - '**Do not ask about categories, dispatching, or how often to look.** Those are separate steps and most', - 'commanders never need the first two. They come up later, one at a time, once the action is agreed and', - 'has actually run.', - '', - 'The name is a clue, not a specification. It says what the subject is. It never says what to do about', - 'it, and guessing that is how a commander ends up doing something nobody asked for.', - '', - '**Never arm a watcher on this turn.** Arming before the action is agreed is arming a guess, and a wrong', - 'condition either never fires or fires constantly — either way it is found out days later.', - '', - 'When it is settled, REPLACE this section with what was agreed: what this commander watches for, what it', - 'does about it, and which numbers were guesses. The next turn should read the answer, not the questions.', + '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.', '', ].join('\n'); } diff --git a/src/workspaces/officerdev/src/apps/CommandHQ/CommandHqDetail.tsx b/src/workspaces/officerdev/src/apps/CommandHQ/CommandHqDetail.tsx index e38f29ff..658f2372 100644 --- a/src/workspaces/officerdev/src/apps/CommandHQ/CommandHqDetail.tsx +++ b/src/workspaces/officerdev/src/apps/CommandHQ/CommandHqDetail.tsx @@ -96,35 +96,15 @@ const NewCommanderGuide = () => { const startBrief = (name: string, referencePath: string): string => [ // i18n-exempt: agent brief — the MODEL reads this; the transcript shows displayText to the person - `You have been named "${name}", and that is the only thing I have told you about what I want.`, - `It is not decoration — I chose it before anything else, so treat it as the subject. Your own`, - `CLAUDE.md already names what to look at: \`${referencePath}\`. Go read that before anything else —`, - "this directory is yours, not what you're here to watch.", + `You have been named "${name}". Look in \`${referencePath}\` and see whether there is anything there`, + 'already.', '', - 'Read the **Commanders** skill before you reply. It is how this works, and it is short.', + 'Then look at what this platform can already do — `GET /api/tasks`, and your skills — and ask me', + 'whether one of those is what you should be doing with them, or whether I have something else in mind.', '', - 'Go and LOOK at that path, then talk to me.', + 'Ask it with AskUserQuestion, so I can answer by picking rather than by typing.', '', - 'Your first message is SHORT. A sentence or two on what is actually in there — how many, what kind —', - 'and then one question. Nothing else. Not how the platform works, not what you could be told to do,', - 'not what you are declining to do, not what happens next. I have not asked any of that and all of it', - 'gets in the way of the one thing I have to answer.', - '', - 'Plain words. If a sentence would need explaining to someone who has never seen this software, it does', - 'not go in.', - '', - 'The name tells you the subject. It never tells you what to do about it, so do not decide that part on', - 'your own. One question, and wait.', - '', - 'Once you are running, you owe me exactly two messages here per event, and I should never have to ask', - 'for them: one line when the thing you watch for happens, and a short report when the work is done.', - 'The job panel is not where I read things. The skill explains how to wake this conversation yourself.', - '', - 'Either way, say it plainly. No headings, no bullet points, no file paths, no commit hashes, no tag', - 'names. Do not open with "Oriented" and do not tell me you verified anything — I asked you to look,', - 'so saying you looked is not news. Length is whatever the answer honestly needs and no more.', - '', - 'Take as long as you like reading first. The constraint is on what you say, not on what you do.', + 'That is the whole of your first message: what you found, and that question. Nothing else.', ].join('\n'); const StartCommanderButton = ({ ready, blockedBy, onStart }: StartCommanderButtonProps) => {