meta(bundles): Add vertical starter and generated packs
This commit is contained in:
@@ -412,6 +412,91 @@ const BUNDLE_RULES = {
|
||||
"incident",
|
||||
],
|
||||
},
|
||||
"automation-core": {
|
||||
description: "Automation platforms, workflow tooling, and business systems.",
|
||||
keywords: [
|
||||
"automation",
|
||||
"workflow",
|
||||
"airtable",
|
||||
"notion",
|
||||
"slack",
|
||||
"calendar",
|
||||
"sheets",
|
||||
"outlook",
|
||||
"hubspot",
|
||||
"zendesk",
|
||||
"shopify",
|
||||
"stripe",
|
||||
"sendgrid",
|
||||
"calendly",
|
||||
"clickup",
|
||||
"make",
|
||||
"n8n",
|
||||
"zoom",
|
||||
],
|
||||
},
|
||||
"azure-core": {
|
||||
description: "Azure cloud, platform, and AI development.",
|
||||
keywords: ["azure", "azd"],
|
||||
},
|
||||
"commerce-core": {
|
||||
description: "Commerce, payments, and revenue operations skills.",
|
||||
keywords: [
|
||||
"stripe",
|
||||
"paypal",
|
||||
"plaid",
|
||||
"ecommerce",
|
||||
"commerce",
|
||||
"billing",
|
||||
"monetization",
|
||||
"crm",
|
||||
"shopify",
|
||||
"hubspot",
|
||||
"woocommerce",
|
||||
"odoo",
|
||||
],
|
||||
},
|
||||
"mobile-core": {
|
||||
description: "Mobile app development across native and cross-platform stacks.",
|
||||
keywords: [
|
||||
"mobile",
|
||||
"ios",
|
||||
"android",
|
||||
"flutter",
|
||||
"expo",
|
||||
"swiftui",
|
||||
"compose",
|
||||
"appstore",
|
||||
],
|
||||
},
|
||||
"seo-core": {
|
||||
description: "SEO, search visibility, and structured content optimization.",
|
||||
keywords: [
|
||||
"seo",
|
||||
"schema",
|
||||
"keyword",
|
||||
"snippet",
|
||||
"meta",
|
||||
"cannibalization",
|
||||
"authority",
|
||||
],
|
||||
},
|
||||
"docs-core": {
|
||||
description: "Documents, spreadsheets, presentations, and office workflows.",
|
||||
keywords: [
|
||||
"docx",
|
||||
"pptx",
|
||||
"xlsx",
|
||||
"pdf",
|
||||
"slides",
|
||||
"spreadsheet",
|
||||
"libreoffice",
|
||||
"writer",
|
||||
"calc",
|
||||
"impress",
|
||||
"office",
|
||||
],
|
||||
},
|
||||
};
|
||||
|
||||
const CURATED_COMMON = [
|
||||
|
||||
59
tools/scripts/tests/build_catalog_bundles.test.js
Normal file
59
tools/scripts/tests/build_catalog_bundles.test.js
Normal file
@@ -0,0 +1,59 @@
|
||||
const assert = require("assert");
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
|
||||
const { buildCatalog } = require("../build-catalog");
|
||||
|
||||
const repoRoot = path.resolve(__dirname, "..", "..", "..");
|
||||
const bundlesPath = path.join(repoRoot, "data", "bundles.json");
|
||||
|
||||
buildCatalog();
|
||||
|
||||
const bundleData = JSON.parse(fs.readFileSync(bundlesPath, "utf8"));
|
||||
const bundles = bundleData.bundles || {};
|
||||
|
||||
for (const bundleId of [
|
||||
"core-dev",
|
||||
"security-core",
|
||||
"k8s-core",
|
||||
"data-core",
|
||||
"ops-core",
|
||||
"automation-core",
|
||||
"azure-core",
|
||||
"commerce-core",
|
||||
"mobile-core",
|
||||
"seo-core",
|
||||
"docs-core",
|
||||
]) {
|
||||
assert.ok(bundles[bundleId], `expected generated bundles to include ${bundleId}`);
|
||||
}
|
||||
|
||||
assert.ok(
|
||||
bundles["automation-core"].skills.includes("workflow-automation"),
|
||||
"workflow-automation should be included in automation-core",
|
||||
);
|
||||
assert.ok(
|
||||
bundles["automation-core"].skills.includes("airtable-automation"),
|
||||
"airtable-automation should be included in automation-core",
|
||||
);
|
||||
assert.ok(
|
||||
bundles["azure-core"].skills.includes("azure-ai-openai-dotnet"),
|
||||
"azure-ai-openai-dotnet should be included in azure-core",
|
||||
);
|
||||
assert.ok(
|
||||
bundles["commerce-core"].skills.includes("stripe-automation") ||
|
||||
bundles["commerce-core"].skills.includes("plaid-fintech"),
|
||||
"commerce-core should include a representative commerce skill",
|
||||
);
|
||||
assert.ok(
|
||||
bundles["mobile-core"].skills.includes("expo-api-routes"),
|
||||
"expo-api-routes should be included in mobile-core",
|
||||
);
|
||||
assert.ok(
|
||||
bundles["seo-core"].skills.includes("seo-fundamentals"),
|
||||
"seo-fundamentals should be included in seo-core",
|
||||
);
|
||||
assert.ok(
|
||||
bundles["docs-core"].skills.includes("docx-official"),
|
||||
"docx-official should be included in docs-core",
|
||||
);
|
||||
@@ -9,6 +9,7 @@ const TOOL_SCRIPTS = path.join("tools", "scripts");
|
||||
const TOOL_TESTS = path.join(TOOL_SCRIPTS, "tests");
|
||||
const LOCAL_TEST_COMMANDS = [
|
||||
[path.join(TOOL_TESTS, "activate_skills_batch_security.test.js")],
|
||||
[path.join(TOOL_TESTS, "build_catalog_bundles.test.js")],
|
||||
[path.join(TOOL_TESTS, "claude_plugin_marketplace.test.js")],
|
||||
[path.join(TOOL_TESTS, "jetski_gemini_loader.test.js")],
|
||||
[path.join(TOOL_TESTS, "npm_package_contents.test.js")],
|
||||
|
||||
Reference in New Issue
Block a user