{"id":"2b9cd7cb-b441-417d-befa-85b4539ccd37","shortId":"YHrkpk","kind":"skill","title":"fallback-source-presence-sufficiency","tagline":"When a declared source is only a fallback default, treat any existing materialized source as satisfying the contract instead of forcing a replacement.","description":"# SKILL: Fallback Source Presence Sufficiency\n**Domain:** extensions-mcp  \n**Trigger:** Apply when a configuration entry represents a fallback source and existing materialized state from another source should be preserved if it already satisfies presence.\n**Source Pattern:** Distilled from reviewed extension lifecycle and source-reconciliation patterns.\n\n## Core Method\nDistinguish fallback intent from authoritative source declarations. If the declared source exists only to satisfy the missing case, then the presence of any already-materialized source is enough and should be treated as up to date. This prevents the reconciler from overwriting valid state merely because the default source differs from the source that actually materialized the resource.\n\n## Key Rules\n- Carry a flag that distinguishes fallback/default declarations from authoritative source directives.\n- For fallback entries, compare on presence first and skip source-equality enforcement once materialized state exists.\n- Preserve seeded, mirrored, or previously installed sources when they already satisfy the resource contract.\n- Restrict this relaxation to fallback intent only; authoritative declarations should still drive updates when the source changes.\n- Document why fallback entries are special so future maintainers do not \"simplify\" the logic back into destructive churn.\n\n## Example Application\nIf a package manager uses an official registry as a fallback only when no mirror is installed, leave an already-seeded internal mirror alone. The fallback declaration should not force a re-download from the official registry just because the source URLs differ.\n\n## Anti-Patterns (What NOT to do)\n- Do not compare fallback declarations against materialized sources as if they were hard directives; you will overwrite healthy state unnecessarily.\n- Do not erase the distinction between \"default if missing\" and \"must come from here\"; they drive very different reconcile behavior.","tags":["fallback","source","presence","sufficiency","cskill","agents","ychampion","agent-skills","ai-agents","cli","coding-agents","context-engineering"],"capabilities":["skill","source-ychampion","skill-fallback-source-presence-sufficiency","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/fallback-source-presence-sufficiency","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,962 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:48.768Z","embedding":null,"createdAt":"2026-04-18T22:20:22.549Z","updatedAt":"2026-04-22T06:56:48.768Z","lastSeenAt":"2026-04-22T06:56:48.768Z","tsv":"'actual':132 'alon':241 'alreadi':60,101,175,237 'already-materi':100 'already-seed':236 'anoth':53 'anti':263 'anti-pattern':262 'appli':39 'applic':216 'authorit':81,146,187 'back':211 'behavior':308 'carri':138 'case':94 'chang':196 'churn':214 'come':300 'compar':152,271 'configur':42 'contract':23,179 'core':75 'date':113 'declar':8,83,86,144,188,244,273 'default':14,125,295 'destruct':213 'differ':127,261,306 'direct':148,282 'distil':65 'distinct':293 'distinguish':77,142 'document':197 'domain':34 'download':251 'drive':191,304 'enforc':161 'enough':105 'entri':43,151,200 'equal':160 'eras':291 'exampl':215 'exist':17,49,88,165 'extens':36,68 'extensions-mcp':35 'fallback':2,13,30,46,78,150,184,199,227,243,272 'fallback-source-presence-suffici':1 'fallback/default':143 'first':155 'flag':140 'forc':26,247 'futur':204 'hard':281 'healthi':286 'instal':171,233 'instead':24 'intent':79,185 'intern':239 'key':136 'leav':234 'lifecycl':69 'logic':210 'maintain':205 'manag':220 'materi':18,50,102,133,163,275 'mcp':37 'mere':122 'method':76 'mirror':168,231,240 'miss':93,297 'must':299 'offici':223,254 'overwrit':119,285 'packag':219 'pattern':64,74,264 'presenc':4,32,62,97,154 'preserv':57,166 'prevent':115 'previous':170 're':250 're-download':249 'reconcil':117,307 'reconcili':73 'registri':224,255 'relax':182 'replac':28 'repres':44 'resourc':135,178 'restrict':180 'review':67 'rule':137 'satisfi':21,61,91,176 'seed':167,238 'simplifi':208 'skill':29 'skill-fallback-source-presence-sufficiency' 'skip':157 'sourc':3,9,19,31,47,54,63,72,82,87,103,126,130,147,159,172,195,259,276 'source-equ':158 'source-reconcili':71 'source-ychampion' 'special':202 'state':51,121,164,287 'still':190 'suffici':5,33 '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' 'treat':15,109 'trigger':38 'unnecessarili':288 'updat':192 'url':260 'use':221 'valid':120","prices":[{"id":"66669d88-05e5-4989-9cb5-54e41d5149ce","listingId":"2b9cd7cb-b441-417d-befa-85b4539ccd37","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:22.549Z"}],"sources":[{"listingId":"2b9cd7cb-b441-417d-befa-85b4539ccd37","source":"github","sourceId":"ychampion/cskill-agents/fallback-source-presence-sufficiency","sourceUrl":"https://github.com/ychampion/cskill-agents/tree/main/skills/fallback-source-presence-sufficiency","isPrimary":false,"firstSeenAt":"2026-04-18T22:20:22.549Z","lastSeenAt":"2026-04-22T06:56:48.768Z"}],"details":{"listingId":"2b9cd7cb-b441-417d-befa-85b4539ccd37","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"ychampion","slug":"fallback-source-presence-sufficiency","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":"d7514357ac848f3458837bbdac89f77233a09e24","skill_md_path":"skills/fallback-source-presence-sufficiency/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/ychampion/cskill-agents/tree/main/skills/fallback-source-presence-sufficiency"},"layout":"multi","source":"github","category":"cskill-agents","frontmatter":{"name":"fallback-source-presence-sufficiency","description":"When a declared source is only a fallback default, treat any existing materialized source as satisfying the contract instead of forcing a replacement."},"skills_sh_url":"https://skills.sh/ychampion/cskill-agents/fallback-source-presence-sufficiency"},"updatedAt":"2026-04-22T06:56:48.768Z"}}