From 5186cd90be7a0c9d4ff45cf0372371dde8f3561c Mon Sep 17 00:00:00 2001 From: gastown/crew/joe Date: Sat, 3 Jan 2026 16:12:12 -0800 Subject: [PATCH] fix(install): remove vestigial rigs/ directory creation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The rigs/ directory was created by gt install but never used by gt rig add, which puts rigs at the town root. Rather than restructure the entire codebase to use rigs/, we remove the unused directory. Flat structure is fine - similar to Android top-level layout with 100+ subprojects. Rigs at root works well and avoids a breaking change. Closes #74 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- internal/cmd/gitinit.go | 5 ----- internal/cmd/install.go | 8 -------- internal/cmd/install_integration_test.go | 1 - 3 files changed, 14 deletions(-) diff --git a/internal/cmd/gitinit.go b/internal/cmd/gitinit.go index cff19287..0a00045f 100644 --- a/internal/cmd/gitinit.go +++ b/internal/cmd/gitinit.go @@ -90,11 +90,6 @@ const HQGitignore = `# Gas Town HQ .gitignore # Add rig-specific symlinks here, e.g.: # gastown/.beads -# ============================================================================= -# Rigs directory (clones created by 'gt rig add') -# ============================================================================= -/rigs/*/ - # ============================================================================= # OS and editor files # ============================================================================= diff --git a/internal/cmd/install.go b/internal/cmd/install.go index 1da4a948..85e9ec7c 100644 --- a/internal/cmd/install.go +++ b/internal/cmd/install.go @@ -39,7 +39,6 @@ The HQ (headquarters) is the top-level directory where Gas Town is installed - the root of your workspace where all rigs and agents live. It contains: - CLAUDE.md Mayor role context (Mayor runs from HQ root) - mayor/ Mayor config, state, and rig registry - - rigs/ Managed rig containers (created by 'gt rig add') - .beads/ Town-level beads DB (hq-* prefix for mayor mail) If path is omitted, uses the current directory. @@ -170,13 +169,6 @@ func runInstall(cmd *cobra.Command, args []string) error { } fmt.Printf(" ✓ Created mayor/rigs.json\n") - // Create rigs directory (for managed rig clones) - rigsDir := filepath.Join(absPath, "rigs") - if err := os.MkdirAll(rigsDir, 0755); err != nil { - return fmt.Errorf("creating rigs directory: %w", err) - } - fmt.Printf(" ✓ Created rigs/\n") - // Create mayor state.json mayorState := &config.AgentState{ Role: "mayor", diff --git a/internal/cmd/install_integration_test.go b/internal/cmd/install_integration_test.go index 3c63be18..2b534339 100644 --- a/internal/cmd/install_integration_test.go +++ b/internal/cmd/install_integration_test.go @@ -33,7 +33,6 @@ func TestInstallCreatesCorrectStructure(t *testing.T) { // Verify directory structure assertDirExists(t, hqPath, "HQ root") assertDirExists(t, filepath.Join(hqPath, "mayor"), "mayor/") - assertDirExists(t, filepath.Join(hqPath, "rigs"), "rigs/") // Verify mayor/town.json townPath := filepath.Join(hqPath, "mayor", "town.json")