Context
During the v0.2.8 release, PR #97 (chore(repo): merge dev to main — seeder phases 1+2 + ci/docs hardening) merged but release-please skipped the bump (see #98 for the recovery story).
Root cause
gh pr merge --merge uses the PR title as the merge-commit subject. The PR title chore(repo): merge dev to main — ... is a valid conventional commit of type chore, which per .claude/rules/versioning.md does NOT bump. release-please saw a single non-bumping commit since the last release and skipped.
Prior dev→main releases (e.g. PR #80, merged via the GitHub web UI) used GitHub's default merge subject Merge pull request #N from <branch> — non-conventional → release-please traverses the underlying commits.
What to add to docs/_base/RUNBOOKS.md
A new "Common Incidents" entry (or subsection under "Release / Rollback"):
release-please skipped the bump after a dev → main merge
Symptoms: CD Release workflow run on main completes in ~10s without opening a Release PR; release-please log shows No user facing commits found since <sha> - skipping.
Root cause: The merge-commit subject was a valid conventional commit of a non-bumping type (chore, docs, refactor, test, ci). release-please reads the merge-commit subject and stops there.
Diagnosis: git log origin/main -1 --format='%s' — if the subject parses as a valid Conventional Commits prefix, that's the trap.
Prevention:
- Merge dev → main via the GitHub web UI (uses default
Merge pull request #N from <branch> subject — non-conventional).
- Or pass an explicit non-conventional subject:
gh pr merge <N> --merge --subject "Merge pull request #<N> from w7-mgfcode/dev".
- If using
gh pr merge --merge with default behavior, title the PR with a feat: or fix: type so release-please bumps regardless.
Recovery (after the trap fires): Open a follow-up PR with an empty feat(release): commit referencing a release-prep issue (see #98 for an example), admin-merge it, and release-please will bump correctly.
Acceptance
Context
During the v0.2.8 release, PR #97 (
chore(repo): merge dev to main — seeder phases 1+2 + ci/docs hardening) merged but release-please skipped the bump (see #98 for the recovery story).Root cause
gh pr merge --mergeuses the PR title as the merge-commit subject. The PR titlechore(repo): merge dev to main — ...is a valid conventional commit of typechore, which per.claude/rules/versioning.mddoes NOT bump. release-please saw a single non-bumping commit since the last release and skipped.Prior dev→main releases (e.g. PR #80, merged via the GitHub web UI) used GitHub's default merge subject
Merge pull request #N from <branch>— non-conventional → release-please traverses the underlying commits.What to add to
docs/_base/RUNBOOKS.mdA new "Common Incidents" entry (or subsection under "Release / Rollback"):
Acceptance
docs/_base/RUNBOOKS.mdhas the new entry under "Common Incidents" (alphabetical-ish placement).claude/rules/versioning.mdif appropriatedocs(docs): document release-please merge-subject trap (#<this-issue>)