macos-complete-uninstall
Installation
SKILL.md
Complete macOS uninstall
Removing the .app and the data directory leaves the thing alive and re-installable. A complete
uninstall is an inventory problem first and a deletion problem second: find every hook (launchd,
browser, keychain, shell, OS privacy), find the install trigger that recreates the software, then
delete, then prove it is gone with checks that cannot pass by accident.
Non-negotiables
- Inventory completely before deleting anything. Run
scripts/inventory.sh <term>(ships with this skill) and read its output. Never delete from a guess about where an app lives. - Find the install trigger, not just the payload. Deleting an installed artifact while its install trigger survives means the OS reinstalls it on next launch. See pitfall 4.
- Ask before irreversible destruction. Confirm scope with the user and offer a backup choice for user-authored content. Report size and what will be lost.
- Verify with falsifiable checks, not with the absence of errors. A successful
rmis not a completed uninstall. - Never hand-edit HMAC-protected or consensus-managed state (Chrome
Secure Preferences, launchd override DB). Remove the trigger and let the owning process reconcile.