Skip to main content

Gitlint plugin for RAI footer validation

Project description

gitlint-rai

ChecKMarK RAI

A commitlint plugin that enforces exactly one thing:
if AI touched the code, say so in the commit. ⚖️

That’s it. No philosophy, no negotiations. Pick a trailer and move on.

Installation 🔧

pip install gitlint-rai

Or with uv, which is objectively the better choice:

uv add gitlint-rai

Usage 🚦

Add this to your .gitlint config:

[general]
extra-path=gitlint_rai

Then run:

gitlint

Or use the standalone wrapper:

gitlint-rai

To verify the rule loaded:

gitlint --list-rules | grep rai-footer-exists

Expected output:

rai-footer-exists  Commit message must include a valid RAI footer

If you see that, the plugin is active and doing its job.

Valid Trailers 📌

Pick exactly one. If you skip it, the commit fails. If you use two, the commit also fails.

This is not a debate.

  1. Authored-by: [Human] <email> — all you, no AI involved
  2. Commit-generated-by: [AI Tool] <email> — AI wrote the commit message, you wrote the code
  3. Assisted-by: [AI Tool] <email> — AI helped some, you were driving
  4. Co-authored-by: [AI Tool] <email> — roughly 50/50, like actual pair programming
  5. Generated-by: [AI Tool] <email> — AI did most of it, you supervised

All patterns are case-insensitive, because life is too short for that kind of pedantry.

Why This Exists ⚖️

Git already supports trailers. Commits already support attribution. What they don’t do is require you to be honest when AI is involved.

This plugin exists to make that honesty boring, consistent, and automatic, so nobody has to reconstruct intent later by reading commit history like tea leaves.

If you want the longer reasoning behind this, it lives at Did AI Erase Attribution?.

This plugin is the practical follow-through.

Requirements ⚙️

  • Python >= 3.11, < 3.13
  • gitlint >= 0.19.1

License 📄

PolyForm Shield License 1.0.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gitlint_rai-0.1.2.tar.gz (9.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gitlint_rai-0.1.2-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

File details

Details for the file gitlint_rai-0.1.2.tar.gz.

File metadata

  • Download URL: gitlint_rai-0.1.2.tar.gz
  • Upload date:
  • Size: 9.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for gitlint_rai-0.1.2.tar.gz
Algorithm Hash digest
SHA256 f3079166e00a1c26c66a499cd843ca0f3075871cae8b71097d0b8f97831269dc
MD5 693bb67e68ee0c31b4658e91a26b377f
BLAKE2b-256 7c0a176d60eb72d34e40bf0048f45dd16f8abd0e58e7a2b3c305367ce68bb943

See more details on using hashes here.

Provenance

The following attestation bundles were made for gitlint_rai-0.1.2.tar.gz:

Publisher: release-please.yml on ChecKMarKDevTools/rai-lint

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gitlint_rai-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: gitlint_rai-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 8.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for gitlint_rai-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 971fdbe13d55ead0886ad72e25b6964d50f0daea5dd48a60901ea4bae81d5060
MD5 86f98d331a3b4f08cb065e9693a35b15
BLAKE2b-256 ecc8482d894caa3e833fd800fa0861257492c507b879498fa4d2995439a4a042

See more details on using hashes here.

Provenance

The following attestation bundles were made for gitlint_rai-0.1.2-py3-none-any.whl:

Publisher: release-please.yml on ChecKMarKDevTools/rai-lint

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page