{"id":"53d2d6b1-a797-4b9b-99f7-b8e4a5c82be5","shortId":"NeSZy4","kind":"skill","title":"external-error-preserving-refresh-merge","tagline":"Merge fresh refresh diagnostics with externally owned errors so one subsystem reload does not erase valid adjacent failures.","description":"# SKILL: External Error Preserving Refresh Merge\n**Domain:** plugin-installation\n**Trigger:** Use when a refresh path recomputes its own errors but neighboring subsystems maintain related diagnostics that should survive the reload.\n**Source Pattern:** Distilled from reviewed refresh-diagnostic ownership and merge implementations.\n\n## Core Method\nTreat refresh-time errors as one slice of the diagnostic picture rather than the whole state. Preserve errors owned by adjacent subsystems, merge in the freshly computed errors from the current reload, and deduplicate by a stable key so the result stays current without erasing still-relevant external failures. This lets a subsystem update what it owns while respecting error streams maintained elsewhere.\n\n## Key Rules\n- Preserve only the error sources the current refresh is not authoritative for.\n- Build stable dedupe keys from error type and source, not from list position or timing.\n- Merge preserved external errors with fresh refresh errors so users see one coherent diagnostic surface.\n- Keep the ownership boundary explicit so future refactors know which subsystem may overwrite which errors.\n\n## Example Application\nIf a plugin refresh recomputes loader failures while a language-server manager separately owns connection diagnostics, preserve the language-server errors and merge in the fresh loader errors so the UI retains the full current problem set.\n\n## Anti-Patterns (What NOT to do)\n- Do not replace the entire error array on every refresh; that silently drops failures from other live subsystems.\n- Do not dedupe by array position or timestamp alone; equivalent errors need stable identity.","tags":["external","error","preserving","refresh","merge","cskill","agents","ychampion","agent-skills","ai-agents","cli","coding-agents"],"capabilities":["skill","source-ychampion","skill-external-error-preserving-refresh-merge","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/external-error-preserving-refresh-merge","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,659 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.700Z","embedding":null,"createdAt":"2026-04-18T22:20:21.792Z","updatedAt":"2026-04-22T06:56:48.700Z","lastSeenAt":"2026-04-22T06:56:48.700Z","tsv":"'adjac':23,91 'alon':268 'anti':236 'anti-pattern':235 'applic':195 'array':248,264 'authorit':147 'boundari':182 'build':149 'coher':176 'comput':97 'connect':211 'core':68 'current':101,113,143,232 'dedup':151,262 'dedupl':104 'diagnost':10,50,63,80,177,212 'distil':58 'domain':31 'drop':254 'elsewher':134 'entir':246 'equival':269 'eras':21,115 'error':3,14,27,44,74,88,98,131,140,154,167,171,193,218,225,247,270 'everi':250 'exampl':194 'explicit':183 'extern':2,12,26,119,166 'external-error-preserving-refresh-merg':1 'failur':24,120,202,255 'fresh':8,96,169,223 'full':231 'futur':185 'ident':273 'implement':67 'instal':34 'keep':179 'key':108,135,152 'know':187 'languag':206,216 'language-serv':205,215 'let':122 'list':160 'live':258 'loader':201,224 'maintain':48,133 'manag':208 'may':190 'merg':6,7,30,66,93,164,220 'method':69 'need':271 'neighbor':46 'one':16,76,175 'overwrit':191 'own':13,89,128,210 'ownership':64,181 'path':40 'pattern':57,237 'pictur':81 'plugin':33,198 'plugin-instal':32 'posit':161,265 'preserv':4,28,87,137,165,213 'problem':233 'rather':82 'recomput':41,200 'refactor':186 'refresh':5,9,29,39,62,72,144,170,199,251 'refresh-diagnost':61 'refresh-tim':71 'relat':49 'relev':118 'reload':18,55,102 'replac':244 'respect':130 'result':111 'retain':229 'review':60 'rule':136 'see':174 'separ':209 'server':207,217 'set':234 'silent':253 'skill':25 'skill-external-error-preserving-refresh-merge' 'slice':77 'sourc':56,141,157 'source-ychampion' 'stabl':107,150,272 'state':86 'stay':112 'still':117 'still-relev':116 'stream':132 'subsystem':17,47,92,124,189,259 'surfac':178 'surviv':53 'time':73,163 'timestamp':267 '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':70 'trigger':35 'type':155 'ui':228 'updat':125 'use':36 'user':173 'valid':22 'whole':85 'without':114","prices":[{"id":"ad5fd9e4-1963-4ab3-835b-5b90ee9aa526","listingId":"53d2d6b1-a797-4b9b-99f7-b8e4a5c82be5","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:21.792Z"}],"sources":[{"listingId":"53d2d6b1-a797-4b9b-99f7-b8e4a5c82be5","source":"github","sourceId":"ychampion/cskill-agents/external-error-preserving-refresh-merge","sourceUrl":"https://github.com/ychampion/cskill-agents/tree/main/skills/external-error-preserving-refresh-merge","isPrimary":false,"firstSeenAt":"2026-04-18T22:20:21.792Z","lastSeenAt":"2026-04-22T06:56:48.700Z"}],"details":{"listingId":"53d2d6b1-a797-4b9b-99f7-b8e4a5c82be5","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"ychampion","slug":"external-error-preserving-refresh-merge","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":"fcc403e5d20c0c0a8d695f6f3f4a8c7a082bbe55","skill_md_path":"skills/external-error-preserving-refresh-merge/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/ychampion/cskill-agents/tree/main/skills/external-error-preserving-refresh-merge"},"layout":"multi","source":"github","category":"cskill-agents","frontmatter":{"name":"external-error-preserving-refresh-merge","description":"Merge fresh refresh diagnostics with externally owned errors so one subsystem reload does not erase valid adjacent failures."},"skills_sh_url":"https://skills.sh/ychampion/cskill-agents/external-error-preserving-refresh-merge"},"updatedAt":"2026-04-22T06:56:48.700Z"}}