Skip to content

Commit f581aad

Browse files
committed
feat: add Release Note Writer skill for drafting bilingual GitHub release notes
1 parent 6129f10 commit f581aad

2 files changed

Lines changed: 87 additions & 0 deletions

File tree

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
---
2+
name: release-note-writer
3+
description: Create user-facing GitHub release notes from real git evidence. Use when asked to compare git tags, branches, commits, or version ranges such as v0.1.0...v0.1.1 and draft release notes, changelogs, or bilingual release summaries that emphasize product-visible Features, Optimizations, and Fixes while excluding README-only, version-bump, CI, template, and internal-only noise.
4+
---
5+
6+
# Release Note Writer
7+
8+
## Overview
9+
10+
Draft release notes from the actual repository diff, not from guesses. Keep the output suitable for a GitHub Release page and focused on what users, admins, operators, or integrators can observe.
11+
12+
## Workflow
13+
14+
1. Confirm the comparison target.
15+
- Use the user-provided range exactly when present, for example `v0.1.0...v0.1.1`.
16+
- Check that refs exist with `git tag --list`, `git rev-parse`, or `git log --oneline --decorate <range>`.
17+
- Inspect worktree state with `git status --short`, but do not include unrelated local dirt in release content unless the user explicitly asks for it.
18+
19+
2. Gather evidence from git.
20+
- Start broad: `git log --oneline --decorate <range>`, `git diff --name-status <range>`, and `git diff --stat <range>`.
21+
- Read focused diffs for likely product behavior. Prefer files under application, API, route, service, UI, i18n, and shared client layers.
22+
- Use `rg` to locate labels, routes, settings, and UI strings that reveal user-facing behavior.
23+
- When commit messages and code disagree, trust the code.
24+
25+
3. Filter the content.
26+
- Include: new capabilities, changed workflows, admin/user controls, integrations, validation behavior, visible errors, security-relevant behavior users must know, performance or reliability improvements that affect use.
27+
- Exclude unless explicitly requested: README/docs-only edits, version bumps, generated docs, CI workflow changes, issue templates, config-example-only edits, tests, refactors with no behavior change, dependency churn, formatting, and internal implementation details.
28+
- Collapse several low-level changes into one release-note item when they support the same user-facing outcome.
29+
30+
4. Classify each item.
31+
- `Feature`: new or newly exposed product capability.
32+
- `Optimization`: improved workflow, behavior, compatibility, validation clarity, reliability, or management experience.
33+
- `Fixed`: resolved defect, incorrect behavior, missing error handling, broken display, or mismatch.
34+
- If an item could fit multiple sections, choose the section most useful to a release reader.
35+
36+
5. Write in a popular-project release style.
37+
- Use short bullets with concrete product nouns.
38+
- Use restrained emoji in headings or major bullets only.
39+
- Avoid implementation jargon, commit hashes, and file paths unless the user asks for evidence.
40+
- Prefer active, user-facing wording: "Added Projects for organizing conversations" instead of "Implemented project APIs".
41+
- Keep release-note text concise; do not over-explain.
42+
43+
## Output Format
44+
45+
When the user asks for English plus Chinese, put English first, then a Chinese version. Use exactly these three sections unless the user requests a different structure:
46+
47+
```markdown
48+
## <version> Release Notes
49+
50+
### ✨ Feature
51+
- ...
52+
53+
### ⚡ Optimization
54+
- ...
55+
56+
### 🐛 Fixed
57+
- ...
58+
59+
---
60+
61+
## <version> 中文版本
62+
63+
### ✨ Feature
64+
- ...
65+
66+
### ⚡ Optimization
67+
- ...
68+
69+
### 🐛 Fixed
70+
- ...
71+
```
72+
73+
## Quality Checks
74+
75+
- Ensure every bullet is backed by the inspected git range.
76+
- Ensure no README-only, version-bump, template-only, or config-example-only item appears unless the user explicitly requested it.
77+
- Ensure Feature, Optimization, and Fixed are all present. If one section has no meaningful user-facing items, include the heading and write `- None.` only if the user requires the section.
78+
- Ensure the Chinese version matches the English version in meaning, not necessarily word-for-word.
79+
- Do not run development servers or long-lived services just to draft release notes.
80+
81+
## Example Request
82+
83+
User: "Compare `v0.1.0...v0.1.1`; draft a GitHub Release Note with Feature, Optimization, Fixed sections, English first and Chinese after it."
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
interface:
2+
display_name: "Release Note Writer"
3+
short_description: "Draft user-facing GitHub release notes"
4+
default_prompt: "Use $release-note-writer to compare a git version range and draft bilingual GitHub release notes."

0 commit comments

Comments
 (0)