{"version":"2.1.269","anchor":"skill-override-resolution-now-distinguishes-synced-vs-local","canonical_anchor":"skill-override-resolution-now-distinguishes-synced-vs-local","heading":"Skill override resolution now distinguishes synced vs. locally-overridden skills","tier":"internal","area":"Skills","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.269\/e\/skill-override-resolution-now-distinguishes-synced-vs-local","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.269","markdown":"### Skill override resolution now distinguishes synced vs. locally-overridden skills\n\nTurning a skill on\/off now correctly distinguishes synced skills from local ones with the same name\n\n**What**\n\nWhen Claude Code resolves whether a skill has been turned on or off, it now checks whether the skill came from `syncedSkills` (skills synced from elsewhere). For synced skills, it first checks for a matching local override by the skill's bare name before falling back to a per-source key. New helpers compute a skill's \"unqualified name\" for this lookup, handle cases where a synced skill's bare name is \"reserved\" (and thus excluded from override matching), and pick the highest-priority override across project, user, and plugin sources.\n\n**Why**\n\nThis prevents a mistake where toggling a synced skill on or off could accidentally also affect a different, unrelated local skill that happens to share the same bare name.\n\n- Area: Skills\n- Tier: Under the hood\n- Useful: 2\/5\n- Signal: 2\/5"}