#2653

feat(skills): namespace-aware dedup in discoverSkills and lock operations

OpenGeniusTechnoMysticwants to merge intofrom

Phase 2 of PR #250 — namespace-related bug fixes.\n\nChanges:\n- discoverSkills: Uses "skill.name" as dedup key instead of "lockKeyFor(skill)" (namespace:name). Fixes duplicate skills when root and nested directories share the same name.\n- removeSkillFromLock / getSkillFromLock: Now namespace-aware — tries exact key match first, then falls back to searching by name across all namespaces.\n- merge-with-namespace.ts: Fixed TypeScript type error.\n- add.ts: Added scope parameter to addSkillToLock().\n\nTests: All 313 tests pass across 19 test files.