Offers a framework and content guidelines to draft and review release documentation for SDKs.
Install
mkdir -p .claude/skills/write-release-notes && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/5838" && unzip -o skill.zip -d .claude/skills/write-release-notes && rm skill.zipInstalls to .claude/skills/write-release-notes
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Writing release notes articles for tldraw SDK releases. Use when creating new release documentation, drafting release notes from scratch, or reviewing release note quality. Provides guidance on structure, voice, and content for release files in `apps/docs/content/releases/`.Key capabilities
- →Identify PRs merged between releases
- →Fetch PR details including titles and labels
- →Structure release notes with frontmatter and sections
- →Generate migration guides for breaking changes
- →Verify release note completeness and formatting
How it works
It lists merged PRs between versions, extracts details via GitHub CLI, and formats them into a structured MDX file with required migration guides.
Inputs & outputs
When to use write-release-notes
- →Writing SDK release notes
- →Drafting changelogs for tldraw
- →Reviewing release note quality
- →Structuring release documentation
About this skill
Write release notes
This skill covers how to write a complete release notes article for a published tldraw SDK release.
Location
All release files live in apps/docs/content/releases/.
| File | Purpose |
|---|---|
next.mdx | Accumulates changes for the upcoming release |
vX.Y.0.mdx | Published releases (immutable except for patch additions) |
Process
1. Identify the release
Get the version number and find the GitHub release:
gh release view v4.3.0
This shows the release date, tag, and any release notes from GitHub.
2. Find all PRs in the release
List PRs merged between the previous release and this one:
# Find commits between releases
git log v4.2.0..v4.3.0 --oneline --merges
# Or use gh to list PRs
gh pr list --state merged --base main --search "merged:2024-01-01..2024-02-01"
3. Fetch PR details
For each PR, get the full details:
gh pr view <PR_NUMBER> --json title,body,labels,author,baseRefName
Look for:
### Release notessection in PR body### API changessection in PR body- Labels indicating category (api, bugfix, improvement, etc.)
- Whether "breaking" appears in the PR
Important: Only include PRs whose baseRefName is main. PRs merged into feature branches (e.g. default-shape-customization) are not yet released — they will be included when the feature branch itself is merged to main.
4. Find patch releases
List any patch releases for this minor version:
gh release list | grep "v4.3"
For each patch release, find its PRs:
git log v4.3.0..v4.3.1 --oneline --merges
5. Write the article
Create apps/docs/content/releases/vX.Y.0.mdx following the style guide.
- Write the frontmatter with version, dates, and keywords
- Write a 1-2 sentence introduction summarizing highlights
- Create featured sections for major features and breaking changes
- List API changes, improvements, and bug fixes
- Add patch release sections if applicable
- Add GitHub release links
6. Write a migration guide for every breaking change
Every 💥 in the article needs a migration recipe. The tldraw-migrate skill drives off these recipes — it intentionally does not duplicate them in its own SKILL.md, because version-specific knowledge belongs next to the breaking change that introduced it. If the recipe is missing, agents and contributors performing the upgrade have to reverse-engineer it from type defs.
There are two acceptable forms:
For breaking changes with their own featured section (renames, replaced APIs, new patterns), add a <details><summary>Migration guide</summary> block under the section. Include before/after code and call out any silent-compile traps (props the typecheck won't reject, signatures with optional new parameters, etc.):
### 💥 Custom themes with display values
[Description of what changed and why]
<details>
<summary>Migration guide</summary>
`getDefaultColorTheme()` and `DefaultColorThemePalette` have been removed. Use `editor.getCurrentTheme().colors[colorMode]` instead:
```tsx
// Before
const theme = getDefaultColorTheme({ isDarkMode })
// After
const theme = editor.getCurrentTheme()
const colors = theme.colors[editor.getColorMode()]
```
</details>
For one-line 💥 entries in the API changes list, the bullet itself must contain the recipe — name the replacement and any caveats inline:
- ✅
💥 Replace TLDrawShapeSegment.points with the helper getPointsFromDrawSegment(segment, scaleX, scaleY) so segment points respect the shape's current scale. - ❌
💥 Remove TLDrawShapeSegment.points.(no replacement → reader has to guess)
A symbol that is removed without a replacement is a documentation bug — find the public alternative or, if there genuinely isn't one, say so explicitly so readers know to drop the call site rather than searching for a rename.
Special case — @public → @internal demotions: these compile but disappear from public types. They are still breaking changes for consumers who imported the symbol. Treat them like a removal: mark with 💥, name the public replacement, and explicitly tell readers not to reach for module augmentation to re-expose the demoted symbol.
7. Verify
Check that:
- All significant PRs are represented
- PR links are correct and formatted properly
- Community contributors are credited
- Breaking changes are marked with 💥
- Every
💥has either a migration guide block or an inline replacement (rungrep -nE '💥' apps/docs/content/releases/<file>.mdxand verify each bullet/section) - Sections are in the correct order
References
- Style guide: See
../shared/release-notes-guide.mdfor guidance on what a release notes article should contain and how to format it.
When not to use it
- →When the release version is not identified
- →When PRs are merged into feature branches instead of main
Prerequisites
Limitations
- →Only includes PRs merged into main
- →Requires manual verification of breaking change migration guides
How it compares
It enforces a standardized structure and requires migration recipes for breaking changes, unlike manual changelog writing.
Compared to similar skills
write-release-notes side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| write-release-notes (this skill) | 1 | 3mo | Review | Intermediate |
| docs-write | 22 | 6mo | No flags | Beginner |
| content-research-writer | 15 | 10mo | No flags | Beginner |
| doc-coauthoring | 16 | 8mo | No flags | Beginner |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by tldraw
View all by tldraw →You might also like
docs-write
metabase
Write documentation following Metabase's conversational, clear, and user-focused style. Use when creating or editing documentation files (markdown, MDX, etc.).
content-research-writer
ComposioHQ
Assists in writing high-quality content by conducting research, adding citations, improving hooks, iterating on outlines, and providing real-time feedback on each section. Transforms your writing process from solo effort to collaborative partnership.
doc-coauthoring
anthropics
Guide users through a structured workflow for co-authoring documentation. Use when user wants to write documentation, proposals, technical specs, decision docs, or similar structured content. This workflow helps users efficiently transfer context, refine content through iteration, and verify the doc works for readers. Trigger when user mentions writing docs, creating proposals, drafting specs, or similar documentation tasks.
research-grants
davila7
Write competitive research proposals for NSF, NIH, DOE, and DARPA. Agency-specific formatting, review criteria, budget preparation, broader impacts, significance statements, innovation narratives, and compliance with submission requirements.
teams-channel-post-writer
daymade
Creates educational Teams channel posts for internal knowledge sharing about Claude Code features, tools, and best practices. Applies when writing posts, announcements, or documentation to teach colleagues effective Claude Code usage, announce new features, share productivity tips, or document lessons learned. Provides templates, writing guidelines, and structured approaches emphasizing concrete examples, underlying principles, and connections to best practices like context engineering. Activates for content involving Teams posts, channel announcements, feature documentation, or tip sharing.
write-docs
tldraw
Writing SDK documentation for tldraw. Use when creating new documentation articles, updating existing docs, or when documentation writing guidance is needed. Applies to docs in apps/docs/content/.