feat: Standardize agent bead naming to prefix-rig-role-name (gt-zvte2)

Implements canonical naming convention for agent bead IDs:
- Town-level: gt-mayor, gt-deacon (unchanged)
- Rig-level: gt-<rig>-witness, gt-<rig>-refinery (was gt-witness-<rig>)
- Named: gt-<rig>-crew-<name>, gt-<rig>-polecat-<name> (was gt-crew-<rig>-<name>)

Changes:
- Added AgentBeadID helper functions to internal/beads/beads.go
- Updated all ID generation call sites to use helpers
- Fixed session parsing in theme.go, statusline.go, agents.go
- Updated doctor check and fix to use canonical format
- Updated tests for new format

🤖 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-29 14:54:30 -08:00
parent 1b20e1bd2c
commit c92b11d1bd
17 changed files with 230 additions and 139 deletions

View File

@@ -135,9 +135,9 @@ func runThemeApply(cmd *cobra.Command, args []string) error {
theme = tmux.DeaconTheme()
worker = "Deacon"
role = "health-check"
} else if strings.HasPrefix(session, "gt-witness-") {
// Witness sessions: gt-witness-<rig>
rig = strings.TrimPrefix(session, "gt-witness-")
} else if strings.HasSuffix(session, "-witness") && strings.HasPrefix(session, "gt-") {
// Witness sessions: gt-<rig>-witness
rig = strings.TrimPrefix(strings.TrimSuffix(session, "-witness"), "gt-")
theme = getThemeForRole(rig, "witness")
worker = "witness"
role = "witness"