meta(index): Expand uncategorized category coverage
This commit is contained in:
@@ -439,6 +439,124 @@ CURATED_CATEGORY_OVERRIDES = {
|
||||
"audio-transcriber": "voice-agents",
|
||||
"fal-audio": "voice-agents",
|
||||
"pipecat-friday-agent": "voice-agents",
|
||||
"3d-web-experience": "design",
|
||||
"ab-test-setup": "marketing",
|
||||
"acceptance-orchestrator": "workflow",
|
||||
"accessibility-compliance-accessibility-audit": "design",
|
||||
"active-directory-attacks": "security",
|
||||
"activecampaign-automation": "marketing",
|
||||
"alpha-vantage": "data",
|
||||
"amplitude-automation": "data",
|
||||
"analytics-product": "data",
|
||||
"analyze-project": "meta",
|
||||
"antigravity-workflows": "workflow",
|
||||
"anti-reversing-techniques": "security",
|
||||
"arm-cortex-expert": "development",
|
||||
"asana-automation": "project-management",
|
||||
"ask-questions-if-underspecified": "workflow",
|
||||
"audit-context-building": "meta",
|
||||
"basecamp-automation": "project-management",
|
||||
"bazel-build-optimization": "development",
|
||||
"behavioral-modes": "meta",
|
||||
"bitbucket-automation": "workflow",
|
||||
"blog-writing-guide": "content",
|
||||
"box-automation": "productivity",
|
||||
"brevo-automation": "marketing",
|
||||
"broken-authentication": "security",
|
||||
"building-native-ui": "mobile",
|
||||
"bullmq-specialist": "framework",
|
||||
"burp-suite-testing": "security",
|
||||
"business-analyst": "business",
|
||||
"busybox-on-windows": "development",
|
||||
"c-pro": "code",
|
||||
"cal-com-automation": "productivity",
|
||||
"calendly-automation": "productivity",
|
||||
"canva-automation": "design",
|
||||
"carrier-relationship-management": "business",
|
||||
"changelog-automation": "workflow",
|
||||
"cloudflare-workers-expert": "framework",
|
||||
"closed-loop-delivery": "workflow",
|
||||
"commit": "workflow",
|
||||
"confluence-automation": "project-management",
|
||||
"constant-time-analysis": "security",
|
||||
"context7-auto-research": "meta",
|
||||
"convex": "framework",
|
||||
"convertkit-automation": "marketing",
|
||||
"cpp-pro": "code",
|
||||
"cred-omega": "security",
|
||||
"csharp-pro": "code",
|
||||
"datadog-automation": "reliability",
|
||||
"dependency-upgrade": "development",
|
||||
"differential-review": "security",
|
||||
"discord-automation": "api-integration",
|
||||
"docusign-automation": "productivity",
|
||||
"dotnet-architect": "development",
|
||||
"dropbox-automation": "productivity",
|
||||
"dx-optimizer": "development",
|
||||
"elixir-pro": "code",
|
||||
"electron-development": "development",
|
||||
"energy-procurement": "business",
|
||||
"environment-setup-guide": "development",
|
||||
"ethical-hacking-methodology": "security",
|
||||
"executing-plans": "workflow",
|
||||
"fda-food-safety-auditor": "legal",
|
||||
"fda-medtech-compliance-auditor": "legal",
|
||||
"figma-automation": "design",
|
||||
"filesystem-context": "meta",
|
||||
"flutter-expert": "mobile",
|
||||
"gha-security-review": "security",
|
||||
"gh-review-requests": "workflow",
|
||||
"gmail-automation": "productivity",
|
||||
"haskell-pro": "code",
|
||||
"hr-pro": "business",
|
||||
"inngest": "workflow",
|
||||
"inventory-demand-planning": "business",
|
||||
"iterate-pr": "workflow",
|
||||
"java-pro": "code",
|
||||
"jira-automation": "project-management",
|
||||
"klaviyo-automation": "marketing",
|
||||
"linear-automation": "project-management",
|
||||
"mailchimp-automation": "marketing",
|
||||
"microsoft-teams-automation": "api-integration",
|
||||
"miro-automation": "project-management",
|
||||
"mixpanel-automation": "data",
|
||||
"ml-pipeline-workflow": "workflow",
|
||||
"monday-automation": "project-management",
|
||||
"on-call-handoff-patterns": "reliability",
|
||||
"one-drive-automation": "productivity",
|
||||
"pagerduty-automation": "reliability",
|
||||
"php-pro": "code",
|
||||
"pipedrive-automation": "business",
|
||||
"plan-writing": "planning",
|
||||
"postmark-automation": "api-integration",
|
||||
"posthog-automation": "data",
|
||||
"pr-writer": "workflow",
|
||||
"privacy-by-design": "security",
|
||||
"receiving-code-review": "workflow",
|
||||
"reddit-automation": "marketing",
|
||||
"requesting-code-review": "workflow",
|
||||
"ruby-pro": "code",
|
||||
"scala-pro": "code",
|
||||
"sentry-automation": "reliability",
|
||||
"service-mesh-expert": "reliability",
|
||||
"shadcn": "framework",
|
||||
"square-automation": "api-integration",
|
||||
"subagent-driven-development": "workflow",
|
||||
"tanstack-query-expert": "framework",
|
||||
"tiktok-automation": "marketing",
|
||||
"todoist-automation": "project-management",
|
||||
"trello-automation": "project-management",
|
||||
"trigger-dev": "workflow",
|
||||
"twitter-automation": "marketing",
|
||||
"ui-visual-validator": "design",
|
||||
"unreal-engine-cpp-pro": "code",
|
||||
"uv-package-manager": "development",
|
||||
"webflow-automation": "design",
|
||||
"whatsapp-automation": "api-integration",
|
||||
"writing-plans": "planning",
|
||||
"youtube-automation": "marketing",
|
||||
"zod-validation-expert": "framework",
|
||||
"zoho-crm-automation": "business",
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -147,6 +147,34 @@ class GenerateIndexCategoryTests(unittest.TestCase):
|
||||
skills = generate_index.generate_index(str(skills_dir), str(output_file))
|
||||
self.assertEqual(skills[0]["category"], "design")
|
||||
|
||||
def test_generate_index_applies_curated_domain_overrides(self):
|
||||
with tempfile.TemporaryDirectory() as temp_dir:
|
||||
base = pathlib.Path(temp_dir)
|
||||
skills_dir = base / "skills"
|
||||
output_file = base / "skills_index.json"
|
||||
|
||||
fixtures = {
|
||||
"commit": "workflow",
|
||||
"activecampaign-automation": "marketing",
|
||||
"datadog-automation": "reliability",
|
||||
"business-analyst": "business",
|
||||
"zod-validation-expert": "framework",
|
||||
}
|
||||
|
||||
for skill_id in fixtures:
|
||||
override_dir = skills_dir / skill_id
|
||||
override_dir.mkdir(parents=True)
|
||||
(override_dir / "SKILL.md").write_text(
|
||||
f"---\nname: {skill_id}\ncategory: custom\ndescription: Example\n---\nbody\n",
|
||||
encoding="utf-8",
|
||||
)
|
||||
|
||||
skills = generate_index.generate_index(str(skills_dir), str(output_file))
|
||||
categories = {skill["id"]: skill["category"] for skill in skills}
|
||||
|
||||
for skill_id, category in fixtures.items():
|
||||
self.assertEqual(categories[skill_id], category)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user