prlisted
Install: claude install-skill RemiMyrset/roots
# Open a pull request
The push flow runs unattended: `git push` and the read-only `gh` commands are
allow-listed, and the `deny-push-protected` guard keeps every push off a
protected branch. What counts as protected, and what else the guard denies, is
under "Push protection" in `docs/template/guards.md`. Merging is a human
decision; `gh pr merge` always prompts, and this skill never runs it.
1. Branch check. `git branch --show-current` must not match a protected
pattern. If it does, stop and suggest a branch: `feat/`, `fix/`, `docs/`,
`chore/`, or `refactor/` plus a short kebab slug, then `git switch -c`
that branch and continue.
2. Clean tree. `git status --porcelain` must be empty; commit pending work
first with a Conventional Commit (`type(scope): subject`, subject at most 50
chars). Never `--no-verify`; the hooks are the gate, and a guard denies it.
3. Verify. `pnpm verify` must pass. Fix at the source; never open a PR over a
red gate.
4. Push. `git push -u origin <branch>` (`--force-with-lease` only if the branch
was rebased and the user knows).
5. Body. Read `.github/PULL_REQUEST_TEMPLATE.md` and fill it: a two-sentence
Summary, the three-place-sync boxes ticked only for what this PR did (source
and tests, spec, decision record, or N/A), the docs-hygiene boxes ticked only
after the commands ran, reviewer notes for risks and follow-ups. If an issue
number was given, add `Closes #<n>` under Summary.
6. Create. `gh pr create --base <defau