From c8bb8ac6b94bfd6be2b9230ea06b062bf24afdd9 Mon Sep 17 00:00:00 2001 From: Steve Yegge Date: Tue, 23 Dec 2025 15:13:32 -0800 Subject: [PATCH] Add Dependency Trap warning to all gt prime role templates MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Temporal language like "Phase 1 blocks Phase 2" triggers incorrect dependency direction. Added a concise warning to all 6 role templates (crew, polecat, mayor, witness, refinery, deacon) reminding agents: - Think "X needs Y", not "X comes before Y" - Verify with `bd blocked` 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- internal/templates/roles/crew.md.tmpl | 8 ++++++++ internal/templates/roles/deacon.md.tmpl | 8 ++++++++ internal/templates/roles/mayor.md.tmpl | 8 ++++++++ internal/templates/roles/polecat.md.tmpl | 8 ++++++++ internal/templates/roles/refinery.md.tmpl | 8 ++++++++ internal/templates/roles/witness.md.tmpl | 8 ++++++++ 6 files changed, 48 insertions(+) diff --git a/internal/templates/roles/crew.md.tmpl b/internal/templates/roles/crew.md.tmpl index 76b9b20e..c6c0fd0c 100644 --- a/internal/templates/roles/crew.md.tmpl +++ b/internal/templates/roles/crew.md.tmpl @@ -50,6 +50,14 @@ You work from: {{ .WorkDir }} This is a full git clone of the project repository. You have complete autonomy over this workspace. +## Dependency Trap + +**Temporal language inverts dependencies.** "Phase 1 blocks Phase 2" is backwards. +- WRONG: `bd dep add phase1 phase2` (temporal: "1 before 2") +- RIGHT: `bd dep add phase2 phase1` (requirement: "2 needs 1") + +**Rule**: Think "X needs Y", not "X comes before Y". Verify with `bd blocked`. + ## Startup Protocol: Propulsion > **The Universal Gas Town Propulsion Principle: If you find something on your hook, YOU RUN IT.** diff --git a/internal/templates/roles/deacon.md.tmpl b/internal/templates/roles/deacon.md.tmpl index 77e952af..ec8d32ec 100644 --- a/internal/templates/roles/deacon.md.tmpl +++ b/internal/templates/roles/deacon.md.tmpl @@ -38,6 +38,14 @@ Go Daemon (watches you, auto-starts you if down) patrol cycle is a wisp that gets squashed to a digest when complete. This keeps beads clean while maintaining an audit trail. +## Dependency Trap + +**Temporal language inverts dependencies.** "Phase 1 blocks Phase 2" is backwards. +- WRONG: `bd dep add phase1 phase2` (temporal: "1 before 2") +- RIGHT: `bd dep add phase2 phase1` (requirement: "2 needs 1") + +**Rule**: Think "X needs Y", not "X comes before Y". Verify with `bd blocked`. + ## Patrol Molecule: mol-deacon-patrol Your work is defined by the `mol-deacon-patrol` molecule with these steps: diff --git a/internal/templates/roles/mayor.md.tmpl b/internal/templates/roles/mayor.md.tmpl index cc3db97e..b8edf7fb 100644 --- a/internal/templates/roles/mayor.md.tmpl +++ b/internal/templates/roles/mayor.md.tmpl @@ -42,6 +42,14 @@ Town ({{ .TownRoot }}) - The rig-level `/.beads/` is **gitignored** (local runtime state) - Rig beads use `beads-sync` branch for multi-clone coordination +## Dependency Trap + +**Temporal language inverts dependencies.** "Phase 1 blocks Phase 2" is backwards. +- WRONG: `bd dep add phase1 phase2` (temporal: "1 before 2") +- RIGHT: `bd dep add phase2 phase1` (requirement: "2 needs 1") + +**Rule**: Think "X needs Y", not "X comes before Y". Verify with `bd blocked`. + ## Responsibilities - **Work dispatch**: Spawn workers for issues, coordinate batch work on epics diff --git a/internal/templates/roles/polecat.md.tmpl b/internal/templates/roles/polecat.md.tmpl index 91cc463d..bb43eea8 100644 --- a/internal/templates/roles/polecat.md.tmpl +++ b/internal/templates/roles/polecat.md.tmpl @@ -40,6 +40,14 @@ Town ({{ .TownRoot }}) - The rig-level `{{ .RigName }}/.beads/` is **gitignored** (local runtime state) - Run `bd sync` to push/pull beads changes via the `beads-sync` branch +## Dependency Trap + +**Temporal language inverts dependencies.** "Phase 1 blocks Phase 2" is backwards. +- WRONG: `bd dep add phase1 phase2` (temporal: "1 before 2") +- RIGHT: `bd dep add phase2 phase1` (requirement: "2 needs 1") + +**Rule**: Think "X needs Y", not "X comes before Y". Verify with `bd blocked`. + ## Responsibilities - **Issue completion**: Work on assigned beads issues diff --git a/internal/templates/roles/refinery.md.tmpl b/internal/templates/roles/refinery.md.tmpl index 57c75216..3eda2d3f 100644 --- a/internal/templates/roles/refinery.md.tmpl +++ b/internal/templates/roles/refinery.md.tmpl @@ -46,6 +46,14 @@ Town ({{ .TownRoot }}) │ └── witness/ ← Worker lifecycle ``` +## Dependency Trap + +**Temporal language inverts dependencies.** "Phase 1 blocks Phase 2" is backwards. +- WRONG: `bd dep add phase1 phase2` (temporal: "1 before 2") +- RIGHT: `bd dep add phase2 phase1` (requirement: "2 needs 1") + +**Rule**: Think "X needs Y", not "X comes before Y". Verify with `bd blocked`. + ## Startup Protocol: Propulsion > **The Universal Gas Town Propulsion Principle: If you find something on your hook, YOU RUN IT.** diff --git a/internal/templates/roles/witness.md.tmpl b/internal/templates/roles/witness.md.tmpl index 492330ee..8b36f7f3 100644 --- a/internal/templates/roles/witness.md.tmpl +++ b/internal/templates/roles/witness.md.tmpl @@ -49,6 +49,14 @@ You're part of a self-monitoring village, not a rigid hierarchy: This is an ant colony where ants help each other recover. You don't just watch polecats - you're part of a network where everyone watches everyone. +## Dependency Trap + +**Temporal language inverts dependencies.** "Phase 1 blocks Phase 2" is backwards. +- WRONG: `bd dep add phase1 phase2` (temporal: "1 before 2") +- RIGHT: `bd dep add phase2 phase1` (requirement: "2 needs 1") + +**Rule**: Think "X needs Y", not "X comes before Y". Verify with `bd blocked`. + --- ## 🚀 STARTUP PROTOCOL: Propulsion