fix(prime): update sling prompts to use gt prime --hook

Polecats weren't getting full role context (including IDLE POLECAT
HERESY guidance) because start prompts said `gt hook` instead of
`gt prime --hook`. The SessionStart hook already runs `gt prime --hook`,
but manual nudge messages were inconsistent.

Changed:
- sling_helpers.go: nudge message now says `gt prime --hook`
- startup.go: assigned beacon now says `gt prime --hook`
- startup_test.go: updated test expectation

Fixes: hq-iqyu9

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
splendid
2026-01-26 12:53:26 -08:00
committed by John Ogle
parent 9d87f01823
commit 2a789c8440
3 changed files with 9 additions and 7 deletions

View File

@@ -319,7 +319,7 @@ func injectStartPrompt(pane, beadID, subject, args string) error {
} else if subject != "" {
prompt = fmt.Sprintf("Work slung: %s (%s). Start working on it now - no questions, just begin.", beadID, subject)
} else {
prompt = fmt.Sprintf("Work slung: %s. Start working on it now - run `gt hook` to see the hook, then begin.", beadID)
prompt = fmt.Sprintf("Work slung: %s. Start working on it now - run `gt prime --hook` to load context, then begin.", beadID)
}
// Use the reliable nudge pattern (same as gt nudge / tmux.NudgeSession)

View File

@@ -66,8 +66,10 @@ func FormatStartupBeacon(cfg BeaconConfig) string {
// For assigned, work is already on the hook - just tell them to run it
// This prevents the "helpful assistant" exploration pattern (see PRIMING.md)
// Use `gt prime --hook` instead of `gt hook` so polecats get full role context
// including THE IDLE POLECAT HERESY guidance about running `gt done`.
if cfg.Topic == "assigned" {
beacon += "\n\nWork is on your hook. Run `gt hook` now and begin immediately."
beacon += "\n\nWork is on your hook. Run `gt prime --hook` now and begin immediately."
}
// For start/restart, add fallback instructions in case SessionStart hook fails

View File

@@ -7,10 +7,10 @@ import (
func TestFormatStartupBeacon(t *testing.T) {
tests := []struct {
name string
cfg BeaconConfig
wantSub []string // substrings that must appear
wantNot []string // substrings that must NOT appear
name string
cfg BeaconConfig
wantSub []string // substrings that must appear
wantNot []string // substrings that must NOT appear
}{
{
name: "assigned with mol-id",
@@ -26,7 +26,7 @@ func TestFormatStartupBeacon(t *testing.T) {
"<- deacon",
"assigned:gt-abc12",
"Work is on your hook", // assigned includes actionable instructions
"gt hook",
"gt prime --hook", // full context including IDLE POLECAT HERESY
},
},
{