Files
antigravity-skills-reference/tools/scripts/tests/validate_skills_headings.test.js
sck_0 45844de534 refactor: reorganize repo docs and tooling layout
Consolidate the repository into clearer apps, tools, and layered docs areas so contributors can navigate and maintain it more reliably. Align validation, metadata sync, and CI around the same canonical workflow to reduce drift across local checks and GitHub Actions.
2026-03-06 15:01:38 +01:00

50 lines
1.6 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 { findProjectRoot } = require("../../lib/project-root");
const { listSkillIdsRecursive, parseFrontmatter } = require("../../lib/skill-utils");
const SKILLS_DIR = path.join(findProjectRoot(__dirname), "skills");
const skillIds = listSkillIdsRecursive(SKILLS_DIR);
console.log(`Checking YAML validity for ${skillIds.length} skills (smoke test)...`);
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 authoritative schema checks)`);
} else {
console.log("ok");
}