Commande Pull Request

VérifiéPrudence

Crée une Pull Request GitHub avec un résumé IA, en catégorisant les changements comme triviaux ou non triviaux. Exécute des vérifications CI et de santé du code avant l'ouverture.

Spar Skills Guide Bot
DeveloppementAvancé
05/08/2026
Claude Code
#pull-request#git-workflow#code-review#ci-checks#github

Recommandé pour

Synthèse automatique

Cette skill automatise la création d'une pull request GitHub pour la branche courante, avec un résumé généré par IA qui distingue les changements triviaux des changements nécessitant une relecture manuelle.

Points forts

  • Exécute les quatre vérifications CI en local avant d'ouvrir la PR et s'arrête au premier échec avec un message d'erreur ciblé.
  • Trie les changements en triviaux et non triviaux pour concentrer la relecture humaine sur les modifications à risque (formules, API publique, dépendances).
  • Synchronise la branche avec main et gère les conflits de fusion, en abandonnant proprement lorsque la résolution n'est pas évidente.
  • Détecte le numéro d'issue via le nom de branche, les commits ou le frontmatter du plan, et vérifie que l'issue est ouverte avant d'ajouter le mot-clé de fermeture.

Limites

  • Suppose une stack Node.js précise (npm run standard, jsdoclint, test, build, typecheck) définie en dur dans la skill.
  • L'étape de qualité de code dépend du serveur MCP CodeScene et du score code_health_score, indisponible sans cette intégration.
  • La résolution automatique des conflits reste limitée aux cas non ambigus et peut interrompre le flux en demandant une intervention manuelle.
Quand l'utiliser

À utiliser lorsqu'une branche est prête et que vous voulez ouvrir une PR conforme, testée et correctement liée à son issue, sans rédiger le résumé à la main.

Quand l'éviter

À éviter sur un dépôt non Node.js, sans accès à CodeScene ni à la CLI gh, ou lorsque les commits doivent être réorganisés manuellement avant publication.

Analyse de sécurité

Prudence
Score qualité86/100

The skill orchestrates legitimate development workflows using git, npm, and gh. It does not contain destructive commands, data exfiltration, or obfuscated payloads. However, it automates merge and push operations and runs multiple shell commands, which warrants caution due to the potential for unintended remote changes if the user is not fully aware.

Points d'attention
  • •Automates git merge and git push operations without explicit user confirmation, which could alter remote branch state.
  • •Executes npm, gh, and git commands with shell access, though no destructive or exfiltrating actions are present.
  • •No allowed-tools declaration, yet the skill instructs the use of command-line tools and external MCP tools.
Comment cette analyse est faite

Exemples

Open a PR for the current branch
/pr
Ship a feature branch tied to an issue
/pr — create the pull request for branch 412-add-beta-distribution, close issue #412 if it is still open, and flag anything that needs manual review.
Check readiness before opening
Run /pr on my current branch, but stop and tell me exactly which pre-flight step failed if anything is red.

Pull Request Command

You are creating a GitHub Pull Request for the current branch with an AI-generated summary that highlights non-trivial changes for manual review.

Core Principle

Categorize every change as trivial or non-trivial so reviewers can focus their attention where it matters most.

Workflow

When the user invokes /pr:

1. Gather Context

Run in parallel:

  • git branch --show-current
  • git log main..HEAD --oneline
  • git diff main...HEAD
  • git status
  • git log main..HEAD --format="%s%n%n%b"

If the branch is main, stop. If no commits ahead of main, stop. If there are uncommitted changes, invoke /commit first.

2. Pre-flight CI checks

Run all four CI jobs locally in sequence. Stop immediately and report the failure if any step exits non-zero — do not open the PR.

npm run standard
npm run jsdoclint
npm test
npm run build && npm run typecheck

Report format on failure:

"Pre-flight failed: <step name> — <first error line>. Fix the issue and run /pr again."

3. Code Health Check

Get the list of .js files changed in this branch:

git diff main...HEAD --name-only | grep '\.js$'

