From cd429fe873c3bbd95e6b66f8043f12d37f9174e2 Mon Sep 17 00:00:00 2001 From: bullet Date: Sun, 4 Jan 2026 10:38:13 -0800 Subject: [PATCH] feat(beads): Add TownBeadsPrefix constant for hq- prefix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Introduces a const TownBeadsPrefix = "hq" to centralize the town-level beads prefix. Updates all hq- string literals in agent_ids.go to use the constant, making prefix changes easier and reducing duplication. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- internal/beads/agent_ids.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/internal/beads/agent_ids.go b/internal/beads/agent_ids.go index 44a7ab96..18a14a70 100644 --- a/internal/beads/agent_ids.go +++ b/internal/beads/agent_ids.go @@ -3,6 +3,10 @@ package beads import "fmt" +// TownBeadsPrefix is the prefix used for town-level agent beads stored in ~/gt/.beads/. +// This distinguishes them from rig-level beads (which use project prefixes like "gt-"). +const TownBeadsPrefix = "hq" + // Town-level agent bead IDs use the "hq-" prefix and are stored in town beads. // These are global agents that operate at the town level (mayor, deacon, dogs). // @@ -14,26 +18,26 @@ import "fmt" // MayorBeadIDTown returns the Mayor agent bead ID for town-level beads. // This uses the "hq-" prefix for town-level storage. func MayorBeadIDTown() string { - return "hq-mayor" + return TownBeadsPrefix + "-mayor" } // DeaconBeadIDTown returns the Deacon agent bead ID for town-level beads. // This uses the "hq-" prefix for town-level storage. func DeaconBeadIDTown() string { - return "hq-deacon" + return TownBeadsPrefix + "-deacon" } // DogBeadIDTown returns a Dog agent bead ID for town-level beads. // Dogs are town-level agents, so they follow the pattern: hq-dog- func DogBeadIDTown(name string) string { - return fmt.Sprintf("hq-dog-%s", name) + return fmt.Sprintf("%s-dog-%s", TownBeadsPrefix, name) } // RoleBeadIDTown returns the role bead ID for town-level storage. // Role beads define lifecycle configuration for each agent type. // Uses "hq-" prefix for town-level storage: hq--role func RoleBeadIDTown(role string) string { - return fmt.Sprintf("hq-%s-role", role) + return fmt.Sprintf("%s-%s-role", TownBeadsPrefix, role) } // MayorRoleBeadIDTown returns the Mayor role bead ID for town-level storage.