Open a PR to PyPSA/pypsa-usa
SkillDev toolsOpen a pull request to PyPSA/pypsa-usa following repo conventions
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Open a PR to PyPSA/pypsa-usa skill
What this skill tells your AI
The instructions your AI receives, as published by pypsa/pypsa-usa in .claude/skills/pr/SKILL.md and read by ahel’s review.
Invoking /pr is standing permission to push the branch and open the PR — no
further confirmation for those two actions. Ask the user only where a step
below says to ask.
1. Pick the base branch
The base is develop on PyPSA/pypsa-usa. Never master — if the user asks
for master, stop and remind them changes land on develop and flow to
master in releases.
Integration-branch exception: when the branch descends from an active
integration branch (a long-lived upstream branch such as v1-epic), target
that branch instead. Detect it:
git fetch upstream develop v1-epic
git merge-base HEAD upstream/develop
git merge-base HEAD upstream/v1-epic
If the merge-base with the integration branch is a descendant of the
merge-base with develop, the branch was cut from the integration branch —
base there.
2. Pick the push remote
gh api repos/PyPSA/pypsa-usa --jq .permissions.push
true → push the head branch to upstream (the PyPSA/pypsa-usa remote).
Otherwise push to the user's fork (origin) and open a cross-repo PR.
3. Gauntlet — every gate green before pushing
- Working tree clean (
git status); commit or stash anything loose with the user's direction. - Branch merges cleanly with the base; rebase or merge the base in if behind.
Leave history otherwise untouched — no squashing. Conventional-commit
titles (
fix(rps): ...) are welcome, not required. pre-commit run --files <changed files>passes.pytest -m fastpasses — Tier A, the same selection CI'sfast-testsjob runs, so a local pass predicts a green check.- Size the change. It is larger when it touches
workflow/scripts/orworkflow/rules/in a way that can alter produced network artifacts, or spans >~300 changed lines / >10 files. For a larger change, ask the user whether to also run Tier B (pytest -m integration, needsdata/andcutouts/) — encourage it, never require it.
4. Draft the body
Fill .github/pull_request_template.md, then add:
-
Testing — which tiers ran and their verbatim results (pass/fail counts).
-
Equivalence (larger changes only) — ask the user whether an equivalence-harness run (
tests/equivalence/) exists for this branch. If yes: paste the report summary and list any deltas-ledger rows (DL-N indocs/superpowers/specs/2026-08-07-deltas-ledger.md) this PR adds or touches. If no: write "No equivalence run for this branch." — stated, never omitted. -
Ask the user whether the PR closes an issue; if so,
Closes #Nat the top. -
Attribution footer:
🤖 Generated with [Claude Code](https://claude.com/claude-code)
5. Open the PR
Open as draft when the change is larger and Tier B / equivalence evidence is missing; otherwise ready-for-review. Mark ready once the evidence lands.
git push <remote> HEAD:<head-branch>
gh pr create --repo PyPSA/pypsa-usa --base <base> [--draft] ...
6. Watch CI
Wait for the fast-tests check (gh pr checks <num> --repo PyPSA/pypsa-usa --watch), fixing failures in-session and pushing until it is green.
e2e-tests runs longer — report its status, don't wait on it.
Done when: PR URL reported to the user, fast-tests green (or its failure
explained), and any skipped evidence (Tier B, equivalence) called out
explicitly in the PR body.
Signals
- GitHub stars
- 147
- Forks
- 55
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
pr-pypsa- Source
- github.com/pypsa/pypsa-usa