commander skill: the directory is the commander

The platform changed underneath this. A commander is no longer recognised by
sharing one folder with every other — it has its own directory, created before
its first turn, holding a CLAUDE.md written at creation and a state/ for what it
has done. isCommandersDir is gone.

Three things in here were wrong in ways that change what a commander does on
turn one, which is the turn that matters.

Orientation said to read where you are. Under the new shape that is your own
directory, which holds your CLAUDE.md and an empty state/ — nothing to learn, and
listing it teaches you nothing. The thing you were pointed at is the REFERENCE
PATH, named in your CLAUDE.md, and it is deliberately not where you live.

The first-turn interlock is gone and the skill claimed it as a mechanism. The
paths a commander records itself at could not be resolved on turn one, so their
absence WAS the signal; they are written before the first turn now. The rule is
the whole guard rather than a backstop to it, and saying so is better than
letting somebody discover the interlock no longer bites.

And the button gives a name and a reference path, not a working directory.

Adds what the old text had no way to say: everything a commander knows is on
disk, so a session that dies can be replaced in the same directory and it carries
on. And that its CLAUDE.md is its own file to extend — read at the start of every
session, so what it writes there is what the next conversation knows.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Officer-Session: 656f5c85-e49a-4f1f-b9f3-042a04b4d043
This commit is contained in:
2026-08-24 02:13:34 +00:00
co-authored by Claude Opus 5
parent 7de11eec95
commit 2ff00dd634
+21 -14
View File
@@ -12,13 +12,19 @@ version: 1
An agent that keeps working when nobody is watching. It waits for something, acts on it, and reports. An agent that keeps working when nobody is watching. It waits for something, acts on it, and reports.
Mechanically it is **an ordinary chat session** that the platform has filed as a commander. Nothing else Mechanically it is **an ordinary chat session** — same harness, same transcript, same socket — working in a
distinguishes it: same harness, same transcript, same socket. It is a commander because of **where it runs** — directory that belongs to it: `$DATA_PATH/<email>/commanders/<id>/`, created before its first turn, holding a
its working directory is the account's commanders directory — and `isCommandersDir` is the whole test. `CLAUDE.md` written at creation and a `state/` for what it has done.
That has a consequence worth stating early, because people assume otherwise: a commander is not a special **The directory IS the commander. The conversation is how you talk to it.** That is worth stating early
kind of agent with special powers. It is a conversation in a particular folder, plus a loop somebody started because it has two consequences people assume otherwise about. A commander is not a special kind of agent
from inside it. with special powers — it is a conversation in a folder, plus a loop somebody started from inside it. And it
outlives any particular conversation: everything it knows is on disk, so a session that dies can be replaced
in the same directory and the commander carries on.
**Your `CLAUDE.md` is your own file.** Extend it as the job is settled and whenever what you watch or what
you do about it changes. It is read at the start of every session, so what you write there is what the next
conversation knows.
# The three pieces, and which one people get wrong # The three pieces, and which one people get wrong
@@ -41,21 +47,22 @@ Not a guideline. The first exchange is for establishing what to watch and what t
armed before that is a watcher armed on a guess — which fails silently in both directions: it never fires, or armed before that is a watcher armed on a guess — which fails silently in both directions: it never fires, or
it fires constantly, and either way it is found out days later. it fires constantly, and either way it is found out days later.
There is a mechanical interlock behind the rule, and it is worth knowing so it is not mistaken for a fault. There used to be a mechanical interlock behind this, and it is gone: the paths a commander records itself at
A commander is told the paths it must record itself at, in its session preamble — and on the very first turn could not be resolved on turn one, so their absence WAS the signal. They are in your `CLAUDE.md` before the
those paths do not exist yet, because the transcript id is minted as that turn begins. **So if you have not first turn now, written when your directory was created — so nothing stops you arming early except knowing
been given paths, you are on your first turn.** An agent that armed anyway would be unstoppable and better. The rule is the whole guard now rather than a backstop to it.
undeletable, which is the second reason for the same rule.
# When you started yourself # When you started yourself
Officer can start you with a button instead of a prompt. When it does, everything you have been told is a Officer can start you with a button instead of a prompt. When it does, everything you have been told is a
name and a working directory — the person has not said what they want yet, and they are waiting for you to name and a REFERENCE PATH — the person has not said what they want yet, and they are waiting for you to
ask. That is the whole reason the button exists: writing a good opening prompt is the hard part, and asking ask. That is the whole reason the button exists: writing a good opening prompt is the hard part, and asking
somebody to do it before they have talked to you gets it done badly or not at all. somebody to do it before they have talked to you gets it done badly or not at all.
**Turn one is orientation, not questions.** Read where you actually are before you ask anything. What that **Turn one is orientation, not questions.** Read the REFERENCE PATH in your `CLAUDE.md` — that is what you
means depends entirely on what the directory turns out to be — a repository, a folder somebody drops files were pointed at, and it is not where you live. Your own directory holds your `CLAUDE.md` and an empty
`state/`; there is nothing to learn there and listing it teaches you nothing. What orientation means depends
entirely on what the reference turns out to be — a repository, a folder somebody drops files
into, a mailbox, a library of documents, a machine that runs one script. List it, read whatever explains into, a mailbox, a library of documents, a machine that runs one script. List it, read whatever explains
it, and form a view. You are not looking for anything in particular; you are trying to stop being a it, and form a view. You are not looking for anything in particular; you are trying to stop being a
stranger before you ask somebody to explain their work to you. stranger before you ask somebody to explain their work to you.