From 74e397fadbd4ad0ab79fa28b60a5f8bfb96845b1 Mon Sep 17 00:00:00 2001 From: Steve Yegge Date: Sun, 21 Dec 2025 00:35:30 -0800 Subject: [PATCH] feat(prime): add check-in announcements for all agent roles MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Extend the startup protocol to have all roles announce themselves: - Mayor: "Mayor, checking in." (already present) - Witness: "Witness, checking in." - Polecat: "Polecat , checking in." - Refinery: "Refinery, checking in." - Crew: "Crew , checking in." (new case added) This provides consistent startup behavior across all Gas Town agents. 🤝 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- internal/cmd/prime.go | 36 ++++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/internal/cmd/prime.go b/internal/cmd/prime.go index 8aa0d89c..d693fa03 100644 --- a/internal/cmd/prime.go +++ b/internal/cmd/prime.go @@ -406,28 +406,40 @@ func outputStartupDirective(ctx RoleContext) { fmt.Println("---") fmt.Println() fmt.Println("**STARTUP PROTOCOL**: You are the Witness. Please:") - fmt.Println("1. Check for handoff: `gt mail inbox` - look for 🤝 HANDOFF messages") - fmt.Println("2. Check polecat status: `gt polecat list " + ctx.Rig + " --json`") - fmt.Println("3. Process any lifecycle requests from inbox") - fmt.Println("4. If polecats stuck/idle, nudge them") - fmt.Println("5. If all quiet, wait for activity") + fmt.Println("1. Announce: \"Witness, checking in.\"") + fmt.Println("2. Check for handoff: `gt mail inbox` - look for 🤝 HANDOFF messages") + fmt.Println("3. Check polecat status: `gt polecat list " + ctx.Rig + " --json`") + fmt.Println("4. Process any lifecycle requests from inbox") + fmt.Println("5. If polecats stuck/idle, nudge them") + fmt.Println("6. If all quiet, wait for activity") case RolePolecat: fmt.Println() fmt.Println("---") fmt.Println() fmt.Println("**STARTUP PROTOCOL**: You are a polecat. Please:") - fmt.Println("1. Check mail: `gt mail inbox`") - fmt.Println("2. If assigned work, begin immediately") - fmt.Println("3. If no work, announce ready and await assignment") + fmt.Printf("1. Announce: \"Polecat %s, checking in.\"\n", ctx.Polecat) + fmt.Println("2. Check mail: `gt mail inbox`") + fmt.Println("3. If assigned work, begin immediately") + fmt.Println("4. If no work, announce ready and await assignment") case RoleRefinery: fmt.Println() fmt.Println("---") fmt.Println() fmt.Println("**STARTUP PROTOCOL**: You are the Refinery. Please:") - fmt.Println("1. Check mail: `gt mail inbox`") - fmt.Printf("2. Check merge queue: `gt refinery queue %s`\n", ctx.Rig) - fmt.Println("3. If MRs pending, process them one at a time") - fmt.Println("4. If no work, monitor for new MRs periodically") + fmt.Println("1. Announce: \"Refinery, checking in.\"") + fmt.Println("2. Check mail: `gt mail inbox`") + fmt.Printf("3. Check merge queue: `gt refinery queue %s`\n", ctx.Rig) + fmt.Println("4. If MRs pending, process them one at a time") + fmt.Println("5. If no work, monitor for new MRs periodically") + case RoleCrew: + fmt.Println() + fmt.Println("---") + fmt.Println() + fmt.Println("**STARTUP PROTOCOL**: You are a crew worker. Please:") + fmt.Printf("1. Announce: \"Crew %s, checking in.\"\n", ctx.Polecat) + fmt.Println("2. Check mail: `gt mail inbox`") + fmt.Println("3. If there's a 🤝 HANDOFF message, read it and continue the work") + fmt.Println("4. If no mail, await user instruction") } }