CC001 message check failed ==> updated the parser
The commit message should follow Conventional Commits. See https://www.conventionalcommits.org
Suggest: Use <type>(<scope>): <description>, where <type> is one of: feat, fix, docs, ...
Docs: https://commit-check.com/rules/#cc001
Every failure names a stable rule ID, the value that failed, what to do about it, and where it is documented — as text, JSON, a job summary, a PR comment, or an MCP tool call.
cchk.toml
│
┌─────────────────┼─────────────────┬─────────────────┐
▼ ▼ ▼ ▼
your machine pre-commit GitHub CI AI agents
(commit-check) hook Action (MCP)
│ │ │ │
└─────────────────┴────────┬────────┴─────────────────┘
▼
same rules, same verdict
Write the rules once. Every surface reads that same file, so a commit that passes on a laptop passes in CI — and an agent asking "would this message be accepted?" gets the answer your maintainers actually configured.
Nothing to configure to begin with: the defaults enforce Conventional Commits, Conventional Branch, and sane subject lengths.
# .pre-commit-config.yaml — feedback while the message is still being written
repos:
- repo: https://github.com/commit-check/commit-check
rev: v2.13.4
hooks:
- id: check-message
- id: check-branch# .github/workflows/commit-check.yml — where it becomes a policy, not a suggestion
- uses: commit-check/commit-check-action@v2
with:
message: true
branch: true
pr-title: true
pr-comments: true # needs permissions: pull-requests: writeEvery rule and option is at commit-check.com.
| Project | What it is | Use it for |
|---|---|---|
| commit-check | Python CLI & pre-commit hook | Local checks, CI pipelines, scripting |
| commit-check-action | GitHub Action | PR & push validation, job summaries, PR comments |
| commit-check-mcp | Model Context Protocol server | Letting AI agents validate against your rules |
- It reads commit metadata, not your code. It is not a linter.
- A pre-commit hook can be skipped with
--no-verify, so only the CI check is really a policy — the hook is there to save you the round trip. - Imperative-mood checking reads a word's form, so a subject led by a noun
that looks like a gerund (
fix: spelling in the docs) gets reported.
Commit metadata rules are usually behind a paid tier: GitHub's metadata restrictions need Enterprise, and Bitbucket's equivalent is Yet Another Commit Checker, a paid Marketplace app. Commit Check is the open alternative — and because the policy is a file in your repository rather than a settings page, it can be reviewed, diffed, and rolled back like anything else you version.
- 🔒 SLSA Level 3 build provenance — verify any release yourself with
gh attestation verify <wheel> --repo commit-check/commit-check - 🏢 Runs in repositories across Apache, Texas Instruments, Mila, and many more
- 📖 MIT licensed, actively maintained, and itself following Conventional Commits and Conventional Branch
Issues for bugs and feature requests · Discussions for questions and ideas · Docs for everything else.