Skip to content

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 in city.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.mayor prompt is patched via [[patches.agent]] in pack.toml. City-scoped gascity.witness/gascity.refinery patches must be applied per-rig via city.toml [[rigs.patches]] — patching them at city [[patches.agent]] level fails (agent not found in 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] in pack.toml caused gc 1.4.x to stamp AMCS agents onto every rig (cartesian product). Import AMCS only under [[rigs]] name = "amcs" in city.toml.

Required fields

Every cataloged agent should define:

  • name
  • pack
  • purpose
  • authority_scope
  • mutation_allowed
  • default_sling_formula where applicable
  • 5-axis parameters: harness, model, upstream, transport, runtime
  • prompt_template
  • canonical_manifest if projected from OSSA
  • forbidden_actions
  • acceptance_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
- The supervisor tick loop manages session pool scaling and work discovery. - Coordinators sling work to target agents: 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.toml is 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).