Drive a caller-selected Gas City through its
Scanned 9/12/2026
Install to Claude Code
npx -y skills add thedixitjain/the-mega-skill-library --skill using-gc --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Using Gc?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/thedixitjain-using-gc)More formats (shields.io, HTML) on the badges page.
---
name: using-gc
description: "Drive a caller-selected Gas City through its"
category: ai-agents-and-harness
source_repo: hashgraph-online/awesome-codex-plugins
source_path: "plugins/boshu2/agentops/skills-codex/using-gc/SKILL.md"
source_url: https://github.com/hashgraph-online/awesome-codex-plugins/blob/HEAD/plugins/boshu2/agentops/skills-codex/using-gc/SKILL.md
---
# Using GC
Use Gas City only when the caller explicitly selects it. Treat it as a
replaceable execution adapter, not a completion or correctness boundary. This
skill teaches an agent to ORCHESTRATE the Mayor, which in turn propels the city —
the same standing session a human drives, steered through native primitives.
## The model: one shepherd, two doors
The city has a standing city-scoped **Mayor** session. It is a DISPATCH
SHEPHERD: it watches ready rig step beads and slings each to its run-target with
a nudge, which spawns that worker to claim the rig-scoped bead. Workers claim;
**the Mayor never claims and never authors work.** You reach the one Mayor
session through two doors:
- **Human door:** `invoke.sh --city C mayor status` prints a `tmux -L <socket>
attach -t <session>` line; the human attaches and drives interactively.
- **Agent door:** `invoke.sh --city C mayor tell "dispatch <bead-id>"` delivers a
notified mail message. No keystroke injection — GC ships mail/sling as
first-class control, so an agent steers the resident session the way a human
would, NTM-style.
One-line why: on GC v1.3.5 demand-spawn is broken for rig work (#4586), so a
shepherd that sling-nudges ready steps is the propulsion path — and it is also
the stock GC mayor pattern, so this flow survives the upstream fix.
## The drive loop (for an orchestrating agent)
1. **Author intent — caller-owned.** `invoke.sh --city C create "<title>" -d
"<why/how>"` writes one source bead with EXACT acceptance; `invoke.sh --city C
feed <bead-id>` homes it and attaches the native formula. Intent lives in the
bead, never in a chat paraphrase.
2. **Dispatch by id (on-demand).** `invoke.sh --city C mayor tell "dispatch
<bead-id>"`. Hand the Mayor BEAD IDS ONLY — never prose work. A paraphrased
task is a telephone game that drifts from the acceptance the bead already
carries; the id is the one unambiguous reference. Steady-state propulsion is
the scheduled heartbeat (the Mayor runs a dispatch pass every few minutes);
`mayor tell` is for on-demand nudges. Dispatch each bead once — for a bead
already routed, see Stall protocol (re-dispatch is a no-op).
3. **Read state from GC, not from prose.** The exact surfaces:
- `invoke.sh --city C mayor status` — Mayor session state + attach line.
- `invoke.sh --city C status` — city/session health.
- `gc bd --rig <N> ready --json` / `gc bd --rig <N> show <id> --json` — what is
ready and each step's `gc.run_target`.
4. **Completion is bead/verdict state, never pane prose.** A step is done when the
bead graph and the fresh validate verdict say so — not because a pane printed
"done".
## Liveness truth stack (GC edition)
Robot/session state can report a session **active** while the provider pane is
wedged on an interactive prompt doing nothing. Trust ground truth:
- `gc session list --json` / `mayor status` is the roster claim.
- `tmux -L <socket> capture-pane -pt <session>` is ground truth — read the pane.
- Two known codex wedge classes and their durable fixes:
- **Update nag:** codex blocks on an "update available" prompt. Fix: update
codex so no pending-update prompt exists before the run.
- **Folder trust:** codex blocks asking to trust the working directory. Fix:
add exact-path `trust_level` entries for the rig and worktree-root in
`~/.codex/config.toml` (bootstrap does not write them yet).
When the roster says active but the pane is wedged, the pane wins.
## Stall protocol
First classify what is stalled — the fix differs, and the obvious retry is a
dead path.
- **A bead that is still `ready` (never routed).** `mayor tell "dispatch <id>"`
once to route it, then STOP and classify.
- **A bead already routed to its run-target (`in_progress`).** Re-telling
`dispatch <id>` or re-slinging it is a **NO-OP** — do not cargo-cult it. `gc
sling` takes an idempotent early-return for an already-routed bead and sends NO
nudge, and an `in_progress` bead is not in `gc bd ready`, so nothing re-fires.
The recovery is to wake the WORKER that holds it, not to re-dispatch the bead:
```sh
gc session wake <run_target> # the rig-qualified worker alias, e.g.
# <rig>/agentops.implementer, from gc.run_target
```
Then inspect pane-truth (below). One wake, maximum, then STOP and classify.
Ground-truth every stall before you report it: capture the pane (`tmux -L
<socket> capture-pane -pt <session>`) and run `invoke.sh --city C doctor`. No
hidden retries, no lifecycle bypass. **Never repair the city from inside the
city** — diagnose from the invoke surface and hand the finding out.
## Visibility: the four layers
Every canary stall was invisible to at least one layer and visible in another.
Cycle all four; each lies in its own way.
- **Layer 1 — Robot state.** `gc session list` / `invoke.sh --city C status` —
reports "active" even when the provider pane is wedged on a prompt or the
network is dead. Lifecycle shape only, never proof of thinking.
- **Layer 2 — Bead graph.** `gc bd --rig <rig> ready` / `gc bd --rig <rig> show
<id>` (workflow/step statuses) — the only completion truth; but a claimed step
with a wedged worker looks identical to a working one from here.
- **Layer 3 — Pane truth.** `tmux -L <socket> capture-pane -t <session> -p` —
ground truth for wedges (update nags, trust prompts, API/DNS failures print
here first). It is a snapshot, not history.
- **Layer 4 — Health machinery.** `gc doctor`, `gc order history <order>` (e.g.
shepherd-heartbeat) — proves the city's metabolism (orders firing, stores
resolving), not whether any specific work is progressing.
Native `gc dashboard` aggregates layers 1-2; the metrics/logs plane (OTel to
local collectors, Grafana) is the 3.3.1 roadmap layer and not required for
operating a city today. When layers disagree, trust the LOWER layer (pane over
robot state) and run the Stall protocol.
## Boundaries (kept)
- GC state stays in GC. GC quests, attempts, stalls, and internal `close` do not
become Plan, Candidate, RPI, or verdict state. Named failure mode —
**quest-state leakage**: a GC stall, retry, or internal close surfacing in a
report as if it were an RPI phase or verdict.
- A GC `close` is **not** an AgentOps completion. A fresh GC judge may supply
evidence to Validate; only Validate writes `verdict.v2`.
- Explicit selection only. Falling back to Gas City because it happens to be
running is the anti-pattern; an available substrate is not a selected one.
This skill performs no automatic selection, retry, semantic validation, Git,
integration, closure, release, or delivery.
---
**Source:** [`hashgraph-online/awesome-codex-plugins`](https://github.com/hashgraph-online/awesome-codex-plugins) → `plugins/boshu2/agentops/skills-codex/using-gc/SKILL.md`
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!