Rédaction de notes de version

VérifiéPrudence

Rédige des notes de version à partir des numéros de PR en analysant les diffs. Cible les changements visibles pour les utilisateurs.

Spar Skills Guide Bot
DocumentationIntermédiaire
22/07/2026
Claude Code
#release-notes#changelog#pull-requests#technical-writing#gh-cli

Recommandé pour

Synthèse automatique

Rédige des notes de version destinées aux utilisateurs à partir des diffs de pull requests, en filtrant les changements de code et de documentation selon un guide de style et un modèle propres au dépôt.

Points forts

  • Lit systématiquement le guide de style et le modèle de release notes avant de rédiger, ce qui rend le format et le ton non négociables
  • Accepte les numéros de PR en positionnel ou via des flags, et traite les PR de documentation comme optionnelles
  • Écarte les changements internes (refactors, CI, outillage) sans effet visible pour les gestionnaires de modes
  • Dérive le nom du fichier de sortie depuis la version de package.json et continue en signalant les PR dont le diff échoue

Limites

  • Fortement couplé à un dépôt précis : chemins .claude/style-guide.md, .claude/release-notes-template.md, lecture de la ligne 3 de package.json et analyse sous src/
  • Nécessite gh CLI authentifié et un accès aux PR ; le skill s'arrête si les fichiers de contexte sont absents
  • Le SKILL.md fourni s'arrête après l'analyse : les étapes de validation ou de publication ne sont pas décrites
Quand l'utiliser

À utiliser lorsqu'on dispose d'une liste de numéros de PR et qu'il faut produire un brouillon soigné de notes de version pour les commandants gérant des modes.

Quand l'éviter

À éviter sur un dépôt sans guide de style ni modèle de release notes, ou lorsque les PR ne sont pas accessibles via gh.

Analyse de sécurité

Prudence
Score qualité85/100

The skill is a straightforward technical-writing workflow: it reads local style/template files, fetches PR diffs with gh, and writes a markdown file. No destructive commands, no credential exfiltration, no obfuscation, and no instruction to disable safety. It does rely on bash and network-authenticated gh calls plus writes files, and it ingests untrusted PR diff content, so 'caution' rather than 'safe' is appropriate.

Points d'attention
  • •Instructs the agent to execute shell commands (cat, sed, gh pr diff, directory/file creation) via bash — legitimate but powerful
  • •Requires GitHub CLI authentication; PR diff content is untrusted external input that could contain prompt-injection text influencing generated output
  • •Reads repository-local files (.claude/style-guide.md, .claude/release-notes-template.md, package.json) whose contents shape agent behavior
  • •Writes files into release-notes/ based on version read from line 3 of package.json (brittle parsing, but low risk)
Comment cette analyse est faite

Exemples

Positional PR lists
/release-notes 12,34,56
Code and docs PRs with flags
/release-notes --code-prs 12,34 --docs-prs 78,90
Free-text request
What changed in this release? Code PRs: 101, 102 — docs PRs: 88.

name: release-notes description: > Use this skill when the user asks to "draft release notes", "write release notes", "generate release notes", or "create release notes for PRs". Triggers when the user provides PR numbers and wants a user-facing release notes document as output. Also triggers on "summarize these PRs for release" or "what changed in this release". version: 1.1.0 args:

  • name: code_prs description: > Comma-separated list of code/source PR numbers from this repository (e.g. "12,34,56"). Pass as the first positional argument or with --code-prs. required: false
  • name: docs_prs description: > Comma-separated list of documentation PR numbers (e.g. "78,90"). Pass as the second positional argument or with --docs-prs. Optional. required: false

Release Notes Skill

You are a Senior Technical Writer for a World of Tanks documentation tool. Your task is to draft polished, user-facing release notes by analyzing the diffs of PRs in this repository. The audience is Commanders and Tankers who manage modes — creating, updating, and removing them — so only include changes that are visible and relevant to that workflow.


Inputs

Parse the PR numbers from the skill arguments. The user may provide them in any of these forms:

  • /release-notes 12,34 78,90 — positional: code PRs first, docs PRs second
  • /release-notes --code-prs 12,34 --docs-prs 78,90 — named flags
  • /release-notes 12,34 — code PRs only (docs PRs are optional)
  • Free text in the conversation: "code PRs: 12, 34 — docs PRs: 78, 90"

If no code PRs are provided, ask the user to supply them before proceeding. Docs PRs are optional — if omitted, the release notes are drafted from code changes alone.


Phase 1 — Assimilate Context

Read both files before doing anything else. They define the non-negotiable rules for all output.

# Style guide — voice, tone, terminology, formatting rules
cat .claude/style-guide.md

# Release notes template — the exact structure your output must match
cat .claude/release-notes-template.md

Also read the current version from package.json (line 3) and derive the output filename:

# Read version
sed -n '3p' package.json

