From 91fa5e63dc91f44837d83ff04472a995211c5067 Mon Sep 17 00:00:00 2001 From: Steve Yegge Date: Tue, 30 Dec 2025 18:02:45 -0800 Subject: [PATCH] Replace 'gastown' with 'greenplace' in user-facing docs/examples MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Using "greenplace" (The Green Place from Mad Max: Fury Road) as the canonical example project/rig name in documentation and help text. This provides a clearer distinction from the actual gastown repo name. Changes: - docs/*.md: Updated all example paths and commands - internal/cmd/*.go: Updated help text examples - internal/templates/: Updated example references - Tests: Updated to use greenplace in example session names Note: Import paths (github.com/steveyegge/gastown) and actual code paths referencing the gastown repo structure are unchanged. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- docs/federation.md | 26 +++++------ docs/mail-protocol.md | 12 ++--- docs/operational-state.md | 6 +-- docs/reference.md | 4 +- docs/swarm.md | 40 ++++++++--------- docs/wisp-squash-design.md | 2 +- internal/cmd/activity.go | 12 ++--- internal/cmd/audit.go | 8 ++-- internal/cmd/broadcast.go | 2 +- internal/cmd/crew.go | 8 ++-- internal/cmd/cycle.go | 4 +- internal/cmd/feed.go | 2 +- internal/cmd/log.go | 8 ++-- internal/cmd/mail.go | 32 +++++++------- internal/cmd/molecule.go | 12 ++--- internal/cmd/mq.go | 24 +++++----- internal/cmd/nudge.go | 4 +- internal/cmd/peek.go | 6 +-- internal/cmd/polecat.go | 54 +++++++++++------------ internal/cmd/polecat_cycle_test.go | 20 ++++----- internal/cmd/refinery.go | 8 ++-- internal/cmd/rig.go | 10 ++--- internal/cmd/session.go | 4 +- internal/cmd/sling.go | 28 ++++++------ internal/cmd/start.go | 6 +-- internal/cmd/status.go | 4 +- internal/cmd/swarm.go | 10 ++--- internal/cmd/unsling.go | 6 +-- internal/cmd/witness.go | 8 ++-- internal/templates/roles/refinery.md.tmpl | 2 +- internal/templates/templates.go | 2 +- 31 files changed, 187 insertions(+), 187 deletions(-) diff --git a/docs/federation.md b/docs/federation.md index c9977e32..4c9a38d6 100644 --- a/docs/federation.md +++ b/docs/federation.md @@ -23,7 +23,7 @@ Full work unit reference (HOP protocol): ``` hop://entity/chain/rig/issue-id -hop://steve@example.com/main-town/gastown/gt-xyz +hop://steve@example.com/main-town/greenplace/gp-xyz ``` Cross-repo reference (same platform): @@ -36,9 +36,9 @@ beads://github/acme/backend/ac-123 Within a workspace, short forms are preferred: ``` -gt-xyz # Local (prefix routes via routes.jsonl) -gastown/gt-xyz # Different rig, same chain -./gt-xyz # Explicit current-rig ref +gp-xyz # Local (prefix routes via routes.jsonl) +greenplace/gp-xyz # Different rig, same chain +./gp-xyz # Explicit current-rig ref ``` See `~/gt/docs/hop/GRAPH-ARCHITECTURE.md` for full URI specification. @@ -80,7 +80,7 @@ Distribute work across workspaces: { "type": "delegation", "parent": "hop://acme.com/projects/proj-123", - "child": "hop://alice@example.com/town/gastown/gt-xyz", + "child": "hop://alice@example.com/town/greenplace/gp-xyz", "terms": { "portion": "backend", "deadline": "2025-02-01" } } ``` @@ -94,17 +94,17 @@ complete BD_ACTOR format convention. ```bash # Set per agent session -GIT_AUTHOR_NAME="gastown/crew/joe" +GIT_AUTHOR_NAME="greenplace/crew/joe" GIT_AUTHOR_EMAIL="steve@example.com" # Workspace owner ``` -Result: `abc123 Fix bug (gastown/crew/joe )` +Result: `abc123 Fix bug (greenplace/crew/joe )` ### Beads Operations ```bash -BD_ACTOR="gastown/crew/joe" # Set in agent environment -bd create --title="Task" # Actor auto-populated +BD_ACTOR="greenplace/crew/joe" # Set in agent environment +bd create --title="Task" # Actor auto-populated ``` ### Event Logging @@ -115,8 +115,8 @@ All events include actor: { "ts": "2025-01-15T10:30:00Z", "type": "sling", - "actor": "gastown/crew/joe", - "payload": { "bead": "gt-xyz", "target": "gastown/polecats/Toast" } + "actor": "greenplace/crew/joe", + "payload": { "bead": "gp-xyz", "target": "greenplace/polecats/Toast" } } ``` @@ -131,7 +131,7 @@ Each workspace has identity metadata: { "owner": "steve@example.com", "name": "main-town", - "public_name": "steve-gastown" + "public_name": "steve-greenplace" } ``` @@ -161,7 +161,7 @@ bd list --org=acme.com bd list --project=proj-123 --include-delegated # Agent's full history -bd audit --actor=gastown/crew/joe +bd audit --actor=greenplace/crew/joe ``` ## Implementation Status diff --git a/docs/mail-protocol.md b/docs/mail-protocol.md index b9715295..81efb4b5 100644 --- a/docs/mail-protocol.md +++ b/docs/mail-protocol.md @@ -205,7 +205,7 @@ attached_at: Examples: ``` POLECAT_DONE nux -MERGE_READY gastown/nux +MERGE_READY greenplace/nux HELP: Polecat stuck on test failures 🤝 HANDOFF: Schema work in progress ``` @@ -222,9 +222,9 @@ Format: `/` or `//` Examples: ``` -gastown/witness # Witness for gastown rig -beads/refinery # Refinery for beads rig -gastown/polecats/nux # Specific polecat +greenplace/witness # Witness for greenplace rig +beads/refinery # Refinery for beads rig +greenplace/polecats/nux # Specific polecat mayor/ # Town-level Mayor deacon/ # Town-level Deacon ``` @@ -314,8 +314,8 @@ Witness-N ──┘ gt mail send -s "Subject" -m "Body" # With structured body -gt mail send gastown/witness -s "MERGE_READY nux" -m "Branch: feature-xyz -Issue: gt-abc +gt mail send greenplace/witness -s "MERGE_READY nux" -m "Branch: feature-xyz +Issue: gp-abc Polecat: nux Verified: clean" ``` diff --git a/docs/operational-state.md b/docs/operational-state.md index 7509759b..61dc28bf 100644 --- a/docs/operational-state.md +++ b/docs/operational-state.md @@ -43,7 +43,7 @@ bd create --type=event --event-type=patrol.muted \ # System entered degraded mode bd create --type=event --event-type=mode.degraded \ - --actor=system:daemon --target=rig:gastown \ + --actor=system:daemon --target=rig:greenplace \ --payload='{"reason":"tmux unavailable"}' ``` @@ -230,10 +230,10 @@ Boot specifically: ```bash # System entered degraded mode bd create --type=event --event-type=mode.degraded \ - --actor=system:daemon --target=rig:gastown \ + --actor=system:daemon --target=rig:greenplace \ --payload='{"reason":"tmux unavailable"}' -bd update role-gastown --add-label=mode:degraded --remove-label=mode:normal +bd update role-greenplace --add-label=mode:degraded --remove-label=mode:normal ``` ## Configuration vs State diff --git a/docs/reference.md b/docs/reference.md index c567a35e..6094e61e 100644 --- a/docs/reference.md +++ b/docs/reference.md @@ -31,7 +31,7 @@ Gas Town routes beads commands based on issue ID prefix. You don't need to think about which database to use - just use the issue ID. ```bash -bd show gt-xyz # Routes to gastown rig's beads +bd show gp-xyz # Routes to greenplace rig's beads bd show hq-abc # Routes to town-level beads bd show wyv-123 # Routes to wyvern rig's beads ``` @@ -42,7 +42,7 @@ prefix maps to its beads location (the mayor's clone in that rig). | Prefix | Routes To | Purpose | |--------|-----------|---------| | `hq-*` | `~/gt/.beads/` | Mayor mail, cross-rig coordination | -| `gt-*` | `~/gt/gastown/mayor/rig/.beads/` | Gastown project issues | +| `gp-*` | `~/gt/greenplace/mayor/rig/.beads/` | Greenplace project issues | | `wyv-*` | `~/gt/wyvern/mayor/rig/.beads/` | Wyvern project issues | Debug routing: `BD_DEBUG_ROUTING=1 bd show ` diff --git a/docs/swarm.md b/docs/swarm.md index bb5749aa..a2d3bfac 100644 --- a/docs/swarm.md +++ b/docs/swarm.md @@ -50,13 +50,13 @@ independent tasks, a swarm lets you: ```bash # Create swarm from existing epic -gt swarm create gastown --epic gt-abc --worker Toast --worker Nux +gt swarm create greenplace --epic gp-abc --worker Toast --worker Nux # Create and start immediately -gt swarm create gastown --epic gt-abc --worker Toast --start +gt swarm create greenplace --epic gp-abc --worker Toast --start # Specify target branch (defaults to main) -gt swarm create gastown --epic gt-abc --worker Toast --target develop +gt swarm create greenplace --epic gp-abc --worker Toast --target develop ``` The epic should already exist in beads with child tasks. The swarm will track @@ -66,7 +66,7 @@ which tasks are ready, in-progress, and complete. ```bash # Start a previously created swarm -gt swarm start gt-abc +gt swarm start gp-abc ``` This transitions the swarm from `created` to `active` and begins dispatching @@ -76,10 +76,10 @@ tasks to workers. ```bash # Human-readable status -gt swarm status gt-abc +gt swarm status gp-abc # JSON output -gt swarm status gt-abc --json +gt swarm status gp-abc --json ``` Shows: @@ -96,11 +96,11 @@ Shows: gt swarm list # Swarms in specific rig -gt swarm list gastown +gt swarm list greenplace # Filter by status gt swarm list --status=active -gt swarm list gastown --status=landed +gt swarm list greenplace --status=landed # JSON output gt swarm list --json @@ -110,10 +110,10 @@ gt swarm list --json ```bash # Auto-dispatch next ready task to idle polecat -gt swarm dispatch gt-abc +gt swarm dispatch gp-abc # Dispatch in specific rig -gt swarm dispatch gt-abc --rig gastown +gt swarm dispatch gp-abc --rig greenplace ``` Finds the first unassigned ready task and assigns it to an available polecat. @@ -123,7 +123,7 @@ Uses `gt sling` internally. ```bash # Manually land completed swarm -gt swarm land gt-abc +gt swarm land gp-abc ``` This: @@ -139,7 +139,7 @@ This: ### Cancel a Swarm ```bash -gt swarm cancel gt-abc +gt swarm cancel gp-abc ``` Marks the swarm as cancelled. Does not automatically stop sessions or clean up @@ -197,22 +197,22 @@ If code is at risk, landing blocks and notifies Mayor. ```bash # 1. Create epic with tasks in beads -bd create --type=epic --title="Add authentication" --id gt-auth -bd create --title="Add login form" --parent gt-auth -bd create --title="Add session management" --parent gt-auth -bd create --title="Add logout flow" --parent gt-auth +bd create --type=epic --title="Add authentication" --id gp-auth +bd create --title="Add login form" --parent gp-auth +bd create --title="Add session management" --parent gp-auth +bd create --title="Add logout flow" --parent gp-auth # 2. Create swarm -gt swarm create gastown --epic gt-auth --worker Toast --worker Nux --start +gt swarm create greenplace --epic gp-auth --worker Toast --worker Nux --start # 3. Monitor progress -gt swarm status gt-auth +gt swarm status gp-auth # 4. Dispatch more as tasks complete -gt swarm dispatch gt-auth +gt swarm dispatch gp-auth # 5. Land when complete -gt swarm land gt-auth +gt swarm land gp-auth ``` ## Troubleshooting diff --git a/docs/wisp-squash-design.md b/docs/wisp-squash-design.md index ae3987c4..74dc5c2a 100644 --- a/docs/wisp-squash-design.md +++ b/docs/wisp-squash-design.md @@ -272,7 +272,7 @@ Digests feed into the activity feed for observability: ```json { "type": "digest", - "agent": "gastown/witness", + "agent": "greenplace/witness", "timestamp": "2025-12-30T10:00:00Z", "summary": "Patrol cycle 47 complete", "metrics": { diff --git a/internal/cmd/activity.go b/internal/cmd/activity.go index 5c42230a..29dc98ca 100644 --- a/internal/cmd/activity.go +++ b/internal/cmd/activity.go @@ -56,16 +56,16 @@ Supported event types for refinery: queue_processed - When refinery finishes processing queue Common options: - --actor Who is emitting the event (e.g., gastown/witness) + --actor Who is emitting the event (e.g., greenplace/witness) --rig Which rig the event is about --message Human-readable message Examples: - gt activity emit patrol_started --rig gastown --count 3 - gt activity emit polecat_checked --rig gastown --polecat Toast --status working --issue gt-xyz - gt activity emit polecat_nudged --rig gastown --polecat Toast --reason "idle for 10 minutes" - gt activity emit escalation_sent --rig gastown --target Toast --to mayor --reason "unresponsive" - gt activity emit patrol_complete --rig gastown --count 3 --message "All polecats healthy"`, + gt activity emit patrol_started --rig greenplace --count 3 + gt activity emit polecat_checked --rig greenplace --polecat Toast --status working --issue gp-xyz + gt activity emit polecat_nudged --rig greenplace --polecat Toast --reason "idle for 10 minutes" + gt activity emit escalation_sent --rig greenplace --target Toast --to mayor --reason "unresponsive" + gt activity emit patrol_complete --rig greenplace --count 3 --message "All polecats healthy"`, Args: cobra.ExactArgs(1), RunE: runActivityEmit, } diff --git a/internal/cmd/audit.go b/internal/cmd/audit.go index c66827ed..5cad1019 100644 --- a/internal/cmd/audit.go +++ b/internal/cmd/audit.go @@ -41,8 +41,8 @@ Shows a unified timeline of work performed by an actor including: - Activity feed events Examples: - gt audit --actor=gastown/crew/joe # Show all work by joe - gt audit --actor=gastown/polecats/toast # Show polecat toast's work + gt audit --actor=greenplace/crew/joe # Show all work by joe + gt audit --actor=greenplace/polecats/toast # Show polecat toast's work gt audit --actor=mayor # Show mayor's activity gt audit --since=24h # Show all activity in last 24h gt audit --actor=joe --since=1h # Combined filters @@ -167,7 +167,7 @@ func collectGitCommits(townRoot, actor string, since time.Time) ([]AuditEntry, e if actor != "" { // Try to match actor in author name - // Actor format might be "gastown/crew/joe" - extract "joe" as the author name + // Actor format might be "greenplace/crew/joe" - extract "joe" as the author name authorName := extractAuthorName(actor) args = append(args, "--author="+authorName) } @@ -221,7 +221,7 @@ func collectGitCommits(townRoot, actor string, since time.Time) ([]AuditEntry, e // extractAuthorName extracts the likely git author name from an actor address. func extractAuthorName(actor string) string { - // Actor format: "gastown/crew/joe" -> "joe" + // Actor format: "greenplace/crew/joe" -> "joe" // Or: "mayor" -> "mayor" parts := strings.Split(actor, "/") if len(parts) > 0 { diff --git a/internal/cmd/broadcast.go b/internal/cmd/broadcast.go index bfa22aeb..3d65e177 100644 --- a/internal/cmd/broadcast.go +++ b/internal/cmd/broadcast.go @@ -35,7 +35,7 @@ The message is sent as a nudge to each worker's Claude Code session. Examples: gt broadcast "Check your mail" - gt broadcast --rig gastown "New priority work available" + gt broadcast --rig greenplace "New priority work available" gt broadcast --all "System maintenance in 5 minutes" gt broadcast --dry-run "Test message"`, Args: cobra.ExactArgs(1), diff --git a/internal/cmd/crew.go b/internal/cmd/crew.go index 334cf8ad..0fafe600 100644 --- a/internal/cmd/crew.go +++ b/internal/cmd/crew.go @@ -57,7 +57,7 @@ The workspace is created at /crew// with: Examples: gt crew add dave # Create in current rig - gt crew add emma --rig gastown # Create in specific rig + gt crew add emma --rig greenplace # Create in specific rig gt crew add fred --branch # Create with feature branch`, Args: cobra.ExactArgs(1), RunE: runCrewAdd, @@ -72,7 +72,7 @@ Shows git branch, session state, and git status for each workspace. Examples: gt crew list # List in current rig - gt crew list --rig gastown # List in specific rig + gt crew list --rig greenplace # List in specific rig gt crew list --json # JSON output`, RunE: runCrewList, } @@ -244,7 +244,7 @@ var crewStartCmd = &cobra.Command{ This is an alias for 'gt start crew'. It combines 'gt crew add' and 'gt crew at --detached'. The crew session starts in the background with Claude running and ready. -The name can include the rig in slash format (e.g., gastown/joe). +The name can include the rig in slash format (e.g., greenplace/joe). If not specified, the rig is inferred from the current directory. Role Discovery: @@ -254,7 +254,7 @@ Role Discovery: Examples: gt crew start joe # Start joe in current rig - gt crew start gastown/joe # Start joe in gastown rig + gt crew start greenplace/joe # Start joe in gastown rig gt crew start beads/grip beads/fang # Start multiple crew members gt crew start joe --rig beads # Start joe in beads rig gt crew start # Auto-detect from cwd`, diff --git a/internal/cmd/cycle.go b/internal/cmd/cycle.go index c30c112c..eea9dced 100644 --- a/internal/cmd/cycle.go +++ b/internal/cmd/cycle.go @@ -30,9 +30,9 @@ var cycleCmd = &cobra.Command{ Session groups: - Town sessions: Mayor ↔ Deacon -- Crew sessions: All crew members in the same rig (e.g., gastown/crew/max ↔ gastown/crew/joe) +- Crew sessions: All crew members in the same rig (e.g., greenplace/crew/max ↔ greenplace/crew/joe) - Rig infra sessions: Witness ↔ Refinery (per rig) -- Polecat sessions: All polecats in the same rig (e.g., gastown/Toast ↔ gastown/Nux) +- Polecat sessions: All polecats in the same rig (e.g., greenplace/Toast ↔ greenplace/Nux) The appropriate cycling is detected automatically from the session name.`, } diff --git a/internal/cmd/feed.go b/internal/cmd/feed.go index caa1c5ef..1008438f 100644 --- a/internal/cmd/feed.go +++ b/internal/cmd/feed.go @@ -84,7 +84,7 @@ Examples: gt feed --plain # Plain text output (bd activity) gt feed --window # Open in dedicated tmux window gt feed --since 1h # Events from last hour - gt feed --rig gastown # Use gastown rig's beads`, + gt feed --rig greenplace # Use gastown rig's beads`, RunE: runFeed, } diff --git a/internal/cmd/log.go b/internal/cmd/log.go index 8cb4530c..c5046f3a 100644 --- a/internal/cmd/log.go +++ b/internal/cmd/log.go @@ -46,7 +46,7 @@ Examples: gt log # Show last 20 events gt log -n 50 # Show last 50 events gt log --type spawn # Show only spawn events - gt log --agent gastown/ # Show events for gastown rig + gt log --agent greenplace/ # Show events for gastown rig gt log --since 1h # Show events from last hour gt log -f # Follow log (like tail -f)`, RunE: runLog, @@ -65,19 +65,19 @@ The exit code determines if this was a crash or expected exit: - Exit code non-zero: Crash (logged as 'crash') Examples: - gt log crash --agent gastown/Toast --session gt-gastown-Toast --exit-code 1`, + gt log crash --agent greenplace/Toast --session gt-greenplace-Toast --exit-code 1`, RunE: runLogCrash, } func init() { logCmd.Flags().IntVarP(&logTail, "tail", "n", 20, "Number of events to show") logCmd.Flags().StringVarP(&logType, "type", "t", "", "Filter by event type (spawn,wake,nudge,handoff,done,crash,kill)") - logCmd.Flags().StringVarP(&logAgent, "agent", "a", "", "Filter by agent prefix (e.g., gastown/, gastown/crew/max)") + logCmd.Flags().StringVarP(&logAgent, "agent", "a", "", "Filter by agent prefix (e.g., gastown/, greenplace/crew/max)") logCmd.Flags().StringVar(&logSince, "since", "", "Show events since duration (e.g., 1h, 30m, 24h)") logCmd.Flags().BoolVarP(&logFollow, "follow", "f", false, "Follow log output (like tail -f)") // crash subcommand flags - logCrashCmd.Flags().StringVar(&crashAgent, "agent", "", "Agent ID (e.g., gastown/Toast)") + logCrashCmd.Flags().StringVar(&crashAgent, "agent", "", "Agent ID (e.g., greenplace/Toast)") logCrashCmd.Flags().StringVar(&crashSession, "session", "", "Tmux session name") logCrashCmd.Flags().IntVar(&crashExitCode, "exit-code", -1, "Exit code from pane") _ = logCrashCmd.MarkFlagRequired("agent") diff --git a/internal/cmd/mail.go b/internal/cmd/mail.go index eeedd940..8b15f12e 100644 --- a/internal/cmd/mail.go +++ b/internal/cmd/mail.go @@ -61,10 +61,10 @@ MAIL ROUTING: │ │ │ ┌─────────────────────────────────────────────┐ │ │ │ gastown/ (rig mailboxes) │ │ - │ │ ├── witness ← gastown/witness │ │ - │ │ ├── refinery ← gastown/refinery │ │ - │ │ ├── Toast ← gastown/Toast │ │ - │ │ └── crew/max ← gastown/crew/max │ │ + │ │ ├── witness ← greenplace/witness │ │ + │ │ ├── refinery ← greenplace/refinery │ │ + │ │ ├── Toast ← greenplace/Toast │ │ + │ │ └── crew/max ← greenplace/crew/max │ │ │ └─────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────┘ @@ -72,8 +72,8 @@ ADDRESS FORMATS: mayor/ → Mayor inbox /witness → Rig's Witness /refinery → Rig's Refinery - / → Polecat (e.g., gastown/Toast) - /crew/ → Crew worker (e.g., gastown/crew/max) + / → Polecat (e.g., greenplace/Toast) + /crew/ → Crew worker (e.g., greenplace/crew/max) --human → Special: human overseer COMMANDS: @@ -115,14 +115,14 @@ Priority levels: Use --urgent as shortcut for --priority 0. Examples: - gt mail send gastown/Toast -s "Status check" -m "How's that bug fix going?" + gt mail send greenplace/Toast -s "Status check" -m "How's that bug fix going?" gt mail send mayor/ -s "Work complete" -m "Finished gt-abc" gt mail send gastown/ -s "All hands" -m "Swarm starting" --notify - gt mail send gastown/Toast -s "Task" -m "Fix bug" --type task --priority 1 - gt mail send gastown/Toast -s "Urgent" -m "Help!" --urgent + gt mail send greenplace/Toast -s "Task" -m "Fix bug" --type task --priority 1 + gt mail send greenplace/Toast -s "Urgent" -m "Help!" --urgent gt mail send mayor/ -s "Re: Status" -m "Done" --reply-to msg-abc123 gt mail send --self -s "Handoff" -m "Context for next session" - gt mail send gastown/Toast -s "Update" -m "Progress report" --cc overseer + gt mail send greenplace/Toast -s "Update" -m "Progress report" --cc overseer gt mail send list:oncall -s "Alert" -m "System down"`, Args: cobra.MaximumNArgs(1), RunE: runMailSend, @@ -139,8 +139,8 @@ Use --identity for polecats to explicitly specify their identity. Examples: gt mail inbox # Current context (auto-detected) gt mail inbox mayor/ # Mayor's inbox - gt mail inbox gastown/Toast # Polecat's inbox - gt mail inbox --identity gastown/Toast # Explicit polecat identity`, + gt mail inbox greenplace/Toast # Polecat's inbox + gt mail inbox --identity greenplace/Toast # Explicit polecat identity`, Args: cobra.MaximumNArgs(1), RunE: runMailInbox, } @@ -203,7 +203,7 @@ Use --identity for polecats to explicitly specify their identity. Examples: gt mail check # Simple check (auto-detect identity) gt mail check --inject # For hooks - gt mail check --identity gastown/Toast # Explicit polecat identity`, + gt mail check --identity greenplace/Toast # Explicit polecat identity`, RunE: runMailCheck, } @@ -256,7 +256,7 @@ func init() { // Inbox flags mailInboxCmd.Flags().BoolVar(&mailInboxJSON, "json", false, "Output as JSON") mailInboxCmd.Flags().BoolVarP(&mailInboxUnread, "unread", "u", false, "Show only unread messages") - mailInboxCmd.Flags().StringVar(&mailInboxIdentity, "identity", "", "Explicit identity for inbox (e.g., gastown/Toast)") + mailInboxCmd.Flags().StringVar(&mailInboxIdentity, "identity", "", "Explicit identity for inbox (e.g., greenplace/Toast)") mailInboxCmd.Flags().StringVar(&mailInboxIdentity, "address", "", "Alias for --identity") // Read flags @@ -265,7 +265,7 @@ func init() { // Check flags mailCheckCmd.Flags().BoolVar(&mailCheckInject, "inject", false, "Output format for Claude Code hooks") mailCheckCmd.Flags().BoolVar(&mailCheckJSON, "json", false, "Output as JSON") - mailCheckCmd.Flags().StringVar(&mailCheckIdentity, "identity", "", "Explicit identity for inbox (e.g., gastown/Toast)") + mailCheckCmd.Flags().StringVar(&mailCheckIdentity, "identity", "", "Explicit identity for inbox (e.g., greenplace/Toast)") mailCheckCmd.Flags().StringVar(&mailCheckIdentity, "address", "", "Alias for --identity") // Thread flags @@ -744,7 +744,7 @@ func detectSender() string { // detectSenderFromRole builds an address from the GT_ROLE and related env vars. // GT_ROLE can be either a simple role name ("crew", "polecat") or a full address -// ("gastown/crew/joe") depending on how the session was started. +// ("greenplace/crew/joe") depending on how the session was started. // // If GT_ROLE is a simple name but required env vars (GT_RIG, GT_POLECAT, etc.) // are missing, falls back to cwd-based detection. This could return "overseer" diff --git a/internal/cmd/molecule.go b/internal/cmd/molecule.go index 95b46410..2cc40d69 100644 --- a/internal/cmd/molecule.go +++ b/internal/cmd/molecule.go @@ -135,9 +135,9 @@ Output includes: - Next action hint Examples: - gt mol status # Show current agent's hook - gt mol status gastown/nux # Show specific polecat's hook - gt mol status gastown/witness # Show witness's hook`, + gt mol status # Show current agent's hook + gt mol status greenplace/nux # Show specific polecat's hook + gt mol status greenplace/witness # Show witness's hook`, Args: cobra.MaximumNArgs(1), RunE: runMoleculeStatus, } @@ -159,10 +159,10 @@ Output includes: - Current step that should be worked on next Examples: - gt molecule current # Current agent's work - gt molecule current gastown/furiosa + gt molecule current # Current agent's work + gt molecule current greenplace/furiosa gt molecule current deacon - gt mol current gastown/witness`, + gt mol current greenplace/witness`, Args: cobra.MaximumNArgs(1), RunE: runMoleculeCurrent, } diff --git a/internal/cmd/mq.go b/internal/cmd/mq.go index 0d8d9e81..3bd42550 100644 --- a/internal/cmd/mq.go +++ b/internal/cmd/mq.go @@ -68,7 +68,7 @@ Creates a merge-request bead that will be processed by the Refinery. Auto-detection: - Branch: current git branch - - Issue: parsed from branch name (e.g., polecat/Nux/gt-xyz → gt-xyz) + - Issue: parsed from branch name (e.g., polecat/Nux/gp-xyz → gt-xyz) - Worker: parsed from branch name - Rig: detected from current directory - Target: automatically determined (see below) @@ -91,7 +91,7 @@ Polecat auto-cleanup: Examples: gt mq submit # Auto-detect everything + auto-cleanup - gt mq submit --issue gt-abc # Explicit issue + gt mq submit --issue gp-abc # Explicit issue gt mq submit --epic gt-xyz # Target integration branch explicitly gt mq submit --priority 0 # Override priority (P0) gt mq submit --no-cleanup # Submit without auto-cleanup`, @@ -107,8 +107,8 @@ Resets a failed MR so it can be processed again by the refinery. The MR must be in a failed state (open with an error). Examples: - gt mq retry gastown gt-mr-abc123 - gt mq retry gastown gt-mr-abc123 --now`, + gt mq retry greenplace gp-mr-abc123 + gt mq retry greenplace gp-mr-abc123 --now`, Args: cobra.ExactArgs(2), RunE: runMQRetry, } @@ -122,16 +122,16 @@ Lists all pending merge requests waiting to be processed. Output format: ID STATUS PRIORITY BRANCH WORKER AGE - gt-mr-001 ready P0 polecat/Nux/gt-xyz Nux 5m + gt-mr-001 ready P0 polecat/Nux/gp-xyz Nux 5m gt-mr-002 in_progress P1 polecat/Toast/gt-abc Toast 12m gt-mr-003 blocked P1 polecat/Capable/gt-def Capable 8m (waiting on gt-mr-001) Examples: - gt mq list gastown - gt mq list gastown --ready - gt mq list gastown --status=open - gt mq list gastown --worker=Nux`, + gt mq list greenplace + gt mq list greenplace --ready + gt mq list greenplace --status=open + gt mq list greenplace --worker=Nux`, Args: cobra.ExactArgs(1), RunE: runMQList, } @@ -145,8 +145,8 @@ This closes the MR with a 'rejected' status without merging. The source issue is NOT closed (work is not done). Examples: - gt mq reject gastown polecat/Nux/gt-xyz --reason "Does not meet requirements" - gt mq reject gastown mr-Nux-12345 --reason "Superseded by other work" --notify`, + gt mq reject greenplace polecat/Nux/gp-xyz --reason "Does not meet requirements" + gt mq reject greenplace mr-Nux-12345 --reason "Superseded by other work" --notify`, Args: cobra.ExactArgs(2), RunE: runMQReject, } @@ -160,7 +160,7 @@ Shows all MR fields, current status with timestamps, dependencies, blockers, and processing history. Example: - gt mq status gt-mr-abc123`, + gt mq status gp-mr-abc123`, Args: cobra.ExactArgs(1), RunE: runMqStatus, } diff --git a/internal/cmd/nudge.go b/internal/cmd/nudge.go index 561b9cd6..70efe4d0 100644 --- a/internal/cmd/nudge.go +++ b/internal/cmd/nudge.go @@ -33,8 +33,8 @@ Special targets: deacon Maps to the Deacon session (gt-deacon) Examples: - gt nudge gastown/furiosa "Check your mail and start working" - gt nudge gastown/alpha "What's your status?" + gt nudge greenplace/furiosa "Check your mail and start working" + gt nudge greenplace/alpha "What's your status?" gt nudge deacon session-started`, Args: cobra.ExactArgs(2), RunE: runNudge, diff --git a/internal/cmd/peek.go b/internal/cmd/peek.go index cd15fc42..ca3581b8 100644 --- a/internal/cmd/peek.go +++ b/internal/cmd/peek.go @@ -29,9 +29,9 @@ The nudge/peek pair provides the canonical interface for agent sessions: gt peek - read output FROM a session (capture-pane wrapper) Examples: - gt peek gastown/furiosa # Last 100 lines (default) - gt peek gastown/furiosa 50 # Last 50 lines - gt peek gastown/furiosa -n 200 # Last 200 lines`, + gt peek greenplace/furiosa # Last 100 lines (default) + gt peek greenplace/furiosa 50 # Last 50 lines + gt peek greenplace/furiosa -n 200 # Last 200 lines`, Args: cobra.RangeArgs(1, 2), RunE: runPeek, } diff --git a/internal/cmd/polecat.go b/internal/cmd/polecat.go index 2d4f3130..77f4e580 100644 --- a/internal/cmd/polecat.go +++ b/internal/cmd/polecat.go @@ -51,9 +51,9 @@ all currently active polecats with their states: - stuck: Needs assistance Examples: - gt polecat list gastown + gt polecat list greenplace gt polecat list --all - gt polecat list gastown --json`, + gt polecat list greenplace --json`, RunE: runPolecatList, } @@ -66,7 +66,7 @@ Creates a polecat directory, clones the rig repo, creates a work branch, and initializes state. Example: - gt polecat add gastown Toast`, + gt polecat add greenplace Toast`, Args: cobra.ExactArgs(2), RunE: runPolecatAdd, } @@ -81,10 +81,10 @@ Warns if uncommitted changes exist. Use --force to bypass checks. Examples: - gt polecat remove gastown/Toast - gt polecat remove gastown/Toast gastown/Furiosa - gt polecat remove gastown --all - gt polecat remove gastown --all --force`, + gt polecat remove greenplace/Toast + gt polecat remove greenplace/Toast greenplace/Furiosa + gt polecat remove greenplace --all + gt polecat remove greenplace --all --force`, Args: cobra.MinimumNArgs(1), RunE: runPolecatRemove, } @@ -100,7 +100,7 @@ via 'gt sling'. This command is kept for backward compatibility. Transitions: done → working Example: - gt polecat wake gastown/Toast`, + gt polecat wake greenplace/Toast`, Args: cobra.ExactArgs(1), RunE: runPolecatWake, } @@ -117,7 +117,7 @@ backward compatibility. Transitions: working → done Example: - gt polecat sleep gastown/Toast`, + gt polecat sleep greenplace/Toast`, Args: cobra.ExactArgs(1), RunE: runPolecatSleep, } @@ -133,8 +133,8 @@ Clears the assigned issue. Fails if session is running (stop first). Example: - gt polecat done gastown/Toast - gt polecat finish gastown/Toast`, + gt polecat done greenplace/Toast + gt polecat finish greenplace/Toast`, Args: cobra.ExactArgs(1), RunE: runPolecatDone, } @@ -150,7 +150,7 @@ Use when polecat is stuck in an unexpected state. Fails if session is running (stop first). Example: - gt polecat reset gastown/Toast`, + gt polecat reset greenplace/Toast`, Args: cobra.ExactArgs(1), RunE: runPolecatReset, } @@ -167,9 +167,9 @@ Use --all to sync all polecats in a rig. Use --from-main to only pull (no push). Examples: - gt polecat sync gastown/Toast - gt polecat sync gastown --all - gt polecat sync gastown/Toast --from-main`, + gt polecat sync greenplace/Toast + gt polecat sync greenplace --all + gt polecat sync greenplace/Toast --from-main`, Args: cobra.MaximumNArgs(1), RunE: runPolecatSync, } @@ -187,8 +187,8 @@ Displays comprehensive information including: - Last activity time Examples: - gt polecat status gastown/Toast - gt polecat status gastown/Toast --json`, + gt polecat status greenplace/Toast + gt polecat status greenplace/Toast --json`, Args: cobra.ExactArgs(1), RunE: runPolecatStatus, } @@ -217,8 +217,8 @@ This command removes orphaned branches: - Old timestamped branches (keeps only the current one per polecat) Examples: - gt polecat gc gastown - gt polecat gc gastown --dry-run`, + gt polecat gc greenplace + gt polecat gc greenplace --dry-run`, Args: cobra.ExactArgs(1), RunE: runPolecatGC, } @@ -237,10 +237,10 @@ This is the nuclear option for post-merge cleanup. It: Use this after the Refinery has merged the polecat's work. Examples: - gt polecat nuke gastown/Toast - gt polecat nuke gastown/Toast gastown/Furiosa - gt polecat nuke gastown --all - gt polecat nuke gastown --all --dry-run`, + gt polecat nuke greenplace/Toast + gt polecat nuke greenplace/Toast greenplace/Furiosa + gt polecat nuke greenplace --all + gt polecat nuke greenplace --all --dry-run`, Args: cobra.MinimumNArgs(1), RunE: runPolecatNuke, } @@ -259,8 +259,8 @@ Checks: - Stashes: stashed changes Examples: - gt polecat git-state gastown/Toast - gt polecat git-state gastown/Toast --json`, + gt polecat git-state greenplace/Toast + gt polecat git-state greenplace/Toast --json`, Args: cobra.ExactArgs(1), RunE: runPolecatGitState, } @@ -465,7 +465,7 @@ func runPolecatRemove(cmd *cobra.Command, args []string) error { rigName := args[0] // Check if it looks like rig/polecat format if _, _, err := parseAddress(rigName); err == nil { - return fmt.Errorf("with --all, provide just the rig name (e.g., 'gt polecat remove gastown --all')") + return fmt.Errorf("with --all, provide just the rig name (e.g., 'gt polecat remove greenplace --all')") } mgr, r, err := getPolecatManager(rigName) @@ -1150,7 +1150,7 @@ func runPolecatNuke(cmd *cobra.Command, args []string) error { rigName := args[0] // Check if it looks like rig/polecat format if _, _, err := parseAddress(rigName); err == nil { - return fmt.Errorf("with --all, provide just the rig name (e.g., 'gt polecat nuke gastown --all')") + return fmt.Errorf("with --all, provide just the rig name (e.g., 'gt polecat nuke greenplace --all')") } mgr, r, err := getPolecatManager(rigName) diff --git a/internal/cmd/polecat_cycle_test.go b/internal/cmd/polecat_cycle_test.go index e87434a5..14a72aec 100644 --- a/internal/cmd/polecat_cycle_test.go +++ b/internal/cmd/polecat_cycle_test.go @@ -13,15 +13,15 @@ func TestParsePolecatSessionName(t *testing.T) { // Valid polecat sessions { name: "simple polecat", - sessionName: "gt-gastown-Toast", - wantRig: "gastown", + sessionName: "gt-greenplace-Toast", + wantRig: "greenplace", wantPolecat: "Toast", wantOk: true, }, { name: "another polecat", - sessionName: "gt-gastown-Nux", - wantRig: "gastown", + sessionName: "gt-greenplace-Nux", + wantRig: "greenplace", wantPolecat: "Nux", wantOk: true, }, @@ -34,8 +34,8 @@ func TestParsePolecatSessionName(t *testing.T) { }, { name: "polecat with hyphen in name", - sessionName: "gt-gastown-Max-01", - wantRig: "gastown", + sessionName: "gt-greenplace-Max-01", + wantRig: "greenplace", wantPolecat: "Max-01", wantOk: true, }, @@ -43,21 +43,21 @@ func TestParsePolecatSessionName(t *testing.T) { // Not polecat sessions (should return false) { name: "crew session", - sessionName: "gt-gastown-crew-jack", + sessionName: "gt-greenplace-crew-jack", wantRig: "", wantPolecat: "", wantOk: false, }, { name: "witness session", - sessionName: "gt-gastown-witness", + sessionName: "gt-greenplace-witness", wantRig: "", wantPolecat: "", wantOk: false, }, { name: "refinery session", - sessionName: "gt-gastown-refinery", + sessionName: "gt-greenplace-refinery", wantRig: "", wantPolecat: "", wantOk: false, @@ -99,7 +99,7 @@ func TestParsePolecatSessionName(t *testing.T) { }, { name: "no name after rig", - sessionName: "gt-gastown-", + sessionName: "gt-greenplace-", wantRig: "", wantPolecat: "", wantOk: false, diff --git a/internal/cmd/refinery.go b/internal/cmd/refinery.go index 8534582c..75d75043 100644 --- a/internal/cmd/refinery.go +++ b/internal/cmd/refinery.go @@ -42,8 +42,8 @@ and merges them to the appropriate target branches. If rig is not specified, infers it from the current directory. Examples: - gt refinery start gastown - gt refinery start gastown --foreground + gt refinery start greenplace + gt refinery start greenplace --foreground gt refinery start # infer rig from cwd`, Args: cobra.MaximumNArgs(1), RunE: runRefineryStart, @@ -93,7 +93,7 @@ or manual intervention. If rig is not specified, infers it from the current directory. Examples: - gt refinery attach gastown + gt refinery attach greenplace gt refinery attach # infer rig from cwd`, Args: cobra.MaximumNArgs(1), RunE: runRefineryAttach, @@ -108,7 +108,7 @@ Stops the current session (if running) and starts a fresh one. If rig is not specified, infers it from the current directory. Examples: - gt refinery restart gastown + gt refinery restart greenplace gt refinery restart # infer rig from cwd`, Args: cobra.MaximumNArgs(1), RunE: runRefineryRestart, diff --git a/internal/cmd/rig.go b/internal/cmd/rig.go index 15247217..f8b01447 100644 --- a/internal/cmd/rig.go +++ b/internal/cmd/rig.go @@ -106,7 +106,7 @@ Polecats are NOT started by this command - they are spawned on demand when work is assigned. Examples: - gt rig boot gastown`, + gt rig boot greenplace`, Args: cobra.ExactArgs(1), RunE: runRigBoot, } @@ -120,7 +120,7 @@ This is equivalent to 'gt rig shutdown' followed by 'gt rig boot'. Useful after polecats complete work and land their changes. Examples: - gt rig reboot gastown + gt rig reboot greenplace gt rig reboot beads --force`, Args: cobra.ExactArgs(1), RunE: runRigReboot, @@ -145,9 +145,9 @@ Use --force to skip graceful shutdown and kill immediately. Use --nuclear to bypass ALL safety checks (will lose work!). Examples: - gt rig shutdown gastown - gt rig shutdown gastown --force - gt rig shutdown gastown --nuclear # DANGER: loses uncommitted work`, + gt rig shutdown greenplace + gt rig shutdown greenplace --force + gt rig shutdown greenplace --nuclear # DANGER: loses uncommitted work`, Args: cobra.ExactArgs(1), RunE: runRigShutdown, } diff --git a/internal/cmd/session.go b/internal/cmd/session.go index 29878c3f..79ef57fd 100644 --- a/internal/cmd/session.go +++ b/internal/cmd/session.go @@ -120,7 +120,7 @@ This command is a low-level primitive for file-based injection or cases where you need raw tmux send-keys behavior. Examples: - gt nudge gastown/furiosa "Check your mail" # Preferred + gt nudge greenplace/furiosa "Check your mail" # Preferred gt session inject wyvern/Toast -f prompt.txt # For file injection`, Args: cobra.ExactArgs(1), RunE: runSessionInject, @@ -160,7 +160,7 @@ Use this for manual health checks or debugging session issues. Examples: gt session check # Check all rigs - gt session check gastown # Check specific rig`, + gt session check greenplace # Check specific rig`, Args: cobra.MaximumNArgs(1), RunE: runSessionCheck, } diff --git a/internal/cmd/sling.go b/internal/cmd/sling.go index dee4fd62..7079a93d 100644 --- a/internal/cmd/sling.go +++ b/internal/cmd/sling.go @@ -35,18 +35,18 @@ This is THE command for assigning work in Gas Town. It handles: Target Resolution: gt sling gt-abc # Self (current agent) gt sling gt-abc crew # Crew worker in current rig - gt sling gt-abc gastown # Auto-spawn polecat in rig - gt sling gt-abc gastown/Toast # Specific polecat + gt sling gp-abc greenplace # Auto-spawn polecat in rig + gt sling gt-abc greenplace/Toast # Specific polecat gt sling gt-abc mayor # Mayor gt sling gt-abc deacon/dogs # Auto-dispatch to idle dog gt sling gt-abc deacon/dogs/alpha # Specific dog Spawning Options (when target is a rig): - gt sling gt-abc gastown --molecule mol-review # Use specific workflow - gt sling gt-abc gastown --create # Create polecat if missing - gt sling gt-abc gastown --naked # No-tmux (manual start) - gt sling gt-abc gastown --force # Ignore unread mail - gt sling gt-abc gastown --account work # Use specific Claude account + gt sling gp-abc greenplace --molecule mol-review # Use specific workflow + gt sling gp-abc greenplace --create # Create polecat if missing + gt sling gp-abc greenplace --naked # No-tmux (manual start) + gt sling gp-abc greenplace --force # Ignore unread mail + gt sling gp-abc greenplace --account work # Use specific Claude account Natural Language Args: gt sling gt-abc --args "patch release" @@ -64,9 +64,9 @@ Formula-on-Bead (--on flag): gt sling shiny --on gt-abc crew # Apply formula, sling to crew Quality Levels (shorthand for polecat workflows): - gt sling gt-abc gastown --quality=basic # mol-polecat-basic (trivial fixes) - gt sling gt-abc gastown --quality=shiny # mol-polecat-shiny (standard) - gt sling gt-abc gastown --quality=chrome # mol-polecat-chrome (max rigor) + gt sling gp-abc greenplace --quality=basic # mol-polecat-basic (trivial fixes) + gt sling gp-abc greenplace --quality=shiny # mol-polecat-shiny (standard) + gt sling gp-abc greenplace --quality=chrome # mol-polecat-chrome (max rigor) Compare: gt hook # Just attach (no action) @@ -126,7 +126,7 @@ func runSling(cmd *cobra.Command, args []string) error { } // --quality is shorthand for formula-on-bead with polecat workflow - // Convert: gt sling gt-abc gastown --quality=shiny + // Convert: gt sling gp-abc greenplace --quality=shiny // To: gt sling mol-polecat-shiny --on gt-abc gastown if slingQuality != "" { qualityFormula, err := qualityToFormula(slingQuality) @@ -793,10 +793,10 @@ func runSlingFormula(args []string) error { func updateAgentHookBead(agentID, beadID string) { // Convert agent ID to agent bead ID // Format examples (canonical: prefix-rig-role-name): - // gastown/crew/max -> gt-gastown-crew-max - // gastown/polecats/Toast -> gt-gastown-polecat-Toast + // greenplace/crew/max -> gt-greenplace-crew-max + // greenplace/polecats/Toast -> gt-greenplace-polecat-Toast // mayor -> gt-mayor - // gastown/witness -> gt-gastown-witness + // greenplace/witness -> gt-greenplace-witness agentBeadID := agentIDToBeadID(agentID) if agentBeadID == "" { return diff --git a/internal/cmd/start.go b/internal/cmd/start.go index 74de869b..7d881cd3 100644 --- a/internal/cmd/start.go +++ b/internal/cmd/start.go @@ -89,12 +89,12 @@ var startCrewCmd = &cobra.Command{ This is a convenience command that combines 'gt crew add' and 'gt crew at --detached'. The crew session starts in the background with Claude running and ready. -The name can include the rig in slash format (e.g., gastown/joe). +The name can include the rig in slash format (e.g., greenplace/joe). If not specified, the rig is inferred from the current directory. Examples: gt start crew joe # Start joe in current rig - gt start crew gastown/joe # Start joe in gastown rig + gt start crew greenplace/joe # Start joe in gastown rig gt start crew joe --rig beads # Start joe in beads rig`, Args: cobra.ExactArgs(1), RunE: runStartCrew, @@ -660,7 +660,7 @@ func cleanupPolecats(townRoot string) { func runStartCrew(cmd *cobra.Command, args []string) error { name := args[0] - // Parse rig/name format (e.g., "gastown/joe" -> rig=gastown, name=joe) + // Parse rig/name format (e.g., "greenplace/joe" -> rig=gastown, name=joe) rigName := startCrewRig if parsedRig, crewName, ok := parseRigSlashName(name); ok { if rigName == "" { diff --git a/internal/cmd/status.go b/internal/cmd/status.go index b3634199..eb017f32 100644 --- a/internal/cmd/status.go +++ b/internal/cmd/status.go @@ -60,7 +60,7 @@ type OverseerInfo struct { // AgentRuntime represents the runtime state of an agent. type AgentRuntime struct { Name string `json:"name"` // Display name (e.g., "mayor", "witness") - Address string `json:"address"` // Full address (e.g., "gastown/witness") + Address string `json:"address"` // Full address (e.g., "greenplace/witness") Session string `json:"session"` // tmux session name Role string `json:"role"` // Role type Running bool `json:"running"` // Is tmux session running? @@ -95,7 +95,7 @@ type MQSummary struct { // AgentHookInfo represents an agent's hook (pinned work) status. type AgentHookInfo struct { - Agent string `json:"agent"` // Agent address (e.g., "gastown/toast", "gastown/witness") + Agent string `json:"agent"` // Agent address (e.g., "greenplace/toast", "greenplace/witness") Role string `json:"role"` // Role type (polecat, crew, witness, refinery) HasWork bool `json:"has_work"` // Whether agent has pinned work Molecule string `json:"molecule,omitempty"` // Attached molecule ID diff --git a/internal/cmd/swarm.go b/internal/cmd/swarm.go index 62106c1f..1b9a6be1 100644 --- a/internal/cmd/swarm.go +++ b/internal/cmd/swarm.go @@ -89,8 +89,8 @@ Creates a swarm that coordinates multiple polecats working on tasks from a beads epic. All workers branch from the same base commit. Examples: - gt swarm create gastown --epic gt-abc --worker Toast --worker Nux - gt swarm create gastown --epic gt-abc --worker Toast --start`, + gt swarm create greenplace --epic gp-abc --worker Toast --worker Nux + gt swarm create greenplace --epic gp-abc --worker Toast --start`, Args: cobra.ExactArgs(1), RunE: runSwarmCreate, } @@ -113,9 +113,9 @@ var swarmListCmd = &cobra.Command{ Examples: gt swarm list - gt swarm list gastown + gt swarm list greenplace gt swarm list --status=active - gt swarm list gastown --status=landed`, + gt swarm list greenplace --status=landed`, Args: cobra.MaximumNArgs(1), RunE: runSwarmList, } @@ -161,7 +161,7 @@ to an idle polecat in the rig. Examples: gt swarm dispatch gt-abc # Dispatch next task from epic gt-abc - gt swarm dispatch gt-abc --rig gastown # Dispatch in specific rig`, + gt swarm dispatch gt-abc --rig greenplace # Dispatch in specific rig`, Args: cobra.ExactArgs(1), RunE: runSwarmDispatch, } diff --git a/internal/cmd/unsling.go b/internal/cmd/unsling.go index a786fdd1..0491b3cc 100644 --- a/internal/cmd/unsling.go +++ b/internal/cmd/unsling.go @@ -23,8 +23,8 @@ another agent's hook. Examples: gt unsling # Clear my hook (whatever's there) gt unsling gt-abc # Only unsling if gt-abc is hooked - gt unsling gastown/joe # Clear joe's hook - gt unsling gt-abc gastown/joe # Unsling gt-abc from joe + gt unsling greenplace/joe # Clear joe's hook + gt unsling gt-abc greenplace/joe # Unsling gt-abc from joe The bead's status changes from 'pinned' back to 'open'. @@ -154,7 +154,7 @@ func runUnsling(cmd *cobra.Command, args []string) error { // isAgentTarget checks if a string looks like an agent target rather than a bead ID. // Agent targets contain "/" or are known role names. func isAgentTarget(s string) bool { - // Contains "/" means it's a path like "gastown/joe" + // Contains "/" means it's a path like "greenplace/joe" for _, c := range s { if c == '/' { return true diff --git a/internal/cmd/witness.go b/internal/cmd/witness.go index 5cc392ad..bf528c15 100644 --- a/internal/cmd/witness.go +++ b/internal/cmd/witness.go @@ -44,8 +44,8 @@ Launches the monitoring agent which watches polecats for stuck or idle states and takes action to keep work flowing. Examples: - gt witness start gastown - gt witness start gastown --foreground`, + gt witness start greenplace + gt witness start greenplace --foreground`, Args: cobra.ExactArgs(1), RunE: runWitnessStart, } @@ -83,7 +83,7 @@ If the witness is not running, this will start it first. If rig is not specified, infers it from the current directory. Examples: - gt witness attach gastown + gt witness attach greenplace gt witness attach # infer rig from cwd`, Args: cobra.MaximumNArgs(1), RunE: runWitnessAttach, @@ -97,7 +97,7 @@ var witnessRestartCmd = &cobra.Command{ Stops the current session (if running) and starts a fresh one. Examples: - gt witness restart gastown`, + gt witness restart greenplace`, Args: cobra.ExactArgs(1), RunE: runWitnessRestart, } diff --git a/internal/templates/roles/refinery.md.tmpl b/internal/templates/roles/refinery.md.tmpl index 5feaf266..4972efe3 100644 --- a/internal/templates/roles/refinery.md.tmpl +++ b/internal/templates/roles/refinery.md.tmpl @@ -115,7 +115,7 @@ git status # See what conflicted # DECISION: Can I resolve it? Is it trivial? # - If trivial: fix, git add, git rebase --continue # - If complex: git rebase --abort, notify polecat -gt mail send gastown/polecats/rictus -s "Rebase needed" -m "..." +gt mail send greenplace/polecats/rictus -s "Rebase needed" -m "..." ``` ## Patrol Molecule: mol-refinery-patrol diff --git a/internal/templates/templates.go b/internal/templates/templates.go index 13f6af0c..a98467b2 100644 --- a/internal/templates/templates.go +++ b/internal/templates/templates.go @@ -20,7 +20,7 @@ type Templates struct { // RoleData contains information for rendering role contexts. type RoleData struct { Role string // mayor, witness, refinery, polecat, crew, deacon - RigName string // e.g., "gastown" + RigName string // e.g., "greenplace" TownRoot string // e.g., "/Users/steve/ai" WorkDir string // current working directory Polecat string // polecat name (for polecat role)