Catalog PyPI
PACKAGE EXPLORERView in registry

ai-checkkit

PyPI

AI-era Python lint bundle: stubcheck + assertcheck + shadowcheck + mutablecheck — catch silent stubs, vanishing asserts, builtin shadowing, mutable defaults

aiassertcode-qualitydead-codelintmutableproductionpythonshadowingstatic-analysisstub
Versions collected1
Direct dependencies4From release 0.1.3
Last observed21 Oct, 10:08 UTC

README

Version 0.1.3 documentation

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?

FootgunWhat it catchesWhy AI creates it
stubcheckdef handler(): pass / ... bodies that return NoneAI scaffolds callbacks/handlers with placeholders
assertcheckassert <cond> for runtime validationLLMs copy test-style asserts into production
shadowcheckdef foo(list, id): shadowing builtinsAutocomplete reuses builtin names as params
mutablecheckdef foo(x=[]) aliasingClassic 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

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

Development

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

License

MIT — see LICENSE.

test

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
0.1.331 Aug 20264

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Repository

PENDING
rituparno-majumdar/ai-checkkit

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 21 Oct, 10:08 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:b3299aafb9a7ff6a39aadc718e2733a99dbecbaba92a4a1e4f23d0383ac5b9a3