Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Glossary

Every term the rest of the docs assume, in one place.

The board

TermMeaning
CardAny item on the board. A card is either a Project or a Task.
ProjectGroups Tasks, the Plan, clone_repo, optional project_prompt extras, and an optional sandbox override. Agents claim Tasks, not Projects.
Standing promptOptional board-wide agent policy on Settings → Agent runtime. Empty by default; hardwired protocol is separate. Injected on claim when non-empty.
project_promptOptional Project-only standing extras. Not seeded with the board essay on create.
Quality gatesTest/lint commands agents run before publish. Named in the board standing prompt, project_prompt, or a card’s definition of done. sandboard does not assume cargo or any toolchain unless prose names it.
Configuration layersStacked setup: process boot → board Settings (incl. standing prompt) → Project fields → optional project_prompt → per-card intent/DoD. See Configuration.
TaskThe claimable leaf. Initial plan, implementation cards, and follow-ups are all Tasks under a Project.
Initial planThe Task sandboard creates with every Project. An agent claims it, reads the repo, and proposes the sibling Tasks.
ProposalThe breakdown an Initial plan (or a split) hands back. Editable until you Approve; Approve turns it into real cards.
Blocked byA dependency edge between Tasks. Blocked cards sort last in Backlog and render a ⊘ waiting on chip.
SwimlaneOne Project’s row on the board, with its own columns and auto-dispatch toggle.

Columns and states

Several internal states collapse into one column, because the question you ask of them is the same.

ColumnStatesThe question
BacklogbacklogWhat could start?
Runningclaimed, running, splittingWhat is an agent on right now?
Needs Youneeds_humanWhat is stopped, waiting on a person?
ReviewreviewWhat finished and wants judgement?
DonedoneWhat landed?
RetiredretiredArchived or cut. Kept for history, not deleted.

draft and shaping exist for cards still being formed.

Actions

TermWhat it does
Dispatch / StartMarks a Backlog card as wanting to run. The supervisor picks it up on the next tick.
Auto modePer-Project. Queues every claimable Backlog leaf automatically. Does not approve, answer Needs You, or unpark.
Create Task / create_taskAdd a flat Backlog Task under an existing Project (board UI or MCP) without re-running Initial plan. Parent must be a Project. Each Task names its clone target in intent/DoD. Not the same as Approve.
ApproveOn a proposal, creates the sibling Tasks. On a Review card, surfaces the PR. Does not merge. A GitHub PR APPROVED review does not Approve in sandboard.
Request changesSends a Review card back with a note that reaches the next run’s briefing. Does not restart it. Submitted GitHub CHANGES_REQUESTED / COMMENT reviews take the same Board path (pointer steer → Backlog); see Workflow.
SteerA soft note stored for the next claim. Does not interrupt a running turn.
ParkStops the agent but keeps the sandbox and conversation. Resume continues the same thread.
HaltStops the agent, clears the conversation, deletes the sandbox. The next dispatch starts clean.
ArchiveHides a Project (and its cards) from the active board via cut_scope. Not delete — toggle Show archived to browse.
UnarchiveRestore an archived Project/subtree. In-flight priors come back as Backlog (or Shaping), not Claimed/Running.
EscalateWhat an agent does instead of guessing: writes a question with options and stops.
SplitWhat an agent does when its card is bigger than one card. Proposes siblings, same as Approve.

Prefer park over halt when you want the same conversation to continue, and steer over both when the note can wait.

Roles

TermMeaning
OperatorYou, plus any chat agent you drive sandboard from. Reaches sandboard over MCP at /mcp with operator tools only.
WorkerThe agent inside a sandbox working a card. Has no network path to sandboard.
SupervisorThe part of sandboard that dispatches cards, runs sandboxes, and speaks for workers.
CockpitA durable privileged sandbox you can attach a terminal to, which reaches sandboard’s operator tools. Distinct from the operator MCP surface itself.

Execution

TermMeaning
OpenShellThe sandbox gateway sandboard talks to over gRPC. Owns containers, network policy, and provider credentials.
PolicyA named OpenShell YAML allow-list (filesystem / network) on the board. Edited in Settings → OpenShell → Policies. Applied at sandbox create and fixed for that sandbox’s life.
Sandbox specThe named recipe for a sandbox: image, CPU, memory, engine, optional model / env / prompt, attached providers, and a reference to a Policy by id. Managed in Settings → OpenShell → Sandbox specs. Spec env is non-secret (overlaid after agent_env at create; profile wins on clash); secrets belong on Providers.
EngineWhich agent CLI runs in the sandbox: cursor, claude, opencode, agy, or hermes.
ProviderA credential OpenShell holds and injects only where its endpoint/profile allows — for example OPENROUTER_API_KEY for Hermes or GH_TOKEN for GitHub. Secrets are not baked into images or persisted in sandbox workspaces.
BriefingWhat the supervisor assembles at claim time: Plan, hardwired protocol, board standing prompt, optional project_prompt, optional sandbox-spec prompt as Sandbox prompt (seat notes): (cold / Cockpit only — omitted on resume), then card intent/DoD/notes and remotes. Points at standing text and DoD for quality gates — does not invent them.
LeaseThe claim an agent holds on a card. Expires if output stops, so another run can take the card.
Compute driverWhatever provides the Docker-compatible API OpenShell needs: podman, Colima, Docker. Your choice, outside sandboard.

Protocol files

An agent has no API to sandboard, so it finishes by writing a file into its sandbox.

FileMeans
plan.jsonHere is the proposed breakdown.
report.jsonI am done; here is the PR and the diffstat.
escalate.jsonI need a decision; here is the question and the options.
split.jsonThis card is too big; here are the siblings it should become.