Auto-drafted Release Notes

SiftPulse reads your merged PRs, groups them by type (features, fixes, internal), highlights the most impactful changes, and creates a draft GitHub Release in one click — ready for you to edit and publish.

GitHub only. Bitbucket support is coming in a future cycle. The draft release is saved as unpublished on GitHub — you control when it goes public.

How to use it

1
Open your dashboard
Go to /app and scroll to the Release notes section.
2
Choose a repo and date range
Select the repo from the dropdown, optionally enter a tag name (e.g. v1.2.0), and choose how far back to look — 7, 14, 30, 60, or 90 days. Default is 14 days.
3
Click "Draft release notes"
The agent fetches merged PRs (excluding bots), clusters them by Conventional Commit type, picks highlights by code impact, generates markdown via AI, and creates a draft GitHub Release. This takes 10–30 seconds. You'll get a link to the draft and an email confirmation.
4
Edit and publish on GitHub
The draft is saved as an unpublished release on your GitHub repo. Edit it however you like, then hit "Publish release" when ready.

Example output

## ✨ Highlights - **feat: Add real-time collaboration** (#142) - **fix: Race condition in payment flow** (#138) - **perf: 40% faster query execution** (#135) ## ✨ What's new - feat: Add real-time collaboration (#142) @alice - feature: Export to CSV from all tables (#140) @bob ## 🐛 Bug fixes - fix: Race condition in payment flow (#138) @alice - fix: Search results missing after filter (#136) @charlie ## ⚡ Performance - perf: 40% faster query execution (#135) @bob ## 🔧 Internal - chore: Upgrade to Node 22 (#139) @alice - ci: Parallelise test suite (#133) @charlie

How PRs are grouped

SiftPulse first checks for a Conventional Commit prefix in the PR title. If none is found, it falls back to keyword inference.

GroupCC prefixesKeyword fallback
✨ What's newfeat, featureadd, new, implement, support, enable
🐛 Bug fixesfix, bugfix, hotfixfix, resolve, close, bug, crash, error
⚡ Performanceperf, performanceperf, speed, optimize, faster, latency
🔒 Securitysecurity, secsecur, cve, vuln, xss, inject
♻️ Refactorsrefactor, refac, reworkrefactor, clean, restructure, simplify
📚 Documentationdocs, docdoc, readme, comment, changelog
🔧 Internalchore, build, ci, test, style, deps, wip(catch-all)

Highlights selection

The top 3 highlighted PRs are chosen by raw code impact: additions + deletions. PRs that touch the most lines tend to represent the biggest changes. The AI then generates a short callout description for each.

YAML configuration

You can opt into automatic weekly drafts via your .siftpulse.yml:

release_notes: enabled: true schedule: weekly # Options: weekly | on_tag | disabled (default) tag_prefix: "v" # Optional: prefix for auto-generated tag names
YAML support coming soon. The dashboard button is live now. Scheduled auto-drafts on merge or weekly cadence are on the roadmap.

Frequently asked questions

Does it include bot PRs?

No. Dependabot, Renovate, Greenkeeper, and any GitHub Bot accounts are automatically excluded.

What if a PR has no Conventional Commit prefix?

The agent uses keyword inference on the title. Completely ambiguous PRs end up in the "Other changes" bucket.

Can I regenerate a draft?

Yes — just click "Draft release notes" again with the same parameters. A new GitHub draft release will be created. Old drafts remain on GitHub until you delete them.

Does it work with private repos?

Yes, as long as SiftPulse has been installed on that repo via the GitHub App. The agent uses your installation token — the same one used for PR reviews.

Is Bitbucket supported?

Not yet. GitHub only for this cycle. Bitbucket support is coming — follow the changelog.