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