Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions code_review_graph/skills.py
Original file line number Diff line number Diff line change
Expand Up @@ -526,11 +526,11 @@ def generate_skills(repo_root: Path, skills_dir: Path | None = None) -> Path:
skills_dir.mkdir(parents=True, exist_ok=True)

for filename, skill in _SKILLS.items():
# Claude Code expects skills at .claude/skills/<name>/skill.md
# Claude Code expects skills at .claude/skills/<name>/SKILL.md
skill_name = filename.removesuffix(".md")
skill_subdir = skills_dir / skill_name
skill_subdir.mkdir(parents=True, exist_ok=True)
path = skill_subdir / "skill.md"
path = skill_subdir / "SKILL.md"
content = (
"---\n"
f"name: {skill['name']}\n"
Expand Down
8 changes: 4 additions & 4 deletions tests/test_skills.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,12 +60,12 @@ def test_creates_four_skill_subdirs(self, tmp_path):
"review-changes",
]
for d in skills_dir.iterdir():
assert (d / "skill.md").is_file()
assert (d / "SKILL.md").is_file()

def test_skill_files_have_frontmatter(self, tmp_path):
skills_dir = generate_skills(tmp_path)
for subdir in skills_dir.iterdir():
path = subdir / "skill.md"
path = subdir / "SKILL.md"
content = path.read_text()
assert content.startswith("---\n")
assert "name:" in content
Expand All @@ -87,7 +87,7 @@ def test_skill_content_includes_get_minimal_context(self, tmp_path):
"""Every skill template must reference get_minimal_context."""
skills_dir = generate_skills(tmp_path)
for subdir in skills_dir.iterdir():
content = (subdir / "skill.md").read_text()
content = (subdir / "SKILL.md").read_text()
assert "get_minimal_context" in content, (
f"{subdir.name} missing get_minimal_context reference"
)
Expand All @@ -96,7 +96,7 @@ def test_skill_content_includes_detail_level(self, tmp_path):
"""Every skill template must reference detail_level."""
skills_dir = generate_skills(tmp_path)
for subdir in skills_dir.iterdir():
content = (subdir / "skill.md").read_text()
content = (subdir / "SKILL.md").read_text()
assert "detail_level" in content, (
f"{subdir.name} missing detail_level reference"
)
Expand Down