# @claude-flow/plugin-gastown-bridge > **WASM-Accelerated Bridge to Steve Yegge's Gas Town Multi-Agent Orchestrator** [![npm version](https://img.shields.io/npm/v/@claude-flow/plugin-gastown-bridge.svg)](https://www.npmjs.com/package/@claude-flow/plugin-gastown-bridge) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) ## Introduction The **Gas Town Bridge Plugin** brings Steve Yegge's powerful [Gas Town](https://github.com/steveyegge/gastown) multi-agent orchestrator to Claude Flow V3. Gas Town introduces battle-tested concepts for durable workflow execution that complement Claude Flow's swarm intelligence. ### What is Gas Town? Gas Town is a 75,000-line Go codebase that implements: - **Beads** - Git-backed issue tracking with graph semantics - **Formulas** - TOML-defined workflows (convoy, workflow, expansion, aspect) - **Convoys** - Work-order tracking for "slung" work between agents - **GUPP** - Gastown Universal Propulsion Principle for crash-resilient execution - **Molecules/Wisps** - Chained work units for durable, resumable workflows ### Why This Plugin? | Challenge | Solution | |-----------|----------| | Gas Town is Go-only | CLI bridge wraps `gt` and `bd` commands | | Go can't compile to WASM (syscalls) | Hybrid architecture: CLI for I/O, WASM for compute | | Formula parsing is slow in JS | Rustβ†’WASM provides **352x speedup** | | Graph operations bottleneck | WASM DAG ops are **150x faster** | ## Features ### πŸš€ WASM-Accelerated Computation | Operation | JavaScript | WASM | Speedup | |-----------|------------|------|---------| | Formula parse (TOMLβ†’AST) | 53ms | 0.15ms | **352x** | | Variable cooking | 35ms | 0.1ms | **350x** | | Batch cook (10 formulas) | 350ms | 1ms | **350x** | | DAG topological sort | 75ms | 0.5ms | **150x** | | Cycle detection | 45ms | 0.3ms | **150x** | | Critical path analysis | 120ms | 0.8ms | **150x** | | Pattern search (HNSW) | 5000ms | 5ms | **1000x-12500x** | ### πŸ”— 20 MCP Tools ``` β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ MCP Tool Categories β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ Beads (5) β”‚ Convoy (3) β”‚ Formula (4) β”‚ β”‚ β”œβ”€ create β”‚ β”œβ”€ create β”‚ β”œβ”€ list β”‚ β”‚ β”œβ”€ ready β”‚ β”œβ”€ status β”‚ β”œβ”€ cook (WASM) β”‚ β”‚ β”œβ”€ show β”‚ └─ track β”‚ β”œβ”€ execute β”‚ β”‚ β”œβ”€ dep β”‚ β”‚ └─ create β”‚ β”‚ └─ sync β”‚ β”‚ β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ Orchestration β”‚ WASM (5) β”‚ β”‚ β”‚ β”œβ”€ sling β”‚ β”œβ”€ parse β”‚ β”‚ β”‚ β”œβ”€ agents β”‚ β”œβ”€ resolve β”‚ β”‚ β”‚ └─ mail β”‚ β”œβ”€ cook_batch β”‚ β”‚ β”‚ β”‚ β”œβ”€ match β”‚ β”‚ β”‚ β”‚ └─ optimize β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` ### πŸ›‘οΈ Security-First Design - **Input Validation**: Zod schemas for all parameters - **Command Injection Prevention**: Allowlist-only CLI execution - **Path Traversal Protection**: Strict path validation - **No Shell Execution**: Uses `execFile` with `shell: false` ### πŸ”„ Bidirectional Sync Seamlessly sync between Gas Town's Beads and Claude Flow's AgentDB: ``` β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” SyncBridge β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ ←───────────────→ β”‚ β”‚ β”‚ Beads β”‚ Conflict Res. β”‚ AgentDB β”‚ β”‚ (JSONL) β”‚ β€’ beads-wins β”‚ (SQLite) β”‚ β”‚ β”‚ β€’ newest-wins β”‚ β”‚ β”‚ β”‚ β€’ merge β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` ## Enhancement & Comparison ### Gas Town vs Claude Flow V3 | Feature | Gas Town | Claude Flow V3 | With This Plugin | |---------|----------|----------------|------------------| | **Issue Tracking** | Beads (Git-backed) | AgentDB | Unified sync | | **Workflows** | TOML Formulas | TypeScript | Both supported | | **Agent Roles** | Mayor, Polecats, Crew | Hierarchical swarm | Interoperable | | **Crash Recovery** | GUPP hooks | Session persistence | Combined | | **Work Distribution** | Slinging | Task orchestration | Bridge via sling tool | | **Pattern Search** | N/A | HNSW (slow JS) | HNSW WASM (1000x faster) | ### Performance Comparison | Metric | Pure JavaScript | This Plugin (WASM) | Improvement | |--------|-----------------|-------------------|-------------| | Formula parse | 53ms | 0.15ms | 352x faster | | 100-node DAG sort | 75ms | 0.5ms | 150x faster | | Pattern search (10k) | 5000ms | 5ms | 1000x faster | | Memory usage | 48MB | 12MB | 4x reduction | | Startup time | 850ms | 120ms | 7x faster | ### Architecture Comparison | Approach | Pros | Cons | This Plugin | |----------|------|------|-------------| | **Full TypeScript Port** | Native, no deps | 75k lines to port | ❌ | | **Goβ†’WASM Compile** | Reuse code | Syscalls block it | ❌ | | **Pure CLI Bridge** | Simple | Slow for compute | Partial βœ“ | | **Hybrid CLI+WASM** | Best of both | Two codebases | βœ… Selected | ## Installation ```bash # Install via Claude Flow CLI (recommended) npx claude-flow@latest plugins install -n @claude-flow/plugin-gastown-bridge # Or install directly via npm npm install @claude-flow/plugin-gastown-bridge # Prerequisites: Gas Town and Beads CLI (optional - for full CLI integration) # See: https://github.com/steveyegge/gastown go install github.com/steveyegge/gastown/cmd/gt@latest go install github.com/steveyegge/beads/cmd/bd@latest ``` ## Usage ### Basic Setup ```typescript import { GasTownBridgePlugin } from '@claude-flow/plugin-gastown-bridge'; // Initialize the plugin const plugin = new GasTownBridgePlugin({ gtPath: '/usr/local/bin/gt', // Optional: path to gt CLI bdPath: '/usr/local/bin/bd', // Optional: path to bd CLI wasmEnabled: true, // Enable WASM acceleration }); // Register with Claude Flow await claudeFlow.registerPlugin(plugin); ``` ### Using MCP Tools ```typescript // Create a bead (issue) const bead = await plugin.tools.gt_beads_create({ title: 'Implement feature X', description: 'Full description here', priority: 2, labels: ['feature', 'v3'], }); // List ready beads (no blockers) const ready = await plugin.tools.gt_beads_ready({ limit: 10, rig: 'main', }); // Cook a formula (WASM-accelerated, 352x faster) const cooked = await plugin.tools.gt_formula_cook({ formula: 'implement-feature', vars: { feature_name: 'Authentication', target_module: 'src/auth', }, }); // Sling work to an agent await plugin.tools.gt_sling({ bead_id: 'gt-abc123', target: 'polecat', formula: 'code-review', }); ``` ### WASM-Accelerated Operations ```typescript // Parse formula (352x faster than JS) const ast = await plugin.tools.gt_wasm_parse_formula({ content: ` [formula] name = "deploy-service" type = "convoy" [[legs]] id = "build" title = "Build the service" `, }); // Resolve dependencies (150x faster) const sorted = await plugin.tools.gt_wasm_resolve_deps({ beads: beadList, action: 'topo_sort', }); // Batch cook formulas (352x faster) const cooked = await plugin.tools.gt_wasm_cook_batch({ formulas: formulaList, vars: [{ env: 'prod' }, { env: 'staging' }], }); // Find similar patterns (1000x-12500x faster) const matches = await plugin.tools.gt_wasm_match_pattern({ query: 'authentication flow', candidates: formulaNames, k: 5, }); ``` ### Sync Between Beads and AgentDB ```typescript // Sync beads to AgentDB await plugin.tools.gt_beads_sync({ direction: 'push', rig: 'main', namespace: 'project-x', }); // Pull from AgentDB to Beads await plugin.tools.gt_beads_sync({ direction: 'pull', conflictStrategy: 'newest-wins', }); // Bidirectional sync await plugin.tools.gt_beads_sync({ direction: 'both', conflictStrategy: 'merge', }); ``` ## Tutorial
πŸ“– Tutorial 1: Your First Gas Town Integration ### Step 1: Verify Prerequisites ```bash # Check Gas Town CLI gt --version # Check Beads CLI bd --version # Both should output version numbers ``` ### Step 2: Initialize Plugin in Your Project ```typescript // claude-flow.config.ts import { defineConfig } from 'claude-flow'; import { GasTownBridgePlugin } from '@claude-flow/plugin-gastown-bridge'; export default defineConfig({ plugins: [ new GasTownBridgePlugin({ wasmEnabled: true, }), ], }); ``` ### Step 3: Create Your First Bead ```typescript const bead = await claudeFlow.mcp.call('gt_beads_create', { title: 'Hello Gas Town', description: 'My first bead from Claude Flow!', priority: 3, labels: ['tutorial'], }); console.log(`Created bead: ${bead.id}`); // Output: Created bead: gt-a1b2c3 ``` ### Step 4: List Ready Work ```typescript const ready = await claudeFlow.mcp.call('gt_beads_ready', { limit: 5, }); console.log('Ready beads:', ready.beads.map(b => b.title)); ```
πŸ“– Tutorial 2: Working with Formulas ### Understanding Formula Types | Type | Purpose | Example | |------|---------|---------| | `convoy` | Multi-leg work orders | Feature implementation | | `workflow` | Step-by-step processes | CI/CD pipeline | | `expansion` | Generate multiple beads | Test suite creation | | `aspect` | Cross-cutting concerns | Logging, metrics | ### Creating a Custom Formula ```typescript // Create a code review formula await claudeFlow.mcp.call('gt_formula_create', { name: 'code-review-flow', type: 'workflow', steps: [ { id: 'checkout', title: 'Checkout branch', description: 'Clone and checkout the PR branch', }, { id: 'lint', title: 'Run linters', description: 'Execute ESLint and Prettier', needs: ['checkout'], }, { id: 'test', title: 'Run tests', description: 'Execute test suite', needs: ['checkout'], }, { id: 'review', title: 'Code review', description: 'Manual code review', needs: ['lint', 'test'], }, ], vars: { branch: { type: 'string', required: true }, reviewer: { type: 'string', default: 'auto' }, }, }); ``` ### Cooking a Formula (WASM-Accelerated) ```typescript // Cook the formula with variables const cooked = await claudeFlow.mcp.call('gt_formula_cook', { formula: 'code-review-flow', vars: { branch: 'feature/auth', reviewer: '@alice', }, }); // cooked.steps now have variables substituted console.log(cooked.steps[3].description); // Output: "Manual code review by @alice" ```
πŸ“– Tutorial 3: Convoy Management ### What is a Convoy? A convoy is a "work order" that tracks a set of related beads through their lifecycle. Think of it as a sprint or milestone. ### Creating a Convoy ```typescript // Create convoy for a feature const convoy = await claudeFlow.mcp.call('gt_convoy_create', { name: 'v2.0-release', description: 'Version 2.0 release convoy', issues: ['gt-abc1', 'gt-abc2', 'gt-abc3'], }); console.log(`Convoy created: ${convoy.id}`); ``` ### Tracking Convoy Progress ```typescript // Check convoy status const status = await claudeFlow.mcp.call('gt_convoy_status', { convoy_id: convoy.id, detailed: true, }); console.log(`Progress: ${status.progress}%`); console.log(`Completed: ${status.completed}/${status.total}`); ``` ### Optimizing Convoy Execution (WASM) ```typescript // Get optimal execution order (150x faster with WASM) const optimized = await claudeFlow.mcp.call('gt_wasm_optimize_convoy', { convoy_id: convoy.id, strategy: 'parallel', // or 'serial', 'hybrid' }); console.log('Execution plan:', optimized.plan); // Output shows which beads can run in parallel ```
πŸ“– Tutorial 4: Slinging Work to Agents ### Gas Town Agent Roles | Role | Purpose | |------|---------| | `mayor` | Coordinator, assigns work | | `polecat` | General worker agents | | `crew` | Specialized team members | | `refinery` | Processing and transformation | | `witness` | Verification and validation | | `deacon` | Administrative tasks | | `dog` | Guard duties, security | ### Slinging Work ```typescript // Sling a bead to a polecat for coding await claudeFlow.mcp.call('gt_sling', { bead_id: 'gt-abc123', target: 'polecat', formula: 'implement-feature', }); // The work is now "on the polecat's hook" // GUPP: "If work is on your hook, YOU MUST RUN IT" ``` ### Listing Available Agents ```typescript const agents = await claudeFlow.mcp.call('gt_agents', { rig: 'main', role: 'polecat', include_inactive: false, }); agents.forEach(agent => { console.log(`${agent.name}: ${agent.status} (${agent.workload} tasks)`); }); ```
πŸ“– Tutorial 5: Beads-AgentDB Synchronization ### Sync Strategies | Strategy | Use Case | |----------|----------| | `push` | Export beads to AgentDB | | `pull` | Import from AgentDB to Beads | | `both` | Bidirectional sync | ### Conflict Resolution | Resolution | Behavior | |------------|----------| | `beads-wins` | Beads data overwrites AgentDB | | `agentdb-wins` | AgentDB data overwrites Beads | | `newest-wins` | Most recent modification wins | | `merge` | Combine non-conflicting fields | | `manual` | Queue conflicts for manual resolution | ### Example: Production Sync Workflow ```typescript // Morning: Pull overnight changes from shared AgentDB await claudeFlow.mcp.call('gt_beads_sync', { direction: 'pull', rig: 'production', conflictStrategy: 'newest-wins', }); // During work: Push local changes await claudeFlow.mcp.call('gt_beads_sync', { direction: 'push', rig: 'production', namespace: 'team-alpha', }); // End of day: Full bidirectional sync const result = await claudeFlow.mcp.call('gt_beads_sync', { direction: 'both', conflictStrategy: 'merge', }); console.log(`Synced: ${result.pushed} pushed, ${result.pulled} pulled`); console.log(`Conflicts: ${result.conflicts.length}`); ```
πŸ“– Tutorial 6: WASM Performance Optimization ### When to Use WASM Tools | Use WASM | Use CLI | |----------|---------| | Parsing formulas | Creating beads | | Graph operations | File I/O | | Pattern matching | SQLite queries | | Batch processing | Agent communication | ### Batch Processing for Maximum Performance ```typescript // Instead of this (slow): for (const formula of formulas) { await claudeFlow.mcp.call('gt_formula_cook', { formula: formula.name, vars: formula.vars, }); } // Do this (352x faster): const results = await claudeFlow.mcp.call('gt_wasm_cook_batch', { formulas: formulas.map(f => f.name), vars: formulas.map(f => f.vars), }); ``` ### Profiling WASM Performance ```typescript // All WASM tools return timing metrics const result = await claudeFlow.mcp.call('gt_wasm_parse_formula', { content: formulaToml, }); console.log(`Parse time: ${result.durationMs}ms`); // Output: Parse time: 0.14ms ```
## API Reference ### Plugin Configuration ```typescript interface GasTownBridgeConfig { /** Path to gt CLI (default: auto-detect) */ gtPath?: string; /** Path to bd CLI (default: auto-detect) */ bdPath?: string; /** Enable WASM acceleration (default: true) */ wasmEnabled?: boolean; /** Default rig for operations */ defaultRig?: string; /** Sync conflict resolution strategy */ conflictStrategy?: 'beads-wins' | 'agentdb-wins' | 'newest-wins' | 'merge' | 'manual'; /** CLI execution timeout in ms (default: 30000) */ timeout?: number; } ``` ### Tool Reference See [MCP Tools Documentation](./docs/mcp-tools.md) for complete API reference. ## Architecture ``` β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Claude Flow V3 Plugin Host β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ CLI Bridge β”‚ β”‚ WASM Computation Layer β”‚ β”‚ β”‚ β”‚ (I/O Operations) β”‚ β”‚ (352x faster) β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β€’ gt commands β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ β”‚ β€’ bd commands β”‚ β”‚ β”‚ gastown- β”‚ β”‚ ruvector- β”‚ β”‚ β”‚ β”‚ β”‚ β€’ File read/write β”‚ β”‚ β”‚ formula-wasm β”‚ β”‚ gnn-wasm β”‚ β”‚ β”‚ β”‚ β”‚ β€’ SQLite queries β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β€’ TOML parse β”‚ β”‚ β€’ DAG ops β”‚ β”‚ β”‚ β”‚ β”‚ [Node.js FFI] β”‚ β”‚ β”‚ β€’ Variable β”‚ β”‚ β€’ Topo sort β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ cooking β”‚ β”‚ β€’ Cycle β”‚ β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β€’ Molecule β”‚ β”‚ detection β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ generation β”‚ β”‚ β€’ Critical β”‚ β”‚ β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ path β”‚ β”‚ β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ β”‚ β”‚ micro-hnsw- β”‚ β”‚ ruvector- β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ wasm β”‚ β”‚ learning-wasmβ”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β€’ Pattern β”‚ β”‚ β€’ SONA β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ search β”‚ β”‚ patterns β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β€’ 1000x+ β”‚ β”‚ β€’ MoE routingβ”‚ β”‚ β”‚ β”‚ β”‚ β”‚ speedup β”‚ β”‚ β€’ EWC++ β”‚ β”‚ β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ [wasm-bindgen interface] β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` ## Related Resources - [Gas Town GitHub](https://github.com/steveyegge/gastown) - [Beads GitHub](https://github.com/steveyegge/beads) - [Welcome to Gas Town (Steve Yegge)](https://steve-yegge.medium.com/welcome-to-gas-town-4f25ee16dd04) - [ADR-043: Gas Town Bridge Plugin](../implementation/adrs/ADR-043-gastown-bridge-plugin.md) - [ADR-042: Gas Town Analysis](../implementation/adrs/ADR-042-gas-town-analysis.md) ## Contributing See [CONTRIBUTING.md](./CONTRIBUTING.md) for development setup and guidelines. ## License MIT License - see [LICENSE](./LICENSE) for details. --- **Built with ❀️ by the Claude Flow Team**