dermestes
Finds abstractions in Python code that have not earned their keep, and reports them as deletion candidates an agent can act on.
Status: phase 5.
one-impl,const-param,pass-throughanddead-codework. Seedocs/plans/CONSTITUTION.md.
Checks
| Phase | id | Flags |
|---|---|---|
| 1 | one-impl |
ABC or Protocol with exactly one production implementation |
| 2 | const-param |
Parameter whose default is never overridden, or that receives the same literal, at every call site |
| 3 | pass-through |
Function whose body only forwards its arguments to another repo function, or a private one-line helper with one production call site |
| 4 | dead-code |
Function or method no production code mentions: only tests (test-only) or nothing (unused) |
Usage
uvx dermestes@latest # findings introduced by staged + unstaged changes vs HEAD
uvx dermestes@latest --base main # findings introduced since main
uvx dermestes@latest --all # full audit
uvx dermestes@latest guide # agent-oriented instructions
Exit codes: 0 no findings (and no output), 1 findings, 2 usage or
internal error.
For your CLAUDE.md
### `dermestes` — over-abstraction
- `dermestes` lists abstractions your change introduced that have a single
user (an ABC with one implementation, a function with one caller).
- Each finding ends in a `suggest:` line. Apply it and run the tests, or keep
it with `# dermestes: keep <reason>` in the definition's header.
Development
make review-quick # fmt, clippy, tests
make review # plus cargo-audit and cargo-deny
make wheel # build a wheel via maturin
make docs # build the mdBook site + llms.txt
License
MIT
Metadata
Release files for dermestes 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| dermestes-0.1.1.tar.gz | 909.9 kB | Details |
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dermestes-0.1.1-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| dermestes-0.1.1-py3-none-manylinux_2_28_x86_64.whl | Python 3 | none | Linux glibc 2.28+ x86-64 | Details |
| dermestes-0.1.1-py3-none-macosx_11_0_arm64.whl | Python 3 | none | macOS 11.0+ ARM64 | Details |
Total release size: 4.9 MB
Release files / dermestes-0.1.1.tar.gz
| Download URL | dermestes-0.1.1.tar.gz |
|---|---|
| Size | 909.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
11a1eb774689ae716e8ddac5d232cf8fbe40bd56669f97b1f1dcf043b0c205bd
|
|
BLAKE2b-256 checksum How to use checksums |
1dea5ad370146cdd687908a1e8045bcb310aab8b3bdc970a6578d0de1933a2ea
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.
Transparency logRelease files / dermestes-0.1.1-py3-none-win_amd64.whl
| Download URL | dermestes-0.1.1-py3-none-win_amd64.whl |
|---|---|
| Size | 1.3 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
337174ad65f5821bc05c5fe69cb61d5acf2d6f8bd2eb82f7c3ff4c92aef7ea81
|
|
BLAKE2b-256 checksum How to use checksums |
88b3a67c85d7e07390ad88a2fa47a93712866d4326614cc150e49f22972d58f4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.
Transparency logRelease files / dermestes-0.1.1-py3-none-manylinux_2_28_x86_64.whl
| Download URL | dermestes-0.1.1-py3-none-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | Linux glibc 2.28+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
fb7be7b8a4e6a95216ab668dd7df31c07bd8f2d67d2a5fc1ce1c357821002893
|
|
BLAKE2b-256 checksum How to use checksums |
0d7a18934befa4b150895450b813455c784a34d52023ad6115066da9a7202fef
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.
Transparency logRelease files / dermestes-0.1.1-py3-none-macosx_11_0_arm64.whl
| Download URL | dermestes-0.1.1-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.2 MB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
858b0e1ff9e4047998a6eb5583d5cdae8cad0aad0ff3a356f02310a9f280b4ba
|
|
BLAKE2b-256 checksum How to use checksums |
f18b178d8c6be7bbc579161cd10efe2426272f4da3ebfcb893b75d2ece5535c0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.
Transparency log