readme-claim-audit
Version 0.1.0. Deterministic, offline, stdlib-only Python 3.9+ README claim auditing. Reads the root README and repository files; no network, subprocesses, git, keys, or repository code execution. Changes nothing.
pip install readme-claim-audit
readme-claim-audit audit . --json
readme-claim-audit audit . --fail-on medium --ignore 'old-*' --ignore 'legacy/*'
python -m build
The repository argument defaults to the current directory. Exit codes: 0 PASS,
1 WARN, 2 FAIL or argument error. HIGH findings fail by default; MEDIUM findings
warn. With --fail-on medium, all findings fail. Read/UTF-8 errors are counted
and produce WARN unless findings already fail. Ignore globs match claim strings,
with each excluded finding counted once.
Checks install names against project metadata, documented flags against Python
sources, local Markdown links, backtick file references, the first badge/prose
version, Makefile targets, and Python module commands. Only fenced triple-backtick
and four-space code blocks supply command checks. Flags using =value are checked.
Generic flags skipped: --help, --version, --json, --verbose, --quiet, --dry-run,
--force, --output, --config. Toolchain modules build, pip, unittest and venv are skipped.
Uses README.md first, otherwise the first sorted case-insensitive root match. Skips .git, node_modules, dist, build, pycache, .venv, venv and symlinked source directories. Metadata uses a line scanner, not TOML evaluation; project script names are collected. Versions inside recognized Markdown CHANGELOG sections are excluded. Local link anchors are stripped; directories count. Reports sort by file, line, kind and claim, deduplicate that tuple, display at most 500 findings and at most 20 dead-file-reference findings. Totals and verdict include omitted findings. JSON and human output include severity/kind counts, ignored and parse-error counts, and explicit truncation. Detail snippets are limited to 120 characters; other source file contents are never printed.
Fixtures under examples/sample-repo/good and examples/sample-repo/broken give PASS and FAIL respectively. They contain only synthetic data.
Development: PYTHONPATH=src python3 -m unittest discover -s tests -v.
Build with setuptools build-meta using the standard build command above.
Honest limitations
Pattern matching, not semantic judgement. A finding means "check this claim". Flags defined via config files, entry-point wrappers, or non-argparse/click parsers are not seen and will flag if documented — check, don't auto-fix. Version comparison uses the first badge/prose version only; a README that documents old versions in a changelog-style section may still flag if the CHANGELOG heading is not recognised. Internal-link checking is filesystem only: it cannot tell you a link is wrong for a hosted docs site. A README with no checkable claims passes with a note, which is not a quality score.
Differentiation
- instruction-drift: AGENTS.md/CLAUDE.md claims vs disk. This is README claims vs disk — the public face, not the instruction files.
- skill-drift: SKILL.md frontmatter + referenced files. This is README install/usage/version/link claims, not skill packages.
- readmeta: README links only, and it rewrites them at build time. This audits install names, flags, versions, make targets and module commands too, and never rewrites anything.
- readme-drift (PyPI 3.2.0, name taken): Makefile-target drift only. This covers the wider claim surface above and is a different package.
- dokken / LLM doc regenerators: they rewrite docs with a model. This is a deterministic offline audit that changes nothing.
- Heavy link checkers: they need network. This is filesystem-only.
Metadata
Release files for readme-claim-audit 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| readme_claim_audit-0.1.0.tar.gz | 12.4 kB | Without provenance | Details for readme_claim_audit-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| readme_claim_audit-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for readme_claim_audit-0.1.0-py3-none-any.whl |
Total release size: 21.0 kB
Release files / readme_claim_audit-0.1.0.tar.gz
| Download URL | readme_claim_audit-0.1.0.tar.gz |
|---|---|
| Size | 12.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
31b18e496995d0c1301cd5f36c21ddb7b6c5dd2909d085b2648d1009b3904dad
|
|
BLAKE2b-256 checksum How to use checksums |
febc1b58e561117021b396b03c962ddd770b3d5c7df39f5b0abc664d872d0fd7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / readme_claim_audit-0.1.0-py3-none-any.whl
| Download URL | readme_claim_audit-0.1.0-py3-none-any.whl |
|---|---|
| Size | 8.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2d9a71453bf73a0454d92ba1841c998e0fc1174b22dfa72f66699247b7866a52
|
|
BLAKE2b-256 checksum How to use checksums |
26c55d2af90a33a9e5bc72dea86cd91cf2be9f87ea608456c8ec2e64ab37b8e2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Security for readme-claim-audit 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.