feat: add conventional commit lint and semver suggestion to PR checks#21
Merged
Conversation
Adds a Commit Lint job to validate.yml that runs only on pull_request events. It enforces conventional commit format (blocking) and posts a suggested semver bump level to the job summary (informational) so reviewers always know whether a PR warrants a patch, minor, or major version increment. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
GitHub Actions checks out a synthetic merge commit when testing PRs. Add --no-merges to git log so the lint only checks real PR commits. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a Commit Lint job to the validate workflow that runs on every PR:
Conventional commit format check (blocking) — fails the PR if any commit message doesn't follow
<type>[scope][!]: <description>. Enforces the convention already documented in CLAUDE.md so malformed commits can't slip into main.Semver suggestion (informational) — scans all PR commits, determines the highest-level change, and posts the suggested bump to the job summary:
feat!:or(!)→majorfeat:→ ✨minorpatchReviewers see the suggestion directly in the Actions tab without having to think about it. The version bump itself remains intentional — done via
/publish-releasewhen ready.The job is gated with
if: github.event_name == 'pull_request'so it doesn't run on push to main or viaworkflow_callin the release pipeline.Test plan
🔧 patchfor this PR (it's afeat:on tooling — actuallyminor)🤖 Generated with Claude Code