Skip to main content

ai-checkkit — AI-era Python lint bundle

Catch the silent footguns AI leaves behind: no-op stubs that ship as None, asserts that vanish under -O, builtin shadowing, mutable defaults.

License Python Status

Bundles 4 focused linters that previously shipped as stubcheck, assertcheck, shadowcheck, mutablecheck — now one pip install.

Why ai-checkkit?

Footgun What it catches Why AI creates it
stubcheck def handler(): pass / ... bodies that return None AI scaffolds callbacks/handlers with placeholders
assertcheck assert <cond> for runtime validation LLMs copy test-style asserts into production
shadowcheck def foo(list, id): shadowing builtins Autocomplete reuses builtin names as params
mutablecheck def foo(x=[]) aliasing Classic Python gotcha amplified by generation

All 4 are zero-dependency, pure-ast, <0.1s on 10k lines.

Install

Requires Python 3.9+.

pip install ai-checkkit

# or editable for dev
pip install -e .[dev]

Backward compat aliases still work: stubcheck, assertcheck, shadowcheck, mutablecheck point to the same bundle.

Quick start

# Run all 4 checks (default)
ai-checkkit
ai-checkkit all ./src --check --json

# Individual linters (same flags as standalone)
ai-checkkit stubcheck ./src --min-severity medium --include-test
ai-checkkit assertcheck ./src --min-severity high
ai-checkkit shadowcheck ./src --allow id,type
ai-checkkit mutablecheck ./src --allow __init__

# Legacy aliases
stubcheck ./src --check
assertcheck --json ./src

Python API

from ai_checkkit.stubcheck import detect as stub_detect
from ai_checkkit.assertcheck import detect as assert_detect
from ai_checkkit.shadowcheck import detect as shadow_detect
from ai_checkkit.mutablecheck import detect as mutable_detect

findings = stub_detect(open("app.py").read(), "app.py")

Comparison vs separate installs

Before After
pip install stubcheck assertcheck shadowcheck mutablecheck (4 repos, 4 CIs) pip install ai-checkkit (1 repo, 1 CI)
4 READMEs, 4 badges 1 unified README + ai-checkkit all

Development

pip install -e .[dev]
pytest -q --cov=ai_checkkit

License

MIT — see LICENSE.

Links

Metadata

Release files for ai-checkkit 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ai-checkkit 0.1.1
File Size Uploaded
ai_checkkit-0.1.1.tar.gz 15.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ai-checkkit 0.1.1
File Interpreter ABI Platform
ai_checkkit-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 31.6 kB

Release files / ai_checkkit-0.1.1.tar.gz

Download URL ai_checkkit-0.1.1.tar.gz
Size 15.5 kB
Tags Source
SHA-256 checksum
How to use checksums
cb9294025fac77a1e9f755b894af1b2f3c499ac4a10d6005771a20fb0de4451b
BLAKE2b-256 checksum
How to use checksums
740592829adeff20657f449fe32660608ea27e4b4c3b65066691d24a6c808dbd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / ai_checkkit-0.1.1-py3-none-any.whl

Download URL ai_checkkit-0.1.1-py3-none-any.whl
Size 16.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2488c184e87d7c431bf35453fc612c762b2b7bc7a8b1d5f281655f41e8ca7ef7
BLAKE2b-256 checksum
How to use checksums
97da05a157cbdd6865f2fd69bad73a1481ae1c658503795f73ba8b55fe6f3015
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release history Release notifications | RSS feed

0.1.3

2 release files

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page