{"id":"fde069e7-648c-4296-bd98-952f103c22dd","shortId":"kYcdtL","kind":"skill","title":"compactable-tool-whitelist-gating","tagline":"Only allow cached microcompact to delete tool results for a vetted, pre-gated whitelist of tool names.","description":"# SKILL: Compactable Tool Whitelist Gating\n**Domain:** microcompaction  \n**Trigger:** Apply when cache-editing compacts conversation transcripts and must avoid deleting outputs from tools that cannot be safely re-run or are non-text.\n**Source Pattern:** Distilled from reviewed session memory, compaction, and context-budgeting implementations.\n\n## Core Method\nDefine a fixed set of safe tools whose outputs can be trimmed via cached microcompact. Compose the set from shell tools, file read/write utilities, grep/glob/web fetch/search, and optionally other text-generating helpers. The microcompact path consults this set to decide whether to register a tool result for deletion, so no unsupported or stateful tools ever get silently mutated.\n\n## Key Rules\n- Build the whitelist as a static `Set` once so permission checks stay fast and deterministic.\n- Include only tools whose outputs are recoverable or purely text (shell commands, grep/glob, file read/write, fetch/search, etc.).\n- Skip tools not on the list so cache edits never attempt to delete specialized state (APIs that mutate files, image tools, etc.).\n- Document that new tools must be evaluated before being added to the whitelist to avoid breaking reads.\n- Keep the set close to the microcompact path and highlight it in comments so the gating logic stays obvious.\n\n## Example Application\nWhen cached microcompact inspects assistant messages, it only registers tool uses whose names appear in compactable tools, ensuring the summarizer never tries to delete non-text or stateful outputs like MCP connectors or tool search metadata.\n\n## Anti-Patterns (What NOT to do)\n- Do not treat all tools equally—many produce binary or stateful outputs that cannot be safely recompiled from cache edits.\n- Do not mutate the whitelist at runtime; it must remain a static, vetted guardrail for cached compaction.","tags":["compactable","tool","whitelist","gating","cskill","agents","ychampion","agent-skills","ai-agents","cli","coding-agents","context-engineering"],"capabilities":["skill","source-ychampion","skill-compactable-tool-whitelist-gating","topic-agent-skills","topic-ai-agents","topic-cli","topic-coding-agents","topic-context-engineering","topic-developer-tools","topic-mcp","topic-multi-agent","topic-terminal-ui"],"categories":["cskill-agents"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/ychampion/cskill-agents/compactable-tool-whitelist-gating","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add ychampion/cskill-agents","source_repo":"https://github.com/ychampion/cskill-agents","install_from":"skills.sh"}},"qualityScore":"0.467","qualityRationale":"deterministic score 0.47 from registry signals: · indexed on github topic:agent-skills · 34 github stars · SKILL.md body (1,863 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-22T06:56:47.335Z","embedding":null,"createdAt":"2026-04-18T22:20:07.873Z","updatedAt":"2026-04-22T06:56:47.335Z","lastSeenAt":"2026-04-22T06:56:47.335Z","tsv":"'ad':198 'allow':7 'anti':265 'anti-pattern':264 'api':182 'appear':240 'appli':32 'applic':226 'assist':231 'attempt':177 'avoid':42,203 'binari':279 'break':204 'budget':70 'build':135 'cach':8,35,87,174,228,289,306 'cache-edit':34 'cannot':48,284 'check':145 'close':209 'command':161 'comment':218 'compact':2,25,37,66,242,307 'compactable-tool-whitelist-g':1 'compos':89 'connector':259 'consult':110 'context':69 'context-budget':68 'convers':38 'core':72 'decid':114 'defin':74 'delet':11,43,122,179,250 'determinist':149 'distil':61 'document':189 'domain':29 'edit':36,175,290 'ensur':244 'equal':276 'etc':166,188 'evalu':195 'ever':129 'exampl':225 'fast':147 'fetch/search':99,165 'file':95,163,185 'fix':76 'gate':5,19,28,221 'generat':105 'get':130 'grep/glob':162 'grep/glob/web':98 'guardrail':304 'helper':106 'highlight':215 'imag':186 'implement':71 'includ':150 'inspect':230 'keep':206 'key':133 'like':257 'list':172 'logic':222 'mani':277 'mcp':258 'memori':65 'messag':232 'metadata':263 'method':73 'microcompact':9,30,88,108,212,229 'must':41,193,299 'mutat':132,184,293 'name':23,239 'never':176,247 'new':191 'non':57,252 'non-text':56,251 'obvious':224 'option':101 'output':44,82,154,256,282 'path':109,213 'pattern':60,266 'permiss':144 'pre':18 'pre-gat':17 'produc':278 'pure':158 're':52 're-run':51 'read':205 'read/write':96,164 'recompil':287 'recover':156 'regist':117,235 'remain':300 'result':13,120 'review':63 'rule':134 'run':53 'runtim':297 'safe':50,79,286 'search':262 'session':64 'set':77,91,112,141,208 'shell':93,160 'silent':131 'skill':24 'skill-compactable-tool-whitelist-gating' 'skip':167 'sourc':59 'source-ychampion' 'special':180 'state':127,181,255,281 'static':140,302 'stay':146,223 'summar':246 'text':58,104,159,253 'text-gener':103 'tool':3,12,22,26,46,80,94,119,128,152,168,187,192,236,243,261,275 'topic-agent-skills' 'topic-ai-agents' 'topic-cli' 'topic-coding-agents' 'topic-context-engineering' 'topic-developer-tools' 'topic-mcp' 'topic-multi-agent' 'topic-terminal-ui' 'transcript':39 'treat':273 'tri':248 'trigger':31 'trim':85 'unsupport':125 'use':237 'util':97 'vet':16,303 'via':86 'whether':115 'whitelist':4,20,27,137,201,295 'whose':81,153,238","prices":[{"id":"c94c5686-b27f-4676-9ef2-05fdc411dacb","listingId":"fde069e7-648c-4296-bd98-952f103c22dd","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"ychampion","category":"cskill-agents","install_from":"skills.sh"},"createdAt":"2026-04-18T22:20:07.873Z"}],"sources":[{"listingId":"fde069e7-648c-4296-bd98-952f103c22dd","source":"github","sourceId":"ychampion/cskill-agents/compactable-tool-whitelist-gating","sourceUrl":"https://github.com/ychampion/cskill-agents/tree/main/skills/compactable-tool-whitelist-gating","isPrimary":false,"firstSeenAt":"2026-04-18T22:20:07.873Z","lastSeenAt":"2026-04-22T06:56:47.335Z"}],"details":{"listingId":"fde069e7-648c-4296-bd98-952f103c22dd","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"ychampion","slug":"compactable-tool-whitelist-gating","github":{"repo":"ychampion/cskill-agents","stars":34,"topics":["agent-skills","ai-agents","cli","coding-agents","context-engineering","developer-tools","mcp","multi-agent","terminal-ui"],"license":"mit","html_url":"https://github.com/ychampion/cskill-agents","pushed_at":"2026-04-04T14:13:23Z","description":"Agent skills for coding CLIs, multi-agent runtimes, context engines, MCP extensions, and terminal tooling. Instead of using claude code's source code, give your agent skills to create your own!","skill_md_sha":"39a66b522081a9a93aee34d6b0a566a2ee00bc06","skill_md_path":"skills/compactable-tool-whitelist-gating/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/ychampion/cskill-agents/tree/main/skills/compactable-tool-whitelist-gating"},"layout":"multi","source":"github","category":"cskill-agents","frontmatter":{"name":"compactable-tool-whitelist-gating","description":"Only allow cached microcompact to delete tool results for a vetted, pre-gated whitelist of tool names."},"skills_sh_url":"https://skills.sh/ychampion/cskill-agents/compactable-tool-whitelist-gating"},"updatedAt":"2026-04-22T06:56:47.335Z"}}