Borrowing it
Nothing to install: this file belongs to princeton-ddss/blackfish. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/princeton-ddss/blackfish/main/.claude/commands/pr.mdgit clone --depth 1 https://github.com/princeton-ddss/blackfishWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/commands/princeton-ddss/blackfish/pr)<a href="https://agentmods.dev/commands/princeton-ddss/blackfish/pr"><img src="https://agentmods.dev/badge/commands/princeton-ddss/blackfish/pr/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/commands/princeton-ddss/blackfish/pr"><img src="https://agentmods.dev/badge/commands/princeton-ddss/blackfish/pr.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00000 | $0.00741 |
| Opus 5.5 | $0.00000 | $0.00296 |
| Sonnet 5.5 | $0.00000 | $0.00148 |
| Haiku 4.5 | $0.00000 | $0.00074 |
Grade A, and why
pr scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 95 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Create a pull request for the current branch.
$ARGUMENTS
Step 1: Validate branch state
git branch --show-current
git status
Ensure we're not on main/dev and there are commits to push.
Step 2: Run pre-PR checks
For Python backend (if lib/ files changed):
cd lib && uv run just lint
cd lib && uv run just test
cd lib && uv run just coverage
For frontend (if web/ files changed):
cd web && npm run lint
cd web && npm test
If any checks fail, report the issues and stop. Do not create the PR.
Step 3: Analyze changes for PR content
git log --oneline main..HEAD
git diff main...HEAD --stat
Step 4: Create the PR
Push the branch and create the PR using gh:
git push -u origin $(git branch --show-current)
gh pr create --title "..." --body "..."
Use this PR body format:
-
Summary (2-3 bullet points)
-
Test plan (verification steps)
Do not add a Claude Code attribution footer.
If there's a linked issue, include "Closes #N" in the PR body.
Step 5: Update project status (if linked issue exists)
If the branch name starts with an issue number (e.g., 123-feature-name) or the PR body contains "Closes #N":
- Check if
.claude/projects.jsonexists. If not, skip this step. - Read the projects array. If multiple projects, ask user which one (or try to find the issue in each).
- Find the issue's item ID in the project:
gh project item-list <project_number> --owner <owner> --format json | jq -r '.items[] | select(.content.number == <issue-number>) | .id' - Move the issue to "In review" status using IDs from the config:
gh project item-edit --id "<item-id>" --project-id "<project_id>" --field-id "<fields.status.id>" --single-select-option-id "<fields.status.options['In review']>"
If the issue is not in any project, no linked issue exists, or no projects config exists, skip this step.
Step 6: Wait for and triage Claude bot review
A Claude bot runs an automated code review on every PR opened. It posts its
review as a PR comment from the claude user. It takes a few minutes, so poll
for that comment rather than checking once (poll every ~60s, up to ~10
minutes). If no bot review appears, say so and stop.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 95 lines · 0 tokens per session scan A 035170c82256
pr is a command published in the GitHub repository princeton-ddss/blackfish (26 stars, last pushed 16d ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 741 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-01.
Other commands, from other repositories
merge-conflict-analysis
You are analyzing merge conflicts for PR #${{ pr-number }}.
release-notes
Generate consistent, well-structured release notes from git history. Triggered on release tags following semver patterns (v..) to produce categorized changelog with breaking changes, features, fixes, and contributor attribution.
commit
A command that examines staged Git changes and proposes a commit message using the Conventional Commits format, such as feat, fix, or docs. Git is a tool for tracking changes to code.
repo-audit
Audit a codebase (local or remote GitHub/GitLab) against architecture principles and requirements, surfacing drift, risk, and missing decisions.
pr
Handle the full workflow from current branch state to an open, CI-monitored pull request.
release-plan
A release-planning command for a software change. It documents the release scope, rollback plan, gradual or full rollout, and monitoring before waiting for human approval.