From 3285055d80e0879c9d996e6c87d93a3736e95da3 Mon Sep 17 00:00:00 2001 From: Julian lechner Date: Thu, 1 Oct 2026 11:13:01 +0200 Subject: [PATCH] fix(validate): check flat Claude rule skills Look for rule skills under skills/rules-*/ and fail when none exist, so a layout change cannot silently skip their frontmatter validation. Co-Authored-By: Claude Opus 5.5 --- scripts/checks/validate-config.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/scripts/checks/validate-config.py b/scripts/checks/validate-config.py index 8cfe0db..5483425 100644 --- a/scripts/checks/validate-config.py +++ b/scripts/checks/validate-config.py @@ -65,7 +65,10 @@ def validate_claude(path: Path) -> None: def validate_rule_skills(package: Path) -> None: - for path in (package / "skills" / "rules").glob("*/SKILL.md"): + paths = sorted((package / "skills").glob("rules-*/SKILL.md")) + if not paths: + fail(f"{package}: no generated rules-* skills found") + for path in paths: lines = path.read_text(encoding="utf-8-sig").splitlines() if len(lines) < 4 or lines[0] != "---" or lines[3] != "---" or not lines[1].startswith("name: ") or not lines[2].startswith("description: "): fail(f"{path}: invalid generated skill frontmatter")