pr-writing-review

Par evalstate · fast-agent

Extrayez et analysez les améliorations rédactionnelles issues des commentaires de revue GitHub PR. À utiliser lorsqu'on vous demande d'afficher les retours de revue, les changements de style ou les améliorations éditoriales à partir d'une URL de pull request GitHub. Gère aussi bien les suggestions explicites que les retours en texte libre. Produit une sortie structurée comparant la formulation originale avec les suggestions des relecteurs pour affiner la rédaction future.

npx skills add https://github.com/evalstate/fast-agent --skill pr-writing-review

Examen de Rédaction de PR

Extraire les retours éditoriaux des PR GitHub pour apprendre des améliorations de révision.

Prérequis

  • GitHub CLI : gh installé
  • Session gh authentifiée : gh auth status doit confirmer votre connexion
    • Pour les repos privés, votre token doit avoir les bonnes permissions (typiquement repo).
  • Python : 3.12+
  • uv (recommandé) : https://github.com/astral-sh/uv

Division des responsabilités

Outil Responsabilité
Script Python Appels API, parsing, suivi des fichiers à travers les renommages, extraction structurée
Analyse LLM Reconnaissance de patterns, comparaison de paragraphes, synthèse de leçons de style

Démarrage rapide


> **Tous les chemins sont relatifs au répertoire contenant ce fichier SKILL.md.**
> Avant d'exécuter un script, d'abord `cd` dans ce répertoire ou utilisez le chemin complet.

# Obtenir des suggestions et retours
uv run scripts/extract_pr_reviews.py <pr_url>

# Obtenir la comparaison premier→final pour analyse approfondie
uv run scripts/extract_pr_reviews.py <pr_url> --diff

# Identique au-dessus, mais limiter chaque dump PREMIER/FINAL à 2k caractères pour les prompts LLM
uv run scripts/extract_pr_reviews.py <pr_url> --diff --max-file-chars 2000

Workflow

Étape 1 : Extraire avec --diff

uv run scripts/extract_pr_reviews.py https://github.com/org/repo/pull/123 --diff

Cela affiche :

  1. Suggestions Explicites — texte exact avant/après des blocs suggestion (supporte plusieurs blocs par commentaire)
  2. Retours du Reviewer — commentaires en texte brut (le "pourquoi" des changements)
  3. Évolution des Fichiers — premier brouillon et version finale de chaque fichier texte

Conseil : ajoutez --max-file-chars 2000 pour alléger chaque dump PREMIER/FINAL, ou associez --diff à --no-files si vous ne besoin que des résumés suggestion/retours.

Étape 2 : Analyser la Sortie

Avec la sortie du script, effectuez cette analyse :

A. Cataloguer les Suggestions Explicites

Créer un tableau des corrections mécaniques :

Pattern Original Corrigé
Grammaire "Its easier" "It's easier"
Suppression de remplissage "using this way" "this way"
Capitalisation "Image Generation" "image generation"

B. Mapper les Retours aux Changements

Pour chaque commentaire de retour du reviewer :

  1. Trouver la section pertinente dans LE PREMIER BROUILLON
  2. Trouver la même section dans LA VERSION FINALE
  3. Documenter ce qui a changé et pourquoi

Exemple :

Retour : "would be nice to end more enthusiastically"

Premier brouillon : "...it's simple to add new tools to Claude and use them straight away."

Final : "...Let us know what you find and create in the comments below!"

Leçon : Terminer les articles de blog par un appel à l'action

C. Comparaison Paragraphe par Paragraphe

Comparer LE PREMIER BROUILLON à LA VERSION FINALE section par section :

  • Qu'a été ajouté ?
  • Qu'a été supprimé ?
  • Qu'a été reformulé ?
  • Quels changements structurels ont eu lieu ?

D. Synthétiser les Patterns de Style

Regrouper les découvertes par catégories :

Catégorie Patterns Trouvés
Clarté Passif→actif, phrases plus courtes, suppression de remplissage
Précision Vague→spécifique, "Create"→"Generate"
Ton Enthousiasme ajouté, finales avec appel à l'action
Structure Transitions ajoutées, meilleure fluidité des sections
Grammaire its/it's, accord sujet-verbe
Contenu Liens ajoutés, exemples, contexte

Options du Script

📁 Tous les chemins sont relatifs au répertoire contenant ce fichier SKILL.md.

Flag Sortie Cas d'usage
(aucun) Suggestions + retours Examen rapide de ce que les reviewers ont dit
--diff Ajoute les dumps PREMIER/FINAL à la sortie par défaut Analyse approfondie de comment l'auteur a répondu
--max-file-chars N Tronque chaque bloc PREMIER/FINAL à N caractères (ajoute ...[X chars tronqués]) Garder les prompts dans les limites de tokens LLM
--no-files Supprime les dumps PREMIER/FINAL même avec --diff Quand vous n'avez besoin que des suggestions explicites + retours du reviewer
--json JSON brut (inclut file_evolutions avec --diff sans --no-files) Traitement programmatique

Formats d'entrée : passer soit l'URL complète de la PR, soit owner/repo PR_NUMBER, ou owner repo PR_NUMBER.

Structure de Sortie

Sortie par Défaut

  • Writing Suggestions : Groupées par reviewer, affiche original→texte suggéré (blocs entre balises) avec une note du reviewer et un lien retour vers GitHub
  • Reviewer Feedback : Commentaires simples sans suggestions de code, chacun marqué avec son lien GitHub

Avec --diff

  • Explicit Suggestions : Paires avant/après compactes, notes du reviewer, et permaliens GitHub en un seul endroit
  • Reviewer Feedback : Liste numérotée des demandes (même vue qu'en défaut)
  • File Evolution : PREMIER BROUILLON et VERSION FINALE pour chaque fichier .md/.txt/.rst/.mdx ; ajouter --max-file-chars pour tronquer chaque bloc avec un indicateur visible ...[X chars tronqués]

Gestion des Renommages de Fichiers

Le script trace les fichiers à travers les renommages en :

  1. Vérifier chaque commit pour les opérations de renommage
  2. Construire un historique de chemins (par ex. claudeimages.mdclaude-images.mdclaude-and-mcp.md)
  3. Récupérer le contenu en utilisant le chemin correct pour chaque commit

Exemple de Sortie d'Analyse

Après exécution du script et analyse LLM, produire un résumé comme :

## Style Lessons from PR #123

### Mechanical Fixes

- Fix grammar: "Its" → "It's" (contraction)
- Lowercase generic terms: "Image Generation" → "image generation"
- Remove filler: "the output quality of" → "the quality of"

### Reviewer-Driven Changes

- **"end more enthusiastically"** → Added call-to-action in conclusion
- **"emphasize these are SoTA"** → Changed "latest" to "state-of-the-art"
- **"add blurb about MCP Server"** → Added explanatory paragraph

### Structural Improvements

- Added transition sentence between sections
- Simplified setup instructions (3 sentences → 1)
- Added new bullet point for model flexibility

Limitations

  • Extrait uniquement les commentaires de révision inline dans les PR (pas les commentaires sur les issues ni la description de la PR)
  • Les fichiers extrêmement longs peuvent rester lourds ; dans ce cas, réduisez --max-file-chars ou utilisez --no-files pour garder les sorties compatibles avec les prompts

{{currentDate}} {{env}}

Skills similaires