pr
Open a pull request for the current branch after scripts/verify.sh is green. Use when the user says "open a PR", "/pr", or a spec's work is ready to ship.
SKILL.md.claude/skills/pr/SKILL.md
GitHub/pr — open a pull request for Iron Pipeline
Trunk (main) is always green. Agents open PRs; they never merge, tag, or publish (ADR 0003, Agentic CD constraint 7).
Steps
- Branch check. Refuse if on
main; work happens on a spec branch (NNNN-<name>) or worktree. - Verify locally — leave
.claude/CLAUDE.md(repowise block) unstaged during the work. Run the same command CI runs:
It runsscripts/verify.shdotnet format --verify-no-changes,dotnet build -c Release(warnings as errors),dotnet test, the engine-boundary, dependencies, spec-id, determinism, asset-manifest and stale-reference checks, andscripts/check-budget.sh. If it fails, fix and re-run; do not open the PR red. Then, if.claude/CLAUDE.mdis modified, stage it by name and commit it alone:git add .claude/CLAUDE.md && git commit -m "chore(repowise): refresh index"(check-budget.shdoes not count it). - Code review — a separate step before
gh pr create. Run/dev-team:code-reviewonce all scenarios are green, before cleanup commits, not after the budget is spent. The PR gate file (.claude/memory/.pr-review-passed) is written in its own Bash call, becausepre_pr_review.pyruns before the command executes. Fix errors in their own commit (amend only unpushed commits). Planned-size PRs: run the project review agents on the diff:review-determinism,review-engine-boundary, plusreview-content-schema/review-save-and-replay-compat/review-sim-performance/review-asset-pipelineas the diff warrants. Small-size specs skip these agents (rootCLAUDE.md, "Size the task"). Any PR touching CLAUDE.md, ADRs, skills, agents or templates also runsreview-process-drift. 3b. Status. In the PR's final commit, setStatus: implementedindocs/specs/NNNN-*.mdandfeatures/NNNN-*.feature. - Playtest checklist for planned-size, player-facing PRs:
/playtest-checklist NNNNonce reviews pass. - Push and open:
PR body: followgit push -u origin HEAD gh pr create --fill --base main.github/PULL_REQUEST_TEMPLATE.md— link the Spec (docs/specs/NNNN-*.md) and Features (features/NNNN-*.feature), list the scenarios covered (S<NN>_...tests), budget used, Decisions made at the build gate, Deferred (as issue links) and Not covered; note any save/replay version bump. End the body with the attribution line required by the session. 5a. Done-when gate. The body's "Done-when criteria from the brief/Spec" section lists every item of the brief's "Done when" list (or the Spec's ACs), each checked only if it was met and verified. Refuse to open the PR with any unchecked item unless the title starts with[incomplete]and the body says which items are open and why, and asks the human to decide. Never check an item you did not verify. 5b. Fix PRs. If the title or labels say fix / bug / incident, the body's "If this fixes something that went wrong" section must have Symptom, Cause, Cause fix and Check/Verified filled (root-cause-fixskill). Refuse to open the PR otherwise. - Report the PR URL. Do not merge.