feat(session): Add GUPP to non-polecat roles (Mayor, Deacon, Witness, Refinery)

GUPP (Gas Town Universal Propulsion Principle) is the propulsion nudge sent
after beacon to trigger autonomous work execution. Previously only polecats
received this nudge.

Now all roles get role-specific propulsion nudges on startup:
- Polecat/Crew: "Run `gt hook` to check your hook and begin work."
- Witness: "Run `gt prime` to check patrol status and begin work."
- Refinery: "Run `gt prime` to check MQ status and begin patrol."
- Deacon: "Run `gt prime` to check patrol status and begin heartbeat cycle."
- Mayor: "Run `gt prime` to check mail and begin coordination."

Changes:
- internal/session/names.go: Add PropulsionNudgeForRole() function
- internal/cmd/witness.go: Add GUPP nudge to ensureWitnessSession
- internal/cmd/start.go: Add GUPP nudge to ensureRefinerySession (also
  converted from respawn loop to direct Claude launch like other roles)
- internal/cmd/deacon.go: Add GUPP nudge to startDeaconSession
- internal/cmd/mayor.go: Add GUPP nudge to startMayorSession

Fixes: gt-zzpmt

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
valkyrie
2026-01-01 18:46:07 -08:00
committed by Steve Yegge
parent ee1d6c12ab
commit 65c34efd4e
5 changed files with 63 additions and 4 deletions

View File

@@ -43,3 +43,26 @@ func PolecatSessionName(rig, name string) string {
func PropulsionNudge() string {
return "Run `gt hook` to check your hook and begin work."
}
// PropulsionNudgeForRole generates a role-specific GUPP nudge.
// Different roles have different startup flows:
// - polecat/crew: Check hook for slung work
// - witness/refinery: Start patrol cycle
// - deacon: Start heartbeat patrol
// - mayor: Check mail for coordination work
func PropulsionNudgeForRole(role string) string {
switch role {
case "polecat", "crew":
return PropulsionNudge()
case "witness":
return "Run `gt prime` to check patrol status and begin work."
case "refinery":
return "Run `gt prime` to check MQ status and begin patrol."
case "deacon":
return "Run `gt prime` to check patrol status and begin heartbeat cycle."
case "mayor":
return "Run `gt prime` to check mail and begin coordination."
default:
return PropulsionNudge()
}
}