How to keep each app's user-facing changelog. Use when you ship a change a user would notice (a new feature, a visible improvement, a bug fix), when wiring the in-app "What's new" surface into a template, or when releasing pending changelog entries.
74
93%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Every template app keeps a CHANGELOG.md of user-facing changes that
renders in-app via the command menu (Cmd+K → "What's new") and on the settings
page. The flow mirrors changesets so it survives many agents working in
parallel: each change drops a small pending entry file, the in-app surface
reads pending files plus CHANGELOG.md, and a later release can roll those
pending files into dated CHANGELOG.md sections.
Add an entry whenever you ship something a user of that app would notice:
Do not add entries for refactors, internal tooling, tests, dependency bumps, or anything invisible to the end user. The changelog is product notes, not a commit log — write it the way you'd describe the change to a customer.
From the app directory (the template you changed):
agent-native changelog add "Recordings can be trimmed before sharing" --type added
agent-native changelog add "Faster transcript search" --type improved
agent-native changelog add "Fixed a crash when opening an empty folder" --type fixed--type is one of added, improved, fixed, changed, removed,
security (aliases like feature, bugfix, enhancement are accepted). This
writes changelog/<date>-<slug>.md — one file per change, so parallel work
never conflicts. You can also hand-write that file; the frontmatter is just:
---
type: added
date: 2026-06-23
---
Recordings can be trimmed before sharing.release stamps every pending entry into CHANGELOG.md under a dated
## <date> section (grouped by type) and deletes the pending files:
agent-native changelog release # uses today's date
agent-native changelog list # preview pending + releasedReleasing is usually done at deploy/merge time to keep the source tree tidy.
The in-app surface imports CHANGELOG.md?raw, and the core Vite plugin merges
adjacent changelog/*.md pending entries into that raw markdown at dev/build
time, so product notes become visible without waiting for a manual rollup.
Templates already get the rendering for free from @agent-native/core. To
expose it in an app:
Command menu — pass the app's own changelog to CommandMenu:
import changelog from "../CHANGELOG.md?raw";
// ...
<CommandMenu open={cmdkOpen} onOpenChange={setCmdkOpen} changelog={changelog}>
{/* existing groups */}
</CommandMenu>This adds a "What's new" entry with an unseen-release dot and an in-app dialog — no other wiring needed.
Settings (optional) — drop the card on the settings page:
import { ChangelogSettingsCard } from "@agent-native/core/client/changelog";
import changelog from "../CHANGELOG.md?raw";
// ...
<ChangelogSettingsCard markdown={changelog} />CHANGELOG.md?raw is inlined by Vite at build time, so this works on every
host with no server route or runtime file access.
agent-native changelog add "…".changelog to its CommandMenu and seed a
CHANGELOG.md.agent-native changelog release rolls
pending → dated sections and deletes the pending files.c1ee18b
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.