{"id":"6daa43b3-87e7-492e-bf45-0d690bcfa551","shortId":"cvHJQL","kind":"skill","title":"per-agent-skill-listing-dedupe","tagline":"Keep skill-listing deltas scoped per agent or thread so each agent gets its own first-turn announcement surface.","description":"# SKILL: Per-Agent Skill Listing Dedupe\n**Domain:** attachment-pipeline\n**Trigger:** Use when a multi-agent runtime must announce new skills or capabilities without one thread's deltas erasing another thread's initial listing.\n**Source Pattern:** Distilled from reviewed per-agent capability-announcement tracking implementations.\n\n## Core Method\nTrack which skill names were already sent to each agent separately rather than globally. Each agent or thread gets its own seen-set keyed by a stable agent identity, so the main thread announcing a listing does not make every subagent believe it already saw the same surface. When building the delta list for a given agent, compare only against that agent's set and update that set after sending.\n\n## Key Rules\n- Store a distinct seen-set per agent or thread, including a stable identity for the main thread.\n- Filter outgoing skill deltas against the target agent's seen-set, not a global pool.\n- Keep the per-agent seen-set alive for the lifetime of that agent so resumes and follow-up turns reuse its own state.\n- Update the agent's seen-set immediately after sending new skills so later deltas stay accurate.\n\n## Example Application\nIf a subagent is spawned in the middle of a long-running coding session, start it with its own empty seen-set. Even though the main thread already announced the skill surface, the subagent still gets a proper first-turn listing because its own history starts blank.\n\n## Anti-Patterns (What NOT to do)\n- Do not keep one global seen-set; that makes every new agent believe everything was already announced.\n- Do not let one agent reuse another agent's seen-set; cross-agent sharing collapses the whole point of per-thread deltas.","tags":["per","agent","skill","listing","dedupe","cskill","agents","ychampion","agent-skills","ai-agents","cli","coding-agents"],"capabilities":["skill","source-ychampion","skill-per-agent-skill-listing-dedupe","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/per-agent-skill-listing-dedupe","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,711 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-22T00:56:53.691Z","embedding":null,"createdAt":"2026-04-18T22:20:53.367Z","updatedAt":"2026-04-22T00:56:53.691Z","lastSeenAt":"2026-04-22T00:56:53.691Z","tsv":"'accur':228 'agent':3,14,19,31,45,71,88,94,107,136,141,159,177,190,200,214,300,310,313,320 'aliv':194 'alreadi':84,123,260,304 'announc':26,48,74,113,261,305 'anoth':59,312 'anti':282 'anti-pattern':281 'applic':230 'attach':37 'attachment-pipelin':36 'believ':121,301 'blank':280 'build':129 'capability-announc':72 'capabl':52,73 'code':244 'collaps':322 'compar':137 'core':77 'cross':319 'cross-ag':318 'dedup':6,34 'delta':11,57,131,173,226,330 'distil':66 'distinct':154 'domain':35 'empti':251 'eras':58 'even':255 'everi':119,298 'everyth':302 'exampl':229 'filter':170 'first':24,272 'first-turn':23,271 'follow':205 'follow-up':204 'get':20,97,268 'given':135 'global':92,184,292 'histori':278 'ident':108,165 'immedi':219 'implement':76 'includ':162 'initi':62 'keep':7,186,290 'key':103,150 'later':225 'let':308 'lifetim':197 'list':5,10,33,63,115,132,274 'long':242 'long-run':241 'main':111,168,258 'make':118,297 'method':78 'middl':238 'multi':44 'multi-ag':43 'must':47 'name':82 'new':49,222,299 'one':54,291,309 'outgo':171 'pattern':65,283 'per':2,13,30,70,158,189,328 'per-ag':29,69,188 'per-agent-skill-listing-dedup':1 'per-thread':327 'pipelin':38 'point':325 'pool':185 'proper':270 'rather':90 'resum':202 'reus':208,311 'review':68 'rule':151 'run':243 'runtim':46 'saw':124 'scope':12 'seen':101,156,180,192,217,253,294,316 'seen-set':100,155,179,191,216,252,293,315 'send':149,221 'sent':85 'separ':89 'session':245 'set':102,143,147,157,181,193,218,254,295,317 'share':321 'skill':4,9,28,32,50,81,172,223,263 'skill-list':8 'skill-per-agent-skill-listing-dedupe' 'sourc':64 'source-ychampion' 'spawn':235 'stabl':106,164 'start':246,279 'state':211 'stay':227 'still':267 'store':152 'subag':120,233,266 'surfac':27,127,264 'target':176 'though':256 'thread':16,55,60,96,112,161,169,259,329 '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':75,79 'trigger':39 'turn':25,207,273 'updat':145,212 'use':40 'whole':324 'without':53","prices":[{"id":"449fe511-ec49-4074-b8f5-430a948608f5","listingId":"6daa43b3-87e7-492e-bf45-0d690bcfa551","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:53.367Z"}],"sources":[{"listingId":"6daa43b3-87e7-492e-bf45-0d690bcfa551","source":"github","sourceId":"ychampion/cskill-agents/per-agent-skill-listing-dedupe","sourceUrl":"https://github.com/ychampion/cskill-agents/tree/main/skills/per-agent-skill-listing-dedupe","isPrimary":false,"firstSeenAt":"2026-04-18T22:20:53.367Z","lastSeenAt":"2026-04-22T00:56:53.691Z"}],"details":{"listingId":"6daa43b3-87e7-492e-bf45-0d690bcfa551","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"ychampion","slug":"per-agent-skill-listing-dedupe","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":"7ef7e4eb0be0ea5f7a9e351d46138f0d99d275cd","skill_md_path":"skills/per-agent-skill-listing-dedupe/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/ychampion/cskill-agents/tree/main/skills/per-agent-skill-listing-dedupe"},"layout":"multi","source":"github","category":"cskill-agents","frontmatter":{"name":"per-agent-skill-listing-dedupe","description":"Keep skill-listing deltas scoped per agent or thread so each agent gets its own first-turn announcement surface."},"skills_sh_url":"https://skills.sh/ychampion/cskill-agents/per-agent-skill-listing-dedupe"},"updatedAt":"2026-04-22T00:56:53.691Z"}}