Skip to main content

zero-config-claim-audit

Audit documented “zero-config” and “requires configuration” claims against Python source, offline, without importing or executing audited code. Uses only the standard library at runtime. Version 0.1.0; Python 3.9 or newer.

python3 -m pip install .
zero-config-claim-audit ./project
zero-config-claim-audit ./project --json
zero-config-claim-audit ./project --verbose --fail-on HIGH
zero-config-claim-audit --version

The default path is .. Exit codes: 0 PASS, 2 FAIL, 1 usage/input error. --fail-on MEDIUM (default) fails on HIGH or MEDIUM; --fail-on HIGH still prints MEDIUM findings but exits 0 for those alone. --ignore RULE,... removes named rules. JSON includes findings, verified_claims, verified_optional_reads, and summary. Verbose text lists optional reads. Verified means supported by these static rules, not a semantic guarantee.

Claims and evidence

Reads root README.md and docs/**/*.md, excluding fenced code; inline code counts as prose. Case-insensitive, sentence-level zero-config phrases include zero config, no config, no configuration, no setup, works out of the box, no config file, no configuration file, configuration-free, setup-free, no config needed, and no configuration needed. Hyphen/space variants collapse. Reverse phrases: requires a config file, requires configuration, configuration required, config file required, you must configure, must be configured. Sentence negations such as “not”, “isn't”, and “never” suppress claims.

Strong reads include ConfigParser read_file/readfp, tomllib.load and tomli.load of statically identified opened files, and built-in open, io.open, or Path open/read_text/read_bytes on config-like paths. JSON load and YAML load/safe_load count for config-like file objects. Config-like paths contain config/settings, end in .conf/.ini/.cfg/.toml/.yaml/ .yml, or have a dotfile rc basename, including home-directory joins. pyproject.toml is excluded as packaging metadata. ConfigParser read() is deliberately excluded because it silently ignores missing files; read_dict() is in-memory and excluded.

A positive existence check (os.path.exists, os.path.isfile, Path exists or is_file) enclosing the read on the same statically resolved path, or an enclosing try with except FileNotFoundError/OSError, makes a read optional. Optional reads appear as verified-optional and never falsify a claim.

Rules

Rule Severity Trigger
documented-zero-config-claim-false HIGH Claim plus unguarded production read
documented-zero-config-claim-false-test-only MEDIUM Claim plus unguarded reads only in tests/fixtures
documented-config-required-unused MEDIUM Requirement claim without production strong evidence

One finding per claim family groups all its evidence. No claims passes. With no Python source, each claimed family gets one HIGH finding. Production excludes tests/ and fixtures/ trees, test_*.py and *_test.py. Symlinks are skipped. .env contents are never opened or used as evidence.

Limitations

Static pattern matching is not semantics. Guard detection is syntactic, same-function, and based on matching statically resolved path literals; negative guards, indirect control flow, arbitrary wrappers and complex aliases may be missed. Dynamic paths with no literal are unknown and skipped. Non-Python source, environment variables alone and a --config flag alone are out of scope. No reverse HIGH rule exists for undocumented config reads. Malformed Python and unreadable input produce input errors.

Differentiation

Tool Focus compared with this tool
config-claim-audit Default VALUES, rather than whether config is required at all
env-drift Environment PRESENCE, rather than config files
auth-claim-audit CREDENTIAL requirements, rather than general config
dotenv-linter .env syntax, rather than documentation versus code
readme-claim-audit Install/flag/link/version claims, rather than config requirements

Development

PYTHONPATH=src python3 -m unittest discover -s tests -v
python3 -m build
# Offline fallback if isolated dependencies are unavailable:
python3 -m build --no-isolation

The source distribution includes the fixture corpus and tests. The marker-only fixture .env contains no credentials and tests enforce that it is never read. MIT licensed.

Metadata

Release files for zero-config-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)

Source distribution for zero-config-claim-audit 0.1.0
File Size Uploaded Provenance Actions
zero_config_claim_audit-0.1.0.tar.gz 13.8 kB Without provenance Details for zero_config_claim_audit-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for zero-config-claim-audit 0.1.0
File Interpreter ABI Platform Actions
zero_config_claim_audit-0.1.0-py3-none-any.whl Python 3 none any Details for zero_config_claim_audit-0.1.0-py3-none-any.whl

Total release size: 23.1 kB

Release files / zero_config_claim_audit-0.1.0.tar.gz

Download URL zero_config_claim_audit-0.1.0.tar.gz
Size 13.8 kB
Tags Source
SHA-256 checksum
How to use checksums
12635c42d7d8ef301ddf0bb6eac204b176c82e53cccd4514f2fff5a327e6e2f8
BLAKE2b-256 checksum
How to use checksums
4954977149d3556fa011b5126e80454d370316b1d8d857544b50e2f461d7799a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / zero_config_claim_audit-0.1.0-py3-none-any.whl

Download URL zero_config_claim_audit-0.1.0-py3-none-any.whl
Size 9.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e70c6014d70baddf19adf186d2cce8dc277f9386aabb669c5a324695c945240c
BLAKE2b-256 checksum
How to use checksums
e1582d016ec6258e95d29dab02d9b4d37312b7306f447c82bfb3f66b80e787f5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Security for zero-config-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.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

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