feat: publish vssa-clients skill
Validate skill / validate (push) Successful in 7s

This commit is contained in:
2026-08-14 12:10:47 +00:00
parent f0d4f416ce
commit fd33a2144a
9 changed files with 711 additions and 1 deletions
+22
View File
@@ -0,0 +1,22 @@
#!/usr/bin/env python3
from pathlib import Path
import re
ROOT = Path(__file__).resolve().parents[1]
skill = ROOT / "SKILL.md"
text = skill.read_text(encoding="utf-8")
assert text.startswith("---\n"), "frontmatter must start at byte zero"
match = re.match(r"---\n(.*?)\n---\n(.+)", text, re.S)
assert match, "invalid frontmatter/body framing"
frontmatter, body = match.groups()
assert re.search(r"^name:\s*vssa-clients\s*$", frontmatter, re.M), "wrong skill name"
description = re.search(r'^description:\s*["\']?(.*?)["\']?\s*$', frontmatter, re.M)
assert description and 0 < len(description.group(1)) <= 1024, "invalid description"
assert len(text) <= 100_000, "SKILL.md exceeds Hermes limit"
assert body.strip(), "skill body is empty"
links = re.findall(r"\[[^]]+\]\((references/[^)]+)\)", text)
assert links, "no linked references"
unique_links = sorted(set(links))
missing = [link for link in unique_links if not (ROOT / link).is_file()]
assert not missing, f"missing linked references: {missing}"
print(f"OK skill=vssa-clients chars={len(text)} references={len(unique_links)}")