Slopmeter v0.4.0
Slopmeter v0.4.0 adds review evidence and configuration options. Calibration, thresholds, pattern rules, clone detection and score formulas are unchanged.
New commands
slop models --root . --lang py: experimental coupled-state review. Finds a supported local dataclass rejection guard repeated by at least two typed consumers. Shows field declarations, validator and consumer locations.slop variants --root . --lang py: experimental local Enum/Literal match review. Distinguishes missing cases, catch-all coverage and exhaustive explicit handling. Guarded branches do not prove full coverage.
Both commands accept --json, --config, and --strict. They parse source without executing it and make no score or M2 contribution. They do not support every model or handler: Pydantic/TypedDict models, cross-file resolution, uncertain bindings, and unsupported patterns remain outside their narrow scopes. Unresolved is not clean. Neither command proves a defect or recommends an automatic refactor.
External configuration
slop score C:/project --config C:/reviews/project.toml --lang py --top 10
slop review show --root C:/project --config C:/reviews/project.toml --store C:/reviews/decisions.json--config replaces root-local config discovery. Precedence is defaults, selected file, then CLI overrides. Missing or invalid explicit files fail instead of falling back. A file named exactly pyproject.toml reads [tool.slop]; other filenames use standalone Slop TOML. Config paths are relative to the invocation directory. Boundary prefixes and source patterns remain relative to the scan root. Comparisons use the same settings for both source states. The external file path does not enter review fingerprints.
Stale clone reviews
Reports now identify changed source hashes, clone evidence, boundary policy, analysis definition, or unavailable identity evidence. Existing stores need no migration. Applicability remains conservative: comment-only member-file changes and unrelated boundary additions still invalidate reviews. Hashes cannot establish that an edit was harmless. Opaque policy fingerprints cannot identify the old changed declaration. Nothing automatically reapproves a decision.
Compatibility and validation
- Default profile remains
py-2026.3, M4 version 3. The same six historical reference projects remain; this release does not broaden calibration. - Ordinary score JSON matched released v0.3.0 on the same source before the version bump. Existing model-review output also remained unchanged when variant review was added.
- 1,424 deterministic tests passed with 95.46% branch-inclusive coverage. Four wheel/source installation checks passed. All 47 new variant checks passed on Python 3.13 and 3.14.
- Seeded examples exercise positive and negative cases. The repository self-scan did not establish new defects; unsupported cases stayed unresolved. Independent holdouts are still required to estimate detector precision and recall.
Use scores and experimental findings for advisory review, not as an automatic quality gate. Assets include a Python wheel, source distribution, and SHA-256 checksums.