For each changed .js file, call the CodeScene code_health_score tool. If any file scores below 10.0:

  1. Call code_health_review on that file for detailed guidance.
  2. Fix the identified code smells following the MCP server's guidance.
  3. Re-run npm run standard && npm test to confirm nothing broke.
  4. Repeat until the score reaches 10.0, or document in the PR body why a remaining smell is out of scope for this change (e.g., a god file that can't be split without a major refactor).

If no .js files were changed, skip this step.

5. Sync with Main

Before opening the PR, merge the latest main into the current branch to eliminate post-open merge conflicts.

Run in sequence:

git fetch origin main
git merge origin/main --no-edit

If the merge succeeds cleanly, push the updated branch:

git push -u origin <current-branch>

If the merge fails with conflicts:

  1. Run git status to list conflicting files.
  2. Resolve each conflict automatically only when the resolution is unambiguous (e.g., the branch added a new file that main never touched).
  3. If any conflict is ambiguous, abort the merge (git merge --abort), report the conflicting files to the user, and stop — do not proceed to PR creation.
  4. After resolving, run npm run standard && npm test to confirm the merge didn't break anything, then git commit --no-edit and push.

6. Detect the Issue Number

Search in this order, stopping at the first match:

  1. Branch name — patterns: ^(\d+)-, ^claude/build-(\d+)-, ^claude/(\d+)-
  2. Commit messages — git log main..HEAD --format=%B | grep -oE '#[0-9]+'
  3. Plan frontmatter — look for github_issue: <number>

If no issue detected, skip the closing keyword. Do not invent one.

Verify the issue is open before adding the keyword:

gh issue view <number> --json number,state -q '.state' 2>/dev/null

Skip if CLOSED or lookup fails.

7. Analyze Changes

Categorize every change:

Non-trivial (warrant manual review):

  • New distributions or statistical methods
  • Changed PDF/CDF/quantile formulas
  • New special functions or algorithms
  • Behavioral changes (different return values, changed parameter constraints)
  • New public API surface
  • Dependency changes

Trivial (mechanical/low-risk):

  • Formatting, whitespace, line reordering
  • Method/function reordering within a file
  • Renames with no logic change
  • Import reordering or cleanup
  • Docstring/comment additions only

8. ADR Gate (non-trivial PRs only)

Check for ADR references in the diff and commits:

git diff main...HEAD --name-only | grep decisions/

If non-trivial changes exist but no ADRs are found, add a warning block:

> **⚠ Missing ADR**: This PR contains non-trivial changes but no Architecture Decision Record was found.
> Consider adding one at `decisions/` to document the design rationale.
> See `decisions/0000-template.md` for the format.

9. Generate PR Title

  • Concise (under 70 characters), imperative mood
  • e.g., "Add LogNormal distribution", "Fix CDF for discrete distributions"

10. Generate PR Body

<If an issue was detected:>
Closes #<issue-number>

<If ADR warning needed, insert it here>

## Summary
- <1-3 bullet points describing what this PR does and why>

## Design decisions
<If ADRs exist:>
- [ADR-NNNN: <title>](decisions/NNNN-slug.md) — <one-line summary>

<If no ADRs and no non-trivial changes, omit this section.>

## Non-trivial changes
<List them:>
- **`<file path>`**: <Description of what changed and why it matters>

<If no non-trivial changes:>
_No non-trivial changes — this PR is purely mechanical._

## Comprehension checklist
- [ ] I can explain what this code does without reading line-by-line
- [ ] I understand *why* this approach was chosen over alternatives
- [ ] WHY comments are present where the logic is non-obvious
- [ ] Tests verify observable behavior, not internal state
- [ ] A developer encountering this code in 6 months could understand it

<details>
<summary>Trivial changes</summary>

- **`<file path>`**: <Brief description>

</details>

---
*Generated with [Claude Code](https://claude.ai/code)*

11. Create the PR

gh pr create --title "<title>" --body "$(cat <<'EOF'
<body content>
EOF
)"

12. Watch the PR (CI + reviews)

Immediately after the PR is created, subscribe to its activity so CI failures and review comments are handled without the user having to ask:

subscribe_pr_activity(<pr-number>)

Availability: subscribe_pr_activity is provided by the remote-execution / GitHub webhook integration. If the tool is unavailable (e.g. a purely local gh session), skip this step and tell the user the PR can't be auto-watched here.

After subscribing, end the turn — do not poll with sleep or repeated status checks. PR events arrive as <github-webhook-activity> messages that wake the session. When one arrives, investigate it and follow this loop:

  • CI check failed → reproduce locally, diagnose the root cause, push the fix, and update a short status checklist. Re-kick on each failure until green; the green status IS the deliverable, not a no-op to skip. Reply only when it resolves the task or raises a question.
  • Review comment → if the fix is unambiguous and not architecturally significant, apply and push it. If there is any ambiguity (a comment open to interpretation, or a change touching something significant), use AskUserQuestion to confirm before acting.
  • Duplicate / no-action-needed event → skip silently.
  • Merge conflict reported → fetch the base branch, merge it in, resolve conflicts, re-run npm run standard && npm test, and push.

Stop watching the moment the user asks — call unsubscribe_pr_activity(<pr-number>) and push no further changes to that PR.

13. Report

"PR created: <URL>

Closes: #<issue> (or "None") Non-trivial changes: <count> (or "None") Watching: subscribed to PR activity — I'll auto-fix failing CI and respond to review comments as they arrive (or "not available in this environment")."

Rules

DO:

  • Read the FULL diff before categorizing
  • Always include Closes #N when an issue is detectable
  • Be specific about what changed in non-trivial items
  • Subscribe to PR activity after creation and follow through on CI/review events
  • Escalate ambiguous review comments via AskUserQuestion before acting

DO NOT:

  • Create a PR if on main
  • Invent an issue number
  • Add Closes #N for an already-closed issue
  • Poll for CI/review status with sleep or repeated checks — react to webhook events instead
  • Keep pushing to a PR after the user asks you to stop watching it

Du fichier au premier essai

Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.

Consulter la source et ses fichiers annexes

Ce téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.

1. Télécharger le fichier

Télécharger SKILL.md

Depuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/pull-request-command-msfn18hd/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.

Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.

mkdir -p '.skill-downloads/pull-request-command-msfn18hd' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/pull-request-command-msfn18hd/download' --output '.skill-downloads/pull-request-command-msfn18hd/SKILL.md.part' && mv '.skill-downloads/pull-request-command-msfn18hd/SKILL.md.part' '.skill-downloads/pull-request-command-msfn18hd/SKILL.md'

2. Vérifier les prérequis

Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.

Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.

Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.

3. Charger la skill

Le fichier ne fournit pas un en-tête name/description exploitable pour cette procédure native. Le téléchargement reste disponible pour lecture ; utilisez le mode manuel ci-dessous.

Mode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.

4. Faire un premier essai

Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :

Lis .skill-downloads/pull-request-command-msfn18hd/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.

Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.

Skills similaires