Files
awesome-copilot/skills/github-release/references/commit-classification.md
Adriano Nogueira 278b1ebf56 Add github-release skill and references (#1562)
Introduce a new github-release skill: adds skills/github-release/SKILL.md with a 9-step GitHub release workflow (gh/git-based, SemVer, Keep a Changelog guidance). Also adds reference heuristics for commit classification and SemVer decision rules, and updates docs/README.skills.md to list the new skill.
2026-04-30 10:25:04 +10:00

2.8 KiB

Commit Classification Heuristics

Role in the workflow: Commit messages are a secondary signal. The code diff is always read first and treated as ground truth. Use these heuristics to add intent and context on top of what the diff already shows — not to replace it. When a commit message contradicts the diff, trust the diff.

When reading git log output, map each commit to one of the categories below. Repos that follow Conventional Commits (https://www.conventionalcommits.org/) will have explicit prefixes — use them directly. For freeform commit messages, use the heuristics.


Conventional Commit prefixes → category

Prefix Category
feat: / feat(scope): feat
fix: / fix(scope): fix
perf: perf
refactor: refactor
docs: docs
chore: chore
test: / tests: test
ci: chore
build: chore
style: chore
revert: depends on what was reverted
BREAKING CHANGE in footer or ! after type (e.g. feat!:) breaking

Freeform commit message heuristics

Breaking:

  • Contains words: breaking, incompatible, remove, rename, drop support
  • Phrase patterns: no longer, was removed, has been deleted, breaking change

Feat (new feature):

  • Starts with: add, implement, introduce, support, new
  • Contains: now supports, ability to, can now

Fix:

  • Starts with: fix, patch, resolve, correct, handle
  • Contains: bug, regression, crash, error, wrong, incorrect, broken

Perf:

  • Contains: speed up, faster, reduce memory, optimize, performance

Refactor:

  • Contains: refactor, clean up, reorganize, restructure, simplify, extract

Docs:

  • Contains: docs, readme, comment, example, typo

Chore:

  • Contains: bump, upgrade dependencies, update deps, version bump, ci, lint

Test:

  • Contains: test, spec, coverage, fixture

Classifying merge commits

Merge commits (e.g., Merge pull request #42) are usually noise. Look at the PR title or the commits inside the merge. If the PR title follows Conventional Commits, use that.


When you can't tell

Default to PATCH if the commit looks like maintenance. Escalate to MINOR if there's any mention of new functionality. Escalate to MAJOR only with explicit evidence of a breaking change — don't guess at breaking.


Mapping categories to Keep a Changelog sections

Category Changelog section
breaking + new behavior Changed
breaking + removal Removed
feat Added
fix, perf Fixed
security Security
refactor, docs, chore, test Omit (unless user-visible)

User-visible refactor example: Extracting a previously internal helper into a new public export → treat as Added, not Refactor.