fix: sync upstream main with Windows validation and skill guidance cleanup (#457)
* 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>
This commit is contained in:
@@ -3,6 +3,10 @@ const fs = require("fs");
|
||||
const path = require("path");
|
||||
const { findProjectRoot } = require("../../lib/project-root");
|
||||
|
||||
function normalizeRelativePath(value) {
|
||||
return value.replace(/\\/g, "/").replace(/^\.\//, "");
|
||||
}
|
||||
|
||||
const projectRoot = findProjectRoot(__dirname);
|
||||
const pluginsRoot = path.join(projectRoot, "plugins");
|
||||
const claudeMarketplace = JSON.parse(
|
||||
@@ -13,10 +17,10 @@ const codexMarketplace = JSON.parse(
|
||||
);
|
||||
|
||||
const claudePluginPaths = new Set(
|
||||
claudeMarketplace.plugins.map((plugin) => plugin.source.replace(/^\.\//, "")),
|
||||
claudeMarketplace.plugins.map((plugin) => normalizeRelativePath(plugin.source)),
|
||||
);
|
||||
const codexPluginPaths = new Set(
|
||||
codexMarketplace.plugins.map((plugin) => plugin.source.path.replace(/^\.\//, "")),
|
||||
codexMarketplace.plugins.map((plugin) => normalizeRelativePath(plugin.source.path)),
|
||||
);
|
||||
const knownPluginPaths = new Set([...claudePluginPaths, ...codexPluginPaths]);
|
||||
|
||||
@@ -69,7 +73,7 @@ for (const entry of fs.readdirSync(pluginsRoot, { withFileTypes: true })) {
|
||||
continue;
|
||||
}
|
||||
|
||||
const relativePluginPath = path.join("plugins", entry.name);
|
||||
const relativePluginPath = normalizeRelativePath(path.join("plugins", entry.name));
|
||||
if (entry.name.startsWith("antigravity-bundle-") || entry.name === "antigravity-awesome-skills" || entry.name === "antigravity-awesome-skills-claude") {
|
||||
assert.ok(
|
||||
knownPluginPaths.has(relativePluginPath),
|
||||
|
||||
Reference in New Issue
Block a user