{"id":"9f6ce675-5caf-47f6-acfb-204f2ae5c2b2","shortId":"LP79yg","kind":"skill","title":"clean-cache","tagline":"Batch-scan workspace Flutter/Android/iOS/Node.js projects, report cache usage, and perform tiered cleanup to free disk space. Triggers when the user says \"clean cache\", \"disk space low\", \"free up space\", or similar.","description":"# Batch Project Cache Cleanup (Clean Cache)\n\n## Description\n\nWhen developing multiple Flutter/Android/iOS projects, build artifacts and dependency caches grow rapidly. This Skill batch-scans the workspace, performs tiered cleanup by safety level, and frees disk space while **preserving global dependency caches** to avoid re-downloading on the next build.\n\n## Rules\n\n### Rule 0 — Safety Tiers (Core Principle)\n\nCleanup is divided into three tiers. **Only L1 is executed by default**; L2/L3 require explicit user confirmation:\n\n| Tier | What Gets Deleted | Rebuild Cost | Estimated Space Freed |\n|------|--------|---------|---------|\n| **L1 Safe Cleanup** | Build artifacts (build/, DerivedData, .dart_tool/, bazel-*) + stale dev tool caches (Homebrew old version packages, Bazel global cache) | Recompile only, no network cost | Large |\n| **L2 Dependency Cleanup** | Project-level dependencies (Pods/, node_modules/, .gradle/caches/) | Requires `pod install` / `npm install` / gradle sync, but recovers from **global cache**, relatively fast | Medium |\n| **L3 Deep Cleanup** | Global caches (~/.gradle/caches/, CocoaPods repo index, Pub global cache) | All projects need to re-download on first build, **very slow** | Small |\n\n**Key distinction**: L2 deletes project-internal `Pods/`, `node_modules/`, but **global caches remain** (`~/.cocoapods/repos/`, npm cache, `~/.gradle/caches/`), so re-installing will mostly recover packages from local cache without re-downloading.\n\n### Rule 1 — Step 1: Scan Workspace\n\nAccept the user-specified workspace root directory (default `~/Desktop` or the parent of the current directory) and scan all cleanable cache directories:\n\n```bash\n# Scan script — find all cache directories and their sizes\nWORKSPACE=\"${1:-.}\"\n\necho \"=== L1 Build Artifacts (safe to delete, just recompile) ===\"\n# Flutter build artifacts\nfind \"$WORKSPACE\" -name \".dart_tool\" -type d -maxdepth 6 2>/dev/null | while read d; do du -sh \"$d\"; done\n# Android build artifacts\nfind \"$WORKSPACE\" -path \"*/app/build\" -type d -maxdepth 6 2>/dev/null | while read d; do du -sh \"$d\"; done\nfind \"$WORKSPACE\" -name \"build\" -path \"*android*\" -type d -maxdepth 6 2>/dev/null | while read d; do du -sh \"$d\"; done\n# iOS DerivedData (global)\ndu -sh ~/Library/Developer/Xcode/DerivedData/ 2>/dev/null\n# Bazel artifacts\nfind \"$WORKSPACE\" -name \"bazel-*\" -type l -maxdepth 4 2>/dev/null | while read d; do echo \"$d (symlink)\"; done\n# Homebrew old version packages cache\ndu -sh ~/Library/Caches/Homebrew/ 2>/dev/null\n# Bazel global cache\ndu -sh ~/Library/Caches/bazel/ 2>/dev/null\ndu -sh ~/Library/Caches/bazelisk/ 2>/dev/null\n\necho \"\"\necho \"=== L2 Project-Level Dependencies (need install after deletion, but recover from global cache) ===\"\n# iOS Pods\nfind \"$WORKSPACE\" -name \"Pods\" -type d -maxdepth 5 2>/dev/null | while read d; do du -sh \"$d\"; done\n# Node modules\nfind \"$WORKSPACE\" -name \"node_modules\" -type d -maxdepth 5 -prune 2>/dev/null | while read d; do du -sh \"$d\"; done\n# Android .gradle (project-level)\nfind \"$WORKSPACE\" -name \".gradle\" -type d -maxdepth 4 2>/dev/null | while read d; do du -sh \"$d\"; done\n# Flutter .flutter-plugins\nfind \"$WORKSPACE\" -name \".flutter-plugins\" -type f -maxdepth 5 2>/dev/null\nfind \"$WORKSPACE\" -name \".flutter-plugins-dependencies\" -type f -maxdepth 5 2>/dev/null\n\necho \"\"\necho \"=== L3 Global Caches (all projects must re-download after deletion, use caution) ===\"\ndu -sh ~/.gradle/caches/ 2>/dev/null\ndu -sh ~/.cocoapods/repos/ 2>/dev/null\ndu -sh ~/.pub-cache/ 2>/dev/null\ndu -sh ~/Library/Caches/CocoaPods/ 2>/dev/null\nnpm cache ls 2>/dev/null | wc -l | xargs -I{} echo \"npm cache: {} entries\"\n```\n\nOutput format — summary table grouped by project:\n\n```\n## Cache Scan Report\n\n| Project | Type | L1 Build Artifacts | L2 Project Dependencies | Total |\n|------|------|-----------|-----------|------|\n| app-ios | iOS | 0M | 288M (Pods) | 288M |\n| app-android | Android | 450M (build) | 156M (.gradle) | 606M |\n| app-flutter-module | Flutter | 36M (.dart_tool) | — | 36M |\n| ... | | | | |\n\n### Global Caches\n| Cache | Size |\n|------|------|\n| DerivedData | 3.2G |\n| ~/.gradle/caches | 1.1G |\n| ~/.cocoapods/repos | 800M |\n\n**L1 freeable: X.X GB** | L2 freeable: X.X GB | L3 freeable: X.X GB\n**Total: X.X GB**\n```\n\n### Rule 2 — Step 2: User Confirmation of Cleanup Level\n\nAfter displaying the scan report, ask the user:\n\n```\nRecommended: L1 (safe cleanup), estimated X.X GB freed. Next build only requires recompilation, no re-downloads.\nAlso run L2? L2 will delete Pods/node_modules/.gradle, but global caches remain;\nre-installing will mostly recover from local cache (typically < 2 minutes).\n\nChoose: L1 / L1+L2 / L1+L2+L3 (not recommended)\n```\n\n**L2 or L3 must not be executed without confirmation.**\n\n### Rule 3 — Step 3: Execute Cleanup\n\nExecute the corresponding tier based on user selection. **Print the path and size before each rm so the user can see what is being deleted.**\n\n#### L1 Cleanup Commands\n\n```bash\n# Flutter build artifacts\nfind \"$WORKSPACE\" -name \".dart_tool\" -type d -maxdepth 6 -exec rm -rf {} + 2>/dev/null\n\n# Android build directories (only delete app/build and module build, not source directories)\nfind \"$WORKSPACE\" -path \"*/app/build\" -type d -maxdepth 6 -exec rm -rf {} + 2>/dev/null\n\n# iOS DerivedData (shared by all projects, cleaned at once)\nrm -rf ~/Library/Developer/Xcode/DerivedData/*\n\n# Bazel output (only delete content pointed to by symlinks)\n# bazel clean must be executed in the project directory\nfind \"$WORKSPACE\" -name \"WORKSPACE\" -o -name \"MODULE.bazel\" -maxdepth 4 2>/dev/null | \\\n  xargs -I{} dirname {} | sort -u | while read proj; do\n    echo \"Cleaning bazel in $proj\"\n    (cd \"$proj\" && bazel clean 2>/dev/null)\n  done\n\n# Homebrew old version packages (only deletes expired downloads, does not affect installed software)\nbrew cleanup 2>/dev/null\n\n# Bazel global cache (compilation intermediates, just recompile after deletion)\nrm -rf ~/Library/Caches/bazel/ ~/Library/Caches/bazelisk/\n```\n\n#### L2 Cleanup Commands\n\n```bash\n# iOS Pods (preserves Podfile.lock; next pod install will restore consistent versions)\nfind \"$WORKSPACE\" -name \"Pods\" -type d -maxdepth 5 -exec rm -rf {} + 2>/dev/null\n\n# Node modules (preserves package-lock.json)\nfind \"$WORKSPACE\" -name \"node_modules\" -type d -maxdepth 5 -prune -exec rm -rf {} + 2>/dev/null\n\n# Android .gradle project cache\nfind \"$WORKSPACE\" -name \".gradle\" -type d -maxdepth 4 -exec rm -rf {} + 2>/dev/null\n\n# Flutter generated files\nfind \"$WORKSPACE\" -name \".flutter-plugins\" -type f -maxdepth 5 -delete 2>/dev/null\nfind \"$WORKSPACE\" -name \".flutter-plugins-dependencies\" -type f -maxdepth 5 -delete 2>/dev/null\n```\n\n#### L3 Cleanup Commands (require secondary confirmation)\n\n```bash\necho \"L3 will clear global caches — all projects will need to re-download dependencies on next build\"\necho \"Type YES to confirm\"\n\n# Gradle global cache\nrm -rf ~/.gradle/caches/\n\n# CocoaPods cache\npod cache clean --all\nrm -rf ~/Library/Caches/CocoaPods/\n\n# Pub global cache\nflutter pub cache clean\n\n# npm cache\nnpm cache clean --force\n```\n\n### Rule 4 — Step 4: Verify and Report\n\n```bash\n# Re-scan after cleanup and compare freed space\necho \"=== Cleanup Complete ===\"\necho \"Space freed: X.X GB\"\necho \"\"\necho \"Recovery guide for next build:\"\necho \"  Flutter: flutter pub get\"\necho \"  iOS:     cd <project> && pod install\"\necho \"  Android: Open project, Gradle syncs automatically\"\necho \"  Node.js: npm install\"\n```\n\n### Rule 5 — What Must Not Be Deleted (Red Lines)\n\n| Never Delete | Reason |\n|---------|------|\n| `Podfile.lock` / `package-lock.json` / `pubspec.lock` | Lock files ensure version consistency; deleting them could introduce dependency version changes |\n| `.gradle/wrapper/` | Gradle wrapper jar; deleting it breaks the gradle command itself |\n| `~/.pub-cache/` (at L1/L2) | Flutter global package cache; deleting it forces all projects to re-download |\n| `~/.gradle/caches/` (at L1/L2) | Gradle global dependency cache |\n| `~/.cocoapods/repos/` (at L1/L2) | CocoaPods spec repo index |\n| Any `src/` or source files | Only delete build artifacts and caches, never touch source code |\n| `.git/` | git repository data |\n\n### Rule 6 — Quick Single-Project Cleanup\n\nIf the user only wants to clean a single project rather than batch scanning:\n\n```bash\n# Flutter project\ncd <project> && flutter clean && flutter pub get\n\n# iOS project\ncd <project>/ios && rm -rf Pods/ build/ && pod install\n\n# Android project\ncd <project>/android && ./gradlew clean\n\n# Clean all DerivedData (affects all Xcode projects)\nrm -rf ~/Library/Developer/Xcode/DerivedData/*\n```\n\n## Examples\n\n### Bad\n\n```\nUser: \"clean up the caches\"\nAI: Directly executes rm -rf ~/.gradle/caches/ ~/.cocoapods/repos/ ~/.pub-cache/\n→ Deleted global caches; all projects will spend 30 minutes re-downloading on next build\n```\n\n```\nUser: \"disk space is low\"\nAI: Only cleaned the build/ of one project in the current directory\n→ The caches of 10 other projects remain; space freed is negligible\n```\n\n### Good\n\n```\nUser: \"clean up the caches\"\nAI: Scans entire workspace → reports 8 projects with 4.2GB of caches →\n    recommends L1 to free 2.8GB (pure build artifacts) → user confirms →\n    executes cleanup → reports 2.8GB actually freed; next compile auto-recovers\n```\n\n```\nUser: \"disk is almost full, free as much as possible\"\nAI: Scan report L1=2.8GB, L2=1.4GB → recommends L1+L2 →\n    explains L2 recovery method (pod install / npm install, recovers from global cache in ~1-2 minutes) →\n    user confirms L1+L2 → executes → frees 4.2GB\n```","tags":["clean","cache","enterprise","harness","engineering","addxai","agent-skills","ai-agent","ai-engineering","claude-code","code-review","cursor"],"capabilities":["skill","source-addxai","skill-clean-cache","topic-agent-skills","topic-ai-agent","topic-ai-engineering","topic-claude-code","topic-code-review","topic-cursor","topic-devops","topic-enterprise","topic-sre","topic-windsurf"],"categories":["enterprise-harness-engineering"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/addxai/enterprise-harness-engineering/clean-cache","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add addxai/enterprise-harness-engineering","source_repo":"https://github.com/addxai/enterprise-harness-engineering","install_from":"skills.sh"}},"qualityScore":"0.458","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 16 github stars · SKILL.md body (9,517 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-04-22T01:02:11.090Z","embedding":null,"createdAt":"2026-04-21T19:04:00.403Z","updatedAt":"2026-04-22T01:02:11.090Z","lastSeenAt":"2026-04-22T01:02:11.090Z","tsv":"'-2':1351 '/.cocoapods/repos':211,526,607,1134,1229 '/.gradle/caches':177,214,521,604,997,1127,1228 '/.pub-cache':531,1111,1230 '/android':1203 '/app/build':308,766 '/desktop':245 '/dev/null':293,314,334,350,362,380,388,393,421,443,466,490,503,523,528,533,538,543,750,775,816,836,854,895,914,931,947,961 '/gradlew':1204 '/ios':1193 '/library/caches/bazel':386,866 '/library/caches/bazelisk':391,867 '/library/caches/cocoapods':536,1006 '/library/caches/homebrew':378 '/library/developer/xcode/deriveddata':348,787,1215 '0':88 '0m':575 '1':231,233,270,1350 '1.1':605 '1.4':1332 '10':1266 '156m':585 '2':292,313,333,349,361,379,387,392,420,442,465,489,502,522,527,532,537,542,625,627,679,749,774,815,835,853,894,913,930,946,960 '2.8':1296,1306,1329 '288m':576,578 '3':700,702 '3.2':602 '30':1238 '36m':593,596 '4':360,464,814,926,1021,1023 '4.2':1288,1359 '450m':583 '5':419,440,488,501,890,908,944,958,1074 '6':291,312,332,745,770,1161 '606m':587 '8':1285 '800m':608 'accept':236 'actual':1308 'affect':848,1209 'ai':1223,1251,1280,1325 'almost':1318 'also':658 'android':302,328,452,581,582,751,915,1063,1200 'app':572,580,589 'app-android':579 'app-flutter-modul':588 'app-io':571 'app/build':756 'artifact':49,123,274,282,304,352,566,736,1149,1300 'ask':638 'auto':1313 'auto-recov':1312 'automat':1068 'avoid':78 'bad':1217 'base':709 'bash':259,733,871,968,1027,1181 'batch':5,36,58,1179 'batch-scan':4,57 'bazel':128,137,351,356,381,788,797,828,833,855 'break':1106 'brew':851 'build':48,85,122,124,193,273,281,303,326,565,584,650,735,752,759,986,1051,1148,1197,1245,1255,1299 'cach':3,11,27,38,41,52,76,132,139,168,176,183,209,213,225,257,264,375,383,409,508,540,550,559,598,599,667,677,857,918,974,994,999,1001,1009,1012,1015,1017,1117,1133,1151,1222,1233,1264,1279,1291,1348 'caution':518 'cd':831,1059,1184,1192,1202 'chang':1099 'choos':681 'clean':2,26,40,782,798,827,834,1002,1013,1018,1173,1186,1205,1206,1219,1253,1276 'clean-cach':1 'cleanabl':256 'cleanup':16,39,64,93,121,148,174,631,644,704,731,852,869,963,1032,1038,1166,1304 'clear':972 'cocoapod':178,998,1137 'code':1155 'command':732,870,964,1109 'compar':1034 'compil':858,1311 'complet':1039 'confirm':109,629,698,967,991,1302,1354 'consist':881,1092 'content':792 'core':91 'correspond':707 'cost':115,144 'could':1095 'current':251,1261 'd':289,296,300,310,317,321,330,337,341,365,368,417,424,428,438,446,450,462,469,473,743,768,888,906,924 'dart':126,286,594,740 'data':1159 'deep':173 'default':104,244 'delet':113,200,277,404,516,663,729,755,791,843,863,945,959,1079,1083,1093,1104,1118,1147,1231 'depend':51,75,147,152,400,497,569,954,983,1097,1132 'deriveddata':125,344,601,777,1208 'descript':42 'dev':130 'develop':44 'direct':1224 'directori':243,252,258,265,753,762,805,1262 'dirnam':819 'disk':19,28,70,1247,1316 'display':634 'distinct':198 'divid':95 'done':301,322,342,370,429,451,474,837 'download':81,190,229,514,657,845,982,1126,1242 'du':298,319,339,346,376,384,389,426,448,471,519,524,529,534 'echo':271,367,394,395,504,505,548,826,969,987,1037,1040,1045,1046,1052,1057,1062,1069 'ensur':1090 'entir':1282 'entri':551 'estim':116,645 'exampl':1216 'exec':746,771,891,910,927 'execut':102,696,703,705,801,1225,1303,1357 'expir':844 'explain':1337 'explicit':107 'f':486,499,942,956 'fast':170 'file':934,1089,1145 'find':262,283,305,323,353,412,432,457,479,491,737,763,806,883,900,919,935,948 'first':192 'flutter':280,475,477,483,495,590,592,734,932,939,952,1010,1053,1054,1114,1182,1185,1187 'flutter-plugin':476,482,938 'flutter-plugins-depend':494,951 'flutter/android/ios':46 'flutter/android/ios/node.js':8 'forc':1019,1120 'format':553 'free':18,31,69,1295,1320,1358 'freeabl':610,614,618 'freed':118,648,1035,1042,1271,1309 'full':1319 'g':603,606 'gb':612,616,620,623,647,1044,1289,1297,1307,1330,1333,1360 'generat':933 'get':112,1056,1189 'git':1156,1157 'global':74,138,167,175,182,208,345,382,408,507,597,666,856,973,993,1008,1115,1131,1232,1347 'good':1274 'gradl':162,453,460,586,916,922,992,1066,1101,1108,1130 'gradle/caches':156 'gradle/wrapper':1100 'group':556 'grow':53 'guid':1048 'homebrew':133,371,838 'index':180,1140 'instal':159,161,218,402,671,849,878,1061,1072,1199,1342,1344 'intermedi':859 'intern':203 'introduc':1096 'io':343,410,573,574,776,872,1058,1190 'jar':1103 'key':197 'l':358,545 'l1':100,119,272,564,609,642,682,683,685,730,1293,1328,1335,1355 'l1/l2':1113,1129,1136 'l2':146,199,396,567,613,660,661,684,686,690,868,1331,1336,1338,1356 'l2/l3':105 'l3':172,506,617,687,692,962,970 'larg':145 'level':67,151,399,456,632 'line':1081 'local':224,676 'lock':1088 'low':30,1250 'ls':541 'maxdepth':290,311,331,359,418,439,463,487,500,744,769,813,889,907,925,943,957 'medium':171 'method':1340 'minut':680,1239,1352 'modul':155,206,431,436,591,758,897,904 'module.bazel':812 'most':220,673 'much':1322 'multipl':45 'must':511,693,799,1076 'name':285,325,355,414,434,459,481,493,739,808,811,885,902,921,937,950 'need':186,401,978 'neglig':1273 'network':143 'never':1082,1152 'next':84,649,876,985,1050,1244,1310 'node':154,205,430,435,896,903 'node.js':1070 'npm':160,212,539,549,1014,1016,1071,1343 'o':810 'old':134,372,839 'one':1257 'open':1064 'output':552,789 'packag':136,222,374,841,1116 'package-lock.json':899,1086 'parent':248 'path':307,327,715,765 'perform':14,62 'plugin':478,484,496,940,953 'pod':153,158,204,411,415,577,873,877,886,1000,1060,1196,1198,1341 'podfile.lock':875,1085 'pods/node_modules/.gradle':664 'point':793 'possibl':1324 'preserv':73,874,898 'principl':92 'print':713 'proj':824,830,832 'project':9,37,47,150,185,202,398,455,510,558,562,568,781,804,917,976,1065,1122,1165,1176,1183,1191,1201,1212,1235,1258,1268,1286 'project-intern':201 'project-level':149,397,454 'prune':441,909 'pub':181,1007,1011,1055,1188 'pubspec.lock':1087 'pure':1298 'quick':1162 'rapid':54 'rather':1177 're':80,189,217,228,513,656,670,981,1029,1125,1241 're-download':79,188,227,512,655,980,1124,1240 're-instal':216,669 're-scan':1028 'read':295,316,336,364,423,445,468,823 'reason':1084 'rebuild':114 'recommend':641,689,1292,1334 'recompil':140,279,653,861 'recov':165,221,406,674,1314,1345 'recoveri':1047,1339 'red':1080 'relat':169 'remain':210,668,1269 'repo':179,1139 'report':10,561,637,1026,1284,1305,1327 'repositori':1158 'requir':106,157,652,965 'restor':880 'rf':748,773,786,865,893,912,929,996,1005,1195,1214,1227 'rm':720,747,772,785,864,892,911,928,995,1004,1194,1213,1226 'root':242 'rule':86,87,230,624,699,1020,1073,1160 'run':659 'safe':120,275,643 'safeti':66,89 'say':25 'scan':6,59,234,254,260,560,636,1030,1180,1281,1326 'script':261 'secondari':966 'see':725 'select':712 'sh':299,320,340,347,377,385,390,427,449,472,520,525,530,535 'share':778 'similar':35 'singl':1164,1175 'single-project':1163 'size':268,600,717 'skill':56 'skill-clean-cache' 'slow':195 'small':196 'softwar':850 'sort':820 'sourc':761,1144,1154 'source-addxai' 'space':20,29,33,71,117,1036,1041,1248,1270 'spec':1138 'specifi':240 'spend':1237 'src':1142 'stale':129 'step':232,626,701,1022 'summari':554 'symlink':369,796 'sync':163,1067 'tabl':555 'three':97 'tier':15,63,90,98,110,708 'tool':127,131,287,595,741 'topic-agent-skills' 'topic-ai-agent' 'topic-ai-engineering' 'topic-claude-code' 'topic-code-review' 'topic-cursor' 'topic-devops' 'topic-enterprise' 'topic-sre' 'topic-windsurf' 'total':570,621 'touch':1153 'trigger':21 'type':288,309,329,357,416,437,461,485,498,563,742,767,887,905,923,941,955,988 'typic':678 'u':821 'usag':12 'use':517 'user':24,108,239,628,640,711,723,1169,1218,1246,1275,1301,1315,1353 'user-specifi':238 'verifi':1024 'version':135,373,840,882,1091,1098 'want':1171 'wc':544 'without':226,697 'workspac':7,61,235,241,269,284,306,324,354,413,433,458,480,492,738,764,807,809,884,901,920,936,949,1283 'wrapper':1102 'x.x':611,615,619,622,646,1043 'xarg':546,817 'xcode':1211 'yes':989","prices":[{"id":"39d6c0d2-4c9b-4080-8253-17ed0276944f","listingId":"9f6ce675-5caf-47f6-acfb-204f2ae5c2b2","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"addxai","category":"enterprise-harness-engineering","install_from":"skills.sh"},"createdAt":"2026-04-21T19:04:00.403Z"}],"sources":[{"listingId":"9f6ce675-5caf-47f6-acfb-204f2ae5c2b2","source":"github","sourceId":"addxai/enterprise-harness-engineering/clean-cache","sourceUrl":"https://github.com/addxai/enterprise-harness-engineering/tree/main/skills/clean-cache","isPrimary":false,"firstSeenAt":"2026-04-21T19:04:00.403Z","lastSeenAt":"2026-04-22T01:02:11.090Z"}],"details":{"listingId":"9f6ce675-5caf-47f6-acfb-204f2ae5c2b2","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"addxai","slug":"clean-cache","github":{"repo":"addxai/enterprise-harness-engineering","stars":16,"topics":["agent-skills","ai-agent","ai-engineering","claude-code","code-review","cursor","devops","enterprise","sre","windsurf"],"license":"apache-2.0","html_url":"https://github.com/addxai/enterprise-harness-engineering","pushed_at":"2026-04-17T08:57:37Z","description":"Enterprise-grade AI Agent Skills for software development, DevOps, SRE, security, and product teams. Compatible with Claude Code, Cursor, Windsurf, Gemini CLI, GitHub Copilot, and 30+ AI coding agents.","skill_md_sha":"97d98d68d605b00a903efc09bb147b0bec821b94","skill_md_path":"skills/clean-cache/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/addxai/enterprise-harness-engineering/tree/main/skills/clean-cache"},"layout":"multi","source":"github","category":"enterprise-harness-engineering","frontmatter":{"name":"clean-cache","description":"Batch-scan workspace Flutter/Android/iOS/Node.js projects, report cache usage, and perform tiered cleanup to free disk space. Triggers when the user says \"clean cache\", \"disk space low\", \"free up space\", or similar."},"skills_sh_url":"https://skills.sh/addxai/enterprise-harness-engineering/clean-cache"},"updatedAt":"2026-04-22T01:02:11.090Z"}}