From bb3720ee99ac56918dc3cc57a89bd5a1a8e2d668 Mon Sep 17 00:00:00 2001 From: Richard Abrich Date: Wed, 25 Feb 2026 15:46:16 -0500 Subject: [PATCH] fix(docs): require conventional commit format for PR titles PR titles become squash merge commit messages. Without the fix:/feat: prefix, python-semantic-release skips the release. Document this requirement prominently in CLAUDE.md. Co-Authored-By: Claude Opus 4.6 --- CLAUDE.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/CLAUDE.md b/CLAUDE.md index 3e65c2b..dc2b79d 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -156,6 +156,25 @@ Co-Authored-By: Claude Opus 4.6 **Rules**: Imperative mood, no period, max 50 chars, lowercase after type +### PR Titles MUST Use Conventional Commit Format + +PR titles become the squash merge commit message on main. `python-semantic-release` parses these to decide version bumps. **If the PR title doesn't follow the format, no release is created.** + +``` +fix: short description → patch bump (0.0.x) +feat: short description → minor bump (0.x.0) +feat!: breaking change → major bump (x.0.0) +``` + +**Examples**: +- `fix: align PolicyAgent prompt with training format` +- `feat: add Modal inference timeout config` + +**Wrong** (will NOT trigger a release): +- `Align PolicyAgent prompt with training format` (no `fix:` prefix) + +When merging with `gh pr merge --squash`, GitHub uses the PR title as the commit message — so the title format is what matters. + --- ## Don't Do