| name | yaak-changelog |
| description | Create or edit Yaak changelogs. Beta and draft prerelease changelogs live only in the GitHub release body; stable release changelogs live in `src/content/changelog/YYYYMMDD_VERSION/`. Use when Codex needs to update a beta GitHub release body, generate a stable website changelog from beta releases, update `_release.yaml` or `_intro.md`, expand major entries into markdown files, or preserve Yaak's changelog writing style. |
Yaak Changelog
Use this skill to create Yaak changelogs in the correct place:
- Beta or draft prerelease changelogs live only on the GitHub release.
- Stable release changelogs live in website files under
src/content/changelog/YYYYMMDD_VERSION/.
Workflow
- Identify the target release.
- If the target tag contains
-beta or the GitHub release is a draft prerelease, update the GitHub release body only. Do not create or edit src/content/changelog/ files for beta releases.
- For a new stable changelog, gather all beta release notes for that version since the previous stable release, then create or edit website changelog files.
- Prefer
gh api or GitHub release pages. If network access is restricted, request permission before querying GitHub.
- Extract PR numbers and
yaak.app/feedback URLs while fetching. If most bullets do not include PR references, fetch again with a more specific prompt.
- Fetch PR authors when generating or revising release notes. Include contributor attribution for non-
@gschier PR authors.
- Parse release bullets.
- Treat each release-note bullet as one changelog entry.
- Skip dependency-only, generated, build-only, test-only, CI-only, and internal maintenance bullets unless they have a clear user-facing impact that can be described in user terms.
- For stable website changelogs, skip bullets prefixed with
[beta-only].
- Preserve the entry wording closely. Remove wrapping quotes from titles.
- Map categories to
feature, fix, improvement, or breaking.
- Convert
#NNN into https://github.com/mountain-loop/yaak/pull/NNN.
- For beta or draft prerelease changelogs, update the GitHub release.
- Keep the changelog in the GitHub release body. Do not create a website changelog directory.
- Do not add a changelog badge or link to
yaak.app/changelog/VERSION for beta releases.
- Prefer concise bullets with PR links and feedback links when available.
- When a bullet has a feedback URL, wrap the changelog item text itself in the feedback link, then put the PR link after it. Example:
- [Fixed request history timestamps](https://yaak.app/feedback/posts/request-history-time-stamp) in [#492](https://github.com/mountain-loop/yaak/pull/492).
- Append
by [@handle](https://github.com/handle) to PR-backed bullets authored by external contributors. Do not append by @gschier for @gschier PRs.
- Include a
**Full Changelog** comparison link using the previous beta tag when it exists, or the previous stable tag for beta.1.
- Use
gh release edit TAG --repo mountain-loop/yaak --notes-file ... or the GitHub release API to update the draft/prerelease body.
- Stop after verifying the GitHub release body. The website checks below do not apply.
- For stable website changelogs, create or edit the release directory.
- Path format:
src/content/changelog/YYYYMMDD_VERSION/.
- For a new release, use today's date for
YYYYMMDD.
- For an existing release, keep the original directory date.
- Do not create changelog directories for beta releases.
- Write
_release.yaml.
- Include
draft, optional title, summary, image, youtube, and entries.
- Keep minor items as quick entries without
content.
- Use
content only when an entry needs its own markdown section.
title: "What's New in 2026.1.0"
summary: "Brief overview of the most important additions and fixes"
draft: true
entries:
- title: "Request debugging"
category: feature
pr: "https://github.com/mountain-loop/yaak/pull/123"
feedback: "https://feedback.yaak.app/p/request-debugging"
content: "request-debugging.md"
- title: "Fix broken cookie clearing"
category: fix
pr: "https://github.com/mountain-loop/yaak/pull/124"
- Expand major entries.
- Expand 3 to 6 major items when enough context exists.
- Create slugified markdown files and reference them with
content.
- Read the related PR before writing expanded content.
- Add emoji prefixes only for expanded entry titles if it helps distinguish major sections.
- Handle images.
- Reuse screenshots from PRs when they exist.
- Convert GitHub private attachment URLs to
https://github.com/user-attachments/assets/UUID before upload.
- Upload with
go run cmd/yaakadmin/main.go upload "URL" when the environment permits it.
- If no real image is available, use a placeholder with real alt text and a caption.
- Write
_intro.md.
- Add a short overview paragraph at the top of the release.
- Focus on the major themes across the release instead of repeating every bullet.
- Follow Yaak writing style.
- Be direct and factual. Avoid hype.
- State what changed and how to use it.
- Keep paragraphs short.
- Use backticks for code symbols, settings, and literal values.
- Use bold sparingly for the most important phrase in a section.
File Rules
- Beta releases must not create or edit files in
src/content/changelog/.
- Main files are
_release.yaml and optional _intro.md.
- Expanded entry files are regular markdown files such as
request-debugging.md.
entries[].content must match an existing markdown filename in the same directory.
- Images for changelog pages live under
static/changelog/VERSION/ when committed to the repo.
Checks
- For beta releases, verify
gh release view TAG --repo mountain-loop/yaak --json body,tagName,isDraft,isPrerelease and ensure no website changelog files were created.
- For beta releases, verify feedback-backed bullets use the feedback URL as the link target for the whole item text, not as a separate trailing
Feedback: link.
- For stable releases, ensure each user-facing source bullet becomes exactly one changelog entry unless it is
[beta-only] or dependency-only/internal maintenance.
- Ensure most entries include
pr when the source release notes provide one.
- For stable releases, ensure every referenced
content file exists.
- If the user wants stable website verification, run the site and inspect
/changelog/VERSION and /rss.xml.