Skip to main content

pr-checklist

Run pre-PR verification checks before creating a pull request. TRIGGER when implementation is complete and the user is ready to create or push a PR — e.g., "create a PR", "ready for review", "push this up", or running /pr-checklist. DO NOT trigger mid-implementation, during TDD cycles, when exploring code, or when the user is still writing features.

Aller à l'installation

Informations de source

Dépôt
weaties/helmlog
Dernière activité de la source
4 juin 2026 à 19:29
Langue détectée de SKILL.md
anglais
Étoiles
2
Forks
2

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Explorateur de fichiers
2 fichiers

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
pr-checklist
description
Run pre-PR verification checks before creating a pull request. TRIGGER when implementation is complete and the user is ready to create or push a PR — e.g., "create a PR", "ready for review", "push this up", or running /pr-checklist. DO NOT trigger mid-implementation, during TDD cycles, when exploring code, or when the user is still writing features.
# /pr-checklist — Pre-PR verification The lint / format / type / test commands and the worktree-and-feature-branch rule are already in CLAUDE.md. This skill encodes only the pre-PR steps that are NOT obvious from CLAUDE.md alone — tier resolution rules with their special cases, the documentation-update map, and the per-tier checklist matrix. ## Mark issue in-progress (if not already) ```bash gh issue edit <N> --add-label "in-progress" gh issue comment <N> --body "In progress on \`<branch>\` (Claude Code on $(hostname))" ``` ## Resolve the PR's risk tier The PR's tier is the **highest** tier of any changed file. Check with `git diff --name-only main...HEAD`. | Tier | Files matching | |---|---| | **Critical** | `auth.py`, `peer_auth.py`, `federation.py`, `storage.py` (if migrations changed), `can_reader.py` | | **High** | `sk_reader.py`, `peer_api.py`, `peer_client.py`, `export.py`, `transcribe.py`, `boat_settings.py` | | **Standard** | other `.py` files | | **Low** | templates, CSS, JS, docs, config, scripts | Report the resolved tier — e.g., "This PR touches `auth.py` → **Critical**." ### Special cases - **`storage.py` migration check.** If `storage.py` is in the diff, examine the diff content — look for `schema_version`, `CREATE TABLE`, `ALTER TABLE`, or migration-dict entries. If only query methods or non-migration code changed, classify as **Standard**, not Critical. - **New / unclassified module.** Any changed `.py` not in the tier list defaults to **Standard**. Flag it: "Module `X` is not explicitly classified — defaults to Standard. Consider adding it to the Risk Tiers table in CLAUDE.md." ## Per-tier checks | Check | Critical | High | Standard | Low | |---|---|---|---|---| | Tests | Required | Required | Required | Optional | | Lint + format | Required | Required | Required | Required | | mypy | Required | Required | Required | Optional | | Integration tests | Required | If federation/PII | No | No | | `/data-license` | Required | If data/PII | No | No | | Spec review (`/spec`) | Required | No | No | No | | Complexity check | Required | Required | Required | No | | Issue linking | Required | Required | Required | Optional | For Critical-tier without an existing approved `/spec` comment on the issue, **stop and flag** — the spec must be approved before merge. ## Documentation updates If the change involved any of these, update accordingly: | Change | Update | |---|---| | New module | Project structure tree in `CLAUDE.md` | | New env vars | `.env.example` | | New CLI command | Common Commands in `CLAUDE.md` | | New stack tool | Stack & Tooling table in `CLAUDE.md` | | Schema migration | Schema version in `CLAUDE.md` Stack table | | Data handling change | Verify against `docs/data-licensing.md` | | New dependency | In `pyproject.toml` and installs via `uv sync` | | New module with risk implications | Risk Tiers table in `CLAUDE.md` | ## Complexity check Use the `/architecture` severity thresholds (Watch 200–300, Warning 300–500, Alert 500+) on changed `.py` files. Cross-reference with risk tier — Critical/High hotspots are more urgent than Standard. Also flag files that grew by more than 50 lines in this PR even if they were already over 200. ## Don't rationalize skipping a check The tier matrix is resolved by file, not by how the diff feels. Common excuses and their rebuttals: | Rationalization | Rebuttal | |---|---| | "The `storage.py` change is tiny, skip the spec." | Tier is set by file + migration content, not diff size. If migrations changed, it's Critical and needs an approved `/spec` before merge. | | "Unit tests pass — integration tests are overkill." | For federation/peer/auth/PII changes, integration tests are Required regardless of unit coverage. Run them. | | "This Pi hotfix is urgent, just commit to main." | Never. Branch + PR + merge — even for hotfixes (CLAUDE.md). Urgency is not an exception. | | "Module isn't in the tier table, so it's low-risk." | Unclassified `.py` defaults to **Standard**, not Low — and you must flag it for classification. | | "Docs are out of scope for this PR." | If you added a module / env var / CLI command / migration / dep, the documentation-update map below is part of the PR. | ## Final steps - PR body must include `Closes #N` (or `Fixes #N` for bugs). - After merge: remove the `in-progress` label (`gh issue edit <N> --remove-label "in-progress"`). - PR target is `main`. Title is concise; body has summary + test plan.
Voir sur GitHub