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

Conventions

One page freezes the vocabulary. If a term isn’t here, it’s defined where it’s used.

Canonical lexicon

Castellan docs use two metaphor families — organism (biology of a harness) and field (coordination through the environment). Product name Castellan and Castle Holdings branding stay. Body copy does not lean on animal packs or feudal/military castle staff.

PreferAvoidMeaning
Organism / harness as living systemStatic config file as the whole storyGenome + circulation + immune gate over a run
GenomeOpaque “config blob” without lineageNamed topology snapshot in the evolve archive (parent_genome_id)
Circulation / vitalsVague “health metrics” without the CLITick-level field health (castellan vitals, CirculationVitals)
Immune gate / quarantine“Auto-merge whatever evolve proposes”Reject or quarantine harmful topology mutations before seeding
Evolve / episode flywheel“Retrain the model”run → episodes → evolvedrift-check
EpisodeVague “session log”One castellan run goal attempt under .castellan/episodes/
StigmergyAgent-to-agent chat / router LLM handoffsCoordination through deposits in the shared environment
Pheromone / depositsChat messages between agentsDecaying zone signals agents write; scheduler reads
Pressure (field / scheduler)Manager model picking the next agentWake priority from deps + zone signals
BlackboardFree-form shared scratchpad chatTyped JSON slots plugins declare
Mux panes / multiplexerBare tmux-script farm metaphorsIn-tree PTY workspaces, tabs, panes
DashboardControl tower / war roomRatatui operator UI (castellan dashboard)
Agents / panes / coordination fieldHerd, flock, rookery, swarm-as-animals, “coordinate the herd”Who runs and where they deposit
Plain operator languageCastellan-as-officer, garrison, troops, keep/lord body metaphorsHow humans drive the binary

Command names vs prose

castellan herd and castellan swarm-demo remain CLI subcommand names (historical product surface). In prose, describe what they do — multiplexer UX, multi-pane demo — without animal metaphor. Prefer saying “mux status” / “pane status” next to the literal command:

castellan herd status   # pane / mux status (subcommand name is historical)

Crate names (castellan-herdr) and hook scripts (herdr-agent-state.sh) stay as identifiers. Peer product names do not appear in operator prose — see Doc style.

Brand vs body copy

KeepDo not expand into body metaphor
Product name CastellanGarrison, troops, lord of the keep
Logo: castle keep silhouette (theme asset)Feudal / military narrative in guides
Castle Holdings (org branding)“Coordinate the herd / flock / rookery”

Names and paths

TermValueNotes
BinarycastellanSingle CLI; subcommands below
Config filecastellan.tomlLayered — repo root, then .castellan/, then env
State directory.castellan/Episodes, archive, proposals, skills
Episode logs.castellan/episodes/One JSON per goal run (castellan run)
Topology archive.castellan/topology_archive.jsonGenome lineage for castellan evolve / --seed-archive
Multiplexer socket~/.config/castellan/castellan.sockDefault Unix socket; override with --socket or CASTELLAN_SOCKET
Statusline snapshot~/.config/castellan/statusline.jsonWritten by castellan dashboard; read by castellan_read_statusline
Telemetry DB~/.config/castellan/telemetry.dbcastellan telemetry query target
MCP toolscastellan_* prefixe.g. castellan_deposit_signal, castellan_discover_tools — see MCP tools
Permission PromptTTY ask / non-TTY fail-closedPermissionMode::Prompt uses a host prompter; see Governance overview and CASTELLAN_PERMISSION_PROMPT

Note: Paths above are defaults. Named multiplexer sessions (--session) scope their own socket and persist directory — see Multiplexer overview.

Glossary

TermOne-liner
EpisodeA single castellan run goal attempt, logged as JSON under .castellan/episodes/ — field state, topology, wake stats, verdict
TopologyThe wake graph (nodes, edges, thresholds) agents coordinate through; mutated by castellan evolve
Coordination fieldShared environment: blackboard + pheromone zones + pressure scheduler
Pressure fieldScheduler wake-priority substrate — pheromone zones + dependency signals decide when a pending task dispatches
StigmergyCoordination by depositing into the environment instead of negotiating in chat
Pheromone / depositNamed zone signal with decay; agents write, scheduler and peers read within perception radius
BlackboardTyped JSON slots agents read/write instead of talking to each other in natural language
GenomeA named topology snapshot in the evolve archive, with lineage (parent_genome_id)
Circulation / vitalsPer-run field health (castellan vitals) — cold zones, fever, expression
Immune gateEvolve-time reject/quarantine of harmful topology candidates
QuorumMulti-contributor density gate for colony phase unlock (not a router LLM)
Response thresholdPer-node θ for task kinds; surplus drives emergent specialization
Corridor / PhysarumOptional trail edges with evaporation + conductance pruning
MAP-ElitesIlluminated genome archive by behavior descriptor cells
Drift-checkcastellan drift-check — validates repo guardrails and topology mutations against the verification manifest
RAH (Recursive Agent Harness)Depth-bounded harness-within-harness spawn (multiplexer pane + topology binding); see castellan rah-demo and Frontier positioning
Mux / multiplexerIn-tree PTY server and pane tree; CLI UX includes historical castellan herd

Page structure (Q&A order)

Prefer this order on concept and operate pages so readers get answers without hunting:

  1. What — one-sentence definition
  2. Why — the bet / what it replaces
  3. How — commands and mechanism
  4. Failure paths — symptom → cause → fix
  5. Next — cross-links, not a second essay

Cut redundancy: link Daily driver / Coordination model / Organism model instead of repeating them.

Command surface at a glance

castellan doctor
castellan --version
castellan --help