meta(bundles): Add vertical starter and generated packs

This commit is contained in:
sickn33
2026-03-19 18:39:12 +01:00
parent 95b8bb942e
commit bb2547a358
5 changed files with 764 additions and 1 deletions

View File

@@ -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 = [

View 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",
);

View File

@@ -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")],