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.