ワンクリックで
pr-sheriff
// PR Sheriff workflow: triage PRs into easy-wins and crew assignments. Prints recommendations inline - does NOT post to GitHub.
// PR Sheriff workflow: triage PRs into easy-wins and crew assignments. Prints recommendations inline - does NOT post to GitHub.
Develop and operate Gas Town with the Cursor agent preset (cursor-agent CLI): gt flags, hooks at .cursor/hooks.json, session resume, and how this repo differs from README marketing copy.
Canonical commit workflow for Gas Town crew members: pre-flight checks, branch creation, gt commit with agent identity, push, and PR creation. Use when ready to commit and submit work for review.
List GitHub issues in a formatted ASCII table. Supports filters like --state, --assignee, --label. Use for issue triage and tracking workflows.
List GitHub PRs in a formatted ASCII table. Supports filters like --state, --author, --label. Use for PR review workflows and sheriff duties.
The definitive guide for working with gastown's convoy system -- batch work tracking, event-driven feeding, stage-launch workflow, and dispatch safety guards. Use when writing convoy code, debugging convoy behavior, adding convoy features, testing convoy changes, or answering questions about how convoys work. Triggers on convoy, convoy manager, convoy feeding, dispatch, stranded convoy, feedFirstReady, feedNextReadyIssue, IsSlingableType, isIssueBlocked, CheckConvoysForIssue, gt convoy, gt sling, stage, launch, staged, wave.
| name | pr-sheriff |
| description | PR Sheriff workflow: triage PRs into easy-wins and crew assignments. Prints recommendations inline - does NOT post to GitHub. |
| allowed-tools | Bash(gh pr *), Bash(git *), Bash(gt *), Bash(bd *), Bash(cat *) |
| version | 2.0.0 |
| author | Gas Town |
This skill delegates to the mol-pr-sheriff-patrol formula, which lives at
$GT_ROOT/.beads/formulas/mol-pr-sheriff-patrol.formula.toml and is shared
across all Gas Town rigs (gastown, beads, etc.).
This rig (gastown/crew/max) is responsible for steveyegge/gastown only. The beads repo (steveyegge/beads) is handled by beads/crew/emma. Do NOT discover or triage PRs from repos outside your scope.
When loading the shared config, filter the repo list to only steveyegge/gastown.
/pr-sheriff [repo]
repo - Optional. If provided, overrides the default scope.
If omitted, scan only steveyegge/gastown (this rig's scope).1. Load the config:
cat $GT_ROOT/.beads/pr-sheriff-config.json
This contains crew mappings per repo and contributor policies (trust tiers, firewalled contributors, bot auto-merge rules). Only scan repos within your scope (see Repo Scope above).
2. Follow the formula steps in order:
gt formula show mol-pr-sheriff-patrol
The formula defines a 7-step workflow:
| Step | What it does |
|---|---|
| load-config | Load pr-sheriff-config.json, establish repo list |
| discover-prs | Find open PRs needing review across all repos |
| triage-batch | Categorize all PRs in one pass (preserves cross-PR context) |
| merge-easy-wins | Merge approved easy-wins via gh pr merge |
| dispatch-crew-reviews | Nudge crew for NEEDS-CREW PRs |
| dispatch-deep-reviews | Nudge crew for NEEDS-HUMAN PRs (full evaluation framework) |
| collect-results | Gather crew review nudge-backs |
| interactive-review | Walk through remaining NEEDS-HUMAN PRs with overseer |
| summarize | Print patrol summary |
3. For each step, read the full description:
gt formula show mol-pr-sheriff-patrol # Shows all steps with descriptions
mol-pr-sheriff-patrol (town-level)mol-pr-crew-review (dispatched to crew)mol-pr-deep-review (dispatched for NEEDS-HUMAN)$GT_ROOT/.beads/pr-sheriff-config.jsonLoaded from config. Current tiers:
| Tier | Handling |
|---|---|
| bot-trusted | Auto-merge if CI passes (e.g., dependabot) |
| community | Normal triage — easy-win / crew / deep review |
| firewalled | Always NEEDS-HUMAN, never auto-merge, deep review required |
Draft? → SKIP
Contributor firewalled? → NEEDS-HUMAN (deep review)
Dependabot patch bump + CI green? → EASY-WIN
<50 lines, obvious bug/doc/test fix? → EASY-WIN
Security/architecture/API change? → NEEDS-HUMAN
Multi-concern PR? → NEEDS-HUMAN
100+ lines new feature? → NEEDS-CREW or NEEDS-HUMAN
Everything else → NEEDS-CREW
The deep review formula (mol-pr-deep-review) applies six lenses:
Final verdicts: MERGE | CHERRY-PICK | REWORK | REIMPLEMENT | CLOSE
For each PR, print a recommendation block:
### PR #<num>: <title>
Author: <login> | +<additions>/-<deletions> | <changedFiles> files
**Category**: EASY-WIN | NEEDS-CREW | NEEDS-HUMAN | SKIP
**Analysis**:
<1-3 sentences explaining the change and why it fits this category>
**Recommendation**:
<specific action>
## PR Sheriff Patrol Summary — <date>
**Easy-wins merged**: N
**Crew-reviewed and merged**: N
**Sent back for rework**: N
**Closed**: N
**Still pending**: N
When creating beads to track fix-merge work for polecats or crew, use ephemeral beads (wisps) rather than persistent beads. PR review/fix-merge tasks are orchestration scaffolding — they exist to give a polecat something to hook and track, not to create a permanent record.
Ephemeral beads are the right trade-off: they give polecats and crew trackable work items without polluting Dolt's permanent ledger with one-off orchestration noise. If/when beads are exported to permanent ledgers, review-task wisps won't clutter the history.
# Ephemeral bead for fix-merge dispatch
bd new -t task "Fix-merge PR #1234: description" -p 2 -l pr-review \
--wisp-type patrol
# vs persistent (avoid for orchestration work)
bd new -t task "Fix-merge PR #1234: description" -p 2 -l pr-review
The --wisp-type patrol flag marks it as ephemeral orchestration work that
the reaper will eventually clean up. The polecat/crew member can still hook it,
work it, and close it normally.
Co-authored-by trailer when fixing up contributor work.