Software Engineering
Find Removable Dependencies and Abstractions
An evidence-based removal audit that finds dependencies or abstractions whose cost exceeds their value and proposes a tested simplification without changing required behavior.
The process
Work it in this order.
- Define the behavior that must remain, the repository revision, supported environments, and the cost signals that make a dependency or abstraction worth examining.
- Inventory direct and transitive packages, wrappers, interfaces, adapters, generated code, and configuration, then trace their callers and runtime entry points.
- Establish a baseline with existing tests, build, type checks, performance or operational measures, security evidence, and known support constraints.
- Classify each candidate as removable, replaceable, retained, or unknown after checking dynamic use, transitive impact, compatibility, and migration cost.
- Prototype the smallest safe removal in an isolated branch or worktree, run focused and surrounding checks, and compare behavior and resource use with the baseline.
- Choose delete, replace, defer, or retain, documenting migration notes, rollback, dependency updates, and any capability intentionally lost.
- Publish a removal ledger with candidate evidence, test results, decision owners, follow-up work, and unresolved risks instead of declaring dead code from a search alone.
Bring this
Inputs the cat will ask for.
- repository and supported environments
- behavior and compatibility requirements
- dependency and abstraction inventory
- test, build, and performance baseline
Router + one playbook
Route first. Choose one.
Cat Paw loads one playbook per task rather than merging several. Start with this router; the remaining paths are workflow-specific candidates it can inspect.
- Router:
minimal-code-pack skills/minimal-code-pack/dependency-abstraction-removal-audit/SKILL.md
Guardrails
The boundaries travel with the prompt.
- Verify the actual tools, accounts, permissions, and workspace before starting; never claim an unavailable tool, account, source, or capability.
- Use Latch/target-workspace for private code, artifacts, live probes, or non-public data; if that access is unavailable, stop at the boundary and report the blocker rather than substituting a guess.
- Pause for explicit approval before consequential external actions; return evidence and unresolved risks, assumptions, and any action still awaiting approval.
Done means
A checkable finish.
A tested removal audit identifies safe simplifications, preserves required behavior, records the baseline and decision for each candidate, and exposes unresolved risks.
Sources
Where this process came from.
- github.com/DietrichGebert/ponytail/tree/e3ba2aa6f1e6f0bc4d69eb09c9f0d0a93af56156/
- docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review
- docs.npmjs.com/cli/v11/commands/npm-uninstall
Sources establish the workflow pattern. Reddit and community posts, where present, are treated as practitioner anecdotes rather than universal facts.