From 8d0e49cc28cd2c2ea7e8fc9c493a3379e282a9c4 Mon Sep 17 00:00:00 2001 From: Alex Verkhovsky Date: Mon, 9 Mar 2026 01:32:39 -0600 Subject: [PATCH] fix(cli): validate frontmatter name/description are strings in parseSkillMd Prevents cleanForCSV() crash when YAML parses name or description as a non-string type (number, object, boolean). --- tools/cli/installers/lib/core/manifest-generator.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/tools/cli/installers/lib/core/manifest-generator.js b/tools/cli/installers/lib/core/manifest-generator.js index 040d5ecc9..5dc4ff078 100644 --- a/tools/cli/installers/lib/core/manifest-generator.js +++ b/tools/cli/installers/lib/core/manifest-generator.js @@ -280,8 +280,15 @@ class ManifestGenerator { if (frontmatterMatch) { const skillMeta = yaml.parse(frontmatterMatch[1]); - if (!skillMeta || typeof skillMeta !== 'object' || !skillMeta.name || !skillMeta.description) { - if (debug) console.log(`[DEBUG] parseSkillMd: SKILL.md in "${dir}" is missing name or description — skipping`); + if ( + !skillMeta || + typeof skillMeta !== 'object' || + typeof skillMeta.name !== 'string' || + typeof skillMeta.description !== 'string' || + !skillMeta.name || + !skillMeta.description + ) { + if (debug) console.log(`[DEBUG] parseSkillMd: SKILL.md in "${dir}" is missing name or description (or wrong type) — skipping`); return null; }