Gas City — The SDK for Building Custom Dark Factories

Source: Steve Yegge, "Welcome to Gas City," Apr 24, 2026
Related: steve-yegge-gas-town, steve-yegge-beads, steve-yegge-wasteland, steve-yegge-saas-mountain


From Gas Town to Gas City

Gas City is the evolutionary successor to Gas Town. Where Gas Town was a single, opinionated product — an orchestrator for Claude Code clones — Gas City is an SDK for building custom dark factories. It tears apart everything in Gas Town and rebuilds it as composable declarative building blocks called "packs."

The Gas Town pack ships as the default, making Gas City a drop-in replacement for existing Gas Town users. But Gas City's real value is that anyone can build their own packs — their own orchestration patterns, their own agent roles, their own workflows — using Gas City's composable primitives.

This is the Escape from SaaS Mountain story made architectural. See steve-yegge-saas-mountain for the full context, but the short version is: SaaS tools are monolithic and rigid; Gas City is a toolkit for building exactly the tool you need. See steve-yegge-saas-mountain.


Packs: The Composable Primitive

A pack in Gas City is a declarative, composable unit that packages up:

  • A set of agent roles (e.g., the Mayor role, the Witness role, the Deacon role)
  • A set of workflows connecting those roles (e.g., how the Mayor assigns to the Refinery, how the Witness gates on the Witness's output)
  • A set of Bead types relevant to that workflow
  • Configuration and defaults for all of the above

The Gas Town pack is one such pack. It packages Gas Town's entire opinionated workflow as a Gas City pack. But you could build a different pack with different roles and workflows — a pack optimized for research, a pack for customer support, a pack for data pipelines.

Packs are composable: you can run multiple packs simultaneously, with different packs managing different domains of work, all sharing the same underlying Bead substrate. The human is the control plane, managing which packs are active and how they coordinate.


The 11 Stages of AI Adoption

Gas City introduces the 11 Stages of AI Adoption, extending Yegge's earlier 8 Stages:

  • Level 8 — Build Your Own Orchestrator: You build Gas Town (or equivalent). Most technical teams reach this.
  • Level 9 — Deploy Your First Agent Pack: A pack is "a garden you tend." You deploy a specialized pack that handles a domain autonomously. You monitor it but don't micromanage it.
  • Level 10 — Multiple Packs, Human as Control Plane: Multiple packs, each managing a domain. The human is the control plane, routing work to the appropriate pack.
  • Level 11 — Factory Builder: Crew members managing subsets of packs. The human defines the organizational structure, and the agents self-organize within it. This is a full custom orchestrator built from Gas City packs.

The progression is from user → operator → architect. At Level 11, you're not using someone else's factory; you're designing your own.


Light Factory: Observability by Default

Yegge coins the term "Light Factory" to contrast with "Dark Factory." A dark factory (the Gas Town model) has many workers you don't look in on — polecats running in the background, unsupervised. A Light Factory maximizes observability: all workers are visible and addressable, with the polecats in the back rooms being the only ones you normally don't look in on.

Gas City is designed as a Light Factory framework. Every agent, every pack, every workflow is addressable and observable. The dark components (polecats) are clearly delineated and auditable. This addresses one of the main criticisms of dark factory architectures: that they're uninspectable.


Multi-Agent Reliability Principle

Gas City formalizes a key reliability principle Yegge discovered empirically:

Never deploy a single agent for real business processes.

The mathematical insight: hallucination and failure are inherent to single-agent systems (hallucination is "mathematically baked in" to LLM inference). Two agents watching each other — like two hash functions — dramatically decreases failure probability.

Gas City's multi-agent adversarial review model (Witness agents, 5+ agent verdicts) implements this principle. Every non-trivial business process in Gas City involves at least two agents reviewing each other's work. This is why dark factories beat single-agent setups.


Kelly Parallel

Gas City Concept Kelly Equivalent
Packs (composable building blocks) Kelly's BMAD agent definitions — modular, composable agent specs
Pack composition (multiple packs, shared Bead substrate) Kelly's multi-agent pipeline — multiple specialized agents sharing work items
Level 9–11 pack deployment stages Kelly's factory evolution v1→v3 — progression from basic automation to full autonomous factory
Light Factory (maximized observability) Kelly's transparent factory运作 — human oversight maintained even as agents become more autonomous
Multi-agent adversarial review Kelly's 5-agent verdict / Angry Mob — multiple agents verify each other's output
Gas Town pack as default Kelly's default pipeline configuration — sensible defaults shipped out of the box
SDK for building custom factories No direct Kelly equivalent — Kelly's framework is more monolithic; Gas City's SDK approach is more extensible

Key gap: Kelly has no equivalent to Gas City's pack composition model. Kelly's factory is a pipeline with defined stages; Gas City allows multiple independent packs running concurrently, each with its own workflow, sharing a common Bead substrate. This is more composable and extensible than Kelly's pipeline model.

Key distinction: Kelly's reliability principle (multi-agent adversarial review) predates and closely matches Gas City's formalized version. Kelly's 5-agent verdict and Gas City's Witness-based quality gates are conceptually identical — multiple agents reviewing each other's work to push reliability arbitrarily high.


Source Attribution

  • Steve Yegge, "Welcome to Gas City," Apr 24, 2026

Bibliography

steve-yegge-beads, steve-yegge-gas-town, steve-yegge-saas-mountain, steve-yegge-wasteland