A collection of opt-in Gas City packs.
Gas City is an orchestration-builder SDK for multi-agent coding workflows. A
pack is a unit of workspace configuration: agents, commands, services,
formulas, skills, hooks, template fragments, or any combination. Packs compose
through pack.toml imports, so a city can opt into any subset of the packs in
this repo without forking.
For the full model (cities, rigs, formulas, beads, runtime providers) see the Gas City README.
If you just installed Gas City and want a working multi-agent build factory, this is the shortest path. Each step is copy-pasteable; swap names to taste.
-
Install Gas City and start a city (skip steps you have already done):
brew install gascity gc init ~/my-city cd ~/my-city gc start
-
Add the repository you want agents to work on as a rig:
git clone https://github.com/you/your-project cd your-project gc rig add .
-
Import the base pack. From the city directory:
gc import add --name gc https://github.com/gastownhall/gascity-packs.git//gascity
This writes the import, fetches the latest release, and pins it in
packs.lock— no clone needed. (gc import upgrade gcmoves the pin later; contributors hacking on the packs themselves can pointsourceat a local clone instead.) -
Import the rig roles in your city's
city.toml. Rig-scoped imports are declared on the rig entry:[[rigs]] name = "your-project" [rigs.imports.gc] source = "https://github.com/gastownhall/gascity-packs.git//gascity/roles"
The city-level import provides the workflow formulas and the
gc.mayorcoordinator skill; the rig-levelrolesimport provides the worker agents (gc.implementation-worker,gc.requirements-planner, and friends) that the formulas route work to. Rungc import installafter editing to fetch anything newly referenced. -
Run your first build. Create a bead describing the goal, then launch the starter factory against it:
gc bd create "Add a --json flag to the export command" gc sling gc.run-operator <bead-id> --on build-basic \ --var artifact_root=plans/json-flag/build
build-basicwalks requirements → plan → plan review → decomposition → parallel implementation → a three-lane review fanout → finalize. Artifacts (requirements, plan, review reports, and afactory-run.mdsummary) land underartifact_rootin your rig. -
Pick a methodology when you want more opinion. The four methodology packs below replace
build-basic's stages with vendored, battle-tested processes while keeping the same launch shape — import one at city scope and sling its build formula instead (for example--on bmad-build):gc import add https://github.com/gastownhall/gascity-packs.git//bmad
Each pack's README has its own quick start.
| Pack | Process it runs | Reach for it when |
|---|---|---|
gascity (build-basic) |
Requirements → plan → review → decompose → implement → three-lane review | You want the default starter factory with the fewest moving parts. |
bmad (bmad-build) |
PRD → architecture → epics/stories → readiness gate → story-by-story implementation with self-check and acceptance audit → adversarial review | You want disciplined document-first delivery with explicit story decomposition and readiness checks. |
compound-engineering (compound-build) |
Brainstorm/plan → plan review → implement → the widest reviewer-persona fanout → resolution | Review depth matters most: correctness, security, performance, migrations, and API contracts each get their own reviewer lane. |
superpowers (superpowers-build) |
Brainstorm → written spec approval → per-task test-driven development → spec-compliance then code-quality review | You want hard approval gates before code and strict TDD per task. |
gstack (gstack-build) |
Office-hours intake → multi-perspective plan review → build → staff review → QA → security → release readiness | You want founder/PM-flavored gates and explicit QA + release-readiness stages before shipping. |
All five expose the same launch variables (interaction_mode, review_mode,
drain_policy, push, open_pr, …), so switching methodology is a one-word
change to the formula name.
The canonical path is the import CLI — it writes the import, fetches the
latest release, and pins the commit in packs.lock:
gc import add https://github.com/gastownhall/gascity-packs.git//bmadWhich is equivalent to this in city.toml (or any pack's pack.toml),
followed by gc import install:
[imports.bmad]
source = "https://github.com/gastownhall/gascity-packs.git//bmad"Contributors working on the packs themselves can clone this repo and point
source at a local path instead:
[imports.bmad]
source = "../gascity-packs/bmad"Each pack documents its own prerequisites, import snippet, and usage.
Each top-level directory is either a pack or a group of related packs:
- A directory containing
pack.tomlis itself a pack; import it by path. - A directory without
pack.tomlgroups related subpacks and typically ships anall/rollup that imports the group as one.
Browse the tree for the current set; each pack has its own README.
- cass adds a shared
cass-searchprompt fragment and Claude skill overlay for searching past coding-agent sessions.
Raw-framework subagents become Gas City fanouts. The vendored methodology text is treated as source material for behavior, not runtime authority: if a raw skill says to spawn a subagent, dispatch a task tool, or invoke a plugin command, the pack should model that work as formula steps, expansion children, drains, or fanout/fanin lanes.
Use two mode concepts when comparing methodology packs:
-
interaction_modedescribes human participation in planning and gates: interactive, autonomous, or headless. -
review_modedescribes whether review is report-only, machine handoff, or an interactive top-level review that may apply safe fixes. -
gascity provides the
build-baseworkflow contract, the defaultbuild-basicimplementation, and thebuild-from-*continuation entrypoints for resuming a build from existing artifacts. -
compound-engineering imports
gascityasgcand implementsbuild-basewith vendored Compound Engineering skills, agent personas, and Gas City-native review/finalization expansions. -
superpowers imports
gascityasgcand implementsbuild-basewith vendored Superpowers skills and Gas City-native development/review expansions. -
bmad imports
gascityasgcand implementsbuild-basewith vendored BMAD Method skills and Gas City-native story/review expansions. -
gstack imports
gascityasgcand implementsbuild-basewith vendored garrytan/gstack office-hours, autoplan, review, QA, security, documentation, and release-readiness skills mapped to Gas City fanouts.
See the build methodology framework audit for the current parity assessment and proposed beginner-friendly updates.
The Slack provider ships as three tiers — pick the smallest one that covers your use case:
| Tier | Pack | Use it when |
|---|---|---|
| 1 | slack-mini | The mayor only needs to post status into a single channel. No bindings, no state. |
| 2 | slack-channel | A few named sessions share channels with distinct identities — no slash commands or cross-rig routing. |
| 3 | slack-full | Slash commands, interactive modals/buttons, peer fanout, launcher-mode spawning, or multi-rig channel routing. |
See the tiering design memo for the rationale.
Issues and pull requests are welcome. When a pack's surface changes, update its README in the same PR so the docs stay current with the code.