Godlint
The executable engineering constitution for repositories maintained by humans and coding agents.
Quickstart · Rules · Documentation · Contribute
AI coding agents increase output. They do not automatically preserve your architecture, security boundaries or engineering standards.
Godlint turns those decisions into deterministic policy that every contributor runs locally and in CI. Define a rule once; enforce it across Rust, TypeScript, JavaScript and Python with the same result for humans and agents.
Human or agent writes code
↓
Godlint checks repository policy
↓
Clear finding → fix → deterministic CI
Why Godlint
- Guardrails for agents. Catch architectural drift before generated code reaches review.
- One policy across languages. Share boundaries and thresholds across a polyglot repository.
- Deterministic enforcement. No LLM decides whether CI passes.
- Accountable exceptions. Suppressions carry a reason, owner and expiry.
- Local by default. Source code does not leave your machine.
Godlint complements Clippy, ESLint, Ruff and Pyright. They understand one language deeply; Godlint enforces the repository-level decisions that must hold across all of them.
Quickstart
Create godlint.yaml:
version: 1
suites: [recommended@1]
Run:
npx @godlint/cli check
# or: uvx godlint check
# or: cargo install godlint-cli && godlint check
That is enough to enforce the recommended policy locally and in CI.
What it enforces
Godlint ships 25 rules for:
- architecture and module boundaries;
- restricted imports, calls and dependencies;
- centralized configuration and safer execution;
- complexity, nesting, function and file size;
- production logging and error handling;
- accountable, expiring suppressions.
See the rule reference for every rule and its limits.
GitHub
Annotate findings directly on pull requests:
- uses: tomerwave/godlint@v1
with:
version: 0.1.9
The action needs no token or write permissions. Godlint also emits terminal, GitHub, JSON and SARIF output. See Using Godlint in CI.
Install
Use the package manager already in your project:
| Ecosystem | Command |
|---|---|
| npm | npm install --save-dev @godlint/cli |
| pnpm | pnpm add -D @godlint/cli |
| Yarn | yarn add -D @godlint/cli |
| Bun | bun add -d @godlint/cli |
| uv | uv add --dev godlint |
| pip | pip install godlint |
| Cargo | cargo install godlint-cli |
| Homebrew | brew install tomerwave/tap/godlint |
Prebuilt binaries for Linux, macOS and Windows are available from the latest release.
Contribute
Godlint is pre-alpha. This is the best time to shape it.
- Use it: try
recommended@1on a real repository and report false positives. - Propose a rule: bring valid and invalid examples across the relevant languages.
- Improve it: code, fixtures, documentation and design feedback are welcome.
Start with CONTRIBUTING.md or open a rule proposal. Report security issues through SECURITY.md, not a public issue.
Status
Godlint is pre-alpha. Rule identifiers, configuration and suite contents may change before 1.0.
The project is deterministic and useful today; the roadmap records what
comes next.
License
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file godlint-0.9.1-py3-none-win_amd64.whl.
File metadata
- Download URL: godlint-0.9.1-py3-none-win_amd64.whl
- Upload date:
- Size: 7.2 MB
- Tags: Python 3, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
92a5306e88b49f42407d7cd2c4bea400984507356899b66671d49bc82a57fec2
|
|
| MD5 |
2adf541c0257bd6b52e3852f54a408e3
|
|
| BLAKE2b-256 |
7ac78fdade906a25e080b816f3227517fde582882751e2289cf4dd6116ac1315
|
Provenance
The following attestation bundles were made for godlint-0.9.1-py3-none-win_amd64.whl:
Publisher:
release.yml on tomerwave/godlint
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
godlint-0.9.1-py3-none-win_amd64.whl -
Subject digest:
92a5306e88b49f42407d7cd2c4bea400984507356899b66671d49bc82a57fec2 - Sigstore transparency entry: 2419694632
- Sigstore integration time:
-
Permalink:
tomerwave/godlint@e03b5e849901f54bd72e73d76d288cff5a3121a3 -
Branch / Tag:
refs/tags/v0.9.1 - Owner: https://github.com/tomerwave
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e03b5e849901f54bd72e73d76d288cff5a3121a3 -
Trigger Event:
push
-
Statement type:
File details
Details for the file godlint-0.9.1-py3-none-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: godlint-0.9.1-py3-none-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 8.1 MB
- Tags: Python 3, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1819ed795e4a1c46e4515ba206508847aa96b7efff51ad55337d716c65794f0d
|
|
| MD5 |
d878042641eb519dd598912464081f99
|
|
| BLAKE2b-256 |
0613db3381b99170565614078770afaad7500b5ef892ce2de2da1fa5594f8d04
|
Provenance
The following attestation bundles were made for godlint-0.9.1-py3-none-musllinux_1_2_x86_64.whl:
Publisher:
release.yml on tomerwave/godlint
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
godlint-0.9.1-py3-none-musllinux_1_2_x86_64.whl -
Subject digest:
1819ed795e4a1c46e4515ba206508847aa96b7efff51ad55337d716c65794f0d - Sigstore transparency entry: 2419692262
- Sigstore integration time:
-
Permalink:
tomerwave/godlint@e03b5e849901f54bd72e73d76d288cff5a3121a3 -
Branch / Tag:
refs/tags/v0.9.1 - Owner: https://github.com/tomerwave
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e03b5e849901f54bd72e73d76d288cff5a3121a3 -
Trigger Event:
push
-
Statement type:
File details
Details for the file godlint-0.9.1-py3-none-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: godlint-0.9.1-py3-none-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 7.9 MB
- Tags: Python 3, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c050a4375fd0d5a2d22eb415416c4b551d5c78e867d41de2e2f11006e905131f
|
|
| MD5 |
728fa31b752e9f915e4bc7eaf1bfe1d3
|
|
| BLAKE2b-256 |
df521dc989b42aa02a4f5b7955457033638c263c5c0c22c6b1b79eb9bf510ba2
|
Provenance
The following attestation bundles were made for godlint-0.9.1-py3-none-musllinux_1_2_aarch64.whl:
Publisher:
release.yml on tomerwave/godlint
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
godlint-0.9.1-py3-none-musllinux_1_2_aarch64.whl -
Subject digest:
c050a4375fd0d5a2d22eb415416c4b551d5c78e867d41de2e2f11006e905131f - Sigstore transparency entry: 2419692791
- Sigstore integration time:
-
Permalink:
tomerwave/godlint@e03b5e849901f54bd72e73d76d288cff5a3121a3 -
Branch / Tag:
refs/tags/v0.9.1 - Owner: https://github.com/tomerwave
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e03b5e849901f54bd72e73d76d288cff5a3121a3 -
Trigger Event:
push
-
Statement type:
File details
Details for the file godlint-0.9.1-py3-none-manylinux_2_17_x86_64.whl.
File metadata
- Download URL: godlint-0.9.1-py3-none-manylinux_2_17_x86_64.whl
- Upload date:
- Size: 8.1 MB
- Tags: Python 3, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
869ee2476107cd62ef4dbfbdfd6d728ec4f334ff849cc4d3b56ecf28e833222d
|
|
| MD5 |
681904b6e283585a815e783f742d2d50
|
|
| BLAKE2b-256 |
3f838de3e9b21756dc7652bfee66e103aad8228a743618bd100abf59b55522d1
|
Provenance
The following attestation bundles were made for godlint-0.9.1-py3-none-manylinux_2_17_x86_64.whl:
Publisher:
release.yml on tomerwave/godlint
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
godlint-0.9.1-py3-none-manylinux_2_17_x86_64.whl -
Subject digest:
869ee2476107cd62ef4dbfbdfd6d728ec4f334ff849cc4d3b56ecf28e833222d - Sigstore transparency entry: 2419695149
- Sigstore integration time:
-
Permalink:
tomerwave/godlint@e03b5e849901f54bd72e73d76d288cff5a3121a3 -
Branch / Tag:
refs/tags/v0.9.1 - Owner: https://github.com/tomerwave
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e03b5e849901f54bd72e73d76d288cff5a3121a3 -
Trigger Event:
push
-
Statement type:
File details
Details for the file godlint-0.9.1-py3-none-manylinux_2_17_aarch64.whl.
File metadata
- Download URL: godlint-0.9.1-py3-none-manylinux_2_17_aarch64.whl
- Upload date:
- Size: 7.9 MB
- Tags: Python 3, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
75afbe38603c46e22bd7ebc5d9f3e68ebc79bf074cd2413dde1fa37a6c15210c
|
|
| MD5 |
ab627fe9f7a919efea55bbb4ba2d1d73
|
|
| BLAKE2b-256 |
9804b30d24f4cd74dc2c4ef034602e87eead1ac7df15855a8f175e500cb89ac1
|
Provenance
The following attestation bundles were made for godlint-0.9.1-py3-none-manylinux_2_17_aarch64.whl:
Publisher:
release.yml on tomerwave/godlint
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
godlint-0.9.1-py3-none-manylinux_2_17_aarch64.whl -
Subject digest:
75afbe38603c46e22bd7ebc5d9f3e68ebc79bf074cd2413dde1fa37a6c15210c - Sigstore transparency entry: 2419693425
- Sigstore integration time:
-
Permalink:
tomerwave/godlint@e03b5e849901f54bd72e73d76d288cff5a3121a3 -
Branch / Tag:
refs/tags/v0.9.1 - Owner: https://github.com/tomerwave
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e03b5e849901f54bd72e73d76d288cff5a3121a3 -
Trigger Event:
push
-
Statement type:
File details
Details for the file godlint-0.9.1-py3-none-macosx_11_0_arm64.whl.
File metadata
- Download URL: godlint-0.9.1-py3-none-macosx_11_0_arm64.whl
- Upload date:
- Size: 7.6 MB
- Tags: Python 3, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cdba1adc14a1c0a506f0eae11f213046aab6631ba0463a02e0a6e364cd9135a6
|
|
| MD5 |
9375c0685ee4d814ef456e6f8be875f5
|
|
| BLAKE2b-256 |
454106f294ee16b741299d93db4f2e182aa17f9c68abe46f1c0b5904afd90a0c
|
Provenance
The following attestation bundles were made for godlint-0.9.1-py3-none-macosx_11_0_arm64.whl:
Publisher:
release.yml on tomerwave/godlint
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
godlint-0.9.1-py3-none-macosx_11_0_arm64.whl -
Subject digest:
cdba1adc14a1c0a506f0eae11f213046aab6631ba0463a02e0a6e364cd9135a6 - Sigstore transparency entry: 2419694032
- Sigstore integration time:
-
Permalink:
tomerwave/godlint@e03b5e849901f54bd72e73d76d288cff5a3121a3 -
Branch / Tag:
refs/tags/v0.9.1 - Owner: https://github.com/tomerwave
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e03b5e849901f54bd72e73d76d288cff5a3121a3 -
Trigger Event:
push
-
Statement type:
File details
Details for the file godlint-0.9.1-py3-none-macosx_10_12_x86_64.whl.
File metadata
- Download URL: godlint-0.9.1-py3-none-macosx_10_12_x86_64.whl
- Upload date:
- Size: 7.7 MB
- Tags: Python 3, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
46a67f705b7a4aa82d248d9402feb125931f5e927ecf5eb13f55519b10ade125
|
|
| MD5 |
0ba5c7a7ccc9aac018f7feca02d061c4
|
|
| BLAKE2b-256 |
05ededae1f5e8e72c56d219a9f67ed12cd8eeb3b6925c5d60f9fccd4e7f6a237
|
Provenance
The following attestation bundles were made for godlint-0.9.1-py3-none-macosx_10_12_x86_64.whl:
Publisher:
release.yml on tomerwave/godlint
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
godlint-0.9.1-py3-none-macosx_10_12_x86_64.whl -
Subject digest:
46a67f705b7a4aa82d248d9402feb125931f5e927ecf5eb13f55519b10ade125 - Sigstore transparency entry: 2419691649
- Sigstore integration time:
-
Permalink:
tomerwave/godlint@e03b5e849901f54bd72e73d76d288cff5a3121a3 -
Branch / Tag:
refs/tags/v0.9.1 - Owner: https://github.com/tomerwave
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e03b5e849901f54bd72e73d76d288cff5a3121a3 -
Trigger Event:
push
-
Statement type: