In this tutorial you’ll take a small code change from your working tree to a merged-ready GitHub PR using three skills: /precheck → /qa → /pr. By the end you’ll understand the toolkit’s standard ship path and what each gate protects you from.
Time: ~10 minutes You need: the toolkit installed (Getting Started), a project with a test suite, and a small change you’re ready to ship.
Both /precheck and /pr refuse to run on main, the toolkit never pushes to your default branch. If you’re on main, branch first:
git checkout -b my-first-change
Make your small change now if you haven’t already, a one-line fix or a comment tweak is fine for a first run.
/precheck
This catches CI failures locally in ~30 seconds instead of a 4-minute CI round-trip. You’ll see:
On success the run ends with:
✓ Precheck passed (N tests, Xs) — Ready to push.
It also writes a pass marker at .claude/.precheck-passed, /pr checks this before allowing a PR.
Note: on a passing run,
/precheckdoesn’t stop at a pass marker, it carries straight through the full ship sequence on its own: commit → push → PR → merge → branch cleanup, with no/qaor/prreview in between. If you want to follow the guarded/qa→/prpath in this tutorial (recommended for anything beyond a trivial change), interrupt it before it merges, or run/qaand/pryourself instead of/precheck. If you let it run to completion, your change is already merged to main, skip ahead to What you learned.
If precheck fails, it removes any stale pass marker and lists the failing tests, it will not push with failures. Fix them and re-run.
/qa
With no argument this runs commit mode, targeted checks on exactly what you changed (~1–3 minutes). You’ll see a mode line confirming commit mode, then 2–4 QA agents running targeted checks on your changed files, generating 5–8 fresh test scenarios that think like a real user about what your change could break.
The run ends with a structured QA report: pass/fail per check, any failures or warnings, coverage gaps (new code without tests), and a suggested next step. On pass, it asks whether to run /review-pr now or skip to /pr, that’s a deliberate confirmation checkpoint, not a glitch.
If you run
/qaand nothing has changed since the last commit, it shows a one-line picker instead of running, commit your change first, or pick a different mode.
/pr
This is the full safe path to a PR. You’ll see, in order:
/qa in commit mode as a hard gate, no PR is created on a failing QA run.env, credentials, or large binaries)Closes #NWhen the PR is merged, tell the session “merged” (or let a configured Monitor watcher detect it). /pr then verifies the issue closed, deletes the remote and local branches, checks out main, pulls, and runs /onboard so you know what’s next.
/precheck → /qa → /pr, fast local gate, targeted quality checks, then a guarded PR./precheck writes a pass marker that /pr consumes; a failing precheck blocks the push./qa commit mode checks only your diff and generates fresh scenarios beyond your existing tests./pr never pushes to main, never ships failing QA, and handles issue linkage and post-merge cleanup for you.Next tutorial: Calibrate a project, teach the toolkit your codebase so every workflow gets smarter.