Automated summary
Drafts user-facing release notes from pull request diffs, filtering code and documentation changes through a repository-specific style guide and template.
Strengths
- Always reads the style guide and release notes template first, making voice, tone and structure non-negotiable
- Accepts PR numbers positionally or through named flags, with documentation PRs treated as optional
- Drops internal-only changes (refactors, CI, tooling) that mode managers would never notice
- Derives the output filename from the package.json version and keeps going when a diff fails, flagging the skipped PR
Limitations
- Tightly coupled to one repository layout: .claude/style-guide.md, .claude/release-notes-template.md, the third line of package.json, and analysis under src/
- Requires an authenticated gh CLI with access to the PRs; the skill stops if the context files are missing
- The provided SKILL.md stops after analysis — review and publishing steps are not described
Use it when you have a list of PR numbers and need a polished release notes draft for commanders who manage modes.
Avoid it on repositories without the .claude style guide and template, or when the PRs cannot be reached through gh.
Security analysis
CautionThe 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.
- •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)
Examples
/release-notes 12,34,56/release-notes --code-prs 12,34 --docs-prs 78,90What 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.mdas 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.xin 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.mdexactly. - [ ] 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.
From the file to a first result
The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.
View the source and supporting filesThis download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.
1. Download the file
Download SKILL.mdFrom the root of a test project, save the file as .skill-downloads/draft-release-notes-mrwakelg/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.
Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.
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. Check prerequisites
Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.
No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.
The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.
3. Load the skill
After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.
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 must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.
Official OpenSkills installationopenskills install './.skill-downloads/draft-release-notes-mrwakelg'openskills read 'draft-release-notes-mrwakelg'Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.
For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.
openskills syncManual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.
4. Try a first task
Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:
Read .skill-downloads/draft-release-notes-mrwakelg/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.
Supabase Docs Authoring
Documentation
Write, edit, and review Supabase documentation content including guides, tutorials, reference docs, and partials. Follow style guides and MDX/TOML validation rules.
Create Architecture Decision Record
Documentation
Create a new Architecture Decision Record with sequential numbering, register it in the AgentDB graph, and link related ADRs.
Plan update with deep research
Documentation
Updates a plan document by launching parallel subagents to analyze a topic across all compiler passes, then consolidates findings into the plan doc.