From 23ee6efd412c26a46c432eadb852d973c0f75c3d Mon Sep 17 00:00:00 2001 From: gastown/polecats/capable Date: Tue, 30 Dec 2025 22:02:00 -0800 Subject: [PATCH] Fix Boot spawn: use bootDir and add initial triage prompt MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Boot was spawning in deaconDir, causing it to read Deacon's CLAUDE.md instead of its own role context. Now: - Creates session in ~/gt/deacon/dogs/boot/ - Ensures bootDir exists with Boot's CLAUDE.md - Passes "gt boot triage" as initial prompt for immediate execution (gt-tc58x) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- internal/boot/boot.go | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/internal/boot/boot.go b/internal/boot/boot.go index a8a7c715..95262c8b 100644 --- a/internal/boot/boot.go +++ b/internal/boot/boot.go @@ -175,8 +175,13 @@ func (b *Boot) spawnTmux() error { _ = b.tmux.KillSession(SessionName) } - // Create new session in deacon directory - if err := b.tmux.NewSession(SessionName, b.deaconDir); err != nil { + // Ensure boot directory exists (it should have CLAUDE.md with Boot context) + if err := b.EnsureDir(); err != nil { + return fmt.Errorf("ensuring boot dir: %w", err) + } + + // Create new session in boot directory (not deacon dir) so Claude reads Boot's CLAUDE.md + if err := b.tmux.NewSession(SessionName, b.bootDir); err != nil { return fmt.Errorf("creating boot session: %w", err) } @@ -184,8 +189,9 @@ func (b *Boot) spawnTmux() error { _ = b.tmux.SetEnvironment(SessionName, "GT_ROLE", "boot") _ = b.tmux.SetEnvironment(SessionName, "BD_ACTOR", "deacon-boot") - // Launch Claude with environment exported inline - startCmd := "export GT_ROLE=boot BD_ACTOR=deacon-boot && claude --dangerously-skip-permissions" + // Launch Claude with environment exported inline and initial triage prompt + // The "gt boot triage" prompt tells Boot to immediately start triage (GUPP principle) + startCmd := `export GT_ROLE=boot BD_ACTOR=deacon-boot && claude --dangerously-skip-permissions "gt boot triage"` if err := b.tmux.SendKeys(SessionName, startCmd); err != nil { return fmt.Errorf("sending startup command: %w", err) }