From 20f626e9c19b370ce148a6ce22268f23def2730b Mon Sep 17 00:00:00 2001 From: zwtang119 Date: Sun, 15 Mar 2026 22:19:38 +0800 Subject: [PATCH] skills: align homepage frontmatter validation Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- skills/attractor/SKILL.md | 3 ++- skills/skill-creator/scripts/quick_validate.py | 9 ++++++++- .../skill-creator/scripts/test_quick_validate.py | 16 ++++++++++++++++ 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/skills/attractor/SKILL.md b/skills/attractor/SKILL.md index 4a3f0eb0863..01b2d5e80ed 100644 --- a/skills/attractor/SKILL.md +++ b/skills/attractor/SKILL.md @@ -1,7 +1,8 @@ --- name: attractor description: Build, extend, and debug Attractor implementations from the strongdm/attractor specs. Use when work involves DOT pipeline DSL parsing, graph execution traversal, node handlers, checkpoint/resume state, human-in-the-loop gates, condition expressions, model stylesheet rules, or integrating coding-agent-loop/unified-llm backends. -metadata: { "openclaw": { "emoji": "🧲", "homepage": "https://github.com/strongdm/attractor" } } +homepage: https://github.com/strongdm/attractor +metadata: { "openclaw": { "emoji": "🧲" } } --- # Attractor diff --git a/skills/skill-creator/scripts/quick_validate.py b/skills/skill-creator/scripts/quick_validate.py index e8737b4f156..5df6a0d1e5f 100644 --- a/skills/skill-creator/scripts/quick_validate.py +++ b/skills/skill-creator/scripts/quick_validate.py @@ -95,7 +95,14 @@ def validate_skill(skill_path): "Invalid YAML in frontmatter: unsupported syntax without PyYAML installed", ) - allowed_properties = {"name", "description", "license", "allowed-tools", "metadata"} + allowed_properties = { + "name", + "description", + "homepage", + "license", + "allowed-tools", + "metadata", + } unexpected_keys = set(frontmatter.keys()) - allowed_properties if unexpected_keys: diff --git a/skills/skill-creator/scripts/test_quick_validate.py b/skills/skill-creator/scripts/test_quick_validate.py index 199fcb633ad..31445a53b92 100644 --- a/skills/skill-creator/scripts/test_quick_validate.py +++ b/skills/skill-creator/scripts/test_quick_validate.py @@ -67,6 +67,22 @@ metadata: | self.assertTrue(valid, message) + def test_accepts_homepage_frontmatter_key(self): + skill_dir = self.temp_dir / "homepage-skill" + skill_dir.mkdir(parents=True, exist_ok=True) + content = """--- +name: homepage-skill +description: Supports homepage +homepage: https://example.com +--- +# Skill +""" + (skill_dir / "SKILL.md").write_text(content, encoding="utf-8") + + valid, message = quick_validate.validate_skill(skill_dir) + + self.assertTrue(valid, message) + if __name__ == "__main__": main()