- Align package.json description to 883+ skills - Allow risk:unknown in validate_skills.py for legacy skills - Add When to Use section to 6 skills; fix frontmatter in brainstorming, agents-v2-py, hosted-agents-v2-py - Add scripts/validate_references.py for workflows, bundles, BUNDLES.md links - Update QUALITY_BAR and SKILL_ANATOMY; add docs/AUDIT.md and MAINTENANCE note for data/ - Make YAML frontmatter test warn instead of fail; regenerate catalog and index Co-authored-by: Cursor <cursoragent@cursor.com>
49 lines
1.5 KiB
JavaScript
49 lines
1.5 KiB
JavaScript
const assert = require("assert");
|
|
const { hasUseSection } = require("../validate-skills");
|
|
|
|
const samples = [
|
|
["## When to Use", true],
|
|
["## Use this skill when", true],
|
|
["## When to Use This Skill", true],
|
|
["## Overview", false],
|
|
];
|
|
|
|
for (const [heading, expected] of samples) {
|
|
const content = `\n${heading}\n- item\n`;
|
|
assert.strictEqual(hasUseSection(content), expected, heading);
|
|
}
|
|
|
|
// Regression test for YAML validity in frontmatter (Issue #79)
|
|
// Logs skills with parse errors as warnings; does not fail (many legacy skills have multiline frontmatter).
|
|
const fs = require("fs");
|
|
const path = require("path");
|
|
const { listSkillIds, parseFrontmatter } = require("../../lib/skill-utils");
|
|
|
|
const SKILLS_DIR = path.join(__dirname, "../../skills");
|
|
const skillIds = listSkillIds(SKILLS_DIR);
|
|
|
|
console.log(`Checking YAML validity for ${skillIds.length} skills...`);
|
|
let warnCount = 0;
|
|
for (const skillId of skillIds) {
|
|
const skillPath = path.join(SKILLS_DIR, skillId, "SKILL.md");
|
|
const content = fs.readFileSync(skillPath, "utf8");
|
|
const { errors, hasFrontmatter } = parseFrontmatter(content);
|
|
|
|
if (!hasFrontmatter) {
|
|
console.warn(`[WARN] No frontmatter in ${skillId}`);
|
|
warnCount++;
|
|
continue;
|
|
}
|
|
|
|
if (errors.length > 0) {
|
|
console.warn(`[WARN] YAML parse errors in ${skillId}: ${errors.join(", ")}`);
|
|
warnCount++;
|
|
}
|
|
}
|
|
|
|
if (warnCount > 0) {
|
|
console.log(`ok (${warnCount} skills with frontmatter warnings; run validate_skills.py for schema checks)`);
|
|
} else {
|
|
console.log("ok");
|
|
}
|