The version string uses the format x.x.x. Convert it to the file naming convention by replacing dots with hyphens: x-x-x.md. For example, version 1.2.3 → filename 1-2-3.md.

If either context file is missing, stop and inform the user before proceeding.


Phase 2 — Fetch PR Diffs

Run gh pr diff for every PR number provided. Fetch code PRs and docs PRs in parallel where possible.

gh pr diff <PR_NUMBER>

If docs PRs were provided, fetch them alongside the code PRs. If no docs PRs were provided, skip this step for docs — code-only drafting is valid.

If a gh pr diff call fails (PR not found, auth error), report the specific PR number and error, skip it, and continue with the rest. Note any skipped PRs in a warning at the top of the draft.


Phase 3 — Analyze & Filter

For each PR diff, examine changes under src/:

  • Identify: new feature, improvement, or bug fix
  • Determine whether the change is relevant to mode managers (create, update, remove modes, configure mode settings, mode-related UI/UX). If a change has no visible effect on this workflow — refactors, CI, internal tooling, unrelated features — omit it.
  • Note any breaking changes or migration steps a mode manager would need to take.

When docs PRs are provided

Use them as the authoritative source for user-facing language: adopt the terminology, feature names, and UI labels from the docs diffs. Let the docs framing shape how benefits are described.

When no docs PRs are provided

Infer user-facing language directly from the code changes. Describe what the Commander or Tanker can now do, see, or avoid — not what the code does internally. Apply all terminology rules from .claude/style-guide.md.

Synthesis rules

  • Lead with the Commander/Tanker benefit, not the implementation detail.
  • Group related changes from multiple PRs into a single entry when they deliver one capability together.
  • Use the terminology from .claude/style-guide.md as the source of truth for UI labels and feature names. Never use internal code identifiers (function names, class names, flag names).
  • Omit PR numbers, branch names, author names, and internal ticket IDs from the output.

Phase 4 — Draft the Release Notes

Fill in the template from .claude/release-notes-template.md exactly. Replace both x.x.x placeholders (in the frontmatter title and the # Version x.x.x heading) with the actual version string from package.json (dots, not hyphens — e.g. 0.1.0).

Apply all voice, tone, terminology, and formatting rules from .claude/style-guide.md. Consider this toolkit's name is WoT Utils. Replace any other names or definitions with WoT Utils, for example, instead of Pie-WoT-Utils, use WoT Utils.

Additional structural rules:

  • Entries within a section: most impactful change first.
  • Bug fixes: describe the symptom the Commander saw, not the root cause.
  • Breaking changes: call them out explicitly — never bury them in a list.
  • Omit any of the three sections (## New, ## Improved, ## Fixed) that have no entries rather than leaving them empty.

Phase 5 — Write the File

Write the completed release notes to:

release-notes/<version-with-hyphens>.md

For example, if package.json reports version 1.2.3, write to release-notes/1-2-3.md.

Create the release-notes/ directory if it does not exist. Do not output the release notes as a fenced block in the conversation — write the file directly.

If any PRs were skipped in Phase 2, prepend this warning at the top of the file:

> **Warning:** The following PRs could not be fetched and are excluded from these
> release notes: #XX, #YY. Verify manually before publishing.

Quick-reference checklist

  • [ ] Both context files read successfully.
  • [ ] Version read from package.json; x.x.x in template replaced; filename uses hyphens (x-x-x.md).
  • [ ] Every provided PR number fetched (or skipped with a warning).
  • [ ] Only mode-manager-relevant changes included.
  • [ ] Output structure matches .claude/release-notes-template.md exactly.
  • [ ] All terminology matches .claude/style-guide.md.
  • [ ] No PR numbers, author names, or internal identifiers in the output.
  • [ ] Empty sections omitted.
  • [ ] Breaking changes (if any) are prominently called out.
  • [ ] File written to release-notes/<version-with-hyphens>.md.

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/draft-release-notes-mrwakelg/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/draft-release-notes-mrwakelg' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/draft-release-notes-mrwakelg/download' --output '.skill-downloads/draft-release-notes-mrwakelg/SKILL.md.part' && mv '.skill-downloads/draft-release-notes-mrwakelg/SKILL.md.part' '.skill-downloads/draft-release-notes-mrwakelg/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

Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.

Claude Code
test -f '.skill-downloads/draft-release-notes-mrwakelg/SKILL.md' && test -s '.skill-downloads/draft-release-notes-mrwakelg/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/release-notes' && cp -R '.skill-downloads/draft-release-notes-mrwakelg' '.claude/skills/release-notes'

OpenSkills

OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.

Installation officielle d’OpenSkills
openskills install './.skill-downloads/draft-release-notes-mrwakelg'

openskills read 'draft-release-notes-mrwakelg'

La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.

Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.

openskills sync

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/draft-release-notes-mrwakelg/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