gitlab-changelog-releaselisted
Install: claude install-skill educlopez/mallard
# GitLab Changelog + Release (manual flow)
Two valid approaches — **pick based on what the repo's commit history
already uses**, don't mix them:
| Repo's commit convention | Use |
|---|---|
| Conventional Commits (`feat:`, `fix:`, `docs:`...) — most Cinetic repos | **Path A — git-cliff** |
| `Changelog: added/fixed/changed/...` Git trailers | **Path B — GitLab native Changelog API** |
**They are not interchangeable.** GitLab's native Changelog API
(`/repository/changelog`) and `glab changelog generate` ONLY read `Changelog:`
trailers — they do NOT parse `feat:`/`fix:` prefixes at all. Point either one
at a repo that only has Conventional Commits and it silently finds nothing
(tested live: returned `"No changes."` on a repo with 187 `feat:`/`fix:`
commits and zero trailers). Verified against
[GitLab's own Changelogs docs](https://docs.gitlab.com/user/project/changelogs/) —
no config exists to make the native API match commit-title prefixes instead
of trailers. Check `git log --oneline -20` before picking a path: if you see
`feat(...)`/`fix(...)` etc, use Path A; if commits end with a `Changelog:
added` line, use Path B.
## Why manual, not CI
GitLab.com tag-push pipeline creation was tested exhaustively on a real
Cinetic project and found completely non-functional — not a config bug on
our side. Proof: a job with **no `rules:` at all** (unconditional, should
always run) still produced **zero pipeline objects** on a plain push to the
default branch. That rules out YAML, `ru