Conventional commits along with Release Please: https://github.com/googleapis/release-please-action
I've used feat/feat(pub):, fix/fix(pub):, etc before to automatically separate changelogs into internal/public.