{"id":"e6ac0691-a4f4-4929-b226-36b3dbd7d945","shortId":"95ZAan","kind":"skill","title":"maintaining-macos-health","tagline":"Hands-on playbook for macOS disk cleanup, dev-machine optimization, and proactive health alerting. Use when the Mac is full or slow, when a kernel panic / watchdog timeout / vm-compressor-space-shortage / Jetsam event happened, when the user asks to free disk space, audit storage","description":"# Maintaining macOS Health\n\nRecovery and prevention playbook for macOS disk and memory crises. Validated against a real watchdog-timeout kernel panic on Apple Silicon caused by `vm_compressor` segments saturated to 100 % with the disk over 90 % full. The same playbook works for routine cleanup or first-time setup on a new machine.\n\n## Table of contents\n\n- [When to use](#when-to-use)\n- [Skill layout](#skill-layout)\n- [Core mental model](#core-mental-model)\n- [Standard workflows](#standard-workflows)\n  - [A. \"Free space NOW\" (incident response)](#a-free-space-now-incident-response)\n  - [B. \"Set up alerting\" (new machine or first time)](#b-set-up-alerting-new-machine-or-first-time)\n  - [C. Alerter stopped working / making noise](#c-already-have-alerter-but-it-stopped-working--making-noise)\n  - [D. \"Uninstall an app cleanly\"](#d-uninstall-an-app-cleanly)\n- [Safety rules (non-negotiable)](#safety-rules-non-negotiable)\n- [Domain quirks captured](#domain-quirks-captured)\n- [Outcomes scale](#outcomes-scale)\n\n## When to use\n\nTrigger on any of:\n\n- Disk free < 20 % or user complains about being out of space\n- Watchdog-timeout / kernel panic / \"no checkins from watchdogd\"\n- New `JetsamEvent-*.ips` with `vm-compressor-space-shortage`\n- \"Mac is slow\", swap > 6 GB, sustained Critical memory pressure\n- User wants to set up monitoring/alerting from scratch\n- Migration to a new Mac → restore the same alerter\n- General \"clean my Mac\" / \"audit storage\" / \"free space\" requests\n\n## Skill layout\n\n| File | Use for |\n|---|---|\n| `references/triage.md` | First 5 minutes — which signal fired, which tier of cleanup to start with |\n| `references/cleanup-tiers.md` | Tiered cleanup playbook (10 tiers, zero-risk → discuss-first), copy-paste-safe shell blocks |\n| `references/never-touch.md` | Categories that **must not** be deleted even under sudo (Mole-derived blacklist + incident-derived additions) |\n| `references/mole-techniques.md` | What Mole does that we borrow: marker→target map for `mo purge`, safe-path validators, age thresholds |\n| `references/alerting.md` | Full alerter design: 3 CRITICAL-only triggers, hysteresis, calibration, alerter vs terminal-notifier vs osascript, install/restore commands |\n| `assets/mac-health-check` | Production-ready bash script (~250 lines, bash 3.2 compatible) |\n| `assets/com.local.mac-health-check.plist` | LaunchAgent plist with `StartCalendarInterval` (StartInterval is broken on laptops) |\n| `assets/config.sh` | Default config with safe thresholds |\n\nRead the relevant reference before acting. Do NOT operate from memory of these files — the details are calibrated to a real incident and small changes break safety.\n\n## Core mental model\n\n1. **Monitor passively** — Stats menubar (`brew install --cask stats`) — you see issues forming, not just when they explode.\n2. **Alert actively** — only on truly CRITICAL conditions: disk < 10 %, memory pressure Critical AND swap > 8 GB, or new JetsamEvent with `vm-compressor-space-shortage`. Anything else is noise.\n3. **Cleanup tiers** — start zero-risk (caches, orphan data), only escalate to project artifacts and sudo categories if needed. Mole's `mo purge` and `mo clean` are the right primary tools.\n4. **Mole is the safety floor** — even when running shell commands by hand, follow Mole's path-validation rules: never delete inside `/System`, `/bin`, `/usr`, `/etc`, `/var/db` outside specific allowlisted subpaths; bin/ only under .NET; vendor/ only under PHP; protect AI/password/VPN/keychain bundle IDs.\n\n## Standard workflows\n\n### A. \"Free space NOW\" (incident response)\n\n1. **Triage** — read `references/triage.md`, identify which signal fired and how urgent.\n2. **Snapshot baseline** — `df -h /System/Volumes/Data` and write down free GB.\n3. **Tier 1 → 4** sweep — copy from `references/cleanup-tiers.md`. Each tier ends with a `df` checkpoint.\n4. **Run `mo purge`** if dev projects exist. Mole's marker-based detection + bin/.NET guard + vendor/PHP guard makes it safer than hand-rolled `find`.\n5. **`mo clean --dry-run`** for cache categories Mole knows about. Show user before confirming.\n6. **Stop at goal** — most users target 100 GB free. Don't go below that just for sport.\n\n### B. \"Set up alerting\" (new machine or first time)\n\n1. Copy `assets/mac-health-check` to `~/bin/mac-health-check` (mkdir first; chmod +x).\n2. Copy `assets/com.local.mac-health-check.plist` to `~/Library/LaunchAgents/`.\n3. Copy `assets/config.sh` to `~/.config/mac-health/config.sh` (mkdir first).\n4. `brew install vjeantet/tap/alerter` (NOT terminal-notifier — it's broken in 2026 on Sequoia/Tahoe).\n5. `brew install --cask stats` for passive layer.\n6. `launchctl load -w ~/Library/LaunchAgents/com.local.mac-health-check.plist`.\n7. First run permission prompt: open `alerter` once interactively (`alerter --message test`) so macOS asks for Notification Center permission.\n8. Tell the user: 7-day calibration is silent (logs only). Edit `config.sh` after a week if pattern noisy.\n\nVerify with `launchctl list | grep mac-health` (should show PID and exit 0) and `tail -f ~/Library/Logs/mac-health/health.log`.\n\n### C. \"Already have alerter, but it stopped working / making noise\"\n\nRead `references/alerting.md` § Troubleshooting. Common causes:\n- Stuck/old `terminal-notifier` (the cask) instead of `alerter` — replace.\n- LaunchAgent not loading after macOS update — `launchctl bootstrap gui/$(id -u) <plist>`.\n- Notifications going to Script Editor — TCC permission was revoked, re-grant.\n- Constant alerts during heavy dev work — `touch ~/.config/mac-health/silent` to suppress.\n\n### D. \"Uninstall an app cleanly\"\n\n`mo uninstall <app>` — Mole scans 12+ locations for app traces (Application Support, Containers, Group Containers, Caches, Preferences, Saved State, LaunchAgents, LaunchDaemons, login items, etc.). Always show dry-run first, never bypass.\n\n## Safety rules (non-negotiable)\n\n1. **Never delete without dry-run + user confirmation** for any tier ≥ 5 or any sudo operation.\n2. **Never bypass `references/never-touch.md`** — even if user explicitly asks. Push back, explain the consequence.\n3. **`mo purge` and `mo clean` always with `--dry-run` first.** Show estimated reclaim, get confirm.\n4. **For Time Machine backups: `tmutil delete <path>`, never `rm`.** TM-tagged paths require the `tmutil` API.\n5. **For sudo cleanup of `/Library`, `/private/var/db/*`**: only the allowlisted subpaths from `references/never-touch.md` § Sudo allowlist.\n6. **No auto-cleanup hooks tied to alerts.** Alerts notify; user decides. Documented anti-pattern (Google SRE, also confirmed by community 2025-2026 — see `references/alerting.md`).\n7. **Don't delete swap files.** `rm /private/var/vm/swapfile*` while running = guaranteed kernel panic.\n\n## Domain quirks captured\n\n- macOS Tahoe (26.x) ships `/bin/bash` 3.2.57. `set -u` + `local var` (no init) = unbound on first reference. The shipped script handles this.\n- LaunchAgent **does not inherit user PATH**. Plist must declare `EnvironmentVariables.PATH` and use absolute paths for interpreters.\n- `StartInterval` clock pauses during sleep on Apple Silicon laptops (radar 6630231). Use `StartCalendarInterval` with explicit minute entries (the shipped plist has all 12).\n- `terminal-notifier` is effectively unmaintained (last release 2019-11) and silently fails on Sequoia/Tahoe Apple Silicon. Use `alerter` instead.\n- `osascript display notification` from launchd attributes to \"Script Editor\" and is unreliable. Use `alerter` from launchd context.\n- `log show --last 6m` is too slow (30+ s) for periodic checks. Poll `/Library/Logs/DiagnosticReports/JetsamEvent-*.ips` instead — async write delay is acceptable on a 5-min cadence.\n- `JetsamEvent-*.ips` files live in `/Library/Logs/DiagnosticReports/` (system-wide), NOT `~/Library/Logs/DiagnosticReports/`.\n- APFS purgeable space lags behind actual deletion by minutes. After cleanup, `df` may not show the change immediately; wait or run `diskutil info /System/Volumes/Data | grep \"Container Free\"`.\n\n## Outcomes scale\n\nA representative recovery from a Mac that hit ~8 % free after long memory-pressure sessions on a heavily-loaded dev profile (Docker, multiple AI tools, IDEs, browsers):\n\n- ~25 % of total disk capacity recovered in a 4-hour session\n- Largest single contribution: project build artifacts via `mo purge` (~30–50 GB across many scan paths)\n- Stale IDE installations + caches + preferences: ~10 GB\n- Docker reclaim (unused images, dead builders, orphan volumes): ~10 GB\n- `~/Downloads` review (old installers, recordings, archived repos): ~15 GB\n- Package-manager caches (npm, pnpm, gradle, maven, cargo, brew): ~5 GB\n- Sudo-tier cleanup (system logs, vendor-app depots): ~5–10 GB\n\nActive alerter installed with 7-day calibration window; verified via synthetic disk-trigger test before going live. Stats menubar app installed for passive monitoring.\n\nNumbers scale with workload and disk size. Light users will see less; heavy AI/Docker/IDE users will see more.","tags":["maintaining","macos","health","driven","development","codealive-ai","agent-safety","agent-skills","ai-coding","ai-driven-development","ai-safety","antigravity"],"capabilities":["skill","source-codealive-ai","skill-maintaining-macos-health","topic-agent-safety","topic-agent-skills","topic-ai-coding","topic-ai-driven-development","topic-ai-safety","topic-antigravity","topic-bash","topic-claude-code","topic-codex-cli","topic-cursor","topic-developer-tools","topic-gemini-cli"],"categories":["ai-driven-development"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/CodeAlive-AI/ai-driven-development/maintaining-macos-health","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add CodeAlive-AI/ai-driven-development","source_repo":"https://github.com/CodeAlive-AI/ai-driven-development","install_from":"skills.sh"}},"qualityScore":"0.483","qualityRationale":"deterministic score 0.48 from registry signals: · indexed on github topic:agent-skills · 67 github stars · SKILL.md body (8,972 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T18:57:06.887Z","embedding":null,"createdAt":"2026-05-04T06:56:23.282Z","updatedAt":"2026-05-18T18:57:06.887Z","lastSeenAt":"2026-05-18T18:57:06.887Z","tsv":"'-11':1076 '-2026':987 '/.config/mac-health/config.sh':697 '/.config/mac-health/silent':839 '/bin':545 '/bin/bash':1011 '/bin/mac-health-check':683 '/downloads':1243 '/etc':547 '/library':953 '/library/launchagents':692 '/library/launchagents/com.local.mac-health-check.plist':727 '/library/logs/diagnosticreports':1135,1140 '/library/logs/diagnosticreports/jetsamevent-':1117 '/library/logs/mac-health/health.log':783 '/private/var/db':954 '/private/var/vm/swapfile':997 '/system':544 '/system/volumes/data':589,1164 '/usr':546 '/var/db':548 '0':779 '1':441,573,597,679,883 '10':313,468,1231,1241,1275 '100':85,659 '12':851,1066 '15':1250 '2':459,584,688,900 '20':227 '2019':1075 '2025':986 '2026':712 '25':1199 '250':390 '26':1008 '3':368,489,595,693,914 '3.2':393 '3.2.57':1012 '30':1111,1219 '4':521,598,610,700,931,1207 '5':297,636,715,895,948,1127,1262,1274 '50':1220 '6':258,652,723,963 '6630231':1054 '6m':1107 '7':728,751,990,1281 '8':474,747,1178 '90':90 'a-free-space-now-incident-respons':141 'absolut':1040 'accept':1124 'across':1222 'act':416 'activ':461,1277 'actual':1146 'addit':344 'age':362 'ai':1195 'ai/docker/ide':1315 'ai/password/vpn/keychain':562 'alert':20,151,161,168,177,280,366,375,460,673,734,737,787,807,833,971,972,1085,1100,1278 'allowlist':551,957,962 'alreadi':175,785 'also':982 'alway':870,920 'anti':978 'anti-pattern':977 'anyth':485 'apf':1141 'api':947 'app':188,194,845,854,1272,1297 'appl':76,1050,1082 'applic':856 'archiv':1248 'artifact':503,1215 'ask':46,742,908 'assets/com.local.mac-health-check.plist':395,690 'assets/config.sh':405,695 'assets/mac-health-check':384,681 'async':1120 'attribut':1092 'audit':51,285 'auto':966 'auto-cleanup':965 'b':148,158,670 'b-set-up-alerting-new-machine-or-first-tim':157 'back':910 'backup':935 'base':622 'baselin':586 'bash':388,392 'behind':1145 'bin':553 'bin/.net':624 'blacklist':340 'block':326 'bootstrap':816 'borrow':351 'break':436 'brew':446,701,716,1261 'broken':402,710 'browser':1198 'build':1214 'builder':1238 'bundl':563 'bypass':877,902 'c':167,174,784 'c-already-have-alerter-but-it-stopped-work':173 'cach':496,643,861,1229,1255 'cadenc':1129 'calibr':374,428,753,1283 'capac':1203 'captur':208,212,1005 'cargo':1260 'cask':448,718,804 'categori':328,506,644 'caus':78,798 'center':745 'chang':435,1157 'check':1115 'checkin':242 'checkpoint':609 'chmod':686 'clean':189,195,282,515,638,846,919 'cleanup':12,98,305,311,490,951,967,1151,1267 'clock':1045 'command':383,531 'common':797 'communiti':985 'compat':394 'complain':230 'compressor':37,81,251,482 'condit':466 'config':407 'config.sh':759 'confirm':651,891,930,983 'consequ':913 'constant':832 'contain':858,860,1166 'content':110 'context':1103 'contribut':1212 'copi':322,600,680,689,694 'copy-paste-saf':321 'core':123,127,438 'core-mental-model':126 'crise':65 'critic':261,370,465,471 'critical-on':369 'd':185,191,842 'd-uninstall-an-app-clean':190 'data':498 'day':752,1282 'dead':1237 'decid':975 'declar':1036 'default':406 'delay':1122 'delet':333,542,885,937,993,1147 'depot':1273 'deriv':339,343 'design':367 'detail':426 'detect':623 'dev':14,615,836,1191 'dev-machin':13 'df':587,608,1152 'discuss':319 'discuss-first':318 'disk':11,49,62,88,225,467,1202,1289,1307 'disk-trigg':1288 'diskutil':1162 'display':1088 'docker':1193,1233 'document':976 'domain':206,210,1003 'domain-quirks-captur':209 'dri':640,873,888,923 'dry-run':639,872,887,922 'edit':758 'editor':824,1095 'effect':1071 'els':486 'end':605 'entri':1060 'environmentvariables.path':1037 'escal':500 'estim':927 'etc':869 'even':334,527,904 'event':41 'exist':617 'exit':778 'explain':911 'explicit':907,1058 'explod':458 'f':782 'fail':1079 'file':292,424,995,1132 'find':635 'fire':301,580 'first':101,155,165,296,320,677,685,699,729,875,925,1021 'first-tim':100 'floor':526 'follow':534 'form':453 'free':48,136,143,226,287,568,593,661,1167,1179 'full':26,91,365 'gb':259,475,594,660,1221,1232,1242,1251,1263,1276 'general':281 'get':929 'go':664,821,1293 'goal':655 'googl':980 'gradl':1258 'grant':831 'grep':770,1165 'group':859 'guarante':1000 'guard':625,627 'gui':817 'h':588 'hand':6,533,633 'hand-rol':632 'handl':1026 'hands-on':5 'happen':42 'health':4,19,55,773 'heavi':835,1314 'heavili':1189 'heavily-load':1188 'hit':1177 'hook':968 'hour':1208 'hysteresi':373 'id':564,818 'ide':1197,1227 'identifi':577 'imag':1236 'immedi':1158 'incid':139,146,342,432,571 'incident-deriv':341 'info':1163 'inherit':1031 'init':1018 'insid':543 'instal':447,702,717,1228,1246,1279,1298 'install/restore':382 'instead':805,1086,1119 'interact':736 'interpret':1043 'ip':247,1118,1131 'issu':452 'item':868 'jetsam':40 'jetsamev':246,478,1130 'kernel':31,73,239,1001 'know':646 'lag':1144 'laptop':404,1052 'largest':1210 'last':1073,1106 'launchag':396,809,865,1028 'launchctl':724,768,815 'launchd':1091,1102 'launchdaemon':866 'layer':722 'layout':119,122,291 'less':1313 'light':1309 'line':391 'list':769 'live':1133,1294 'load':725,811,1190 'local':1015 'locat':852 'log':756,1104,1269 'login':867 'long':1181 'mac':24,254,276,284,772,1175 'mac-health':771 'machin':15,107,153,163,675,934 'maco':3,10,54,61,741,813,1006 'maintain':2,53 'maintaining-macos-health':1 'make':171,183,628,792 'making-nois':182 'manag':1254 'mani':1223 'map':354 'marker':352,621 'marker-bas':620 'maven':1259 'may':1153 'memori':64,262,421,469,1183 'memory-pressur':1182 'mental':124,128,439 'menubar':445,1296 'messag':738 'migrat':272 'min':1128 'minut':298,1059,1149 'mkdir':684,698 'mo':356,511,514,612,637,847,915,918,1217 'model':125,129,440 'mole':338,347,509,522,535,618,645,849 'mole-deriv':337 'monitor':442,1301 'monitoring/alerting':269 'multipl':1194 'must':330,1035 'need':508 'negoti':200,205,882 'net':556 'never':541,876,884,901,938 'new':106,152,162,245,275,477,674 'nois':172,184,488,793 'noisi':765 'non':199,204,881 'non-negoti':198,880 'notif':744,820,1089 'notifi':379,707,802,973,1069 'npm':1256 'number':1302 'old':1245 'open':733 'oper':419,899 'optim':16 'orphan':497,1239 'osascript':381,1087 'outcom':213,216,1168 'outcomes-scal':215 'outsid':549 'packag':1253 'package-manag':1252 'panic':32,74,240,1002 'passiv':443,721,1300 'past':323 'path':360,538,943,1033,1041,1225 'path-valid':537 'pattern':764,979 'paus':1046 'period':1114 'permiss':731,746,826 'php':560 'pid':776 'playbook':8,59,94,312 'plist':397,1034,1063 'pnpm':1257 'poll':1116 'prefer':862,1230 'pressur':263,470,1184 'prevent':58 'primari':519 'proactiv':18 'product':386 'production-readi':385 'profil':1192 'project':502,616,1213 'prompt':732 'protect':561 'purg':357,512,613,916,1218 'purgeabl':1142 'push':909 'quirk':207,211,1004 'radar':1053 're':830 're-grant':829 'read':411,575,794 'readi':387 'real':69,431 'reclaim':928,1234 'record':1247 'recov':1204 'recoveri':56,1172 'refer':414,1022 'references/alerting.md':364,795,989 'references/cleanup-tiers.md':309,602 'references/mole-techniques.md':345 'references/never-touch.md':327,903,960 'references/triage.md':295,576 'releas':1074 'relev':413 'replac':808 'repo':1249 'repres':1171 'request':289 'requir':944 'respons':140,147,572 'restor':277 'review':1244 'revok':828 'right':518 'risk':317,495 'rm':939,996 'roll':634 'routin':97 'rule':197,203,540,879 'run':529,611,641,730,874,889,924,999,1161 'safe':324,359,409 'safe-path':358 'safer':630 'safeti':196,202,437,525,878 'safety-rules-non-negoti':201 'satur':83 'save':863 'scale':214,217,1169,1303 'scan':850,1224 'scratch':271 'script':389,823,1025,1094 'see':451,988,1312,1318 'segment':82 'sequoia/tahoe':714,1081 'session':1185,1209 'set':149,159,267,671,1013 'setup':103 'shell':325,530 'ship':1010,1024,1062 'shortag':39,253,484 'show':648,775,871,926,1105,1155 'signal':300,579 'silent':755,1078 'silicon':77,1051,1083 'singl':1211 'size':1308 'skill':118,121,290 'skill-layout':120 'skill-maintaining-macos-health' 'sleep':1048 'slow':28,256,1110 'small':434 'snapshot':585 'source-codealive-ai' 'space':38,50,137,144,235,252,288,483,569,1143 'specif':550 'sport':669 'sre':981 'stale':1226 'standard':130,133,565 'standard-workflow':132 'start':307,492 'startcalendarinterv':399,1056 'startinterv':400,1044 'stat':444,449,719,1295 'state':864 'stop':169,180,653,790 'storag':52,286 'stuck/old':799 'subpath':552,958 'sudo':336,505,898,950,961,1265 'sudo-ti':1264 'support':857 'suppress':841 'sustain':260 'swap':257,473,994 'sweep':599 'synthet':1287 'system':1137,1268 'system-wid':1136 'tabl':108 'tag':942 'taho':1007 'tail':781 'target':353,658 'tcc':825 'tell':748 'termin':378,706,801,1068 'terminal-notifi':377,705,800,1067 'test':739,1291 'threshold':363,410 'tie':969 'tier':303,310,314,491,596,604,894,1266 'time':102,156,166,678,933 'timeout':34,72,238 'tm':941 'tm-tag':940 'tmutil':936,946 'tool':520,1196 'topic-agent-safety' 'topic-agent-skills' 'topic-ai-coding' 'topic-ai-driven-development' 'topic-ai-safety' 'topic-antigravity' 'topic-bash' 'topic-claude-code' 'topic-codex-cli' 'topic-cursor' 'topic-developer-tools' 'topic-gemini-cli' 'total':1201 'touch':838 'trace':855 'triag':574 'trigger':221,372,1290 'troubleshoot':796 'truli':464 'u':819,1014 'unbound':1019 'uninstal':186,192,843,848 'unmaintain':1072 'unreli':1098 'unus':1235 'updat':814 'urgent':583 'use':21,113,117,220,293,1039,1055,1084,1099 'user':45,229,264,649,657,750,890,906,974,1032,1310,1316 'valid':66,361,539 'var':1016 'vendor':557,1271 'vendor-app':1270 'vendor/php':626 'verifi':766,1285 'via':1216,1286 'vjeantet/tap/alerter':703 'vm':36,80,250,481 'vm-compressor-space-shortag':35,249,480 'volum':1240 'vs':376,380 'w':726 'wait':1159 'want':265 'watchdog':33,71,237 'watchdog-timeout':70,236 'watchdogd':244 'week':762 'when-to-us':114 'wide':1138 'window':1284 'without':886 'work':95,170,181,791,837 'workflow':131,134,566 'workload':1305 'write':591,1121 'x':687,1009 'zero':316,494 'zero-risk':315,493","prices":[{"id":"3033a810-6e7b-4272-8004-de84e6a95df3","listingId":"e6ac0691-a4f4-4929-b226-36b3dbd7d945","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"CodeAlive-AI","category":"ai-driven-development","install_from":"skills.sh"},"createdAt":"2026-05-04T06:56:23.282Z"}],"sources":[{"listingId":"e6ac0691-a4f4-4929-b226-36b3dbd7d945","source":"github","sourceId":"CodeAlive-AI/ai-driven-development/maintaining-macos-health","sourceUrl":"https://github.com/CodeAlive-AI/ai-driven-development/tree/main/skills/maintaining-macos-health","isPrimary":false,"firstSeenAt":"2026-05-04T06:56:23.282Z","lastSeenAt":"2026-05-18T18:57:06.887Z"}],"details":{"listingId":"e6ac0691-a4f4-4929-b226-36b3dbd7d945","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"CodeAlive-AI","slug":"maintaining-macos-health","github":{"repo":"CodeAlive-AI/ai-driven-development","stars":67,"topics":["agent-safety","agent-skills","ai-coding","ai-driven-development","ai-safety","antigravity","bash","claude-code","codex-cli","cursor","developer-tools","gemini-cli","hooks","mcp","multi-agent","opencode","plugins","prompt-engineering","skills","subagents"],"license":"mit","html_url":"https://github.com/CodeAlive-AI/ai-driven-development","pushed_at":"2026-05-12T20:04:46Z","description":"Practices, protocols, and skills for AI-driven software development. 18 skills + 1 Bash safety hook for Claude Code, Codex CLI, OpenCode, Cursor, Gemini CLI, Antigravity, and any agent supporting the Agent Skills standard.","skill_md_sha":"f97bbab7f3780ef3f8f62bda0f6da81ec62592bc","skill_md_path":"skills/maintaining-macos-health/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/CodeAlive-AI/ai-driven-development/tree/main/skills/maintaining-macos-health"},"layout":"multi","source":"github","category":"ai-driven-development","frontmatter":{"name":"maintaining-macos-health","description":"Hands-on playbook for macOS disk cleanup, dev-machine optimization, and proactive health alerting. Use when the Mac is full or slow, when a kernel panic / watchdog timeout / vm-compressor-space-shortage / Jetsam event happened, when the user asks to free disk space, audit storage, set up disk/memory alerts, or restore the same monitoring on a new Mac. Built around Mole (`mo` CLI) for safety guards plus a custom LaunchAgent-based alerter for active warnings. Covers Apple Silicon laptops with heavy AI/Docker workloads."},"skills_sh_url":"https://skills.sh/CodeAlive-AI/ai-driven-development/maintaining-macos-health"},"updatedAt":"2026-05-18T18:57:06.887Z"}}