fix: enforce fresh context between molecule steps

Change molecule step completion instructions to use `gt mol step done`
instead of `bd close`. This ensures polecats get fresh context between
each step, which is critical for multi-step review workflows like
shiny-enterprise where each refinement pass should have unbiased attention.

The `gt mol step done` command already:
1. Closes the step
2. Finds the next ready step
3. Respawns the pane for fresh context

But polecats were being instructed to use `bd close` directly, which
skipped the respawn and let them run through entire workflows in a
single session with accumulated context.

Updated:
- prime_molecule.go: step completion instructions
- mol-polecat-work.formula.toml
- mol-polecat-code-review.formula.toml
- mol-polecat-review-pr.formula.toml

Fixes: hq-0kx7ra
This commit is contained in:
2026-01-22 15:38:39 -08:00
committed by John Ogle
parent c3fb9c6027
commit 0be6a39bb7
4 changed files with 19 additions and 11 deletions

View File

@@ -88,9 +88,9 @@ func showMoleculeExecutionPrompt(workDir, moleculeID string) {
fmt.Println(style.Bold.Render("→ EXECUTE THIS STEP NOW."))
fmt.Println()
fmt.Println("When complete:")
fmt.Printf(" 1. Close the step: bd close %s\n", step.ID)
fmt.Println(" 2. Check for next step: bd ready")
fmt.Println(" 3. Continue until molecule complete")
fmt.Printf(" gt mol step done %s\n", step.ID)
fmt.Println()
fmt.Println("This closes the step and respawns your session with fresh context for the next step.")
} else {
// No next step - molecule may be complete
fmt.Println(style.Bold.Render("✓ MOLECULE COMPLETE"))
@@ -162,11 +162,10 @@ func outputMoleculeContext(ctx RoleContext) {
showMoleculeProgress(b, rootID)
fmt.Println()
fmt.Println("**Molecule Work Loop:**")
fmt.Println("1. Complete current step, then `bd close " + issue.ID + "`")
fmt.Println("2. Check for next steps: `bd ready --parent " + rootID + "`")
fmt.Println("3. Work on next ready step(s)")
fmt.Println("4. When all steps done, run `gt done`")
fmt.Println("**When step complete:**")
fmt.Println(" `gt mol step done " + issue.ID + "`")
fmt.Println()
fmt.Println("This closes the step and respawns with fresh context for the next step.")
break // Only show context for first molecule step found
}
}

View File

@@ -9,10 +9,13 @@ opportunities. The output is a set of beads capturing actionable findings.
You are a self-cleaning worker. You:
1. Receive work via your hook (pinned molecule + review scope)
2. Work through molecule steps using `bd ready` / `bd close <step>`
2. Work through molecule steps using `bd ready` / `gt mol step done <step>`
3. Complete and self-clean via `gt done` (submit findings + nuke yourself)
4. You are GONE - your findings are recorded in beads
**Fresh context:** Each `gt mol step done` respawns your session with fresh context.
This ensures each review step gets unbiased attention.
**Self-cleaning:** When you run `gt done`, you submit your findings, nuke your
sandbox, and exit. There is no idle state. Done means gone.

View File

@@ -9,10 +9,13 @@ standards, then approves, requests changes, or files followup beads.
You are a self-cleaning worker. You:
1. Receive work via your hook (pinned molecule + PR reference)
2. Work through molecule steps using `bd ready` / `bd close <step>`
2. Work through molecule steps using `bd ready` / `gt mol step done <step>`
3. Complete and self-clean via `gt done` (submit findings + nuke yourself)
4. You are GONE - your review is recorded in beads
**Fresh context:** Each `gt mol step done` respawns your session with fresh context.
This ensures each review step gets unbiased attention.
**Self-cleaning:** When you run `gt done`, you submit your findings, nuke your
sandbox, and exit. There is no idle state. Done means gone.

View File

@@ -9,10 +9,13 @@ crash after any step and resume from the last completed step.
You are a self-cleaning worker. You:
1. Receive work via your hook (pinned molecule + issue)
2. Work through molecule steps using `bd ready` / `bd close <step>`
2. Work through molecule steps using `bd ready` / `gt mol step done <step>`
3. Complete and self-clean via `gt done` (submit + nuke yourself)
4. You are GONE - Refinery merges from MQ
**Fresh context:** Each `gt mol step done` respawns your session with fresh context.
This ensures each step gets unbiased attention.
**Self-cleaning:** When you run `gt done`, you push your work, submit to MQ,
nuke your sandbox, and exit. There is no idle state. Done means gone.