import sys import tempfile import unittest from pathlib import Path TOOLS_SCRIPTS_DIR = Path(__file__).resolve().parents[1] if str(TOOLS_SCRIPTS_DIR) not in sys.path: sys.path.insert(0, str(TOOLS_SCRIPTS_DIR)) import fix_skills_metadata class FixSkillsMetadataSecurityTests(unittest.TestCase): def test_skips_symlinked_skill_markdown(self): with tempfile.TemporaryDirectory() as temp_dir: root = Path(temp_dir) skill_dir = root / "safe-skill" outside_dir = root / "outside" skill_dir.mkdir() outside_dir.mkdir() target = outside_dir / "SKILL.md" target.write_text("---\nname: outside\n---\nbody\n", encoding="utf-8") (skill_dir / "SKILL.md").symlink_to(target) fix_skills_metadata.fix_skills(root) self.assertEqual( target.read_text(encoding="utf-8"), "---\nname: outside\n---\nbody\n", ) if __name__ == "__main__": unittest.main()