* fix: stabilize validation and tests on Windows * test: add Windows smoke coverage for skill activation * refactor: make setup_web script CommonJS * fix: repair aegisops-ai frontmatter * docs: add when-to-use guidance to core skills * docs: add when-to-use guidance to Apify skills * docs: add when-to-use guidance to Google and Expo skills * docs: add when-to-use guidance to Makepad skills * docs: add when-to-use guidance to git workflow skills * docs: add when-to-use guidance to fp-ts skills * docs: add when-to-use guidance to Three.js skills * docs: add when-to-use guidance to n8n skills * docs: add when-to-use guidance to health analysis skills * docs: add when-to-use guidance to writing and review skills * meta: sync generated catalog metadata * docs: add when-to-use guidance to Robius skills * docs: add when-to-use guidance to review and workflow skills * docs: add when-to-use guidance to science and data skills * docs: add when-to-use guidance to tooling and automation skills * docs: add when-to-use guidance to remaining skills * fix: gate bundle helper execution in Windows activation * chore: drop generated artifacts from contributor PR * docs(maintenance): Record PR 457 sweep Document the open issue triage, PR supersedence decision, local verification, and source-only cleanup that prepared PR #457 for re-running CI. --------- Co-authored-by: sickn33 <sickn33@users.noreply.github.com>
34 lines
1.0 KiB
JavaScript
34 lines
1.0 KiB
JavaScript
const assert = require("assert");
|
|
const fs = require("fs");
|
|
const os = require("os");
|
|
const path = require("path");
|
|
|
|
async function main() {
|
|
const { copyIndexFiles } = require("../../scripts/setup_web.js");
|
|
|
|
const root = fs.mkdtempSync(path.join(os.tmpdir(), "setup-web-sync-"));
|
|
try {
|
|
const source = path.join(root, "skills_index.json");
|
|
const dest = path.join(root, "public", "skills.json");
|
|
const backup = path.join(root, "public", "skills.json.backup");
|
|
|
|
fs.mkdirSync(path.dirname(dest), { recursive: true });
|
|
fs.writeFileSync(source, JSON.stringify([{ id: "demo", category: "testing" }], null, 2));
|
|
|
|
copyIndexFiles(source, dest, backup);
|
|
|
|
assert.deepStrictEqual(
|
|
JSON.parse(fs.readFileSync(dest, "utf8")),
|
|
JSON.parse(fs.readFileSync(source, "utf8")),
|
|
);
|
|
assert.deepStrictEqual(
|
|
JSON.parse(fs.readFileSync(backup, "utf8")),
|
|
JSON.parse(fs.readFileSync(source, "utf8")),
|
|
);
|
|
} finally {
|
|
fs.rmSync(root, { recursive: true, force: true });
|
|
}
|
|
}
|
|
|
|
main();
|