Update all prompts to use gt hook instead of gt mol status

- Role templates (crew, polecat, mayor, deacon, witness, refinery)
- prime.go startup protocol messages
- Documentation (propulsion, reference, molecules, wisp architecture)
- Session hints and sling prompts
- Formula template instructions
- CLAUDE.md

The hook is the user-facing concept, molecules are implementation details.
Agents should use `gt hook` to check what work is assigned to them.

🤖 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/max
2025-12-30 22:09:58 -08:00
committed by Steve Yegge
parent 23ee6efd41
commit b4a7b930e5
24 changed files with 49 additions and 49 deletions
@@ -46,7 +46,7 @@ Load the convoy bead and verify it's ready for archival.
**1. Check your assignment:** **1. Check your assignment:**
```bash ```bash
gt mol status # Shows hook_bead = convoy ID gt hook # Shows hook_bead = convoy ID
bd show {{convoy}} # Full convoy details bd show {{convoy}} # Full convoy details
``` ```
@@ -44,7 +44,7 @@ Load the closed issue and identify cross-rig dependents.
**1. Check your assignment:** **1. Check your assignment:**
```bash ```bash
gt mol status # Shows hook_bead = resolved issue ID gt hook # Shows hook_bead = resolved issue ID
bd show {{resolved_issue}} # Full issue details bd show {{resolved_issue}} # Full issue details
``` ```
@@ -47,7 +47,7 @@ Establish the time range for this digest.
**1. Check assignment:** **1. Check assignment:**
```bash ```bash
gt mol status # Shows period type gt hook # Shows period type
``` ```
**2. Calculate time range:** **2. Calculate time range:**
+1 -1
View File
@@ -48,7 +48,7 @@ Establish what to scan for orphans.
**1. Check assignment:** **1. Check assignment:**
```bash ```bash
gt mol status # Shows scope in hook_bead gt hook # Shows scope in hook_bead
``` ```
**2. Resolve scope:** **2. Resolve scope:**
@@ -49,7 +49,7 @@ bd prime # Load beads context
**2. Check your hook:** **2. Check your hook:**
```bash ```bash
gt mol status # Shows your pinned molecule and hook_bead gt hook # Shows your pinned molecule and hook_bead
``` ```
The hook_bead is your assigned issue. Read it carefully: The hook_bead is your assigned issue. Read it carefully:
+1 -1
View File
@@ -47,7 +47,7 @@ Establish GC aggressiveness level.
**1. Check assignment:** **1. Check assignment:**
```bash ```bash
gt mol status # Shows mode in hook_bead gt hook # Shows mode in hook_bead
``` ```
**2. Mode definitions:** **2. Mode definitions:**
+1 -1
View File
@@ -117,7 +117,7 @@ bd mol current # Where am I in the current molecule?
```bash ```bash
# Hook management # Hook management
gt mol status # What's on MY hook gt hook # What's on MY hook
gt mol current # What should I work on next gt mol current # What should I work on next
gt mol progress <id> # Execution progress of molecule gt mol progress <id> # Execution progress of molecule
gt mol attach <bead> <mol> # Pin molecule to bead gt mol attach <bead> <mol> # Pin molecule to bead
+3 -3
View File
@@ -23,7 +23,7 @@ Patrol agents (Witness, Refinery, Deacon) use **wisps** to prevent accumulation.
```bash ```bash
# 1. Check current status # 1. Check current status
gt mol status gt hook
# 2. Find next step # 2. Find next step
bd ready --parent=gt-abc bd ready --parent=gt-abc
@@ -122,7 +122,7 @@ bd mol burn gt-abc
### Checking Your Hook ### Checking Your Hook
```bash ```bash
gt mol status gt hook
``` ```
Shows what molecule is pinned to your current agent and the associated bead. Shows what molecule is pinned to your current agent and the associated bead.
@@ -150,7 +150,7 @@ gt done
``` ```
1. Spawn with work on hook 1. Spawn with work on hook
2. gt mol status # What's hooked? 2. gt hook # What's hooked?
3. bd mol current # Where am I? 3. bd mol current # Where am I?
4. Execute current step 4. Execute current step
5. bd close <step> --continue 5. bd close <step> --continue
+4 -4
View File
@@ -17,7 +17,7 @@ depends on one thing: when an agent finds work on their hook, they EXECUTE.
When you were spawned, work was hooked for you. The system trusts that: When you were spawned, work was hooked for you. The system trusts that:
1. You will find it on your hook 1. You will find it on your hook
2. You will understand what it is (`bd show` / `gt mol status`) 2. You will understand what it is (`bd show` / `gt hook`)
3. You will BEGIN IMMEDIATELY 3. You will BEGIN IMMEDIATELY
This isn't about being a good worker. This is physics. Steam engines don't This isn't about being a good worker. This is physics. Steam engines don't
@@ -31,7 +31,7 @@ memorize steps or wait for instructions - discover them:
### Orientation Commands ### Orientation Commands
```bash ```bash
gt mol status # What's on my hook? gt hook # What's on my hook?
bd mol current # Where am I in the molecule? bd mol current # Where am I in the molecule?
bd ready # What step is next? bd ready # What step is next?
bd show <step-id> # What does this step require? bd show <step-id> # What does this step require?
@@ -62,7 +62,7 @@ One command. Auto-advance. Momentum preserved.
### The Propulsion Loop ### The Propulsion Loop
``` ```
1. gt mol status # What's hooked? 1. gt hook # What's hooked?
2. bd mol current # Where am I? 2. bd mol current # Where am I?
3. Execute step 3. Execute step
4. bd close <step> --continue # Close and advance 4. bd close <step> --continue # Close and advance
@@ -82,7 +82,7 @@ Polecat restarts with work on hook
## Startup Behavior ## Startup Behavior
1. Check hook (`gt mol status`) 1. Check hook (`gt hook`)
2. Work hooked → EXECUTE immediately 2. Work hooked → EXECUTE immediately
3. Hook empty → Check mail for attached work 3. Hook empty → Check mail for attached work
4. Nothing anywhere → ERROR: escalate to Witness 4. Nothing anywhere → ERROR: escalate to Witness
+1 -1
View File
@@ -145,7 +145,7 @@ bd mol burn <id> # Discard wisp (explicit ID)
```bash ```bash
# Hook management (operates on current agent's hook) # Hook management (operates on current agent's hook)
gt mol status # What's on MY hook gt hook # What's on MY hook
gt mol current # What should I work on next gt mol current # What should I work on next
gt mol progress <id> # Execution progress of molecule gt mol progress <id> # Execution progress of molecule
gt mol attach <bead> <mol> # Pin molecule to bead gt mol attach <bead> <mol> # Pin molecule to bead
+1 -1
View File
@@ -194,7 +194,7 @@ func runHook(cmd *cobra.Command, args []string) error {
fmt.Printf("%s Work attached to hook (pinned bead)\n", style.Bold.Render("✓")) fmt.Printf("%s Work attached to hook (pinned bead)\n", style.Bold.Render("✓"))
fmt.Printf(" Use 'gt handoff' to restart with this work\n") fmt.Printf(" Use 'gt handoff' to restart with this work\n")
fmt.Printf(" Use 'gt mol status' to see hook status\n") fmt.Printf(" Use 'gt hook' to see hook status\n")
// Log hook event to activity feed // Log hook event to activity feed
_ = events.LogFeed(events.TypeHook, agentID, events.HookPayload(beadID)) _ = events.LogFeed(events.TypeHook, agentID, events.HookPayload(beadID))
+1 -1
View File
@@ -123,7 +123,7 @@ func runMoleculeAttachFromMail(cmd *cobra.Command, args []string) error {
if attachment != nil && attachment.AttachedAt != "" { if attachment != nil && attachment.AttachedAt != "" {
fmt.Printf(" Attached at: %s\n", attachment.AttachedAt) fmt.Printf(" Attached at: %s\n", attachment.AttachedAt)
} }
fmt.Printf("\n%s Run 'gt mol status' to see progress\n", style.Dim.Render("Hint:")) fmt.Printf("\n%s Run 'gt hook' to see progress\n", style.Dim.Render("Hint:"))
return nil return nil
} }
+6 -6
View File
@@ -465,7 +465,7 @@ func outputStartupDirective(ctx RoleContext) {
fmt.Println("**STARTUP PROTOCOL**: You are the Mayor. Please:") fmt.Println("**STARTUP PROTOCOL**: You are the Mayor. Please:")
fmt.Println("1. Announce: \"Mayor, checking in.\"") fmt.Println("1. Announce: \"Mayor, checking in.\"")
fmt.Println("2. Check mail: `gt mail inbox` - look for 🤝 HANDOFF messages") fmt.Println("2. Check mail: `gt mail inbox` - look for 🤝 HANDOFF messages")
fmt.Println("3. Check for attached work: `gt mol status`") fmt.Println("3. Check for attached work: `gt hook`")
fmt.Println(" - If mol attached → **RUN IT** (no human input needed)") fmt.Println(" - If mol attached → **RUN IT** (no human input needed)")
fmt.Println(" - If no mol → await user instruction") fmt.Println(" - If no mol → await user instruction")
case RoleWitness: case RoleWitness:
@@ -475,7 +475,7 @@ func outputStartupDirective(ctx RoleContext) {
fmt.Println("**STARTUP PROTOCOL**: You are the Witness. Please:") fmt.Println("**STARTUP PROTOCOL**: You are the Witness. Please:")
fmt.Println("1. Announce: \"Witness, checking in.\"") fmt.Println("1. Announce: \"Witness, checking in.\"")
fmt.Println("2. Check mail: `gt mail inbox` - look for 🤝 HANDOFF messages") fmt.Println("2. Check mail: `gt mail inbox` - look for 🤝 HANDOFF messages")
fmt.Println("3. Check for attached patrol: `gt mol status`") fmt.Println("3. Check for attached patrol: `gt hook`")
fmt.Println(" - If mol attached → **RUN IT** (resume from current step)") fmt.Println(" - If mol attached → **RUN IT** (resume from current step)")
fmt.Println(" - If no mol → create patrol: `bd mol wisp mol-witness-patrol`") fmt.Println(" - If no mol → create patrol: `bd mol wisp mol-witness-patrol`")
case RolePolecat: case RolePolecat:
@@ -486,7 +486,7 @@ func outputStartupDirective(ctx RoleContext) {
fmt.Printf("1. Announce: \"%s Polecat %s, checking in.\"\n", ctx.Rig, ctx.Polecat) fmt.Printf("1. Announce: \"%s Polecat %s, checking in.\"\n", ctx.Rig, ctx.Polecat)
fmt.Println("2. Check mail: `gt mail inbox`") fmt.Println("2. Check mail: `gt mail inbox`")
fmt.Println("3. If there's a 🤝 HANDOFF message, read it for context") 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("4. Check for attached work: `gt hook`")
fmt.Println(" - If mol attached → **RUN IT** (you were spawned with this work)") 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") fmt.Println(" - If no mol → ERROR: polecats must have work attached; escalate to Witness")
case RoleRefinery: case RoleRefinery:
@@ -496,7 +496,7 @@ func outputStartupDirective(ctx RoleContext) {
fmt.Println("**STARTUP PROTOCOL**: You are the Refinery. Please:") fmt.Println("**STARTUP PROTOCOL**: You are the Refinery. Please:")
fmt.Println("1. Announce: \"Refinery, checking in.\"") fmt.Println("1. Announce: \"Refinery, checking in.\"")
fmt.Println("2. Check mail: `gt mail inbox` - look for 🤝 HANDOFF messages") fmt.Println("2. Check mail: `gt mail inbox` - look for 🤝 HANDOFF messages")
fmt.Println("3. Check for attached patrol: `gt mol status`") fmt.Println("3. Check for attached patrol: `gt hook`")
fmt.Println(" - If mol attached → **RUN IT** (resume from current step)") fmt.Println(" - If mol attached → **RUN IT** (resume from current step)")
fmt.Println(" - If no mol → create patrol: `bd mol wisp mol-refinery-patrol`") fmt.Println(" - If no mol → create patrol: `bd mol wisp mol-refinery-patrol`")
case RoleCrew: case RoleCrew:
@@ -507,7 +507,7 @@ func outputStartupDirective(ctx RoleContext) {
fmt.Printf("1. Announce: \"%s Crew %s, checking in.\"\n", ctx.Rig, ctx.Polecat) fmt.Printf("1. Announce: \"%s Crew %s, checking in.\"\n", ctx.Rig, ctx.Polecat)
fmt.Println("2. Check mail: `gt mail inbox`") fmt.Println("2. Check mail: `gt mail inbox`")
fmt.Println("3. If there's a 🤝 HANDOFF message, read it and continue the work") fmt.Println("3. If there's a 🤝 HANDOFF message, read it and continue the work")
fmt.Println("4. Check for attached work: `gt mol status`") fmt.Println("4. Check for attached work: `gt hook`")
fmt.Println(" - If attachment found → **RUN IT** (no human input needed)") fmt.Println(" - If attachment found → **RUN IT** (no human input needed)")
fmt.Println(" - If no attachment → await user instruction") fmt.Println(" - If no attachment → await user instruction")
case RoleDeacon: case RoleDeacon:
@@ -518,7 +518,7 @@ func outputStartupDirective(ctx RoleContext) {
fmt.Println("1. Announce: \"Deacon, checking in.\"") fmt.Println("1. Announce: \"Deacon, checking in.\"")
fmt.Println("2. Signal awake: `gt deacon heartbeat \"starting patrol\"`") fmt.Println("2. Signal awake: `gt deacon heartbeat \"starting patrol\"`")
fmt.Println("3. Check mail: `gt mail inbox` - look for 🤝 HANDOFF messages") fmt.Println("3. Check mail: `gt mail inbox` - look for 🤝 HANDOFF messages")
fmt.Println("4. Check for attached patrol: `gt mol status`") fmt.Println("4. Check for attached patrol: `gt hook`")
fmt.Println(" - If mol attached → **RUN IT** (resume from current step)") fmt.Println(" - If mol attached → **RUN IT** (resume from current step)")
fmt.Println(" - If no mol → create patrol: `bd mol wisp mol-deacon-patrol`") fmt.Println(" - If no mol → create patrol: `bd mol wisp mol-deacon-patrol`")
} }
+3 -3
View File
@@ -453,7 +453,7 @@ func injectStartPrompt(pane, beadID, subject, args string) error {
} else if subject != "" { } else if subject != "" {
prompt = fmt.Sprintf("Work slung: %s (%s). Start working on it now - no questions, just begin.", beadID, subject) prompt = fmt.Sprintf("Work slung: %s (%s). Start working on it now - no questions, just begin.", beadID, subject)
} else { } else {
prompt = fmt.Sprintf("Work slung: %s. Start working on it now - run `gt mol status` to see the hook, then begin.", beadID) prompt = fmt.Sprintf("Work slung: %s. Start working on it now - run `gt hook` to see the hook, then begin.", beadID)
} }
// Use the reliable nudge pattern (same as gt nudge / tmux.NudgeSession) // Use the reliable nudge pattern (same as gt nudge / tmux.NudgeSession)
@@ -772,9 +772,9 @@ func runSlingFormula(args []string) error {
var prompt string var prompt string
if slingArgs != "" { if slingArgs != "" {
prompt = fmt.Sprintf("Formula %s slung. Args: %s. Run `gt mol status` to see your hook, then execute using these args.", formulaName, slingArgs) prompt = fmt.Sprintf("Formula %s slung. Args: %s. Run `gt hook` to see your hook, then execute using these args.", formulaName, slingArgs)
} else { } else {
prompt = fmt.Sprintf("Formula %s slung. Run `gt mol status` to see your hook, then execute the steps.", formulaName) prompt = fmt.Sprintf("Formula %s slung. Run `gt hook` to see your hook, then execute the steps.", formulaName)
} }
t := tmux.NewTmux() t := tmux.NewTmux()
if err := t.NudgePane(targetPane, prompt); err != nil { if err := t.NudgePane(targetPane, prompt); err != nil {
+1 -1
View File
@@ -31,7 +31,7 @@ The bead's status changes from 'pinned' back to 'open'.
Related commands: Related commands:
gt sling <bead> # Hook + start (inverse of unsling) gt sling <bead> # Hook + start (inverse of unsling)
gt hook <bead> # Hook without starting gt hook <bead> # Hook without starting
gt mol status # See what's on your hook`, gt hook # See what's on your hook`,
Args: cobra.MaximumNArgs(2), Args: cobra.MaximumNArgs(2),
RunE: runUnsling, RunE: runUnsling,
} }
+1 -1
View File
@@ -428,7 +428,7 @@ func (m *Manager) StopAll(force bool) error {
} }
// hookIssue pins an issue to a polecat's hook using bd update. // hookIssue pins an issue to a polecat's hook using bd update.
// This makes the work visible via 'gt mol status' when the session starts. // This makes the work visible via 'gt hook' when the session starts.
func (m *Manager) hookIssue(issueID, agentID, workDir string) error { func (m *Manager) hookIssue(issueID, agentID, workDir string) error {
// Use bd update to set status=hooked and assign to the polecat // Use bd update to set status=hooked and assign to the polecat
cmd := exec.Command("bd", "update", issueID, "--status=hooked", "--assignee="+agentID) cmd := exec.Command("bd", "update", issueID, "--status=hooked", "--assignee="+agentID)
+1 -1
View File
@@ -63,5 +63,5 @@ func SessionBeacon(address, molID string) string {
// The agent receives this as user input, triggering the propulsion principle: // The agent receives this as user input, triggering the propulsion principle:
// "If work is on your hook, YOU RUN IT." // "If work is on your hook, YOU RUN IT."
func PropulsionNudge() string { func PropulsionNudge() string {
return "Run `gt mol status` to check your hook and begin work." return "Run `gt hook` to check your hook and begin work."
} }
+3 -3
View File
@@ -18,7 +18,7 @@ on their hook, they EXECUTE. No confirmation. No questions. No waiting.
**The handoff contract:** **The handoff contract:**
When someone slings work to you (or you sling to yourself), they trust that: When someone slings work to you (or you sling to yourself), they trust that:
1. You will find it on your hook 1. You will find it on your hook
2. You will understand what it is (`bd show` / `gt mol status`) 2. You will understand what it is (`gt hook` / `bd show`)
3. You will BEGIN IMMEDIATELY 3. You will BEGIN IMMEDIATELY
This isn't about being a good worker. This is physics. Steam engines don't This isn't about being a good worker. This is physics. Steam engines don't
@@ -32,7 +32,7 @@ run on politeness - they run on pistons firing. You are the piston.
- Work sits idle. Gas Town stops. - Work sits idle. Gas Town stops.
**Your startup behavior:** **Your startup behavior:**
1. Check hook (`gt mol status`) 1. Check hook (`gt hook`)
2. If work is hooked → EXECUTE (no announcement beyond one line, no waiting) 2. If work is hooked → EXECUTE (no announcement beyond one line, no waiting)
3. If hook empty → Check mail, then wait for assignment 3. If hook empty → Check mail, then wait for assignment
@@ -190,7 +190,7 @@ Unlike polecats, you're human-managed. But the hook protocol still applies:
```bash ```bash
# Step 1: Check your hook # Step 1: Check your hook
gt mol status # Shows hooked work (if any) gt hook # Shows hooked work (if any)
# Step 2: Work hooked? → RUN IT # Step 2: Work hooked? → RUN IT
# Hook empty? → Check mail for attached work # Hook empty? → Check mail for attached work
+2 -2
View File
@@ -33,7 +33,7 @@ flywheel - your continuous patrol keeps the whole system spinning.
- Mayor stalls. Witnesses stall. Gas Town stops. - Mayor stalls. Witnesses stall. Gas Town stops.
**Your startup behavior:** **Your startup behavior:**
1. Check hook (`gt mol status`) 1. Check hook (`gt hook`)
2. If patrol wisp hooked → EXECUTE immediately 2. If patrol wisp hooked → EXECUTE immediately
3. If hook empty → Create patrol wisp and execute 3. If hook empty → Create patrol wisp and execute
@@ -127,7 +127,7 @@ There is no decision logic. Check your hook, execute what's there:
```bash ```bash
# Step 1: Check your hook # Step 1: Check your hook
gt mol status # Shows hooked work (if any) gt hook # Shows hooked work (if any)
# Step 2: Work hooked? → RUN IT # Step 2: Work hooked? → RUN IT
# Hook empty? → Check mail for attached work # Hook empty? → Check mail for attached work
+3 -3
View File
@@ -18,7 +18,7 @@ on their hook, they EXECUTE. No confirmation. No questions. No waiting.
**The handoff contract:** **The handoff contract:**
When you (or the human) sling work to yourself, the contract is: When you (or the human) sling work to yourself, the contract is:
1. You will find it on your hook 1. You will find it on your hook
2. You will understand what it is (`bd show` / `gt mol status`) 2. You will understand what it is (`gt hook` / `bd show`)
3. You will BEGIN IMMEDIATELY 3. You will BEGIN IMMEDIATELY
This isn't about being a good worker. This is physics. Steam engines don't This isn't about being a good worker. This is physics. Steam engines don't
@@ -33,7 +33,7 @@ drive shaft - if you stall, the whole town stalls.
- Work sits idle. Witnesses wait. Polecats idle. Gas Town stops. - Work sits idle. Witnesses wait. Polecats idle. Gas Town stops.
**Your startup behavior:** **Your startup behavior:**
1. Check hook (`gt mol status`) 1. Check hook (`gt hook`)
2. If work is hooked → EXECUTE (no announcement beyond one line, no waiting) 2. If work is hooked → EXECUTE (no announcement beyond one line, no waiting)
3. If hook empty → Check mail, then wait for user instructions 3. If hook empty → Check mail, then wait for user instructions
@@ -208,7 +208,7 @@ Like crew, you're human-managed. But the hook protocol still applies:
```bash ```bash
# Step 1: Check your hook # Step 1: Check your hook
gt mol status # Shows hooked work (if any) gt hook # Shows hooked work (if any)
# Step 2: Work hooked? → RUN IT # Step 2: Work hooked? → RUN IT
# Hook empty? → Check mail for attached work # Hook empty? → Check mail for attached work
+4 -4
View File
@@ -18,7 +18,7 @@ on their hook, they EXECUTE. No confirmation. No questions. No waiting.
**The handoff contract:** **The handoff contract:**
When you were spawned, a molecule was hooked for you. The Witness trusts that: When you were spawned, a molecule was hooked for you. The Witness trusts that:
1. You will find it on your hook 1. You will find it on your hook
2. You will understand what it is (`bd show` / `gt mol status`) 2. You will understand what it is (`gt hook` / `bd show`)
3. You will BEGIN IMMEDIATELY 3. You will BEGIN IMMEDIATELY
This isn't about being a good worker. This is physics. Steam engines don't This isn't about being a good worker. This is physics. Steam engines don't
@@ -32,7 +32,7 @@ run on politeness - they run on pistons firing. You are the piston.
- Nothing happens. Gas Town stops. - Nothing happens. Gas Town stops.
**Your startup behavior:** **Your startup behavior:**
1. Check hook (`gt mol status`) 1. Check hook (`gt hook`)
2. Work MUST be hooked (polecats always have work) → EXECUTE immediately 2. Work MUST be hooked (polecats always have work) → EXECUTE immediately
3. If hook mysteriously empty → ERROR: escalate to Witness 3. If hook mysteriously empty → ERROR: escalate to Witness
@@ -143,7 +143,7 @@ bd show hq-abc # Routes to town beads
## Key Commands ## Key Commands
### Your Work ### Your Work
- `gt mol status` - Check your hooked molecule (primary work source) - `gt hook` - Check your hooked molecule (primary work source)
- `bd show <issue>` - View specific issue details - `bd show <issue>` - View specific issue details
### Progress ### Progress
@@ -173,7 +173,7 @@ There is no decision logic. Check your hook, execute what's there:
```bash ```bash
# Step 1: Check your hook # Step 1: Check your hook
gt mol status # Shows hooked work (if any) gt hook # Shows hooked work (if any)
# Step 2: Work hooked? → RUN IT # Step 2: Work hooked? → RUN IT
# Hook empty? → Check mail for attached work # Hook empty? → Check mail for attached work
+3 -3
View File
@@ -33,7 +33,7 @@ the gearbox - converting completed polecat work into merged commits on main.
- Polecats finish work that never lands. Gas Town stops. - Polecats finish work that never lands. Gas Town stops.
**Your startup behavior:** **Your startup behavior:**
1. Check hook (`gt mol status`) 1. Check hook (`gt hook`)
2. If patrol wisp hooked → EXECUTE immediately 2. If patrol wisp hooked → EXECUTE immediately
3. If hook empty → Create patrol wisp and execute 3. If hook empty → Create patrol wisp and execute
@@ -150,7 +150,7 @@ Then check your hook:
```bash ```bash
# Step 1: Check for hooked patrol # Step 1: Check for hooked patrol
gt mol status # Shows hooked work (if any) gt hook # Shows hooked work (if any)
bd list --status=in_progress --assignee=refinery bd list --status=in_progress --assignee=refinery
# Step 2: If no patrol, spawn one # Step 2: If no patrol, spawn one
@@ -317,7 +317,7 @@ gt mail send {{ .RigName }}/<worker> -s "Rebase needed" \
## Key Commands ## Key Commands
### Patrol ### Patrol
- `gt mol status` - Check for hooked patrol - `gt hook` - Check for hooked patrol
- `bd mol spawn <mol> --wisp` - Spawn patrol wisp - `bd mol spawn <mol> --wisp` - Spawn patrol wisp
- `bd mol squash <id> --summary="..."` - Squash completed patrol - `bd mol squash <id> --summary="..."` - Squash completed patrol
+2 -2
View File
@@ -34,7 +34,7 @@ processing lifecycle events.
- Work stalls. Gas Town stops. - Work stalls. Gas Town stops.
**Your startup behavior:** **Your startup behavior:**
1. Check hook (`gt mol status`) 1. Check hook (`gt hook`)
2. If patrol wisp hooked → EXECUTE immediately 2. If patrol wisp hooked → EXECUTE immediately
3. If hook empty → Create patrol wisp and execute 3. If hook empty → Create patrol wisp and execute
@@ -159,7 +159,7 @@ There is no decision logic. No "should I?" questions. Check your hook, execute:
```bash ```bash
# Step 1: Check your hook # Step 1: Check your hook
gt mol status # Shows hooked work (if any) gt hook # Shows hooked work (if any)
# Step 2: Work hooked? → RUN IT # Step 2: Work hooked? → RUN IT
# Execute the mol steps one by one. Each step tells you exactly what to do. # Execute the mol steps one by one. Each step tells you exactly what to do.
+3 -3
View File
@@ -65,7 +65,7 @@ Your work is defined by your pinned molecule. Don't memorize steps - discover th
```bash ```bash
# What's on my hook? # What's on my hook?
gt mol status gt hook
# What step am I on? # What step am I on?
bd ready bd ready
@@ -83,7 +83,7 @@ bd close <step-id>
1. Announce: "Polecat {{name}}, checking in." 1. Announce: "Polecat {{name}}, checking in."
2. Run: `gt prime && bd prime` 2. Run: `gt prime && bd prime`
3. Check hook: `gt mol status` 3. Check hook: `gt hook`
4. If molecule attached, find current step: `bd ready` 4. If molecule attached, find current step: `bd ready`
5. Execute the step, close it, repeat 5. Execute the step, close it, repeat
@@ -93,7 +93,7 @@ bd close <step-id>
### Work Management ### Work Management
```bash ```bash
gt mol status # Your pinned molecule and hook_bead gt hook # Your pinned molecule and hook_bead
bd show <issue-id> # View your assigned issue bd show <issue-id> # View your assigned issue
bd ready # Next step to work on bd ready # Next step to work on
bd close <step-id> # Mark step complete bd close <step-id> # Mark step complete