feat(spawn): Replace tmux injection with persistent mail-based work assignment (ga-yp3)
- gt spawn now sends work assignment to polecat inbox instead of tmux injection - Add --identity flag to gt mail inbox and gt mail check - Add --force flag to gt spawn to override existing unread mail - Update polecat template with startup protocol for reading inbox - Fix pre-existing lint issue in start.go The new flow is more reliable: 1. Spawn sends work assignment mail to polecat inbox 2. Polecat starts and runs gt prime 3. gt prime automatically runs gt mail check --inject 4. Polecat reads work assignment from inbox Benefits: - Persistence across session restarts - No racing against Claude initialization - Audit trail in beads - Edge case handling for existing unread mail 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -284,12 +284,14 @@ func outputPolecatContext(ctx RoleContext) {
|
||||
fmt.Printf("%s\n\n", style.Bold.Render("# Polecat Context"))
|
||||
fmt.Printf("You are polecat **%s** in rig: %s\n\n",
|
||||
style.Bold.Render(ctx.Polecat), style.Bold.Render(ctx.Rig))
|
||||
fmt.Println("## Responsibilities")
|
||||
fmt.Println("- Work on assigned issues")
|
||||
fmt.Println("- Commit work to your branch")
|
||||
fmt.Println("- Signal completion for merge queue")
|
||||
fmt.Println("## Startup Protocol")
|
||||
fmt.Println("1. Run `gt prime` - loads context and checks mail automatically")
|
||||
fmt.Println("2. Check inbox - if mail shown, read with `gt mail read <id>`")
|
||||
fmt.Println("3. Look for '📋 Work Assignment' messages for your task")
|
||||
fmt.Println("4. If no mail, check `bd list --status=in_progress` for existing work")
|
||||
fmt.Println()
|
||||
fmt.Println("## Key Commands")
|
||||
fmt.Println("- `gt mail inbox` - Check your inbox for work assignments")
|
||||
fmt.Println("- `bd show <issue>` - View your assigned issue")
|
||||
fmt.Println("- `bd close <issue>` - Mark issue complete")
|
||||
fmt.Println("- `gt done` - Signal work ready for merge")
|
||||
|
||||
Reference in New Issue
Block a user