absolute-prune — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited absolute-prune (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Start your first response with the ✂️ emoji.
Cut dead growth from the repo: unused dependencies, unreferenced exports, unreachable code, orphaned files. Evidence-based — every removal is backed by a tool that proves nothing references it — applied in safe waves with tests green after each.
Runs the shared engine in `references/health-engine.md` — read it for the DETECT → SCAN → TRIAGE → FIX → VERIFY → REPORT loop and the safety contract. This file covers only what's specific to pruning.
`prune` vs `simplify`: simplify polishes your working git diff. prune sweeps the whole committed repo for things that are dead repo-wide. Use simplify mid-change; prune as standing cleanup on green main.
Dead dependencies — declared but never imported (and missing deps that are imported but undeclared):
| Ecosystem | Tool |
|---|---|
| JS/TS | depcheck or knip (knip also covers exports/files) |
| Python | deptry |
| Go | go mod tidy (diff), unused module detection |
Dead code — unreferenced exports, unreachable branches, orphaned files:
| Ecosystem | Tool |
|---|---|
| JS/TS | knip (exports/files), ts-prune, eslint no-unused-vars |
| Python | vulture, ruff unused rules |
| Go | deadcode ./..., staticcheck (U1000) |
Prefer tools already in the project. Treat results as candidates — verify each isn't reached via dynamic import, reflection, DI, public API, or a config string before removing.
| Wave | Removal | Default |
|---|---|---|
| 1 | unused devDeps, unreferenced local exports/functions | fix now — lowest risk |
| 2 | unused runtime deps, orphaned internal files | fix this pass after confirming no dynamic ref |
| 3 | anything reachable via public API, plugin system, dynamic require, reflection, or config | gated / usually defer — high false-positive risk |
Static tools miss dynamic references. Anything in wave 3, or anything a tool flags but you can't prove is dead, gets confirmed with the user or deferred — never auto-removed.
"orphaned files").
removed symbol truly had no references. If anything goes red, the symbol wasn't dead — revert and reclassify.
for a config/plugin you can't trace. Report those as "suspected dead, needs human call".
lookups defeat static analysis. Confirm before deleting.
the package entry points / exports map.
Wave it.
prune removes dead things; it does not restructure live code.Restructuring → simplify or work.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.