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.6.tar.gz (7.8 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.6-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: gitlint_rai-0.1.6.tar.gz
  • Upload date:
  • Size: 7.8 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.6.tar.gz
Algorithm Hash digest
SHA256 882c78e932259ff73c89e2a3fc11f459b583e41babf18078367f8ee5989e07ec
MD5 0a6c3e82b8d8b53d9378d9fa585f8d1e
BLAKE2b-256 baf6b56396a5b20a1b441d29462a6edd1cd09a9169f1138431acf00edabdefbb

See more details on using hashes here.

Provenance

The following attestation bundles were made for gitlint_rai-0.1.6.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.6-py3-none-any.whl.

File metadata

  • Download URL: gitlint_rai-0.1.6-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.6-py3-none-any.whl
Algorithm Hash digest
SHA256 6f5f6087a70b08928c1da7b37f88a37ee1a6e5c8eca6451cc1e64cc4a1021e39
MD5 ecac53ea2edcb2ffcbbbd4aa31a59680
BLAKE2b-256 d79f5d1b91933328b298994e6e811817c93fca884c02a1d9969dd0c8a14d8633

See more details on using hashes here.

Provenance

The following attestation bundles were made for gitlint_rai-0.1.6-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