PHPackages                             aaronjameslang/proofr - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Queues &amp; Workers](/categories/queues)
4. /
5. aaronjameslang/proofr

ActiveProject[Queues &amp; Workers](/categories/queues)

aaronjameslang/proofr
=====================

Git hook to check conformance to http://chris.beams.io/posts/git-commit/

2.2.0(9y ago)336[1 issues](https://github.com/aaronjameslang/proofr/issues)MITShell

Since Apr 1Pushed 9y ago2 watchersCompare

[ Source](https://github.com/aaronjameslang/proofr)[ Packagist](https://packagist.org/packages/aaronjameslang/proofr)[ RSS](/packages/aaronjameslang-proofr/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (2)DependenciesVersions (6)Used By (0)

proofr [![Build Status](https://camo.githubusercontent.com/2c3ee202d4bcb44e65fd6c585741f1b8520c9cc2e8b50625c96dda8997d1beb2/68747470733a2f2f7472617669732d63692e6f72672f6161726f6e6a616d65736c616e672f70726f6f66722e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/aaronjameslang/proofr)
=====================================================================================================================================================================================================================================================================================================

[](#proofr-)

Git hook to check conformance to

Do you or your collaborators have trouble remembering how to format your commit messages? Try `proofr`.

`proofr` integrates seamlessly into your workflow:

- if you write a compliant commit message, you won't even know it's there
- if you write a noncompliant commit message, the commit will fail and you'll receive feedback: ```
    $: git commit --allow-empty --message 'fixed it.'
    Capitalize the subject line
    Do not end the subject line with a period
    Use the imperative mood in the subject line
    $:

    ```

[The seven rules of a great git commit message](https://chris.beams.io/posts/git-commit/#seven-rules)
-----------------------------------------------------------------------------------------------------

[](#the-seven-rules-of-a-great-git-commit-message)

1. Separate subject from body with a blank line
2. Limit the subject line to 50 characters
3. Capitalize the subject line
4. Do not end the subject line with a period
5. Use the imperative mood in the subject line
6. Wrap the body at 72 characters
7. Use the body to explain *what* and *why* vs. *how*

Installation
------------

[](#installation)

### [Homebrew](https://brew.sh/)/[Linuxbrew](http://linuxbrew.sh/)

[](#homebrewlinuxbrew)

`brew install `[`aaronjameslang/tap/proofr`](https://github.com/aaronjameslang/homebrew-tap/blob/master/Formula/proofr.rb)

### [Composer](https://getcomposer.org/)/[Packagist](https://packagist.org/packages/aaronjameslang/proofr)

[](#composerpackagist)

`composer [global] require `[`aaronjameslang/proofr`](https://packagist.org/packages/aaronjameslang/proofr)

Setup
-----

[](#setup)

`cd my-project && proofr setup`

This will add `proofr` to the `commit-msg` hook of your project

How `proofr` works
------------------

[](#how-proofr-works)

After each commit message you write, git will call `.git/hooks/commit-msg` and pass in the commit message as the first parameter. You can make `commit-msg` anything you like so long as it

- Calls `proofr`
- Passes `proofr` it's first argument
- Deals with `proofr`'s exit code
- Is executable

For background see

Compatibility
-------------

[](#compatibility)

Should work on most \*nixes, including GNU/Linux, Mac OSX, and [Windows Subsystem for Linux](https://msdn.microsoft.com/en-gb/commandline/wsl/install_guide)

If you are unsure of compatibilty with your system, run `make`. If your system is incompatible, please open an issue.

Contribution
------------

[](#contribution)

Suggestions, bug reports and pull requests are all welcome. Please open an issue and get feedback before beginning a pull request.

### Design Decisions

[](#design-decisions)

- The tests were originally written using `roundup`, however this dependency was dropped to make it easier for users to run the tests on their machines

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance13

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity67

Established project with proven stability

 Bus Factor1

Top contributor holds 98.2% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~2 days

Total

5

Last Release

3317d ago

Major Versions

1.2.0 → 2.0.02017-04-02

### Community

Maintainers

![](https://www.gravatar.com/avatar/cc2ae01d88d265df20ea11b9eba64e2d5d0481a509ddd22ec825319b72332d7d?d=identicon)[aaronjameslang](/maintainers/aaronjameslang)

---

Top Contributors

[![aaronjameslang](https://avatars.githubusercontent.com/u/6953005?v=4)](https://github.com/aaronjameslang "aaronjameslang (161 commits)")[![ladyflasheart](https://avatars.githubusercontent.com/u/6725252?v=4)](https://github.com/ladyflasheart "ladyflasheart (3 commits)")

---

Tags

commitenforcegithooklintmessagestandardsstylemessagestandardsstylelintgitHOOKcommitenforce

### Embed Badge

![Health badge](/badges/aaronjameslang-proofr/health.svg)

```
[![Health](https://phpackages.com/badges/aaronjameslang-proofr/health.svg)](https://phpackages.com/packages/aaronjameslang-proofr)
```

###  Alternatives

[php-amqplib/php-amqplib

Formerly videlalvaro/php-amqplib. This library is a pure PHP implementation of the AMQP protocol. It's been tested against RabbitMQ.

4.6k125.3M871](/packages/php-amqplib-php-amqplib)[php-amqplib/rabbitmq-bundle

Integrates php-amqplib with Symfony &amp; RabbitMq. Formerly emag-tech-labs/rabbitmq-bundle, oldsound/rabbitmq-bundle.

1.3k20.1M64](/packages/php-amqplib-rabbitmq-bundle)[aws/aws-php-sns-message-validator

Amazon SNS message validation for PHP

21421.5M91](/packages/aws-aws-php-sns-message-validator)[simple-bus/message-bus

Generic classes and interfaces for messages and message buses

3455.7M30](/packages/simple-bus-message-bus)[ramsey/conventional-commits

A PHP library for creating and validating commit messages according to the Conventional Commits specification. Includes a CaptainHook action!

1931.2M121](/packages/ramsey-conventional-commits)[fotografde/cakephp-sms

SMS Plugin for CakePHP

1273.2k](/packages/fotografde-cakephp-sms)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
