Unify startup protocols: all roles use 'gt mol status' + RUN IT pattern

- Mayor/Crew: mol attached → RUN IT, else await instruction
- Witness/Refinery/Deacon: mol attached → RUN IT, else spawn patrol
- Polecat: mol attached → RUN IT, else ERROR (polecats must have work)
This commit is contained in:
Steve Yegge
2025-12-23 01:05:48 -08:00
parent a3f2ceba5b
commit 37c2382767

View File

@@ -414,20 +414,20 @@ func outputStartupDirective(ctx RoleContext) {
fmt.Println()
fmt.Println("**STARTUP PROTOCOL**: You are the Mayor. Please:")
fmt.Println("1. Announce: \"Mayor, checking in.\"")
fmt.Println("2. Check mail: `gt mail inbox`")
fmt.Println("3. If there's a 🤝 HANDOFF message, read it and summarize")
fmt.Println("4. If no mail, await user instruction")
fmt.Println("2. Check mail: `gt mail inbox` - look for 🤝 HANDOFF messages")
fmt.Println("3. Check for attached work: `gt mol status`")
fmt.Println(" - If mol attached → **RUN IT** (no human input needed)")
fmt.Println(" - If no mol → await user instruction")
case RoleWitness:
fmt.Println()
fmt.Println("---")
fmt.Println()
fmt.Println("**STARTUP PROTOCOL**: You are the Witness. Please:")
fmt.Println("1. Announce: \"Witness, checking in.\"")
fmt.Println("2. Check for handoff: `gt mail inbox` - look for 🤝 HANDOFF messages")
fmt.Println("3. Check polecat status: `gt polecat list " + ctx.Rig + " --json`")
fmt.Println("4. Process any lifecycle requests from inbox")
fmt.Println("5. If polecats stuck/idle, nudge them")
fmt.Println("6. If all quiet, wait for activity")
fmt.Println("2. Check mail: `gt mail inbox` - look for 🤝 HANDOFF messages")
fmt.Println("3. Check for attached patrol: `gt mol status`")
fmt.Println(" - If mol attached → **RUN IT** (resume from current step)")
fmt.Println(" - If no mol → spawn patrol: `bd mol spawn mol-witness-patrol`")
case RolePolecat:
fmt.Println()
fmt.Println("---")
@@ -435,18 +435,20 @@ func outputStartupDirective(ctx RoleContext) {
fmt.Println("**STARTUP PROTOCOL**: You are a polecat. Please:")
fmt.Printf("1. Announce: \"%s Polecat %s, checking in.\"\n", ctx.Rig, ctx.Polecat)
fmt.Println("2. Check mail: `gt mail inbox`")
fmt.Println("3. If assigned work, begin immediately")
fmt.Println("4. If no work, announce ready and await assignment")
fmt.Println("3. If there's a 🤝 HANDOFF message, read it for context")
fmt.Println("4. Check for attached work: `gt mol status`")
fmt.Println(" - If mol attached → **RUN IT** (you were spawned with this work)")
fmt.Println(" - If no mol → ERROR: polecats must have work attached; escalate to Witness")
case RoleRefinery:
fmt.Println()
fmt.Println("---")
fmt.Println()
fmt.Println("**STARTUP PROTOCOL**: You are the Refinery. Please:")
fmt.Println("1. Announce: \"Refinery, checking in.\"")
fmt.Println("2. Check mail: `gt mail inbox`")
fmt.Printf("3. Check merge queue: `gt refinery queue %s`\n", ctx.Rig)
fmt.Println("4. If MRs pending, process them one at a time")
fmt.Println("5. If no work, monitor for new MRs periodically")
fmt.Println("2. Check mail: `gt mail inbox` - look for 🤝 HANDOFF messages")
fmt.Println("3. Check for attached patrol: `gt mol status`")
fmt.Println(" - If mol attached → **RUN IT** (resume from current step)")
fmt.Println(" - If no mol → spawn patrol: `bd mol spawn mol-refinery-patrol`")
case RoleCrew:
fmt.Println()
fmt.Println("---")
@@ -465,13 +467,10 @@ func outputStartupDirective(ctx RoleContext) {
fmt.Println("**STARTUP PROTOCOL**: You are the Deacon. Please:")
fmt.Println("1. Announce: \"Deacon, checking in.\"")
fmt.Println("2. Signal awake: `gt deacon heartbeat \"starting patrol\"`")
fmt.Println("3. cd to rig: `cd gastown/mayor/rig`")
fmt.Println("4. Check Patrol Status above - if attached, resume from current step")
fmt.Println("5. If naked, start wisp patrol:")
fmt.Println(" - Find proto ID: `bd mol list` (look for mol-deacon-patrol)")
fmt.Println(" - Spawn: `bd --no-daemon mol spawn <proto-id>`")
fmt.Println("6. Execute patrol steps until loop-or-exit")
fmt.Println("7. At cycle end: `bd --no-daemon mol squash <mol-id> --summary \"<cycle summary>\"`")
fmt.Println("3. Check mail: `gt mail inbox` - look for 🤝 HANDOFF messages")
fmt.Println("4. Check for attached patrol: `gt mol status`")
fmt.Println(" - If mol attached → **RUN IT** (resume from current step)")
fmt.Println(" - If no mol → spawn patrol: `bd mol spawn mol-deacon-patrol`")
}
}