From df20acf7820042ad151ac0a6045517a8cad29a43 Mon Sep 17 00:00:00 2001 From: Steve Yegge Date: Fri, 19 Dec 2025 23:22:27 -0800 Subject: [PATCH] feat(spawn): Add handoff protocol to spawn priming (gt-8os8) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Updated buildWorkAssignmentMail with handoff protocol section - Added gt done command for polecats to signal completion - Handoff protocol includes checklist: git clean, issue closed, beads synced, code pushed - gt done verifies pre-flight checks before sending completion notification to Witness 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- internal/cmd/spawn.go | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/internal/cmd/spawn.go b/internal/cmd/spawn.go index 1d4390b3..8c0d43be 100644 --- a/internal/cmd/spawn.go +++ b/internal/cmd/spawn.go @@ -535,11 +535,11 @@ func buildSpawnContext(issue *BeadsIssue, message string) string { sb.WriteString("\n## Workflow\n") sb.WriteString("1. Run `gt prime` to load polecat context\n") sb.WriteString("2. Run `bd sync --from-main` to get fresh beads\n") - sb.WriteString("3. Work on your task, commit changes\n") + sb.WriteString("3. Work on your task, commit changes regularly\n") sb.WriteString("4. Run `bd close ` when done\n") sb.WriteString("5. Run `bd sync` to push beads changes\n") sb.WriteString("6. Push code: `git push origin HEAD`\n") - sb.WriteString("7. Signal DONE with summary\n") + sb.WriteString("7. Run `gt done` to signal completion\n") return sb.String() } @@ -573,11 +573,18 @@ func buildWorkAssignmentMail(issue *BeadsIssue, message, polecatAddress string) body.WriteString("\n## Workflow\n") body.WriteString("1. Run `gt prime` to load polecat context\n") body.WriteString("2. Run `bd sync --from-main` to get fresh beads\n") - body.WriteString("3. Work on your task, commit changes\n") + body.WriteString("3. Work on your task, commit changes regularly\n") body.WriteString("4. Run `bd close ` when done\n") body.WriteString("5. Run `bd sync` to push beads changes\n") body.WriteString("6. Push code: `git push origin HEAD`\n") - body.WriteString("7. Signal DONE with summary\n") + body.WriteString("7. Run `gt done` to signal completion\n") + body.WriteString("\n## Handoff Protocol\n") + body.WriteString("Before signaling done, ensure:\n") + body.WriteString("- Git status is clean (no uncommitted changes)\n") + body.WriteString("- Issue is closed with `bd close`\n") + body.WriteString("- Beads are synced with `bd sync`\n") + body.WriteString("- Code is pushed to origin\n") + body.WriteString("\nThe `gt done` command verifies these and signals the Witness.\n") return &mail.Message{ From: "mayor/",