write-release-notes

작성자: tldraw

tldraw SDK 릴리스를 위한 릴리스 노트 문서를 작성합니다. 새로운 릴리스 문서를 만들거나, 처음부터 릴리스 노트를 초안 작성하거나, 릴리스를 검토할 때 사용합니다.

npx skills add https://github.com/tldraw/tldraw --skill write-release-notes

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/.

FilePurpose
next.mdxAccumulates changes for the upcoming release
vX.Y.0.mdxPublished 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 notes section in PR body
  • ### API changes section 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.

  1. Write the frontmatter with version, dates, and keywords
  2. Write a 1-2 sentence introduction summarizing highlights
  3. Create featured sections for major features and breaking changes
  4. List API changes, improvements, and bug fixes
  5. Add patch release sections if applicable
  6. 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 (run grep -nE '💥' apps/docs/content/releases/<file>.mdx and verify each bullet/section)
  • Sections are in the correct order

References

  • Style guide: See ../shared/release-notes-guide.md for guidance on what a release notes article should contain and how to format it.

tldraw의 다른 스킬

write-example
tldraw
tldraw SDK 예제 앱을 위한 예제 작성. 새로운 예제를 만들거나, SDK 데모를 추가하거나, apps/examples에서 예제 코드를 작성할 때 사용합니다.
official
write-issue
tldraw
tldraw 저장소에서 GitHub 이슈를 작성하고 유지 관리하기 위한 참조 표준입니다. 다른 스킬이나 워크플로우가 이슈가 필요할 때 지원 지침으로 사용하세요.
official
write-pr
tldraw
tldraw 저장소에서 풀 리퀘스트 제목과 설명을 작성하기 위한 참조 표준입니다. 다른 스킬이나 워크플로우가 필요할 때 지원 지침으로 사용됩니다...
official
write-tbp
tldraw
tldraw 기능과 구현 세부 사항에 관한 기술 블로그 포스트를 작성합니다. tldraw가 흥미로운 문제를 해결하는 방법에 대한 블로그 콘텐츠를 만들 때 사용하세요.
official
write-unit-tests
tldraw
tldraw SDK에 대한 단위 테스트 및 통합 테스트를 작성합니다. packages/editor 또는...에서 새 테스트를 만들거나, 테스트 커버리지를 추가하거나, 실패하는 테스트를 수정할 때 사용합니다.
official
clean-copy
tldraw
현재 브랜치를 깔끔하고 서사적인 품질의 git 커밋 기록을 가진 새 브랜치로 재구현합니다. 깔끔한 복사 브랜치를 만들거나 커밋을 정리하라는 요청이 있을 때 사용하세요.
official
commit-changes
tldraw
현재 변경 사항에 대한 git 커밋을 생성합니다. 커밋 요청, 커밋 생성, 커밋 메시지 생성, 또는 현재 작업 트리를 커밋하라는 요청을 받았을 때 사용합니다.
official
issue
tldraw
사용자 설명을 바탕으로 tldraw 저장소에 GitHub 이슈를 생성하고 조사합니다. 사용자가 이슈를 언급하거나, 이슈 생성을 요청하거나, 버그를 신고할 때 사용합니다.
official