From bfafb9c179d72470ead7cfeb4515e136cc961a14 Mon Sep 17 00:00:00 2001 From: joe Date: Thu, 8 Jan 2026 22:47:39 -0800 Subject: [PATCH] docs: add explicit no-PR rule for maintainer repos MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Polecats were creating GitHub PRs instead of using gt done to submit to the Refinery. Added clear conditional language: - If repo is steveyegge/beads or steveyegge/gastown: NEVER create PRs - Polecats use gt done → Refinery merges - Crew workers push directly to main - PRs are for external contributors only This fixes a prompting gap that led to PR #292 being created incorrectly. Co-Authored-By: Claude Opus 4.5 --- internal/templates/roles/crew.md.tmpl | 13 ++++++++++--- internal/templates/roles/polecat.md.tmpl | 10 ++++++++++ templates/polecat-CLAUDE.md | 10 ++++++++++ 3 files changed, 30 insertions(+), 3 deletions(-) diff --git a/internal/templates/roles/crew.md.tmpl b/internal/templates/roles/crew.md.tmpl index 7c698dbb..9acb2c7f 100644 --- a/internal/templates/roles/crew.md.tmpl +++ b/internal/templates/roles/crew.md.tmpl @@ -222,10 +222,17 @@ instructions immediately. Useful for one-off tasks that don't warrant a full bea ## Git Workflow: Work Off Main -**Crew workers push directly to main. No feature branches. NEVER create PRs.** +**Crew workers push directly to main. No feature branches.** -PRs are for external contributors submitting changes for review. As crew, you have -direct commit access - use it. If you create a PR, you're adding unnecessary overhead. +### No PRs in Maintainer Repos + +If the remote origin is `steveyegge/beads` or `steveyegge/gastown`: +- **NEVER create GitHub PRs** - you have direct push access +- Crew workers: push directly to main +- Polecats: use `gt done` → Refinery merges to main + +PRs are for external contributors submitting to repos they don't own. +Check `git remote -v` if unsure about repo ownership. ### The Landing Rule diff --git a/internal/templates/roles/polecat.md.tmpl b/internal/templates/roles/polecat.md.tmpl index 0385691d..3e080ccd 100644 --- a/internal/templates/roles/polecat.md.tmpl +++ b/internal/templates/roles/polecat.md.tmpl @@ -236,6 +236,16 @@ to the merge queue. The Witness handles the rest. **Note:** Do NOT manually close the root issue with `bd close`. The Refinery closes it after successful merge. This enables conflict-resolution retries. +### No PRs in Maintainer Repos + +If the remote origin is `steveyegge/beads` or `steveyegge/gastown`: +- **NEVER create GitHub PRs** - you have direct push access +- Polecats: use `gt done` → Refinery merges to main +- Crew workers: push directly to main + +PRs are for external contributors submitting to repos they don't own. +Check `git remote -v` if unsure about repo ownership. + ### The Landing Rule > **Work is NOT landed until it's on `main` OR in the Refinery MQ.** diff --git a/templates/polecat-CLAUDE.md b/templates/polecat-CLAUDE.md index 3ec7c899..1bbf340b 100644 --- a/templates/polecat-CLAUDE.md +++ b/templates/polecat-CLAUDE.md @@ -162,6 +162,16 @@ The `gt done --exit` command: - Exits your session immediately (no idle waiting) - Witness handles cleanup, Refinery merges your branch +### No PRs in Maintainer Repos + +If the remote origin is `steveyegge/beads` or `steveyegge/gastown`: +- **NEVER create GitHub PRs** - you have direct push access +- Polecats: use `gt done` → Refinery merges to main +- Crew workers: push directly to main + +PRs are for external contributors submitting to repos they don't own. +Check `git remote -v` if unsure about repo ownership. + ### The Landing Rule > **Work is NOT landed until it's on `main` OR in the Refinery MQ.**