Create or update release notes for changes in the current branch using Reno, following dd-trace-py's conventions and the guidelines in docs/releasenotes.rst.
Installation
Details
Usage
After installing, this skill will be available to your AI coding assistant.
Verify installation:
skills listSkill Instructions
name: releasenote description: > Create or update release notes for changes in the current branch using Reno, following dd-trace-py's conventions and the guidelines in docs/releasenotes.rst. allowed-tools:
- Bash
- Read
- Grep
- Glob
- TodoWrite
When to Use This Skill
Use this skill whenever:
- The user asks to create a new release note.
- The user asks to update or modify an existing release note.
- The user wants a summary of changes that is intended to be inserted into a release note file.
Key Principles
- Follow strictly the conventions described in
docs/releasenotes.rstand any Reno-related docs in the repo. - ALWAYS use
riot(notrenodirectly) to generate the new release note skeleton. - If the user does not specify the release-note category (
feature,bugfix,deprecation,breaking-change,misc, etc.), ask first. - Release notes must:
- Be one Reno fragment per change / PR, unless the change explicitly belongs inside an existing release note.
- Use a slug that is short, clear, and uses hyphens.
- Appear under
releasenotes/notes/with a.yamlsuffix.
- If updating an existing fragment, search for a fragment that matches the topic or ticket before creating a new one.
- Ensure the wording is:
- Clear, concise, and user-facing.
- Describes what changed and why users should care.
- Avoids internal-only terminology unless necessary.
Interaction Rules
-
Before creating anything:
- Confirm the category.
- Confirm the title-slug if the user hasn't provided one.
- Confirm whether the release note is for a new fragment or an update.
-
If the user wants to modify a note:
- Search for the matching fragment using
ls releasenotes/notes/or grep keywords. - Open the file and update only the content the user mentions.
- Search for the matching fragment using
Quick Start
Create a new release note
riot run reno new <title-slug>
After creation, modify the generated YAML fragment to include the content under the correct section:
features:
- |
<description of the new feature>
# or
fixes:
- |
<description of the bug fix>
List existing release notes
ls releasenotes/notes/
Find a release note containing a keyword
grep -R "<keyword>" releasenotes/notes/
Best Practices for Note Content
- Start with an action verb: Add…, Fix…, Improve…, Deprecate…
- Reference PR or issue numbers only if relevant (e.g., "(#12345)").
- If the change requires user action, highlight it clearly.
- Avoid long paragraphs; prefer concise bullet-style explanations.
Optional Enhancements
If you want, you can add:
Validation checks
- Ensure the repo is clean (
git status). - Confirm that the working directory is at the repo root.
- Warn if a release note already exists for the same issue/PR.
Automation scaffolding
- Automatically propose a slug from the branch name.
- Suggest the best category based on commit diff keywords.
If you'd like, I can also:
✔ generate a stricter version (more guardrails) ✔ generate a shorter version (minimal skill spec) ✔ help you convert this to Anthropic’s new "Tool Use Skills" format ✔ help you create automated tests or examples for this skill
Just tell me!
When to Use This Skill
Use this skill when:
- You are asked to create a new release note
- You are asked to update an existing release note
Key Principles
- Strictly follow what is described in docs/releasenotes.rst
- ALWAYS use riot to generate the new release note
- If the user does not specify it, ask whether it is a fix, a feature, etc.
Quick Start
Create the release note:
riot run reno new <title-slug>
More by DataDog
View allCompare CPython source code between two Python versions to identify changes in headers and structs. Use this when adding support for a new Python version to understand what changed between versions.
Find all CPython internal headers and structs used in the codebase, particularly for profiling functionality. Use this when adding support for a new Python version to identify what CPython internals we depend on.
Validate code changes by intelligently selecting and running the appropriate test suites. Use this when editing code to verify changes work correctly, run tests, validate functionality, or check for regressions. Automatically discovers affected test suites, selects the minimal set of venvs needed for validation, and handles test execution with Docker services as needed.
Run targeted linting, formatting, and code quality checks on modified files. Use this to validate code style, type safety, security, and other quality metrics before committing. Supports running all checks or targeting specific checks on specific files for efficient validation.