{"id":"c4d75d57-7791-4963-bfbc-4d5f88389af2","shortId":"YawMnJ","kind":"skill","title":"decision-fate-freezing","tagline":"Freeze each tool result ID's replacement fate after it is observed so budget decisions stay deterministic across turns and forks.","description":"# SKILL: Decision Fate Freezing\n**Domain:** tool-result-budget\n**Trigger:** Apply when the message-level replacement budget runs and you need previously seen tool results to keep the same fate (persisted preview vs full content) even after resumes, forks, or cached prompts.\n**Source Pattern:** Distilled from reviewed tool execution, streaming, persistence, and output-budget implementations.\n\n## Core Method\nTrack every processed tool-result ID in durable budgeting state. Once a result has been evaluated, freeze its fate: either it stays inline forever or it is always replaced by the same persisted preview. Retries, forks, and resumed sessions must inherit that state and reapply the same decision instead of recalculating it. This keeps prompt shape stable and prevents the same result from flipping between full content and preview across turns.\n\n## Key Rules\n- Mark an ID as decided as soon as it becomes eligible, even if the outcome is “leave inline,” so later turns never re-open the decision.\n- Store replacement previews only after persistence succeeds, and keep the decision marker and replacement payload in sync.\n- Clone or reconstruct this state when forking or resuming so child threads inherit the exact same budgeting history.\n- Log or persist every new replacement so resumes reapply the same preview string and the prompt cache stays intact.\n\n## Example Application\nIf a large tool result is replaced with a persisted preview on turn 20, later retries and child agents should reuse that exact preview rather than reconsidering whether the full result can fit inline. The budgeting outcome for that result becomes part of the session state.\n\n## Anti-Patterns (What NOT to do)\n- Do not mutate seen ids only after persistence finishes, or a concurrent reader may treat the ID as fresh and replace it again on the same turn.\n- Do not skip cloning or reconstructing the state for cache-sharing forks; that leads to inconsistent decisions between parent and child and breaks prompt caching.\n- Do not update the replacements map without also marking the ID as seen — the next turn would treat it as fresh and potentially try to persist the same content twice.","tags":["decision","fate","freezing","cskill","agents","ychampion","agent-skills","ai-agents","cli","coding-agents","context-engineering","developer-tools"],"capabilities":["skill","source-ychampion","skill-decision-fate-freezing","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/decision-fate-freezing","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 (2,175 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.864Z","embedding":null,"createdAt":"2026-04-18T22:20:13.272Z","updatedAt":"2026-04-22T06:56:47.864Z","lastSeenAt":"2026-04-22T06:56:47.864Z","tsv":"'20':255 'across':22,155 'agent':260 'also':355 'alway':113 'anti':289 'anti-pattern':288 'appli':36 'applic':241 'becom':168,282 'break':345 'budget':18,34,43,81,94,219,277 'cach':67,237,332,347 'cache-shar':331 'child':213,259,343 'clone':203,325 'concurr':306 'content':61,152,376 'core':83 'decid':163 'decis':2,19,27,133,185,196,339 'decision-fate-freez':1 'determinist':21 'distil':71 'domain':30 'durabl':93 'either':105 'elig':169 'evalu':101 'even':62,170 'everi':86,224 'exact':217,264 'exampl':240 'execut':75 'fate':3,12,28,56,104 'finish':303 'fit':274 'flip':149 'forev':109 'fork':25,65,121,209,334 'freez':4,5,29,102 'fresh':313,368 'full':60,151,271 'histori':220 'id':9,91,161,299,311,358 'implement':82 'inconsist':338 'inherit':126,215 'inlin':108,176,275 'instead':134 'intact':239 'keep':53,139,194 'key':157 'larg':244 'later':178,256 'lead':336 'leav':175 'level':41 'log':221 'map':353 'mark':159,356 'marker':197 'may':308 'messag':40 'message-level':39 'method':84 'must':125 'mutat':297 'need':47 'never':180 'new':225 'next':362 'observ':16 'open':183 'outcom':173,278 'output':80 'output-budget':79 'parent':341 'part':283 'pattern':70,290 'payload':200 'persist':57,77,118,191,223,251,302,373 'potenti':370 'prevent':144 'preview':58,119,154,188,232,252,265 'previous':48 'process':87 'prompt':68,140,236,346 'rather':266 're':182 're-open':181 'reader':307 'reappli':130,229 'recalcul':136 'reconsid':268 'reconstruct':205,327 'replac':11,42,114,187,199,226,248,315,352 'result':8,33,51,90,98,147,246,272,281 'resum':64,123,211,228 'retri':120,257 'reus':262 'review':73 'rule':158 'run':44 'seen':49,298,360 'session':124,286 'shape':141 'share':333 'skill':26 'skill-decision-fate-freezing' 'skip':324 'soon':165 'sourc':69 'source-ychampion' 'stabl':142 'state':95,128,207,287,329 'stay':20,107,238 'store':186 'stream':76 'string':233 'succeed':192 'sync':202 'thread':214 'tool':7,32,50,74,89,245 'tool-result':88 'tool-result-budget':31 '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' 'track':85 'treat':309,365 'tri':371 'trigger':35 'turn':23,156,179,254,321,363 'twice':377 'updat':350 'vs':59 'whether':269 'without':354 'would':364","prices":[{"id":"0844bebc-040e-48fa-879f-329b029047f9","listingId":"c4d75d57-7791-4963-bfbc-4d5f88389af2","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:13.272Z"}],"sources":[{"listingId":"c4d75d57-7791-4963-bfbc-4d5f88389af2","source":"github","sourceId":"ychampion/cskill-agents/decision-fate-freezing","sourceUrl":"https://github.com/ychampion/cskill-agents/tree/main/skills/decision-fate-freezing","isPrimary":false,"firstSeenAt":"2026-04-18T22:20:13.272Z","lastSeenAt":"2026-04-22T06:56:47.864Z"}],"details":{"listingId":"c4d75d57-7791-4963-bfbc-4d5f88389af2","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"ychampion","slug":"decision-fate-freezing","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":"027160821c32939d579c49380155dadcd8fcb49d","skill_md_path":"skills/decision-fate-freezing/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/ychampion/cskill-agents/tree/main/skills/decision-fate-freezing"},"layout":"multi","source":"github","category":"cskill-agents","frontmatter":{"name":"decision-fate-freezing","description":"Freeze each tool result ID's replacement fate after it is observed so budget decisions stay deterministic across turns and forks."},"skills_sh_url":"https://skills.sh/ychampion/cskill-agents/decision-fate-freezing"},"updatedAt":"2026-04-22T06:56:47.864Z"}}