Gas City Agents Catalog¶
Purpose: Catalog Bluefly-configured Gas City agents, the 5-axis configuration model, and their authority boundaries.
Upstream: Tutorial 02 — Agents, Configuring an agent, Command execution trust boundaries — agent command, pre_start, session_setup/session_setup_script, and session_live run trusted operator config; inherited secret-bearing env vars are stripped unless explicitly passed.
Contract SoR when present: OSSA agent manifests (agent.ossa.yaml)
Runtime adapter: Gas City agent.toml / pack agents
Gas City agents are execution roles projected into a city or pack. They are not source repositories, not durable work state, and not a substitute for an OSSA canonical agent manifest.
Taxonomy note: agent scope (city vs rig) is Gas City configuration, not a seventh primitive. Mountain/Product/Convoy (Bluefly portfolio taxonomy) are separate and do not gate agent scope — see gc-catalog.md.
Agent 5-Axis Model (Gas City 1.4.x)¶
Gas City decomposes agent runtime configuration into five orthogonal axes (Configuring an agent):
- Per Agent:
HARNESS: CLI/agent binary driver (e.g.builtin:claude,builtin:codex).MODEL: Target language model (e.g.claude-3-7-sonnet,gemini-2.0-flash).UPSTREAM: Gateway/provider endpoint declaration incity.toml(e.g. LiteLLM, OpenClaw, direct API).TRANSPORT: Communication protocol/driver for session interaction (e.g.stdio,sse,acp).- City / Environment-wide:
RUNTIME: Execution environment for sessions (e.g. host process, worktree, container).
Do not collapse these into a single "provider" key. Use the explicit 5-axis terminology across configuration and documentation.
Organization-level agents¶
Source: gascity pack (upstream gascityhall/gascity-packs) provides mayor, witness, refinery, deacon, polecat, boot. Bluefly blucity-packs provides the remaining roles.
| Agent | Pack source | Primary responsibility | Mutating authority |
|---|---|---|---|
gascity.mayor |
gascity (upstream) |
Running production runtime and operational acceptance | Runtime only |
gascity.witness |
gascity (upstream) |
Independent read-only verification | No |
gascity.refinery |
gascity (upstream) |
Governed release/deployment execution | Yes, through governed delivery |
kingstown-core.blu |
kingstown-core (blucity-packs) |
Portfolio/program coordination and routing | Bounded |
organization.drupal |
organization (blucity-packs) |
Drupal architecture, upstream/contrib-first decisions | Yes in Drupal lane |
organization.forge |
organization (blucity-packs) |
Implementation/build work | Yes |
organization.foundry |
organization (blucity-packs) |
Platform/source engineering | Yes |
organization.harbormaster |
organization (blucity-packs) |
Backup, restore, DR durability proof | Bounded |
organization.sentinel |
organization (blucity-packs) |
Security/governance observation | Normally no |
gascity.mayorprompt is patched via[[patches.agent]]inpack.toml. City-scopedgascity.witness/gascity.refinerypatches must be applied per-rig viacity.toml [[rigs.patches]]— patching them at city[[patches.agent]]level fails (agent not foundin gc 1.4.x).
Conceptual roles (doc-only, no pack source)¶
The following identities are operational role definitions used in governance documentation. They are not registered agents in any pack — no [agents] section or agent directory exists in blueflyio/blu/blucity pack.toml for these names (verified 2026-09-06). Do not represent them as pack-provisioned agents.
| Identity | PACK_SOURCE | Primary responsibility | Mutating authority |
|---|---|---|---|
blucity / Gas City operator |
DECLARED_DOC_ONLY | Gas City/BluCity topology, packs, bindings, release delivery | Yes (declarative + delivery) |
| Dolt/Beads steward | DECLARED_DOC_ONLY | Dolt / Beads storage semantics: read, trace, prove gap, route to canonical owner | No forks; no blind bd init |
| OSSA/DUADP steward | DECLARED_DOC_ONLY | OSSA/DUADP standards and agent-contract work | Bounded |
Pack-level specialists¶
Pack-level specialists belong with the capability pack that defines them and are scoped to the rig that imports that pack.
| Agent | Pack source | Scope |
|---|---|---|
amcs.content-author |
amcs (blucity-packs) |
amcs rig |
amcs.editorial-qa |
amcs (blucity-packs) |
amcs rig |
amcs.governance-compliance |
amcs (blucity-packs) |
amcs rig |
amcs.content-maintenance |
amcs (blucity-packs) |
amcs rig |
amcs.migration-ingestion |
amcs (blucity-packs) |
amcs rig |
amcs.personalization |
amcs (blucity-packs) |
amcs rig |
amcs.search-rag |
amcs (blucity-packs) |
amcs rig |
seo-pack.seo-specialist |
seo-pack (blucity-packs) |
SEO-enabled rigs |
platform-openclaw.openclaw-ops |
platform/openclaw (blucity-packs) |
city |
AMCS agents are
scope=rig. City-level[imports.amcs]inpack.tomlcaused gc 1.4.x to stamp AMCS agents onto every rig (cartesian product). Import AMCS only under[[rigs]] name = "amcs"incity.toml.
Required fields¶
Every cataloged agent should define:
namepackpurposeauthority_scopemutation_alloweddefault_sling_formulawhere applicable- 5-axis parameters:
harness,model,upstream,transport,runtime prompt_templatecanonical_manifestif projected from OSSAforbidden_actionsacceptance_or_handoff
Agent configuration (agent.toml keys)¶
Upstream: Configuring an agent
| Key | Purpose | Notes |
|---|---|---|
[agent] |
Identity + 5-axis bindings | name, harness, model, upstream, transport, min_active_sessions, max_active_sessions |
prompt_template |
System prompt source | File path relative to pack root |
work_dir |
Default working directory | Site-bound ($WORKSPACE_ROOT), must not hardcode machine paths |
scope |
city or rig |
city = shared pool; rig = scoped to that rig's work |
[imports.*] |
Pack-level sub-imports | Agents may import overlays/skills from sub-packs |
command |
Override the provider's launch command | Trusted operator config — do not template with untrusted bead/PR content |
pre_start |
Runs before the session starts | Trusted operator config; explicit env only, inherited secrets stripped |
session_setup / session_setup_script |
One-time per-session setup | Trusted operator config; same secret-stripping rule as pre_start |
session_live |
Runs while the session is active | Trusted operator config; not for untrusted or user-supplied data |
City-scoped agents (e.g. blu, mayor) share a pool; rig-scoped agents are instantiated per-rig.
Routing & Supervisor Dispatch Contract¶
Agents are routed via the native Gas City supervisor loop:
EVENT / TRIGGER -> ORDER -> FORMULA -> gc sling <agent> <bead> -> gc hook -> bd show -> bd update --claim
gc sling <agent> <bead>.
- Workers pull routed work: gc hook → bd show → bd update --claim.
- Workers recover context with bd prime when needed. Do not treat bd prime as the work picker or replace the hook with fleet-wide bd ready. See beads-work-ownership-contract.md.
Rules¶
- Organization roles must not be duplicated inside product packs.
- Generic upstream roles must not be copied unless Bluefly adds real domain behavior.
- OSSA manifests are canonical agent contracts when present; Gas City
agent.tomlis the runtime adapter/projection. - WITNESS must remain read-only.
- MAYOR must not become a source-authoring role on production hosts.
- DOLT does not own Gas City lifecycle,
gc-site-bind, IaC, or BluCity orchestration — it routes defects to those owners. - Do not promote session transcripts into this catalog.
- Agents are dispatched by the supervisor; do not build bespoke agent routing scripts outside Gas City primitives.
- No personal home paths or workstation absolute paths in this catalog (use dynamic
$WORKSPACE_ROOT).