Gas City Capability Map — Bluefly¶
Generated 2026-09-16 from
gc --helpsurface enumeration.
Source dump:gc-command-surface.txt
Classification Key¶
| Label | Meaning |
|---|---|
| ✅ ALREADY USED | We use this in daily workflow |
| 🔥 USE NOW | Native capability we have been replacing with glue — switch immediately |
| 🧪 NEEDS EXPERIMENT | Clearly relevant, surface not yet fully understood |
| 🔄 REPLACES CUSTOM GLUE | Explicit replacement for something we invented |
| ⬜ NOT RELEVANT YET | Low priority for current Bluefly phase |
Command Surface¶
gc agent — Configuration¶
add · list · resume · suspend
🔥 USE NOW
gc agent list= canonical inventory of all configured agents. We have been readingcity.tomlby hand.gc agent suspend/gc agent resume= per-agent scheduling without editing config. We have been manually commenting out agents.gc agent add= scaffold a new agent. We have been writing agent TOML by hand from memory.
Replaces: manual city.toml grep, ad-hoc agent disabling by config edit.
gc agent-script — Deterministic YAML Execution¶
--script <path>
Status: experimental
🧪 NEEDS EXPERIMENT
A YAML-driven runner that probes gc hook, selects a turn, and executes configured actions. Gas City owns this runner — repo examples can be tested without external helper binaries.
Replaces (potentially): custom shell glue around formulas, demo scripts, CI integration test helpers.
[!IMPORTANT]
lifecycle = "one_shot"in agent config makes the runtime treat clean script exit as work completion, not startup death. We need this for CI-driven formula tests.
gc analyze — Observability Reports¶
reliability
🔥 USE NOW
gc analyze reliability= correlates session-lifecycle events with model/version/rig. This is the native failure-rate and reliability report.
Replaces: manual event log parsing, ad-hoc grep forensics.
gc beads — Beads Topology & Health¶
city · health · list · show
✅ ALREADY USED (partially — gc bd alias used more often)
gc beads city= manages canonical city endpoint topology — this is the authoritative path for setting which Dolt endpoint Beads uses, not manual config edits.gc beads health= structured health check with API-routing andbdfallback. Should be the standard health check in all runbooks.
Replaces: gc-beads-health shell alias (which is a thin wrapper).
gc config — Config Inspection¶
explain · show
✅ ALREADY USED
gc config explainis underused — it shows provenance of every config value. Invaluable for debugging pack composition conflicts.
gc converge — Bounded Iterative Refinement¶
approve · create · iterate · list · retry · status · stop · test-gate · test-trigger
🧪 NEEDS EXPERIMENT — HIGH VALUE
A convergence loop = root bead + formula + gate that repeats until gate passes or max iterations reached. Controller-driven. This is a native CI-style gate mechanism built into Gas City.
Replaces (potentially): - Manual "run formula → check → re-run" loops - Custom CI polling scripts - The ad-hoc "keep iterating until it works" anti-pattern
test-gate and test-trigger are dry-run commands — safe to run alongside live controller.
gc convoy — Work Topology¶
add · check · close · control · create · delete · delete-source · land · list · reopen-source · status · stranded · target
✅ ALREADY USED (partially)
High-value underused subcommands:
- gc convoy stranded = find convoys with ready work but no workers — the READY_BEADS>0 AND IDLE_AGENTS>0 = FAILURE detector. Should run on every shift start.
- gc convoy control = executes control beads or runs the control-dispatcher loop. We have been waking Blu manually.
- gc convoy land = land an owned convoy (terminate + cleanup). We have been doing this manually.
- gc convoy check = auto-close convoys where all issues are closed. Should be automated via gc order.
gc costs — Usage & Cost Observability¶
(single command)
🔥 USE NOW
Reads .gc/usage.jsonl, groups by run, shows estimated cost. Zero friction — just run it. We have no current cost visibility.
gc doctor — Workspace Health¶
--fix · --verbose · --json · --explain-postgres-auth
🔥 USE NOW
This is the canonical remediation path:
- Checks config validity, binary deps (tmux, git, bd, dolt), controller status, zombie/orphan sessions, bead stores, Dolt server health, event log integrity.
- gc doctor --fix = safe mechanical auto-repair including legacy-to-current pack rewrites.
- gc doctor --verbose for investigation.
We should run gc doctor before every major deployment and after every merge to release.
gc event — Emit Events¶
emit
🧪 NEEDS EXPERIMENT
gc event emit = write an event to the city event log from agent code or scripts. This is the native observability injection point. Useful for custom milestone events, audit trails from scripts.
gc events — Event Stream¶
rotate
Flags:--follow · --watch · --type · --since · --payload-match · --after-cursor
✅ ALREADY USED (via gc-events-follow alias)
Significantly underused flags:
- --payload-match key=value = filter events by payload field without grep.
- --watch --type <event> = block until a specific event type arrives. This is a native event-driven wait — replaces polling loops.
- --after-cursor = resume event stream from a cursor. Enables reliable event replay.
Replaces: sleep+poll loops waiting for state transitions.
gc extmsg — External Conversation Binding¶
bind · handoff · unbind
🧪 NEEDS EXPERIMENT
Binds Telegram/Discord/external conversations to agent sessions. Bindings survive session restarts — inbound messages cold-wake the agent. handoff rebinds a conversation to a specialist (front-desk pattern).
This is the native external messaging integration. We have been considering building this ourselves.
gc formula — Formula Management¶
cook · list · show · version-check
✅ ALREADY USED (partially)
Underused:
- gc formula version-check <bead> = checks if a bead's formula matches current on-disk version. Safety check before re-running formulas on existing beads.
- gc formula show = dump compiled recipe. Useful for debugging formula composition.
gc graph — Dependency Visualization¶
--tree · --mermaid · --json
🔥 USE NOW
gc graph <convoy-id> --mermaid produces a Mermaid.js flowchart. Direct paste into docs/markdown. We have been drawing dependency graphs by hand.
gc graph <bead-ids> --tree for Unicode tree view in terminal.
gc handoff — Context Handoff¶
--target · --auto · --hook-format
🧪 NEEDS EXPERIMENT — IMPORTANT
- Self-handoff: sends mail to self + requests controller restart. Native context compaction handoff for controller-restartable sessions.
- Remote handoff (
--target): sends mail to target + kills it for restart with mail waiting. This is the native agent-to-agent handoff mechanism. - Auto handoff (
--auto): forPreCompacthooks — sends mail without requesting restart.
Replaces: manual gc mail send + gc session kill sequences. This is the correct atomic handoff path.
gc hook — Work Routing¶
run
Flags:--claim · --drain-ack · --inject
✅ ALREADY USED (agents use this in hooks)
gc hook --claim= atomic claim of one routed work item for the current session. This is the correct startup claim protocol, not manualbd update.gc hook run= run a managed hook command with hard timeout. Safer than raw hook scripts.
gc import — Pack Import Management¶
add · check · credential · install · list · prune · remove · status · upgrade · why
✅ ALREADY USED
Underused:
- gc import check = validate installed pack import state. Should run after every gc import install.
- gc import why <name> = explain why an import is present. Invaluable for debugging transitive import conflicts.
- gc import prune = remove unreferenced clones from global pack cache. Should run periodically.
- gc import upgrade = upgrade packs within constraints. We have been doing this manually.
gc mail — Agent Messaging¶
archive · check · count · delete · inbox · mark-read · mark-unread · peek · read · reply · send · thread
✅ ALREADY USED
Underused:
- gc mail check --inject = hook output format for delivering mail notifications into agent prompts. Should be in every agent's startup hook.
- gc mail thread <id> = full conversation thread view.
- gc mail peek <id> = read without marking read. Useful for inspection without consuming.
gc maintenance — Dolt Store Health¶
dolt-gc · status
🔥 USE NOW
gc maintenance status= shows maintenance loop state and recent runs. We have no current maintenance visibility.gc maintenance dolt-gc= trigger manual Dolt GC run through the governed path — not ad-hocdolt gc. This is the safe, doltsafety-compliant trigger.
[!CAUTION] Always use
gc maintenance dolt-gc, never rawdolt gc. The governed path enforces the storage runway safety check.
gc mcp — MCP Projection Inspection¶
list
Flags:--agent · --session
🔥 USE NOW
gc mcp list --agent <name> = shows exactly which MCP servers are projected to an agent. We have been guessing at MCP projection by reading config. This is the authoritative view.
gc nudge — Deferred Nudge Inspection¶
status
🧪 NEEDS EXPERIMENT
Shows queued and dead-letter nudges for a session. Useful for diagnosing "why didn't the agent respond?" — nudges may have been queued but not delivered.
gc order — Scheduled/Event-Driven Dispatch¶
check · history · list · run · show · sweep-nudge-mail · sweep-tracking
Trigger types:cooldown · cron · condition · event · manual
🔥 USE NOW — HIGH VALUE
This is the native scheduler. Orders live in orders/<name>.toml, pair a trigger with a formula or exec script.
Replaces (immediately): - Any cron jobs we run outside Gas City - Manual periodic maintenance triggers - Custom "run this formula every N hours" scripts
Specific candidates for orders:
- gc convoy check → order on cron to auto-close completed convoys
- gc order sweep-nudge-mail → already exists, close stale mail/nudge beads
- gc import upgrade → weekly order
- gc maintenance dolt-gc → weekly order (with storage runway check)
- gc doctor → daily health check order
gc order run <name> = manual execution of any order. Useful for one-off triggers.
gc pack — Remote Pack Sources¶
fetch · list · registry · release
✅ ALREADY USED (partially)
gc pack registry= manage pack registries. We have not explored whether Bluefly has a private registry configured.gc pack release= author pack registry release metadata. Relevant when we publishblucity-packsas a consumable pack.
gc prime — Prompt Rendering¶
--strict · --hook · --hook-format · --json
✅ ALREADY USED
--strict already used in CI. --hook-format for provider-specific formatting not yet explored.
gc prompt — Prompt Authoring¶
synth
🧪 NEEDS EXPERIMENT
gc prompt synth = invoke the configured LLM in one-shot mode to generate a prompt template for a given role. This is a native prompt-generation tool.
gc reload — Live Config Reload¶
--soft · --async · --timeout
✅ ALREADY USED
--soft is critical and underused: accepts config drift on open sessions without draining them. Use when editing .gc/settings.json or pack fragments during a live city to avoid disrupting in-flight work.
gc rig — Rig Management¶
add · list · remove · restart · resume · set-endpoint · status · suspend
✅ ALREADY USED (partially)
gc rig set-endpoint= set canonical endpoint ownership for a rig. This is the authoritative path for Dolt per-rig topology — not config file edits.gc rig suspend/gc rig resume= freeze a rig without touching agents. Useful during deployments.gc rig status= per-rig health with agent running state.
gc runtime — Session Lifecycle (Agent-Internal)¶
check · conformance · drain · drain-ack · drain-check · heartbeat · request-restart · undrain
🧪 NEEDS EXPERIMENT
Designed to be called from within running agent sessions. Key commands:
- gc runtime heartbeat = extend idle-timeout during long operations. Prevents premature session kills.
- gc runtime request-restart = request controller restart (used by gc handoff).
- gc runtime drain / gc runtime undrain = graceful wind-down signaling.
- gc runtime check = validate a Runtime Provider Protocol executable — humans and CI use this.
- gc runtime conformance = golden RPP conformance suite — native runtime provider testing.
gc service — Workspace Services¶
doctor · list · restart
🔥 USE NOW
gc service list = see all workspace services (Dolt, API, controller, etc.) without grepping process lists.
gc service doctor = detailed status per service.
gc service restart <name> = targeted service restart without full city restart.
Replaces: manual ps aux | grep dolt, doltwhere, doltstatus aliases.
gc session — Session Management¶
attach · close · kill · list · logs · new · nudge · peek · pin · prune · rename · reset · submit · suspend · unpin · wait · wake
✅ ALREADY USED (partially)
Underused commands of high value:
- gc session logs <id> = session logs without SSH or tmux.
- gc session peek <id> = view output without attaching.
- gc session pin / gc session unpin = keep a session awake (prevent sleep).
- gc session submit <msg> = deliver a message with semantic delivery intent — not just a nudge.
- gc session wait = register a dependency wait for a session. Native durable wait mechanism.
- gc session prune = close old dormant sessions. Should be in a periodic order.
gc sling — Work Routing¶
Full flag surface:
--formula · --var · --on · --nudge · --merge · --no-convoy · --owned · --scope-kind · --scope-ref · --stdin · --dry-run
✅ ALREADY USED (basic form)
Underused:
- --dry-run = show what would be done without executing. Use before any new sling pattern.
- --var key=value = variable substitution for formula. We have been hardcoding formula vars.
- --stdin = read bead text from stdin. Enables piped workflow construction.
- --merge = specify merge strategy (direct, mr, local). We have been using the default.
- --on <formula> = attach a wisp from a formula to an existing bead before routing.
- --nudge = nudge target after routing. Atomic route + wake.
gc supervisor — Machine-Wide Supervisor¶
install · logs · reload · run · start · status · stop · uninstall
✅ ALREADY USED (implicitly — supervisor manages all cities)
gc supervisor logs= tail supervisor log. We have been navigating to log files manually.gc supervisor reload= trigger immediate reconciliation of all cities. Faster than restart.gc supervisor install= install as platform service. Should be configured for auto-start.
gc trace — Reconciler Trace¶
cycle · reasons · show · start · status · stop · tail
🔥 USE NOW — FORENSICS
The session reconciler trace stream. Persisted under .gc/runtime/session-reconciler-trace, works even when controller is offline.
gc trace start <template>= enable tracing for a session template.gc trace tail= follow trace records live.gc trace reasons= show reason codes observed. This explains why the reconciler is making decisions — why a session was killed, restarted, drained.gc trace cycle <tick-id>= inspect a specific reconciler tick.
Replaces: reading raw controller logs to understand session lifecycle decisions.
gc wait — Durable Session Waits¶
cancel · inspect · list · ready
🧪 NEEDS EXPERIMENT
Durable waits registered by gc session wait. Inspector for wait state:
- gc wait list = see all registered waits.
- gc wait ready <id> = manually mark a wait ready (unblock a session).
- gc wait inspect <id> = wait details.
Replaces: manual dependency polling or "check if X is done" scripts.
gc whoami — Hosted Account¶
--at · --token
⬜ NOT RELEVANT YET
For hosted Gas City (gascity.com) auth. Relevant only if/when Bluefly runs a hosted city. Oracle is self-hosted.
What We Should Stop Doing¶
| What we've been doing | Use instead |
|---|---|
Manually reading city.toml to see agents |
gc agent list |
| Commenting out agents in config to disable | gc agent suspend |
SSH + ps aux to check Dolt/services |
gc service list, gc service doctor |
Manual dolt gc for store cleanup |
gc maintenance dolt-gc |
| Sleep+poll loops waiting for events | gc events --watch --type <event> |
| Drawing dependency graphs by hand | gc graph <convoy> --mermaid |
gc mail send + gc session kill for handoff |
gc handoff --target <session> |
| Guessing at MCP projection | gc mcp list --agent <name> |
| Grepping controller logs for session decisions | gc trace reasons, gc trace tail |
| Custom cron outside Gas City | gc order with cron trigger |
| Manual periodic maintenance | gc order wrapping gc maintenance dolt-gc |
gc convoy stranded never checked |
Run it on every shift start |
gc doctor never used |
Run before every deployment |
Immediate Next Actions (Priority Order)¶
gc doctor --verbose→ baseline health check, see what auto-repair recommendsgc convoy stranded→ find any ready work with no workers right nowgc service list→ canonical service inventorygc costs→ first look at usage costgc analyze reliability→ first reliability reportgc trace start organization.mayor→ enable reconciler tracing for Mayor- Draft orders for:
convoy check,session prune,maintenance dolt-gc,import upgrade gc converge --helpdeep dive → test gate/trigger model against the bc-3c4 proof gatesgc agent-scriptexperiment → prototype one deterministic formula test in YAMLgc extmsg→ investigate whether external conversation binding replaces planned integration work
Gate 4 Flag (from bc-3c4 proof)¶
gastown.boot, gastown.deacon, and all gastown.witness agents still registered — this is the Platform Rename Program (du-dj2). These sessions are asleep but still configured. Gate 4 for bc-3c4 needs a decision:
- Are
gastown.*names allowed to coexist withorganization.*names during transition? - Or must all
gastown.*session configs be removed before Gate 4 passes?
This is a bead question, not a blocker — record and continue.