feat(prime): add check-in announcements for all agent roles

Extend the startup protocol to have all roles announce themselves:
- Mayor: "Mayor, checking in." (already present)
- Witness: "Witness, checking in."
- Polecat: "Polecat <name>, checking in."
- Refinery: "Refinery, checking in."
- Crew: "Crew <name>, 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 <noreply@anthropic.com>
This commit is contained in:
Steve Yegge
2025-12-21 00:35:30 -08:00
parent 4073638fa1
commit 74e397fadb

View File

@@ -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")
}
}