Goal
Produce a complete, user-facing changelog for the current in-development app version and update the appropriate CHANGELOG.md accordingly.
When to use
- You need to generate or refresh the changelog for the current dev version.
- The summary must include all changes since the previous release tag, including uncommitted work.
Inputs and sources
- App version (heuristic):
crates/app/tauri.conf.json(version).packages/tauri/src-tauri/tauri.conf.json(version).tauri.conf.json(repo root or first match via search).package.json(version) as a fallback when no Tauri config exists.
- Previous release tag: the latest reachable release tag in git history.
- Changes since tag: commit logs + file diffs + uncommitted working tree changes.
- Changelog file (heuristic):
crates/app/CHANGELOG.md.CHANGELOG.mdat repo root.packages/tauri/CHANGELOG.mdorpackages/app/CHANGELOG.mdif present.
Workflow
- Read the current app version using the heuristic order above. This is the target section in the changelog.
- Identify the previous release tag.
- Preferred:
git describe --tags --abbrev=0. - If ambiguous or no tag is found, list tags with
git tag --sort=-creatordateand ask the user to pick the correct release tag.
- Preferred:
- Collect the full change set (including uncommitted changes).
- Commit log:
git log <tag>..HEAD --reverse. - File-level changes:
git log <tag>..HEAD --name-status. - Diff for details:
git diff <tag>..HEAD. - Uncommitted changes:
git status --porcelain,git diff,git diff --staged.
- Commit log:
- Summarize changes into user-facing items only.
- Include only changes that impact users (features, UI, behavior, fixes).
- Exclude internal-only work (tests, refactors without behavior change, tooling, CI, internal-only docs).
- Update the selected
CHANGELOG.md.- If the target version section already exists, replace it with a full, up-to-date section. Each invocation must be a full refresh for that version.
- Keep the version order descending (newest first) and follow the existing formatting style.
Categorization rules
Use these sections in this order and omit any empty section:
- Added
- Changed
- Fixed
Guidance:
- Added: new capabilities, new screens, new features users can now use.
- Changed: behavior or UX changes, settings changes, performance improvements users can notice.
- Fixed: bug fixes or incorrect behavior users might have experienced.
- If a change cannot be clearly categorized, ask the user to choose the section.
Highlight rule
If there is a major milestone or standout feature, add a short highlight paragraph directly under the version header and above any section headers.
Output format
Follow the existing Markdown style in the selected CHANGELOG.md.
Example skeleton:
## 0.0.x
A short highlight paragraph (only if truly major).
### Added
- User-facing addition.
### Changed
- User-facing change.
### Fixed
- User-facing fix.
Links
Use Markdown links if an item needs more explanation. The update dialog supports links.
Notes
- Always include uncommitted changes in the summary. If the inclusion is uncertain, confirm with the user.
- Do not invent changes. Every bullet must be traceable to the collected logs/diffs.