What problem does it solve? Dead code accumulates in large monorepos and detectors like Knip or Vulture produce false positives around dynamic imports, file-based routes, and codegen entry points, making manual cleanup risky and slow. ## Core Features & Use Cases - Detector-driven discovery: Runs the package's own dead-code detector (yarn lint:deadcode via Knip for JS/TS packages, make deadcode via Vulture for the Python CLI) to surface candidates. - Reference verification: Greps for string references, dynamic imports, Expo Router file-based routes, and codegen inputs before deleting anything, converting confirmed false positives into scoped knip.jsonc ignores. - Safe removal and shipping: Applies safe fixers (yarn lint:deadcode:fix, make deadcode-fix), deletes orphaned tests and fixtures, re-runs the package's full verification gate, and ships each removal individually via /ship. - Use Case: Run /routine-dead-code-removal mobile to survey the mobile package, prove each Knip hit is unreachable, delete the dead code with its tests, and ship each removal as a separate verified change. ## Quick Start Invoke /routine-dead-code-removal with an optional package path, for example /routine-dead-code-removal cli, to find and delete provably unreachable code in that package.