Centralize role emojis: Witness 👁→🦉, Deacon 🦉🐺

Added centralized emoji constants in internal/constants/constants.go
for easy customization. Updated all files that hardcoded role emojis
to use the new constants.

Changes:
- Witness emoji: 👁 (eye) → 🦉 (owl) - less creepy, matches visual identity
- Deacon emoji: 🦉 (owl) → 🐺 (wolf) - matches hierarchy prompt (wolf in engine room)
- Added RoleEmoji() helper function for string-based lookups
- Maintained backwards compatibility with legacy role names

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
gastown/crew/joe
2026-01-01 11:10:44 -08:00
committed by Steve Yegge
parent 1e53cd78a6
commit 721b4ec1dd
7 changed files with 87 additions and 32 deletions
+42
View File
@@ -125,6 +125,48 @@ const (
RoleDeacon = "deacon"
)
// Role emojis - centralized for easy customization.
// These match the Gas Town visual identity (see ~/Desktop/Gas Town/ prompts).
const (
// EmojiMayor is the mayor emoji (fox conductor).
EmojiMayor = "🎩"
// EmojiDeacon is the deacon emoji (wolf in the engine room).
EmojiDeacon = "🐺"
// EmojiWitness is the witness emoji (watchful owl).
EmojiWitness = "🦉"
// EmojiRefinery is the refinery emoji (industrial).
EmojiRefinery = "🏭"
// EmojiCrew is the crew emoji (established worker).
EmojiCrew = "👷"
// EmojiPolecat is the polecat emoji (transient worker).
EmojiPolecat = "😺"
)
// RoleEmoji returns the emoji for a given role name.
func RoleEmoji(role string) string {
switch role {
case RoleMayor:
return EmojiMayor
case RoleDeacon:
return EmojiDeacon
case RoleWitness:
return EmojiWitness
case RoleRefinery:
return EmojiRefinery
case RoleCrew:
return EmojiCrew
case RolePolecat:
return EmojiPolecat
default:
return "❓"
}
}
// SupportedShells lists shell binaries that Gas Town can detect and work with.
// Used to identify if a tmux pane is at a shell prompt vs running a command.
var SupportedShells = []string{"bash", "zsh", "sh", "fish", "tcsh", "ksh"}