Skip to content

Commit 2366f2d

Browse files
authored
chore(ai): release note skills (#15523)
Add a Claude skill to help in the release note process
1 parent 6ffbd4a commit 2366f2d

File tree

1 file changed

+143
-0
lines changed

1 file changed

+143
-0
lines changed
Lines changed: 143 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,143 @@
1+
---
2+
3+
name: releasenote
4+
description: >
5+
Create or update release notes for changes in the current branch using Reno,
6+
following dd-trace-py's conventions and the guidelines in docs/releasenotes.rst.
7+
allowed-tools:
8+
- Bash
9+
- Read
10+
- Grep
11+
- Glob
12+
- TodoWrite
13+
14+
---
15+
16+
## When to Use This Skill
17+
18+
Use this skill whenever:
19+
20+
* The user asks to create a new release note.
21+
* The user asks to update or modify an existing release note.
22+
* The user wants a summary of changes that is intended to be inserted into a release note file.
23+
24+
---
25+
26+
## Key Principles
27+
28+
* Follow strictly the conventions described in `docs/releasenotes.rst` and any Reno-related docs in the repo.
29+
* ALWAYS use `riot` (not `reno` directly) to generate the new release note skeleton.
30+
* If the user does not specify the release-note category (`feature`, `bugfix`, `deprecation`, `breaking-change`, `misc`, etc.), ask first.
31+
* Release notes must:
32+
* Be one Reno fragment per change / PR, unless the change explicitly belongs inside an existing release note.
33+
* Use a slug that is short, clear, and uses hyphens.
34+
* Appear under `releasenotes/notes/` with a `.yaml` suffix.
35+
* If updating an existing fragment, search for a fragment that matches the topic or ticket before creating a new one.
36+
* Ensure the wording is:
37+
* Clear, concise, and user-facing.
38+
* Describes *what changed* and *why users should care*.
39+
* Avoids internal-only terminology unless necessary.
40+
41+
## Interaction Rules
42+
43+
* Before creating anything:
44+
45+
1. Confirm the category.
46+
2. Confirm the title-slug if the user hasn't provided one.
47+
3. Confirm whether the release note is for a new fragment or an update.
48+
49+
* If the user wants to modify a note:
50+
* Search for the matching fragment using `ls releasenotes/notes/` or grep keywords.
51+
* Open the file and update only the content the user mentions.
52+
53+
54+
## Quick Start
55+
56+
### Create a new release note
57+
58+
```bash
59+
riot run reno new <title-slug>
60+
```
61+
62+
After creation, modify the generated YAML fragment to include the content under the correct section:
63+
64+
```yaml
65+
features:
66+
- |
67+
<description of the new feature>
68+
69+
# or
70+
71+
fixes:
72+
- |
73+
<description of the bug fix>
74+
```
75+
76+
### List existing release notes
77+
78+
```bash
79+
ls releasenotes/notes/
80+
```
81+
82+
### Find a release note containing a keyword
83+
84+
```bash
85+
grep -R "<keyword>" releasenotes/notes/
86+
```
87+
88+
---
89+
90+
## Best Practices for Note Content
91+
92+
* Start with an action verb: *Add…*, *Fix…*, *Improve…*, *Deprecate…*
93+
* Reference PR or issue numbers only if relevant (e.g., "(#12345)").
94+
* If the change requires user action, highlight it clearly.
95+
* Avoid long paragraphs; prefer concise bullet-style explanations.
96+
97+
---
98+
99+
## Optional Enhancements
100+
101+
If you want, you can add:
102+
103+
### Validation checks
104+
105+
* Ensure the repo is clean (`git status`).
106+
* Confirm that the working directory is at the repo root.
107+
* Warn if a release note already exists for the same issue/PR.
108+
109+
### Automation scaffolding
110+
111+
* Automatically propose a slug from the branch name.
112+
* Suggest the best category based on commit diff keywords.
113+
114+
---
115+
116+
If you'd like, I can also:
117+
118+
✔ generate a stricter version (more guardrails)
119+
✔ generate a shorter version (minimal skill spec)
120+
✔ help you convert this to Anthropic’s new "Tool Use Skills" format
121+
✔ help you create automated tests or examples for this skill
122+
123+
Just tell me!
124+
125+
126+
## When to Use This Skill
127+
128+
Use this skill when:
129+
- You are asked to create a new release note
130+
- You are asked to update an existing release note
131+
132+
## Key Principles
133+
134+
- Strictly follow what is described in docs/releasenotes.rst
135+
- ALWAYS use riot to generate the new release note
136+
- If the user does not specify it, ask whether it is a fix, a feature, etc.
137+
138+
## Quick Start
139+
140+
Create the release note:
141+
```bash
142+
riot run reno new <title-slug>
143+
```

0 commit comments

Comments
 (0)