{"id":"0a62e642-ae68-4a0b-a641-f4698cfcceac","shortId":"2EquhK","kind":"skill","title":"canonical-root-marketplace-path-normalization","tagline":"Normalize relative extension source paths against a canonical repo root so shared marketplace records stay stable across worktrees.","description":"# SKILL: Canonical-Root Marketplace Path Normalization\n**Domain:** extensions-mcp\n**Trigger:** Use when project settings declare relative extension paths but the shared registry spans multiple worktrees or checkouts.\n**Source Pattern:** Distilled from reviewed shared-registry path normalization logic.\n\n## Core Method\nResolve relative local source paths against the repository's canonical root rather than the current worktree directory before comparing them to shared registry entries. This produces one stable identity for a shared record, prevents worktrees from overwriting each other with checkout-specific paths, and avoids dead paths when temporary worktrees disappear. Normalize before diffing so equivalent repo-relative settings are treated as the same source.\n\n## Key Rules\n- Normalize shared local paths against the canonical repo root, not the active worktree.\n- Run normalization before diff comparison so equivalent sources do not look like drift.\n- Preserve a valid existing entry when a transient worktree path is missing but the canonical source is still the same.\n\n## Example Application\nIf a repo declares `./plugins/internal`, normalize it against the canonical checkout root so every worktree resolves to the same shared registry path.\n\n## Anti-Patterns (What NOT to do)\n- Do not stamp worktree-specific absolute paths into a user-global registry.\n- Do not treat equivalent repo-relative paths as true source changes.\n- Do not overwrite a valid shared entry with a dead temporary path.","tags":["canonical","root","marketplace","path","normalization","cskill","agents","ychampion","agent-skills","ai-agents","cli","coding-agents"],"capabilities":["skill","source-ychampion","skill-canonical-root-marketplace-path-normalization","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/canonical-root-marketplace-path-normalization","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,508 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:46.518Z","embedding":null,"createdAt":"2026-04-18T22:20:00.001Z","updatedAt":"2026-04-22T06:56:46.518Z","lastSeenAt":"2026-04-22T06:56:46.518Z","tsv":"'/plugins/internal':188 'absolut':219 'across':23 'activ':147 'anti':207 'anti-pattern':206 'applic':183 'avoid':112 'canon':2,14,27,76,142,176,193 'canonical-root':26 'canonical-root-marketplace-path-norm':1 'chang':238 'checkout':53,108,194 'checkout-specif':107 'compar':85 'comparison':153 'core':65 'current':81 'dead':113,248 'declar':41,187 'dif':121 'diff':152 'directori':83 'disappear':118 'distil':56 'domain':32 'drift':161 'entri':90,166,245 'equival':123,155,230 'everi':197 'exampl':182 'exist':165 'extens':9,34,43 'extensions-mcp':33 'global':225 'ident':95 'key':134 'like':160 'local':69,138 'logic':64 'look':159 'marketplac':4,19,29 'mcp':35 'method':66 'miss':173 'multipl':50 'normal':6,7,31,63,119,136,150,189 'one':93 'overwrit':103,241 'path':5,11,30,44,62,71,110,114,139,171,205,220,234,250 'pattern':55,208 'preserv':162 'prevent':100 'produc':92 'project':39 'rather':78 'record':20,99 'registri':48,61,89,204,226 'relat':8,42,68,126,233 'repo':15,125,143,186,232 'repo-rel':124,231 'repositori':74 'resolv':67,199 'review':58 'root':3,16,28,77,144,195 'rule':135 'run':149 'set':40,127 'share':18,47,60,88,98,137,203,244 'shared-registri':59 'skill':25 'skill-canonical-root-marketplace-path-normalization' 'sourc':10,54,70,133,156,177,237 'source-ychampion' 'span':49 'specif':109,218 'stabl':22,94 'stamp':215 'stay':21 'still':179 'temporari':116,249 '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' 'transient':169 'treat':129,229 'trigger':36 'true':236 'use':37 'user':224 'user-glob':223 'valid':164,243 'worktre':24,51,82,101,117,148,170,198,217 'worktree-specif':216","prices":[{"id":"8395b16e-a55a-485b-852e-38d8dbbbc06d","listingId":"0a62e642-ae68-4a0b-a641-f4698cfcceac","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:00.001Z"}],"sources":[{"listingId":"0a62e642-ae68-4a0b-a641-f4698cfcceac","source":"github","sourceId":"ychampion/cskill-agents/canonical-root-marketplace-path-normalization","sourceUrl":"https://github.com/ychampion/cskill-agents/tree/main/skills/canonical-root-marketplace-path-normalization","isPrimary":false,"firstSeenAt":"2026-04-18T22:20:00.001Z","lastSeenAt":"2026-04-22T06:56:46.518Z"}],"details":{"listingId":"0a62e642-ae68-4a0b-a641-f4698cfcceac","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"ychampion","slug":"canonical-root-marketplace-path-normalization","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":"4079412b2333bac97a8339b4ce25abe93ac5f6f3","skill_md_path":"skills/canonical-root-marketplace-path-normalization/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/ychampion/cskill-agents/tree/main/skills/canonical-root-marketplace-path-normalization"},"layout":"multi","source":"github","category":"cskill-agents","frontmatter":{"name":"canonical-root-marketplace-path-normalization","description":"Normalize relative extension source paths against a canonical repo root so shared marketplace records stay stable across worktrees."},"skills_sh_url":"https://skills.sh/ychampion/cskill-agents/canonical-root-marketplace-path-normalization"},"updatedAt":"2026-04-22T06:56:46.518Z"}}