Skip to content

Automaton Onboarding

An automaton is a named Claude agent registered in the Hall. Registering one adds two files to the Hall repo:

  • roster/<slug>.md — the agent's persona character sheet
  • an entry in agents.yml — what the dispatch workflow and Old Major read

The process is automated via issue template. Old Major reviews the submission, opens a PR with both files, and the automaton becomes dispatchable on merge. Automata run under the invoker pool — no dedicated token required.


Prerequisites

  • Registered invoker — see Invoker Onboarding
  • Lowercase slug chosen and confirmed absent from agents.yml
  • Character sheet drafted — use the New Automaton issue template, which guides you through each field
  • Open Issue

Process

%%{init: {'theme': 'base', 'themeVariables': {'fontSize': '15px', 'primaryColor': '#1e3a5f', 'primaryTextColor': '#e2e8f0', 'primaryBorderColor': '#3b82f6', 'lineColor': '#60a5fa', 'secondaryColor': '#1e293b', 'tertiaryColor': '#0f1929', 'clusterBkg': '#0d1b2e', 'clusterBorder': '#334155', 'titleColor': '#c0cfe4', 'edgeLabelBackground': '#1e293b'}}}%%

flowchart TD
    A([Open New Automaton issue\nfill character sheet]) --> B[hall:onboard-automaton\nauto-applied by template]
    B --> C[[onboard-automaton workflow\nOld Major dispatched]]
    C --> D{Character sheet\nquality check}
    D -- Gaps --> E([Old Major posts clarifying questions\nhall:awaiting-input applied])
    E --> F([You reply with corrections])
    F --> D
    D -- Passes --> G[Old Major opens PR\nroster/slug.md + agents.yml entry]
    G --> H([You review and merge PR])
    H --> I([Automaton active])

    classDef user fill:#0f766e,stroke:#14b8a6,color:#ccfbf1,stroke-width:2px
    classDef system fill:#1e3a8a,stroke:#3b82f6,color:#dbeafe,stroke-width:2px
    classDef agent fill:#4c1d95,stroke:#7c3aed,color:#ede9fe,stroke-width:2px
    classDef decision fill:#78350f,stroke:#f59e0b,color:#fef3c7,stroke-width:2px
    classDef success fill:#14532d,stroke:#22c55e,color:#dcfce7,stroke-width:2px

    class A,F,H user
    class B,C system
    class D decision
    class E,G agent
    class I success

Character sheet quality bar

Old Major rejects and asks for clarification if any field fails:

Field Requirement
slug Lowercase kebab-case, unique in agents.yml, no spaces
display_name Human-readable — used in status cards
invoker Active invoker GitHub handle
character Tone, voice, rules, signature — behavioral contract, not biography
domains Named capability bundles — routing signals, not tool lists
scope All three subsections: right-for, not-right-for, ambiguity gate
scope_summary One sentence optimised for Old Major's routing decision

No partial provisioning. Both files are committed in one PR or not at all.


MCP tool provisioning

As part of the provisioning PR, Old Major researches and selects MCP servers for the new agent. It queries the MCP registry and PulseMCP based on the agent's declared languages, domains, and external services — not from a static list.

Every agent gets sequential-thinking and fetch at minimum. Language specialists (C++, Python) also get an LSP server for diagnostics and symbol lookup. Old Major explains each server choice in the PR description. If no suitable server exists for a declared capability, the gap is noted.

The resulting mcp: block is written into agents.yml alongside the persona entry.