fix(skills): validate bundled SKILL.md front-matter in CI (fixes #2443) (#2457)

* fix(skills): validate bundled SKILL.md front-matter in CI (fixes #2443)

Adds a parametrized backend test that runs `_validate_skill_frontmatter`
against every bundled SKILL.md under `skills/public/`, so a broken
front-matter fails CI with a per-skill error message instead of
surfacing as a runtime gateway-load warning.

The new test caught two pre-existing breakages on `main` and fixes them:

* `bootstrap/SKILL.md`: the unquoted description had a second `:` mid-line
  ("Also trigger for updates: ..."), which YAML parses as a nested mapping
  ("mapping values are not allowed here"). Rewrites the description as a
  folded scalar (`>-`), which preserves the original wording (including the
  embedded colon, double quotes, and apostrophes) without further escaping.
  This complements PR #2436 (single-file colon→hyphen patch) with a more
  general convention that survives future edits.

* `chart-visualization/SKILL.md`: used `dependency:` which is not in
  `ALLOWED_FRONTMATTER_PROPERTIES`. Renamed to `compatibility:`, the
  documented field for "Required tools, dependencies" per skill-creator.
  No code reads `dependency` (verified by grep across backend/).

* Apply suggestions from code review

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Fix the lint error

---------

Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
d 🔹
2026-04-23 14:06:14 +08:00
committed by GitHub
parent 96d00f6073
commit b90f219bd1
3 changed files with 39 additions and 2 deletions
+7 -1
View File
@@ -1,6 +1,12 @@
---
name: bootstrap
description: Generate a personalized SOUL.md through a warm, adaptive onboarding conversation. Trigger when the user wants to create, set up, or initialize their AI partner's identity — e.g., "create my SOUL.md", "bootstrap my agent", "set up my AI partner", "define who you are", "let's do onboarding", "personalize this AI", "make you mine", or when a SOUL.md is missing. Also trigger for updates: "update my SOUL.md", "change my AI's personality", "tweak the soul".
description: >-
Generate a personalized SOUL.md through a warm, adaptive onboarding conversation.
Trigger when the user wants to create, set up, or initialize their AI partner's
identity — e.g., "create my SOUL.md", "bootstrap my agent", "set up my AI
partner", "define who you are", "let's do onboarding", "personalize this AI",
"make you mine", or when a SOUL.md is missing. Also trigger for updates:
"update my SOUL.md", "change my AI's personality", "tweak the soul".
---
# Bootstrap Soul
+1 -1
View File
@@ -1,7 +1,7 @@
---
name: chart-visualization
description: This skill should be used when the user wants to visualize data. It intelligently selects the most suitable chart type from 26 available options, extracts parameters based on detailed specifications, and generates a chart image using a JavaScript script.
dependency:
compatibility:
nodejs: ">=18.0.0"
---