Legio Domain Vocabulary
Complete Roman-to-English mapping for the Legio system.
Core Terms
| Concept | Latin Singular | Latin Plural | English Equivalent | Python Class | Python Var |
|---|---|---|---|---|---|
| The system | Legio | — | Legion / organization | — | legio |
| The human operator | Caesar | — | User / owner | — | caesar |
| Chief of staff (orchestrator) | Legatus | — | Manager / router | Legatus | legatus |
| Specialist agent | Centurio | Centuriones | Agent / worker | Centurio | centurio / centuriones |
| Message | Nuntius | Nuntii | Message / request | Nuntius | nuntius / nuntii |
| Shared message bus | Praetorium | — | Chat history / session | Praetorium | praetorium |
| Knowledge system | Memoria | — | Memory / knowledge store | MemoriaStore | memoria |
| Standing order | Edictum | Edicta | Rule / policy | — | edictum / edicta |
| Shared knowledge entry | Actum | Acta | Report / finding | — | actum / acta |
| Private note | Commentarium | Commentarii | Note / journal | — | commentarium / commentarii |
| Runtime workspace | Castra | — | Workspace / home dir | — | castra |
| Toolkit / plugin store | Armarium | Armaria | Arsenal / toolkit | Armarium | armarium / armaria |
| Per-centurio config | Optio | Optiones | Adjutant / config | CenturioOptio | optio / optiones |
| Cost treasury | Aerarium | — | Cost tracker / billing | Aerarium | aerarium |
| Cost record | Stipendium | Stipendia | Cost entry / payment | Stipendium | stipendium / stipendia |
| Night watch (process) | Vigilia | Vigiliae | Monitor / watchdog | — | vigilia |
| Heartbeat engine | Pulsus | — | Health check / ping | — | pulsus |
| Health state | Valetudo | — | Health status | Valetudo | valetudo |
| Health record | Vita | — | Health record | CenturioVita | vita |
| Escalation system | Alarma | — | Alert / alarm | — | alarma |
| Escalation level | Gradus | — | Severity level | Gradus | gradus |
| Message courier | Tabellarius | Tabellarii | Courier / messenger | — | tabellarius / tabellarii |
| Authority / power | Imperium | — | Permission / auth | ImperiumDenied | imperium |
| Sub-agent | Subcenturio | Subcenturiones | Sub-agent / delegate | AgentDefinition | subcenturio / subcenturiones |
| Compilation layer | Compilatio | — | Compiled prompt/output | — | compilatio |
| Gate / checkpoint | Imperium Gate | — | Permission gate | ImperiumGate | imperium_gate |
Armarium — Definition
Latin origin: armārium (noun, neuter) — a cabinet, chest, or closet for storing tools, weapons, or equipment. From arma (arms, equipment). Plural: armāria.
In Legio: An armarium is a storage and loading mechanism for plugins, skills, rules, and domain-specific knowledge that extends a centurio's capabilities beyond its base prompt.
What It Replaces
| Generic Term | Roman Term |
|---|---|
| plugin | armarium item |
| skill | armarium item |
| toolkit | armarium |
| extension | armarium item |
| tool config | armarium entry |
Why "Armarium"
- A Roman armarium stored weapons and tools for soldiers — centuriones equipped themselves from the legion's armarium before a mission.
- The metaphor is precise: centuriones draw capabilities from armaria, just as legionaries drew equipment from storage.
- Alternative considered: instrumentum (tool/equipment) — rejected because it refers to a single tool, not a collection/store.
Armarium — Structure
castra/
armaria/ ← top-level armarium directory
skills/ ← reusable skill definitions
web-research.md ← skill: web research protocol
code-review.md ← skill: code review checklist
data-analysis.md ← skill: data analysis workflow
rules/ ← domain-specific rules
python-style.md ← rule: Python coding conventions
security-audit.md ← rule: security review checklist
tools/ ← MCP tool configurations
github.json ← tool config: GitHub API access
jira.json ← tool config: Jira integration
knowledge/ ← domain knowledge bases
codebase-map.md ← knowledge: project architecture
api-reference.md ← knowledge: external API docsSubfolders
| Subfolder | Purpose | Loaded As |
|---|---|---|
skills/ | Reusable multi-step protocols (how to do X) | Appended to centurio system prompt |
rules/ | Domain-specific constraints (always/never do Y) | Appended to centurio system prompt |
tools/ | MCP tool configurations (connect to Z) | Registered as MCP servers |
knowledge/ | Reference material (facts about W) | Available via MCP read tools |
Per-Centurio Equipment
Each centurio's tools.json (or a new armarium.json) declares which armaria to load:
{
"armarium": {
"skills": ["web-research", "code-review"],
"rules": ["python-style"],
"tools": ["github"],
"knowledge": ["codebase-map"]
}
}This means:
- Different centuriones can have different equipment drawn from the same shared armarium.
- Centurio prompts stay small — skills/rules are loaded dynamically.
- New capabilities are added to the armarium once, then assigned to centuriones via config.
Integration Points
With Centurio
Centurio creation:
1. Scaffold prompt.md from template
2. Read armarium.json to determine equipment
3. Load skills/ and rules/ → inject into system prompt
4. Load tools/ → register as MCP servers
5. Load knowledge/ → make available via memoria read toolsWith Legatus
The Legatus can:
- Equip a centurio: add an armarium item to a centurio's config
- Unequip a centurio: remove an armarium item
- List armaria: show all available items in the shared store
- Recommend equipment: when creating a centurio, auto-suggest relevant armarium items based on specialization
With Memoria
knowledge/items in the armarium are read-only reference material — distinct from commentarii (private, mutable) and acta (shared, append-only).- Armarium knowledge is static — loaded at session start, not updated during a conversation.
With Castra
castra/armaria/is the on-disk location for all armarium content.- Caesar can directly edit armarium files on disk (same as prompts, edicta).
- Git-tracked: armarium content is part of the codebase.
Naming Rules for Armarium
| Context | Convention | Example |
|---|---|---|
| Directory | armaria/ (Latin plural) | castra/armaria/ |
| Single item reference | armarium (Latin singular) | "load this armarium" |
| Python class | Armarium | class Armarium: |
| Python variable | armarium / armaria | skills_armarium |
| Method names | English verb + armarium | load_armarium(), equip_centurio(), list_armaria() |
| Never use | "plugin", "toolkit", "extension", "addon" | — |
Vigilia — Night Watch Subsystem
Latin origin: vigilia (noun, feminine) — a night watch, guard duty, wakefulness. Roman legions divided the night into four vigiliae, each manned by sentries. Plural: vigiliae.
In Legio: The vigilia is a separate monitoring process that watches over centurio health, tracks heartbeats, and escalates alerts when agents become unresponsive.
Vigilia Vocabulary
| Term | Latin Meaning | Legio Meaning | Module |
|---|---|---|---|
| Pulsus | pulse, heartbeat | Health-check heartbeat engine | vigilia/pulsus.py |
| Valetudo | state of health | 5-state health enum per centurio | vigilia/pulsus.py |
| Vita | life | Health record for a single centurio | vigilia/pulsus.py |
| Alarma | call to arms | Escalation level management | vigilia/alarma.py |
| Gradus | step, degree | 5-level escalation severity | vigilia/alarma.py |
Valetudo State Machine
vigilis (healthy) → dormiens (idle) → tardus (slow) → haerens (stuck) → mortuus (dead)| State | Latin Meaning | Threshold (default) |
|---|---|---|
| VIGILIS | watchful, alert | < 5 min idle |
| DORMIENS | sleeping | ≥ 5 min idle |
| TARDUS | slow, late | ≥ 10 min idle |
| HAERENS | stuck, clinging | ≥ 20 min idle |
| MORTUUS | dead | ≥ 30 min idle |
Gradus Escalation Levels
silentium (quiet) → nota (note) → monitum (warning) → alarma (alarm) → cladem (disaster)| Level | Latin Meaning | Notification |
|---|---|---|
| SILENTIUM | silence | No alerts |
| NOTA | mark, note | Logged only |
| MONITUM | warning | Attention recommended |
| ALARMA | alarm | Action required |
| CLADEM | disaster | Critical failure |
Only MONITUM and above trigger notifications to Caesar.
Aerarium — Cost Treasury
Latin origin: aerārium (noun, neuter) — the public treasury, from aes (bronze, money). The aerarium Saturni was Rome's state treasury housed in the Temple of Saturn.
In Legio: The aerarium tracks API usage costs (stipendia) per centurio session, enforces budget limits, and provides cost reporting.
Aerarium Vocabulary
| Term | Latin Meaning | Legio Meaning |
|---|---|---|
| Aerarium | treasury | Cost tracking system (SQLite-backed) |
| Stipendium | soldier's pay | Single cost record (tokens, USD) |
| Stipendia | payments (plural) | Collection of cost records |
Tabellarius — Message Courier
Latin origin: tabellārius (noun, masculine) — a letter carrier, courier. From tabella (writing tablet). Plural: tabellāriī.
In Legio: The tabellarius handles inter-centurio message delivery — routing messages between agents when they need to collaborate directly.
Error Domain Terms
| Exception | Latin Root | Meaning |
|---|---|---|
ImperiumDenied | imperium (command, authority) | Authentication or permission failure |
CenturioNotFound | centurio | Referenced agent does not exist |
CenturioInvalid | centurio | Agent name/status validation failed |
CenturioLimitReached | centurio | Max concurrent agents exceeded |
MemoriaError | memoria (memory) | Filesystem I/O failure |
PraetoriumError | praetorium (HQ) | SQLite or message bus failure |
AerariumError | aerarium (treasury) | Cost tracking or budget failure |
TabellariusError | tabellarius (courier) | Inter-centurio message delivery failure |
VigiliaError | vigilia (night watch) | Monitoring or alerting failure |
ConfigError | — | Configuration load or validation failure |
BudgetExceeded | — | Per-session cost cap exceeded |
ArmariumError | armarium (toolkit) | Plugin/toolkit load or validation failure |
CastraGitError | castra (workspace) + git | Workspace version control failure |
TemporaryLegioError | — | Base class for transient/retryable errors |