Merge pull request #30 from voidborne-d/fix/fix-skill-already-registered

fix: register_skill_dir returns existing SkillMeta for already-registered skills
This commit is contained in:
Dennis-yxchen 2026-03-31 15:01:26 +08:00
commit ccda314d34

View file

@ -299,8 +299,8 @@ class SkillRegistry:
skill_dir: Path to a directory containing ``SKILL.md``.
Returns:
:class:`SkillMeta` if newly registered, ``None`` if already
present, the directory is invalid, or the skill fails safety checks.
:class:`SkillMeta` if newly registered or already present,
``None`` if the directory is invalid or the skill fails safety checks.
"""
skill_file = skill_dir / "SKILL.md"
if not skill_file.exists():
@ -321,7 +321,7 @@ class SkillRegistry:
meta = self._parse_skill(skill_dir.name, skill_dir, skill_file, content)
if meta.skill_id in self._skills:
logger.debug(f"register_skill_dir: {meta.skill_id} already exists")
return None
return self._skills[meta.skill_id]
self._skills[meta.skill_id] = meta
self._content_cache[meta.skill_id] = content
logger.info(f"Hot-registered skill: {meta.skill_id}")