@hasna/skills 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +200 -0
- package/README.md +19 -91
- package/bin/index.js +804 -324
- package/bin/mcp.js +465 -233
- package/dist/cli/cli.test.d.ts +1 -0
- package/dist/cli/components/App.d.ts +6 -0
- package/dist/cli/components/CategorySelect.d.ts +6 -0
- package/dist/cli/components/Header.d.ts +6 -0
- package/dist/cli/components/InstallProgress.d.ts +8 -0
- package/dist/cli/components/SearchView.d.ts +8 -0
- package/dist/cli/components/SkillSelect.d.ts +10 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/index.d.ts +12 -0
- package/{src/lib/registry.ts → dist/index.js} +727 -267
- package/dist/index.test.d.ts +1 -0
- package/dist/lib/installer.d.ts +67 -0
- package/dist/lib/installer.test.d.ts +1 -0
- package/dist/lib/registry.d.ts +16 -0
- package/dist/lib/registry.test.d.ts +1 -0
- package/dist/lib/skillinfo-run.test.d.ts +1 -0
- package/dist/lib/skillinfo.d.ts +44 -0
- package/dist/lib/skillinfo.test.d.ts +1 -0
- package/dist/lib/utils.d.ts +4 -0
- package/dist/lib/utils.test.d.ts +1 -0
- package/dist/lib/validation.test.d.ts +1 -0
- package/dist/mcp/index.d.ts +10 -0
- package/dist/mcp/mcp.test.d.ts +1 -0
- package/dist/server/serve.d.ts +7 -0
- package/package.json +16 -5
- package/skills/_common/index.ts +23 -0
- package/skills/skill-academic-journal-matcher/package.json +9 -8
- package/skills/skill-academic-journal-matcher/tsconfig.json +6 -10
- package/skills/skill-action-item-router/package.json +9 -8
- package/skills/skill-action-item-router/tsconfig.json +6 -10
- package/skills/skill-ad-creative-generator/package.json +9 -8
- package/skills/skill-ad-creative-generator/tsconfig.json +6 -10
- package/skills/skill-advanced-math/package.json +9 -8
- package/skills/skill-advanced-math/tsconfig.json +6 -10
- package/skills/skill-analyze-data/package.json +3 -5
- package/skills/skill-analyze-data/tsconfig.json +12 -9
- package/skills/skill-anomaly-investigator/package.json +9 -8
- package/skills/skill-anomaly-investigator/tsconfig.json +6 -10
- package/skills/skill-api-test-suite/package.json +9 -8
- package/skills/skill-api-test-suite/tsconfig.json +6 -10
- package/skills/skill-apidocs/CLAUDE.md +1 -1
- package/skills/skill-apidocs/LICENSE +192 -21
- package/skills/skill-apidocs/package.json +1 -2
- package/skills/skill-apidocs/tsconfig.json +12 -9
- package/skills/skill-audio/package.json +1 -1
- package/skills/skill-audio/src/index-local.ts +1 -1
- package/skills/skill-audio/src/index.ts +1 -2
- package/skills/skill-audio/tsconfig.json +11 -8
- package/skills/skill-audio-cleanup-lab/package.json +2 -5
- package/skills/skill-audio-cleanup-lab/tsconfig.json +6 -10
- package/skills/skill-audiobook-chapter-proofer/package.json +9 -8
- package/skills/skill-audiobook-chapter-proofer/tsconfig.json +6 -10
- package/skills/skill-banner-ad-suite/package.json +9 -8
- package/skills/skill-banner-ad-suite/tsconfig.json +6 -10
- package/skills/skill-benchmark-finder/package.json +9 -8
- package/skills/skill-benchmark-finder/tsconfig.json +6 -10
- package/skills/skill-bio-sequence-tool/package.json +9 -8
- package/skills/skill-bio-sequence-tool/tsconfig.json +6 -10
- package/skills/skill-blog-topic-cluster/package.json +9 -8
- package/skills/skill-blog-topic-cluster/tsconfig.json +6 -10
- package/skills/skill-brand-style-guide/package.json +3 -4
- package/skills/skill-brand-style-guide/tsconfig.json +12 -9
- package/skills/skill-brand-voice-audit/package.json +9 -8
- package/skills/skill-brand-voice-audit/tsconfig.json +6 -10
- package/skills/skill-browse/LICENSE +192 -21
- package/skills/skill-browse/package.json +1 -1
- package/skills/skill-browse/src/index-local.ts +1 -1
- package/skills/skill-browse/src/index.ts +1 -2
- package/skills/skill-browse/tsconfig.json +11 -8
- package/skills/skill-budget-variance-analyzer/package.json +2 -4
- package/skills/skill-budget-variance-analyzer/tsconfig.json +12 -7
- package/skills/skill-businessactivity/LICENSE +192 -21
- package/skills/skill-businessactivity/package.json +1 -1
- package/skills/skill-businessactivity/tsconfig.json +15 -7
- package/skills/skill-calendar-events/package.json +9 -8
- package/skills/skill-calendar-events/tsconfig.json +6 -10
- package/skills/skill-campaign-metric-brief/package.json +9 -8
- package/skills/skill-campaign-metric-brief/tsconfig.json +6 -10
- package/skills/skill-campaign-moodboard/package.json +9 -8
- package/skills/skill-campaign-moodboard/tsconfig.json +6 -10
- package/skills/skill-caption-style-stylist/package.json +9 -8
- package/skills/skill-caption-style-stylist/tsconfig.json +6 -10
- package/skills/skill-chemistry-calculator/package.json +9 -8
- package/skills/skill-chemistry-calculator/tsconfig.json +6 -10
- package/skills/skill-churn-risk-notifier/package.json +9 -8
- package/skills/skill-churn-risk-notifier/tsconfig.json +6 -10
- package/skills/skill-citation-formatter/package.json +9 -8
- package/skills/skill-citation-formatter/tsconfig.json +6 -10
- package/skills/skill-classroom-newsletter-kit/package.json +9 -8
- package/skills/skill-classroom-newsletter-kit/tsconfig.json +6 -10
- package/skills/skill-codefix/LICENSE +192 -21
- package/skills/skill-codefix/src/index-local.ts +1 -1
- package/skills/skill-codefix/src/index.ts +1 -2
- package/skills/skill-codefix/tsconfig.json +9 -10
- package/skills/skill-color-palette-harmonizer/package.json +9 -8
- package/skills/skill-color-palette-harmonizer/tsconfig.json +6 -10
- package/skills/skill-competitor-ad-analyzer/package.json +9 -8
- package/skills/skill-competitor-ad-analyzer/tsconfig.json +6 -10
- package/skills/skill-compliance-copy-check/package.json +9 -8
- package/skills/skill-compliance-copy-check/tsconfig.json +6 -10
- package/skills/skill-compliance-report-pack/package.json +9 -8
- package/skills/skill-compliance-report-pack/tsconfig.json +6 -10
- package/skills/skill-compress-video/package.json +2 -5
- package/skills/skill-compress-video/tsconfig.json +6 -10
- package/skills/skill-consolelog/LICENSE +192 -21
- package/skills/skill-consolelog/package.json +1 -2
- package/skills/skill-consolelog/tsconfig.json +14 -10
- package/skills/skill-contract-plainlanguage/package.json +9 -8
- package/skills/skill-contract-plainlanguage/tsconfig.json +6 -10
- package/skills/skill-convert/LICENSE +192 -21
- package/skills/skill-convert/src/index-local.ts +1 -1
- package/skills/skill-convert/src/index.ts +1 -2
- package/skills/skill-convert/tsconfig.json +9 -10
- package/skills/skill-copytone-translator/package.json +9 -8
- package/skills/skill-copytone-translator/tsconfig.json +6 -10
- package/skills/skill-create-blog-article/package.json +9 -8
- package/skills/skill-create-blog-article/tsconfig.json +6 -10
- package/skills/skill-create-ebook/package.json +9 -8
- package/skills/skill-create-ebook/tsconfig.json +6 -10
- package/skills/skill-crm-note-enhancer/package.json +9 -8
- package/skills/skill-crm-note-enhancer/tsconfig.json +6 -10
- package/skills/skill-customer-journey-mapper/package.json +9 -8
- package/skills/skill-customer-journey-mapper/tsconfig.json +6 -10
- package/skills/skill-dashboard-builder/package.json +9 -8
- package/skills/skill-dashboard-builder/tsconfig.json +6 -10
- package/skills/skill-dashboard-narrator/package.json +9 -8
- package/skills/skill-dashboard-narrator/tsconfig.json +6 -10
- package/skills/skill-data-anonymizer/package.json +9 -8
- package/skills/skill-data-anonymizer/tsconfig.json +6 -10
- package/skills/skill-database-explorer/package.json +9 -8
- package/skills/skill-database-explorer/tsconfig.json +6 -10
- package/skills/skill-dataset-health-check/package.json +9 -8
- package/skills/skill-dataset-health-check/tsconfig.json +6 -10
- package/skills/skill-decision-journal/package.json +9 -8
- package/skills/skill-decision-journal/tsconfig.json +6 -10
- package/skills/skill-deepresearch/package.json +1 -1
- package/skills/skill-deepresearch/tsconfig.json +11 -9
- package/skills/skill-delegation-brief-writer/package.json +9 -8
- package/skills/skill-delegation-brief-writer/tsconfig.json +6 -10
- package/skills/skill-deploy/LICENSE +192 -21
- package/skills/skill-deploy/src/hosts.ts +9 -26
- package/skills/skill-deploy/src/http-client.ts +1 -1
- package/skills/skill-deploy/src/index-local.ts +1 -1
- package/skills/skill-deploy/src/index.ts +1 -1
- package/skills/skill-deploy/tsconfig.json +10 -9
- package/skills/skill-destination-briefing/package.json +9 -8
- package/skills/skill-destination-briefing/tsconfig.json +6 -10
- package/skills/skill-diff-viewer/package.json +9 -8
- package/skills/skill-diff-viewer/tsconfig.json +6 -10
- package/skills/skill-domainpurchase/.env.example +1 -1
- package/skills/skill-domainpurchase/LICENSE +192 -21
- package/skills/skill-domainpurchase/package.json +3 -4
- package/skills/skill-domainpurchase/src/lib/config.ts +2 -2
- package/skills/skill-domainpurchase/tsconfig.json +4 -5
- package/skills/skill-domainsearch/.env.example +1 -1
- package/skills/skill-domainsearch/LICENSE +192 -21
- package/skills/skill-domainsearch/package.json +3 -5
- package/skills/skill-domainsearch/tsconfig.json +4 -4
- package/skills/skill-e2bswarm/package.json +1 -1
- package/skills/skill-e2bswarm/src/lib/config.ts +3 -6
- package/skills/skill-e2bswarm/tsconfig.json +9 -10
- package/skills/skill-educational-resource-finder/package.json +9 -8
- package/skills/skill-educational-resource-finder/tsconfig.json +6 -10
- package/skills/skill-email-campaign/package.json +9 -8
- package/skills/skill-email-campaign/tsconfig.json +6 -10
- package/skills/skill-emoji/package.json +1 -1
- package/skills/skill-emoji/tsconfig.json +9 -9
- package/skills/skill-exam-readiness-check/package.json +9 -8
- package/skills/skill-exam-readiness-check/tsconfig.json +6 -10
- package/skills/skill-experiment-power-calculator/package.json +9 -8
- package/skills/skill-experiment-power-calculator/tsconfig.json +6 -10
- package/skills/skill-extract/LICENSE +192 -21
- package/skills/skill-extract/package.json +1 -1
- package/skills/skill-extract/src/index-local.ts +1 -1
- package/skills/skill-extract/src/index.ts +1 -2
- package/skills/skill-extract/tsconfig.json +11 -9
- package/skills/skill-extract-audio/package.json +2 -5
- package/skills/skill-extract-audio/tsconfig.json +6 -10
- package/skills/skill-extract-frames/package.json +9 -8
- package/skills/skill-extract-frames/tsconfig.json +6 -10
- package/skills/skill-extract-invoice/package.json +9 -8
- package/skills/skill-extract-invoice/tsconfig.json +6 -10
- package/skills/skill-family-activity-curator/package.json +9 -8
- package/skills/skill-family-activity-curator/tsconfig.json +6 -10
- package/skills/skill-faq-packager/package.json +9 -8
- package/skills/skill-faq-packager/tsconfig.json +6 -10
- package/skills/skill-feedback-survey-designer/package.json +9 -8
- package/skills/skill-feedback-survey-designer/tsconfig.json +6 -10
- package/skills/skill-field-trip-planner/package.json +9 -8
- package/skills/skill-field-trip-planner/tsconfig.json +6 -10
- package/skills/skill-file-organizer/package.json +9 -8
- package/skills/skill-file-organizer/tsconfig.json +6 -10
- package/skills/skill-folder-tree/package.json +9 -8
- package/skills/skill-folder-tree/tsconfig.json +6 -10
- package/skills/skill-forecast-scenario-lab/package.json +9 -8
- package/skills/skill-forecast-scenario-lab/tsconfig.json +6 -10
- package/skills/skill-form-filler/package.json +9 -8
- package/skills/skill-form-filler/tsconfig.json +6 -10
- package/skills/skill-generate-api-client/package.json +9 -8
- package/skills/skill-generate-api-client/tsconfig.json +6 -10
- package/skills/skill-generate-book-cover/package.json +9 -8
- package/skills/skill-generate-book-cover/tsconfig.json +6 -10
- package/skills/skill-generate-chart/package.json +9 -8
- package/skills/skill-generate-chart/tsconfig.json +6 -10
- package/skills/skill-generate-diagram/package.json +9 -8
- package/skills/skill-generate-diagram/tsconfig.json +6 -10
- package/skills/skill-generate-dockerfile/package.json +9 -8
- package/skills/skill-generate-dockerfile/tsconfig.json +6 -10
- package/skills/skill-generate-documentation/package.json +9 -8
- package/skills/skill-generate-documentation/tsconfig.json +6 -10
- package/skills/skill-generate-docx/package.json +3 -5
- package/skills/skill-generate-docx/tsconfig.json +10 -10
- package/skills/skill-generate-env/package.json +9 -8
- package/skills/skill-generate-env/tsconfig.json +6 -10
- package/skills/skill-generate-excel/package.json +9 -8
- package/skills/skill-generate-excel/tsconfig.json +6 -10
- package/skills/skill-generate-favicon/package.json +9 -8
- package/skills/skill-generate-favicon/tsconfig.json +6 -10
- package/skills/skill-generate-mock-data/package.json +9 -8
- package/skills/skill-generate-mock-data/tsconfig.json +6 -10
- package/skills/skill-generate-pdf/package.json +3 -5
- package/skills/skill-generate-pdf/tsconfig.json +10 -10
- package/skills/skill-generate-pr-description/package.json +9 -8
- package/skills/skill-generate-pr-description/tsconfig.json +6 -10
- package/skills/skill-generate-presentation/package.json +9 -8
- package/skills/skill-generate-presentation/tsconfig.json +6 -10
- package/skills/skill-generate-qrcode/package.json +9 -8
- package/skills/skill-generate-qrcode/tsconfig.json +6 -10
- package/skills/skill-generate-regex/package.json +9 -8
- package/skills/skill-generate-regex/tsconfig.json +6 -10
- package/skills/skill-generate-resume/package.json +9 -8
- package/skills/skill-generate-resume/tsconfig.json +6 -10
- package/skills/skill-generate-sitemap/package.json +9 -8
- package/skills/skill-generate-sitemap/tsconfig.json +6 -10
- package/skills/skill-generate-social-posts/package.json +9 -8
- package/skills/skill-generate-social-posts/tsconfig.json +6 -10
- package/skills/skill-generate-sql/package.json +9 -8
- package/skills/skill-generate-sql/tsconfig.json +6 -10
- package/skills/skill-gif-maker/package.json +9 -8
- package/skills/skill-gif-maker/tsconfig.json +6 -10
- package/skills/skill-github-manager/package.json +9 -8
- package/skills/skill-github-manager/tsconfig.json +6 -10
- package/skills/skill-gmail/package.json +9 -8
- package/skills/skill-gmail/tsconfig.json +6 -10
- package/skills/skill-goal-quarterly-roadmap/package.json +9 -8
- package/skills/skill-goal-quarterly-roadmap/tsconfig.json +6 -10
- package/skills/skill-grant-application-drafter/package.json +9 -8
- package/skills/skill-grant-application-drafter/tsconfig.json +6 -10
- package/skills/skill-grocery-basket-optimizer/package.json +9 -8
- package/skills/skill-grocery-basket-optimizer/tsconfig.json +6 -10
- package/skills/skill-guest-communication-suite/package.json +9 -8
- package/skills/skill-guest-communication-suite/tsconfig.json +6 -10
- package/skills/skill-habit-reflection-digest/package.json +9 -8
- package/skills/skill-habit-reflection-digest/tsconfig.json +6 -10
- package/skills/skill-highlight-reel-generator/package.json +9 -8
- package/skills/skill-highlight-reel-generator/tsconfig.json +6 -10
- package/skills/skill-homework-feedback-coach/package.json +9 -8
- package/skills/skill-homework-feedback-coach/tsconfig.json +6 -10
- package/skills/skill-hook/LICENSE +192 -21
- package/skills/skill-hook/package.json +1 -1
- package/skills/skill-hook/src/commands/create.ts +1 -1
- package/skills/skill-hook/tsconfig.json +8 -8
- package/skills/skill-household-maintenance-mgr/package.json +9 -8
- package/skills/skill-household-maintenance-mgr/tsconfig.json +6 -10
- package/skills/skill-http-server/package.json +9 -8
- package/skills/skill-http-server/tsconfig.json +6 -10
- package/skills/skill-image/LICENSE +192 -21
- package/skills/skill-image/package.json +1 -1
- package/skills/skill-image/src/index-local.ts +1 -1
- package/skills/skill-image/src/index.ts +1 -2
- package/skills/skill-image/tsconfig.json +11 -9
- package/skills/skill-implementation/LICENSE +192 -21
- package/skills/skill-implementation/package.json +1 -1
- package/skills/skill-implementation/tsconfig.json +8 -8
- package/skills/skill-implementation-agent/package.json +9 -8
- package/skills/skill-implementation-agent/tsconfig.json +6 -10
- package/skills/skill-implementation-plan/package.json +9 -8
- package/skills/skill-implementation-plan/tsconfig.json +6 -10
- package/skills/skill-implementation-todo/package.json +9 -8
- package/skills/skill-implementation-todo/tsconfig.json +6 -10
- package/skills/skill-inbox-priority-planner/package.json +9 -8
- package/skills/skill-inbox-priority-planner/tsconfig.json +6 -10
- package/skills/skill-invoice/LICENSE +192 -21
- package/skills/skill-invoice/README.md +1 -1
- package/skills/skill-invoice/tsconfig.json +13 -9
- package/skills/skill-invoice-dispute-helper/package.json +9 -8
- package/skills/skill-invoice-dispute-helper/tsconfig.json +6 -10
- package/skills/skill-itinerary-architect/package.json +9 -8
- package/skills/skill-itinerary-architect/tsconfig.json +6 -10
- package/skills/skill-jingle-composer/package.json +9 -8
- package/skills/skill-jingle-composer/tsconfig.json +6 -10
- package/skills/skill-kpi-digest-generator/package.json +9 -8
- package/skills/skill-kpi-digest-generator/tsconfig.json +6 -10
- package/skills/skill-lab-notebook-formatter/package.json +9 -8
- package/skills/skill-lab-notebook-formatter/tsconfig.json +6 -10
- package/skills/skill-landing-page-copy/package.json +9 -8
- package/skills/skill-landing-page-copy/tsconfig.json +6 -10
- package/skills/skill-latex-table-generator/package.json +9 -8
- package/skills/skill-latex-table-generator/tsconfig.json +6 -10
- package/skills/skill-learning-style-profiler/package.json +9 -8
- package/skills/skill-learning-style-profiler/tsconfig.json +6 -10
- package/skills/skill-lesson-plan-customizer/package.json +9 -8
- package/skills/skill-lesson-plan-customizer/tsconfig.json +6 -10
- package/skills/skill-livestream-runofshow/package.json +9 -8
- package/skills/skill-livestream-runofshow/tsconfig.json +6 -10
- package/skills/skill-longform-structurer/package.json +9 -8
- package/skills/skill-longform-structurer/tsconfig.json +6 -10
- package/skills/skill-lorem-generator/package.json +9 -8
- package/skills/skill-lorem-generator/tsconfig.json +6 -10
- package/skills/skill-managehook/.env.example +2 -2
- package/skills/skill-managehook/CLAUDE.md +23 -134
- package/skills/skill-managehook/README.md +28 -27
- package/skills/skill-managehook/package.json +5 -6
- package/skills/skill-managehook/src/db/index.ts +2 -2
- package/skills/skill-managehook/src/lib/api-client.ts +2 -2
- package/skills/skill-managehook/src/lib/config.ts +1 -1
- package/skills/skill-managehook/src/lib/service-dir.ts +2 -2
- package/skills/skill-managehook/src/server/index.ts +2 -2
- package/skills/skill-managehook/tsconfig.json +15 -7
- package/skills/skill-managemcp/.env.example +2 -2
- package/skills/skill-managemcp/CLAUDE.md +23 -134
- package/skills/skill-managemcp/README.md +28 -27
- package/skills/skill-managemcp/package.json +5 -6
- package/skills/skill-managemcp/src/db/index.ts +2 -2
- package/skills/skill-managemcp/src/lib/api-client.ts +2 -2
- package/skills/skill-managemcp/src/lib/config.ts +1 -1
- package/skills/skill-managemcp/src/lib/service-dir.ts +2 -2
- package/skills/skill-managemcp/src/server/index.ts +2 -2
- package/skills/skill-managemcp/tsconfig.json +15 -7
- package/skills/skill-manageskill/.env.example +2 -2
- package/skills/skill-manageskill/CLAUDE.md +23 -134
- package/skills/skill-manageskill/README.md +28 -27
- package/skills/skill-manageskill/package.json +5 -6
- package/skills/skill-manageskill/src/db/index.ts +2 -2
- package/skills/skill-manageskill/src/lib/api-client.ts +2 -2
- package/skills/skill-manageskill/src/lib/config.ts +1 -1
- package/skills/skill-manageskill/src/lib/service-dir.ts +2 -2
- package/skills/skill-manageskill/src/server/index.ts +2 -2
- package/skills/skill-manageskill/tsconfig.json +15 -7
- package/skills/skill-markdown-validator/package.json +9 -8
- package/skills/skill-markdown-validator/tsconfig.json +6 -10
- package/skills/skill-mcp-builder/package.json +9 -8
- package/skills/skill-mcp-builder/tsconfig.json +6 -10
- package/skills/skill-meal-plan-designer/package.json +9 -8
- package/skills/skill-meal-plan-designer/tsconfig.json +6 -10
- package/skills/skill-meeting-insight-summarizer/package.json +9 -8
- package/skills/skill-meeting-insight-summarizer/tsconfig.json +6 -10
- package/skills/skill-merge-pdfs/package.json +9 -8
- package/skills/skill-merge-pdfs/tsconfig.json +6 -10
- package/skills/skill-microcopy-generator/package.json +9 -8
- package/skills/skill-microcopy-generator/tsconfig.json +6 -10
- package/skills/skill-mindfulness-prompt-cache/package.json +9 -8
- package/skills/skill-mindfulness-prompt-cache/tsconfig.json +6 -10
- package/skills/skill-notion-manager/package.json +9 -8
- package/skills/skill-notion-manager/tsconfig.json +6 -10
- package/skills/skill-npmpublish/package.json +1 -1
- package/skills/skill-npmpublish/tsconfig.json +7 -7
- package/skills/skill-onboarding-sequence-builder/package.json +9 -8
- package/skills/skill-onboarding-sequence-builder/tsconfig.json +6 -10
- package/skills/skill-onsite-ops-checklist/package.json +9 -8
- package/skills/skill-onsite-ops-checklist/tsconfig.json +6 -10
- package/skills/skill-outreach-cadence-designer/package.json +9 -8
- package/skills/skill-outreach-cadence-designer/tsconfig.json +6 -10
- package/skills/skill-packaging-concept-studio/package.json +9 -8
- package/skills/skill-packaging-concept-studio/tsconfig.json +6 -10
- package/skills/skill-packing-plan-pro/package.json +9 -8
- package/skills/skill-packing-plan-pro/tsconfig.json +6 -10
- package/skills/skill-parent-teacher-brief/package.json +9 -8
- package/skills/skill-parent-teacher-brief/tsconfig.json +6 -10
- package/skills/skill-partner-kit-assembler/package.json +9 -8
- package/skills/skill-partner-kit-assembler/tsconfig.json +6 -10
- package/skills/skill-payroll-change-prepper/package.json +9 -8
- package/skills/skill-payroll-change-prepper/tsconfig.json +6 -10
- package/skills/skill-persona-based-adwriter/package.json +9 -8
- package/skills/skill-persona-based-adwriter/tsconfig.json +6 -10
- package/skills/skill-persona-generator/package.json +9 -8
- package/skills/skill-persona-generator/tsconfig.json +6 -10
- package/skills/skill-personal-daily-ops/package.json +9 -8
- package/skills/skill-personal-daily-ops/tsconfig.json +6 -10
- package/skills/skill-pet-care-scheduler/package.json +9 -8
- package/skills/skill-pet-care-scheduler/tsconfig.json +6 -10
- package/skills/skill-podcast-show-notes/package.json +9 -8
- package/skills/skill-podcast-show-notes/tsconfig.json +6 -10
- package/skills/skill-presentation-theme-maker/package.json +9 -8
- package/skills/skill-presentation-theme-maker/tsconfig.json +6 -10
- package/skills/skill-press-release-drafter/package.json +9 -8
- package/skills/skill-press-release-drafter/tsconfig.json +6 -10
- package/skills/skill-print-collateral-designer/package.json +9 -8
- package/skills/skill-print-collateral-designer/tsconfig.json +6 -10
- package/skills/skill-procurement-scorecard/package.json +9 -8
- package/skills/skill-procurement-scorecard/tsconfig.json +6 -10
- package/skills/skill-product-demo-script/package.json +9 -8
- package/skills/skill-product-demo-script/tsconfig.json +6 -10
- package/skills/skill-product-mockup/package.json +9 -8
- package/skills/skill-product-mockup/tsconfig.json +6 -10
- package/skills/skill-project-retro-companion/package.json +9 -8
- package/skills/skill-project-retro-companion/tsconfig.json +6 -10
- package/skills/skill-proposal-redline-advisor/package.json +9 -8
- package/skills/skill-proposal-redline-advisor/tsconfig.json +6 -10
- package/skills/skill-regex-tester/package.json +9 -8
- package/skills/skill-regex-tester/tsconfig.json +6 -10
- package/skills/skill-remove-background/package.json +9 -8
- package/skills/skill-remove-background/tsconfig.json +6 -10
- package/skills/skill-risk-disclosure-kit/package.json +9 -8
- package/skills/skill-risk-disclosure-kit/tsconfig.json +6 -10
- package/skills/skill-roi-comparison-tool/package.json +9 -8
- package/skills/skill-roi-comparison-tool/tsconfig.json +6 -10
- package/skills/skill-sales-call-recapper/package.json +9 -8
- package/skills/skill-sales-call-recapper/tsconfig.json +6 -10
- package/skills/skill-salescopy/LICENSE +192 -21
- package/skills/skill-salescopy/README.md +1 -1
- package/skills/skill-salescopy/tsconfig.json +13 -9
- package/skills/skill-scaffold-project/package.json +8 -5
- package/skills/skill-scaffold-project/tsconfig.json +6 -10
- package/skills/skill-scholarship-tracker/package.json +9 -8
- package/skills/skill-scholarship-tracker/tsconfig.json +6 -10
- package/skills/skill-scientific-figure-check/package.json +9 -8
- package/skills/skill-scientific-figure-check/tsconfig.json +6 -10
- package/skills/skill-seating-chart-maker/package.json +9 -8
- package/skills/skill-seating-chart-maker/tsconfig.json +6 -10
- package/skills/skill-security-audit/package.json +9 -8
- package/skills/skill-security-audit/tsconfig.json +6 -10
- package/skills/skill-seo-brief-builder/package.json +9 -8
- package/skills/skill-seo-brief-builder/tsconfig.json +6 -10
- package/skills/skill-slack-assistant/package.json +9 -8
- package/skills/skill-slack-assistant/tsconfig.json +6 -10
- package/skills/skill-sleep-routine-analyzer/package.json +9 -8
- package/skills/skill-sleep-routine-analyzer/tsconfig.json +6 -10
- package/skills/skill-sms/package.json +1 -1
- package/skills/skill-sms/tsconfig.json +10 -9
- package/skills/skill-social-media-kit/package.json +9 -8
- package/skills/skill-social-media-kit/tsconfig.json +6 -10
- package/skills/skill-split-pdf/package.json +9 -8
- package/skills/skill-split-pdf/tsconfig.json +6 -10
- package/skills/skill-sponsorship-proposal-lab/package.json +9 -8
- package/skills/skill-sponsorship-proposal-lab/tsconfig.json +6 -10
- package/skills/skill-spreadsheet-cleanroom/package.json +9 -8
- package/skills/skill-spreadsheet-cleanroom/tsconfig.json +6 -10
- package/skills/skill-statistical-test-selector/package.json +9 -8
- package/skills/skill-statistical-test-selector/tsconfig.json +6 -10
- package/skills/skill-stress-relief-playbook/package.json +9 -8
- package/skills/skill-stress-relief-playbook/tsconfig.json +6 -10
- package/skills/skill-study-guide-builder/package.json +9 -8
- package/skills/skill-study-guide-builder/tsconfig.json +6 -10
- package/skills/skill-subscription-spend-watcher/package.json +9 -8
- package/skills/skill-subscription-spend-watcher/tsconfig.json +6 -10
- package/skills/skill-subtitle/LICENSE +192 -21
- package/skills/skill-subtitle/package.json +1 -1
- package/skills/skill-subtitle/tsconfig.json +13 -9
- package/skills/skill-survey-insight-extractor/package.json +9 -8
- package/skills/skill-survey-insight-extractor/tsconfig.json +6 -10
- package/skills/skill-terraform-generator/package.json +9 -8
- package/skills/skill-terraform-generator/tsconfig.json +6 -10
- package/skills/skill-testimonial-graphics/package.json +9 -8
- package/skills/skill-testimonial-graphics/tsconfig.json +6 -10
- package/skills/skill-timesheet/package.json +1 -1
- package/skills/skill-timesheet/tsconfig.json +15 -7
- package/skills/skill-transcript/LICENSE +192 -21
- package/skills/skill-transcript/package.json +1 -1
- package/skills/skill-transcript/src/index-local.ts +1 -1
- package/skills/skill-transcript/src/index.ts +1 -2
- package/skills/skill-transcript/tsconfig.json +9 -9
- package/skills/skill-travel-budget-balancer/package.json +9 -8
- package/skills/skill-travel-budget-balancer/tsconfig.json +6 -10
- package/skills/skill-validate-config/package.json +9 -8
- package/skills/skill-validate-config/tsconfig.json +6 -10
- package/skills/skill-video/LICENSE +192 -21
- package/skills/skill-video/package.json +1 -1
- package/skills/skill-video/src/index-local.ts +1 -1
- package/skills/skill-video/src/index.ts +1 -2
- package/skills/skill-video/tsconfig.json +5 -8
- package/skills/skill-video-cut-suggester/package.json +9 -8
- package/skills/skill-video-cut-suggester/tsconfig.json +6 -10
- package/skills/skill-video-downloader/package.json +9 -8
- package/skills/skill-video-downloader/tsconfig.json +6 -10
- package/skills/skill-video-thumbnail/package.json +9 -8
- package/skills/skill-video-thumbnail/tsconfig.json +6 -10
- package/skills/skill-voiceover-casting-assistant/package.json +9 -8
- package/skills/skill-voiceover-casting-assistant/tsconfig.json +6 -10
- package/skills/skill-watermark/package.json +9 -8
- package/skills/skill-watermark/tsconfig.json +6 -10
- package/skills/skill-webcrawling/LICENSE +192 -21
- package/skills/skill-webcrawling/package.json +1 -1
- package/skills/skill-webcrawling/tsconfig.json +14 -9
- package/skills/skill-webinar-script-coach/package.json +9 -8
- package/skills/skill-webinar-script-coach/tsconfig.json +6 -10
- package/skills/skill-wellness-progress-reporter/package.json +9 -8
- package/skills/skill-wellness-progress-reporter/tsconfig.json +6 -10
- package/skills/skill-workout-cycle-planner/package.json +9 -8
- package/skills/skill-workout-cycle-planner/tsconfig.json +6 -10
- package/skills/skill-write/LICENSE +192 -21
- package/skills/skill-write/package.json +1 -1
- package/skills/skill-write/src/index-local.ts +1 -1
- package/skills/skill-write/src/index.ts +1 -2
- package/skills/skill-write/tsconfig.json +9 -9
- package/skills/tsconfig.base.json +12 -0
- package/.env.example +0 -18
- package/.npmrc.example +0 -1
- package/CONTRIBUTING.md +0 -32
- package/bunfig.toml +0 -2
- package/skills/skill-audio/src/index-http.ts +0 -111
- package/skills/skill-browse/install.sh +0 -112
- package/skills/skill-browse/src/auth.ts +0 -49
- package/skills/skill-browse/src/http-client.ts +0 -128
- package/skills/skill-browse/src/index-http.ts +0 -111
- package/skills/skill-browse/src/installer.ts +0 -324
- package/skills/skill-browse/src/skill-install.ts +0 -205
- package/skills/skill-codefix/install.sh +0 -112
- package/skills/skill-codefix/src/auth.ts +0 -49
- package/skills/skill-codefix/src/http-client.ts +0 -128
- package/skills/skill-codefix/src/index-http.ts +0 -111
- package/skills/skill-codefix/src/installer.ts +0 -324
- package/skills/skill-codefix/src/skill-install.ts +0 -205
- package/skills/skill-consolelog/storage/login-error.png +0 -0
- package/skills/skill-consolelog/storage/products-page.png +0 -0
- package/skills/skill-convert/install.sh +0 -112
- package/skills/skill-convert/src/auth.ts +0 -49
- package/skills/skill-convert/src/http-client.ts +0 -128
- package/skills/skill-convert/src/index-http.ts +0 -111
- package/skills/skill-convert/src/installer.ts +0 -324
- package/skills/skill-convert/src/skill-install.ts +0 -205
- package/skills/skill-deploy/install.sh +0 -112
- package/skills/skill-deploy/src/auth.ts +0 -49
- package/skills/skill-deploy/src/index-http.ts +0 -111
- package/skills/skill-deploy/src/installer.ts +0 -324
- package/skills/skill-deploy/src/skill-install.ts +0 -205
- package/skills/skill-extract/install.sh +0 -112
- package/skills/skill-extract/src/auth.ts +0 -49
- package/skills/skill-extract/src/http-client.ts +0 -128
- package/skills/skill-extract/src/index-http.ts +0 -111
- package/skills/skill-extract/src/installer.ts +0 -324
- package/skills/skill-extract/src/skill-install.ts +0 -205
- package/skills/skill-image/install.sh +0 -112
- package/skills/skill-image/src/auth.ts +0 -49
- package/skills/skill-image/src/http-client.ts +0 -128
- package/skills/skill-image/src/index-http.ts +0 -111
- package/skills/skill-image/src/installer.ts +0 -324
- package/skills/skill-image/src/skill-install.ts +0 -205
- package/skills/skill-transcript/install.sh +0 -112
- package/skills/skill-transcript/src/auth.ts +0 -49
- package/skills/skill-transcript/src/http-client.ts +0 -128
- package/skills/skill-transcript/src/index-http.ts +0 -111
- package/skills/skill-transcript/src/installer.ts +0 -324
- package/skills/skill-transcript/src/skill-install.ts +0 -205
- package/skills/skill-video/install.sh +0 -112
- package/skills/skill-video/src/auth.ts +0 -49
- package/skills/skill-video/src/http-client.ts +0 -128
- package/skills/skill-video/src/index-http.ts +0 -111
- package/skills/skill-video/src/installer.ts +0 -324
- package/skills/skill-video/src/skill-install.ts +0 -205
- package/skills/skill-write/install.sh +0 -112
- package/skills/skill-write/src/auth.ts +0 -49
- package/skills/skill-write/src/http-client.ts +0 -128
- package/skills/skill-write/src/index-http.ts +0 -111
- package/skills/skill-write/src/installer.ts +0 -324
- package/skills/skill-write/src/skill-install.ts +0 -205
- package/src/cli/cli.test.ts +0 -325
- package/src/cli/components/App.tsx +0 -186
- package/src/cli/components/CategorySelect.tsx +0 -38
- package/src/cli/components/Header.tsx +0 -18
- package/src/cli/components/InstallProgress.tsx +0 -97
- package/src/cli/components/SearchView.tsx +0 -108
- package/src/cli/components/SkillSelect.tsx +0 -92
- package/src/cli/index.tsx +0 -559
- package/src/index.ts +0 -49
- package/src/lib/installer.test.ts +0 -328
- package/src/lib/installer.ts +0 -297
- package/src/lib/registry.test.ts +0 -147
- package/src/lib/skillinfo.test.ts +0 -195
- package/src/lib/skillinfo.ts +0 -356
- package/src/mcp/index.ts +0 -234
- package/src/mcp/mcp.test.ts +0 -212
- package/tsconfig.json +0 -17
- /package/skills/{skill-audio/src → _common}/auth.ts +0 -0
- /package/skills/{skill-audio/src → _common}/http-client.ts +0 -0
- /package/skills/{skill-audio → _common}/install.sh +0 -0
- /package/skills/{skill-audio/src → _common}/installer.ts +0 -0
- /package/skills/{skill-audio/src → _common}/skill-install.ts +0 -0
|
@@ -1,16 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export interface SkillMeta {
|
|
6
|
-
name: string;
|
|
7
|
-
displayName: string;
|
|
8
|
-
description: string;
|
|
9
|
-
category: string;
|
|
10
|
-
tags: string[];
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export const CATEGORIES = [
|
|
1
|
+
// @bun
|
|
2
|
+
// src/lib/registry.ts
|
|
3
|
+
var CATEGORIES = [
|
|
14
4
|
"Development Tools",
|
|
15
5
|
"Business & Marketing",
|
|
16
6
|
"Productivity & Organization",
|
|
@@ -27,1463 +17,1933 @@ export const CATEGORIES = [
|
|
|
27
17
|
"Communication",
|
|
28
18
|
"Health & Wellness",
|
|
29
19
|
"Travel & Lifestyle",
|
|
30
|
-
"Event Management"
|
|
31
|
-
]
|
|
32
|
-
|
|
33
|
-
export type Category = (typeof CATEGORIES)[number];
|
|
34
|
-
|
|
35
|
-
export const SKILLS: SkillMeta[] = [
|
|
36
|
-
// Development Tools
|
|
20
|
+
"Event Management"
|
|
21
|
+
];
|
|
22
|
+
var SKILLS = [
|
|
37
23
|
{
|
|
38
24
|
name: "api-test-suite",
|
|
39
25
|
displayName: "API Test Suite",
|
|
40
26
|
description: "Generate and run API test suites with comprehensive endpoint coverage",
|
|
41
27
|
category: "Development Tools",
|
|
42
|
-
tags: ["api", "testing", "automation", "qa"]
|
|
28
|
+
tags: ["api", "testing", "automation", "qa"]
|
|
43
29
|
},
|
|
44
30
|
{
|
|
45
31
|
name: "apidocs",
|
|
46
32
|
displayName: "API Docs",
|
|
47
33
|
description: "Agentic web crawler for API documentation indexing and semantic search",
|
|
48
34
|
category: "Development Tools",
|
|
49
|
-
tags: ["api", "documentation", "search", "indexing"]
|
|
35
|
+
tags: ["api", "documentation", "search", "indexing"]
|
|
50
36
|
},
|
|
51
37
|
{
|
|
52
38
|
name: "codefix",
|
|
53
39
|
displayName: "Code Fix",
|
|
54
40
|
description: "Code quality CLI for auto-linting, formatting, fixing, and style enforcement",
|
|
55
41
|
category: "Development Tools",
|
|
56
|
-
tags: ["code", "linting", "formatting", "quality"]
|
|
42
|
+
tags: ["code", "linting", "formatting", "quality"]
|
|
57
43
|
},
|
|
58
44
|
{
|
|
59
45
|
name: "consolelog",
|
|
60
46
|
displayName: "Console Log",
|
|
61
47
|
description: "Monitor console logs from web applications using Playwright headless browser",
|
|
62
48
|
category: "Development Tools",
|
|
63
|
-
tags: ["console", "monitoring", "debugging", "logs"]
|
|
49
|
+
tags: ["console", "monitoring", "debugging", "logs"]
|
|
64
50
|
},
|
|
65
51
|
{
|
|
66
52
|
name: "database-explorer",
|
|
67
53
|
displayName: "Database Explorer",
|
|
68
54
|
description: "Explore and query databases with an interactive interface",
|
|
69
55
|
category: "Development Tools",
|
|
70
|
-
tags: ["database", "explorer", "sql", "query"]
|
|
56
|
+
tags: ["database", "explorer", "sql", "query"]
|
|
71
57
|
},
|
|
72
58
|
{
|
|
73
59
|
name: "deploy",
|
|
74
60
|
displayName: "Deploy",
|
|
75
61
|
description: "Deployment CLI for managing EC2 deployments with automated health checks",
|
|
76
62
|
category: "Development Tools",
|
|
77
|
-
tags: ["deployment", "ec2", "aws", "ci-cd"]
|
|
63
|
+
tags: ["deployment", "ec2", "aws", "ci-cd"]
|
|
78
64
|
},
|
|
79
65
|
{
|
|
80
66
|
name: "diff-viewer",
|
|
81
67
|
displayName: "Diff Viewer",
|
|
82
68
|
description: "View and analyze file differences with visual diff representation",
|
|
83
69
|
category: "Development Tools",
|
|
84
|
-
tags: ["diff", "comparison", "files", "code-review"]
|
|
70
|
+
tags: ["diff", "comparison", "files", "code-review"]
|
|
85
71
|
},
|
|
86
72
|
{
|
|
87
73
|
name: "e2bswarm",
|
|
88
74
|
displayName: "E2B Swarm",
|
|
89
75
|
description: "Spawn E2B sandbox instances for parallel Claude Code task execution",
|
|
90
76
|
category: "Development Tools",
|
|
91
|
-
tags: ["e2b", "sandbox", "parallel", "execution"]
|
|
77
|
+
tags: ["e2b", "sandbox", "parallel", "execution"]
|
|
92
78
|
},
|
|
93
79
|
{
|
|
94
80
|
name: "generate-api-client",
|
|
95
81
|
displayName: "Generate API Client",
|
|
96
82
|
description: "Generate API client libraries from OpenAPI specs and documentation",
|
|
97
83
|
category: "Development Tools",
|
|
98
|
-
tags: ["api", "client", "code-generation", "openapi"]
|
|
84
|
+
tags: ["api", "client", "code-generation", "openapi"]
|
|
99
85
|
},
|
|
100
86
|
{
|
|
101
87
|
name: "generate-dockerfile",
|
|
102
88
|
displayName: "Generate Dockerfile",
|
|
103
89
|
description: "Generate optimized Dockerfiles for containerized applications",
|
|
104
90
|
category: "Development Tools",
|
|
105
|
-
tags: ["docker", "dockerfile", "containers", "devops"]
|
|
91
|
+
tags: ["docker", "dockerfile", "containers", "devops"]
|
|
106
92
|
},
|
|
107
93
|
{
|
|
108
94
|
name: "generate-documentation",
|
|
109
95
|
displayName: "Generate Documentation",
|
|
110
96
|
description: "Generate project documentation including READMEs, architecture docs, and API references from codebase analysis",
|
|
111
97
|
category: "Development Tools",
|
|
112
|
-
tags: ["documentation", "generation", "code", "docs"]
|
|
98
|
+
tags: ["documentation", "generation", "code", "docs"]
|
|
113
99
|
},
|
|
114
100
|
{
|
|
115
101
|
name: "generate-env",
|
|
116
102
|
displayName: "Generate Env",
|
|
117
103
|
description: "Generate environment variable files from templates and configurations",
|
|
118
104
|
category: "Development Tools",
|
|
119
|
-
tags: ["env", "environment", "configuration", "dotenv"]
|
|
105
|
+
tags: ["env", "environment", "configuration", "dotenv"]
|
|
120
106
|
},
|
|
121
107
|
{
|
|
122
108
|
name: "generate-mock-data",
|
|
123
109
|
displayName: "Generate Mock Data",
|
|
124
110
|
description: "Generate realistic mock data for testing and development",
|
|
125
111
|
category: "Development Tools",
|
|
126
|
-
tags: ["mock-data", "testing", "generation", "fake-data"]
|
|
112
|
+
tags: ["mock-data", "testing", "generation", "fake-data"]
|
|
127
113
|
},
|
|
128
114
|
{
|
|
129
115
|
name: "generate-pr-description",
|
|
130
116
|
displayName: "Generate PR Description",
|
|
131
117
|
description: "Generate pull request descriptions from code diffs and commit history",
|
|
132
118
|
category: "Development Tools",
|
|
133
|
-
tags: ["pr", "github", "description", "code-review"]
|
|
119
|
+
tags: ["pr", "github", "description", "code-review"]
|
|
134
120
|
},
|
|
135
121
|
{
|
|
136
122
|
name: "generate-regex",
|
|
137
123
|
displayName: "Generate Regex",
|
|
138
124
|
description: "Generate regular expressions from natural language descriptions",
|
|
139
125
|
category: "Development Tools",
|
|
140
|
-
tags: ["regex", "generation", "pattern", "matching"]
|
|
126
|
+
tags: ["regex", "generation", "pattern", "matching"]
|
|
141
127
|
},
|
|
142
128
|
{
|
|
143
129
|
name: "generate-sitemap",
|
|
144
130
|
displayName: "Generate Sitemap",
|
|
145
131
|
description: "Generate XML sitemaps for websites and web applications",
|
|
146
132
|
category: "Development Tools",
|
|
147
|
-
tags: ["sitemap", "seo", "xml", "web"]
|
|
133
|
+
tags: ["sitemap", "seo", "xml", "web"]
|
|
148
134
|
},
|
|
149
135
|
{
|
|
150
136
|
name: "generate-sql",
|
|
151
137
|
displayName: "Generate SQL",
|
|
152
138
|
description: "Generate SQL queries and database schemas from natural language",
|
|
153
139
|
category: "Development Tools",
|
|
154
|
-
tags: ["sql", "database", "generation", "queries"]
|
|
140
|
+
tags: ["sql", "database", "generation", "queries"]
|
|
155
141
|
},
|
|
156
142
|
{
|
|
157
143
|
name: "github-manager",
|
|
158
144
|
displayName: "GitHub Manager",
|
|
159
145
|
description: "Manage GitHub repositories, issues, PRs, and workflows",
|
|
160
146
|
category: "Development Tools",
|
|
161
|
-
tags: ["github", "repository", "management", "issues"]
|
|
147
|
+
tags: ["github", "repository", "management", "issues"]
|
|
162
148
|
},
|
|
163
149
|
{
|
|
164
150
|
name: "hook",
|
|
165
151
|
displayName: "Hook",
|
|
166
152
|
description: "Claude Code hook creation skill - generates standardized hook scaffolds",
|
|
167
153
|
category: "Development Tools",
|
|
168
|
-
tags: ["hooks", "scaffold", "claude-code", "automation"]
|
|
154
|
+
tags: ["hooks", "scaffold", "claude-code", "automation"]
|
|
169
155
|
},
|
|
170
156
|
{
|
|
171
157
|
name: "http-server",
|
|
172
158
|
displayName: "HTTP Server",
|
|
173
159
|
description: "Spin up local HTTP servers for development and testing",
|
|
174
160
|
category: "Development Tools",
|
|
175
|
-
tags: ["http", "server", "development", "local"]
|
|
161
|
+
tags: ["http", "server", "development", "local"]
|
|
176
162
|
},
|
|
177
163
|
{
|
|
178
164
|
name: "lorem-generator",
|
|
179
165
|
displayName: "Lorem Generator",
|
|
180
166
|
description: "Generate placeholder text in various styles and lengths",
|
|
181
167
|
category: "Development Tools",
|
|
182
|
-
tags: ["lorem", "placeholder", "text", "mockup"]
|
|
168
|
+
tags: ["lorem", "placeholder", "text", "mockup"]
|
|
183
169
|
},
|
|
184
170
|
{
|
|
185
171
|
name: "managehook",
|
|
186
172
|
displayName: "Manage Hook",
|
|
187
173
|
description: "Manage Claude Code hooks with install, configure, and lifecycle operations",
|
|
188
174
|
category: "Development Tools",
|
|
189
|
-
tags: ["hooks", "management", "claude-code", "configuration"]
|
|
175
|
+
tags: ["hooks", "management", "claude-code", "configuration"]
|
|
190
176
|
},
|
|
191
177
|
{
|
|
192
178
|
name: "managemcp",
|
|
193
179
|
displayName: "Manage MCP",
|
|
194
180
|
description: "Manage MCP servers with install, configure, and lifecycle operations",
|
|
195
181
|
category: "Development Tools",
|
|
196
|
-
tags: ["mcp", "management", "servers", "configuration"]
|
|
182
|
+
tags: ["mcp", "management", "servers", "configuration"]
|
|
197
183
|
},
|
|
198
184
|
{
|
|
199
185
|
name: "manageskill",
|
|
200
186
|
displayName: "Manage Skill",
|
|
201
187
|
description: "Manage Claude Code skills with install, configure, and lifecycle operations",
|
|
202
188
|
category: "Development Tools",
|
|
203
|
-
tags: ["skills", "management", "claude-code", "configuration"]
|
|
189
|
+
tags: ["skills", "management", "claude-code", "configuration"]
|
|
204
190
|
},
|
|
205
191
|
{
|
|
206
192
|
name: "markdown-validator",
|
|
207
193
|
displayName: "Markdown Validator",
|
|
208
194
|
description: "Validate markdown files for syntax, links, and formatting issues",
|
|
209
195
|
category: "Development Tools",
|
|
210
|
-
tags: ["markdown", "validation", "linting", "formatting"]
|
|
196
|
+
tags: ["markdown", "validation", "linting", "formatting"]
|
|
211
197
|
},
|
|
212
198
|
{
|
|
213
199
|
name: "mcp-builder",
|
|
214
200
|
displayName: "MCP Builder",
|
|
215
201
|
description: "Build MCP server packages with standardized structure and tooling",
|
|
216
202
|
category: "Development Tools",
|
|
217
|
-
tags: ["mcp", "builder", "scaffold", "server"]
|
|
203
|
+
tags: ["mcp", "builder", "scaffold", "server"]
|
|
218
204
|
},
|
|
219
205
|
{
|
|
220
206
|
name: "npmpublish",
|
|
221
207
|
displayName: "NPM Publish",
|
|
222
208
|
description: "Publish npm packages with sensible defaults: private access, patch version bumps",
|
|
223
209
|
category: "Development Tools",
|
|
224
|
-
tags: ["npm", "publish", "packages", "registry"]
|
|
210
|
+
tags: ["npm", "publish", "packages", "registry"]
|
|
225
211
|
},
|
|
226
212
|
{
|
|
227
213
|
name: "regex-tester",
|
|
228
214
|
displayName: "Regex Tester",
|
|
229
215
|
description: "Test and validate regular expressions with sample inputs",
|
|
230
216
|
category: "Development Tools",
|
|
231
|
-
tags: ["regex", "testing", "validation", "patterns"]
|
|
217
|
+
tags: ["regex", "testing", "validation", "patterns"]
|
|
232
218
|
},
|
|
233
219
|
{
|
|
234
220
|
name: "scaffold-project",
|
|
235
221
|
displayName: "Scaffold Project",
|
|
236
222
|
description: "Scaffold new projects with standardized structure and boilerplate",
|
|
237
223
|
category: "Development Tools",
|
|
238
|
-
tags: ["scaffold", "project", "boilerplate", "template"]
|
|
224
|
+
tags: ["scaffold", "project", "boilerplate", "template"]
|
|
239
225
|
},
|
|
240
226
|
{
|
|
241
227
|
name: "security-audit",
|
|
242
228
|
displayName: "Security Audit",
|
|
243
229
|
description: "Perform security audits on codebases and infrastructure configurations",
|
|
244
230
|
category: "Development Tools",
|
|
245
|
-
tags: ["security", "audit", "vulnerabilities", "scanning"]
|
|
231
|
+
tags: ["security", "audit", "vulnerabilities", "scanning"]
|
|
246
232
|
},
|
|
247
233
|
{
|
|
248
234
|
name: "terraform-generator",
|
|
249
235
|
displayName: "Terraform Generator",
|
|
250
236
|
description: "Generate Terraform infrastructure-as-code configurations",
|
|
251
237
|
category: "Development Tools",
|
|
252
|
-
tags: ["terraform", "iac", "infrastructure", "devops"]
|
|
238
|
+
tags: ["terraform", "iac", "infrastructure", "devops"]
|
|
253
239
|
},
|
|
254
240
|
{
|
|
255
241
|
name: "validate-config",
|
|
256
242
|
displayName: "Validate Config",
|
|
257
243
|
description: "Validate configuration files for syntax and schema compliance",
|
|
258
244
|
category: "Development Tools",
|
|
259
|
-
tags: ["config", "validation", "schema", "linting"]
|
|
245
|
+
tags: ["config", "validation", "schema", "linting"]
|
|
260
246
|
},
|
|
261
|
-
|
|
262
|
-
// Business & Marketing
|
|
263
247
|
{
|
|
264
248
|
name: "ad-creative-generator",
|
|
265
249
|
displayName: "Ad Creative Generator",
|
|
266
250
|
description: "Generate ad creatives with copy, visuals, and layouts for marketing campaigns",
|
|
267
251
|
category: "Business & Marketing",
|
|
268
|
-
tags: ["ads", "creative", "marketing", "design"]
|
|
252
|
+
tags: ["ads", "creative", "marketing", "design"]
|
|
269
253
|
},
|
|
270
254
|
{
|
|
271
255
|
name: "banner-ad-suite",
|
|
272
256
|
displayName: "Banner Ad Suite",
|
|
273
257
|
description: "Create banner ad sets in multiple sizes for display advertising campaigns",
|
|
274
258
|
category: "Business & Marketing",
|
|
275
|
-
tags: ["banner", "ads", "display", "marketing"]
|
|
259
|
+
tags: ["banner", "ads", "display", "marketing"]
|
|
276
260
|
},
|
|
277
261
|
{
|
|
278
262
|
name: "campaign-metric-brief",
|
|
279
263
|
displayName: "Campaign Metric Brief",
|
|
280
264
|
description: "Generate campaign performance metric briefs and analytics summaries",
|
|
281
265
|
category: "Business & Marketing",
|
|
282
|
-
tags: ["campaign", "metrics", "analytics", "reporting"]
|
|
266
|
+
tags: ["campaign", "metrics", "analytics", "reporting"]
|
|
283
267
|
},
|
|
284
268
|
{
|
|
285
269
|
name: "campaign-moodboard",
|
|
286
270
|
displayName: "Campaign Moodboard",
|
|
287
271
|
description: "Create visual moodboards for marketing and creative campaigns",
|
|
288
272
|
category: "Business & Marketing",
|
|
289
|
-
tags: ["campaign", "moodboard", "creative", "visual"]
|
|
273
|
+
tags: ["campaign", "moodboard", "creative", "visual"]
|
|
290
274
|
},
|
|
291
275
|
{
|
|
292
276
|
name: "caption-style-stylist",
|
|
293
277
|
displayName: "Caption Style Stylist",
|
|
294
278
|
description: "Style and format captions for social media and video content",
|
|
295
279
|
category: "Business & Marketing",
|
|
296
|
-
tags: ["captions", "social-media", "styling", "content"]
|
|
280
|
+
tags: ["captions", "social-media", "styling", "content"]
|
|
297
281
|
},
|
|
298
282
|
{
|
|
299
283
|
name: "churn-risk-notifier",
|
|
300
284
|
displayName: "Churn Risk Notifier",
|
|
301
285
|
description: "Identify and notify about customer churn risk indicators",
|
|
302
286
|
category: "Business & Marketing",
|
|
303
|
-
tags: ["churn", "risk", "customer", "retention"]
|
|
287
|
+
tags: ["churn", "risk", "customer", "retention"]
|
|
304
288
|
},
|
|
305
289
|
{
|
|
306
290
|
name: "competitor-ad-analyzer",
|
|
307
291
|
displayName: "Competitor Ad Analyzer",
|
|
308
292
|
description: "Analyze competitor advertising strategies, creatives, and messaging",
|
|
309
293
|
category: "Business & Marketing",
|
|
310
|
-
tags: ["competitor", "ads", "analysis", "marketing"]
|
|
294
|
+
tags: ["competitor", "ads", "analysis", "marketing"]
|
|
311
295
|
},
|
|
312
296
|
{
|
|
313
297
|
name: "crm-note-enhancer",
|
|
314
298
|
displayName: "CRM Note Enhancer",
|
|
315
299
|
description: "Enhance CRM notes with structured summaries and action items",
|
|
316
300
|
category: "Business & Marketing",
|
|
317
|
-
tags: ["crm", "notes", "sales", "enhancement"]
|
|
301
|
+
tags: ["crm", "notes", "sales", "enhancement"]
|
|
318
302
|
},
|
|
319
303
|
{
|
|
320
304
|
name: "customer-journey-mapper",
|
|
321
305
|
displayName: "Customer Journey Mapper",
|
|
322
306
|
description: "Map and visualize customer journey touchpoints and experiences",
|
|
323
307
|
category: "Business & Marketing",
|
|
324
|
-
tags: ["customer-journey", "mapping", "ux", "marketing"]
|
|
308
|
+
tags: ["customer-journey", "mapping", "ux", "marketing"]
|
|
325
309
|
},
|
|
326
310
|
{
|
|
327
311
|
name: "email-campaign",
|
|
328
312
|
displayName: "Email Campaign",
|
|
329
313
|
description: "Design email marketing campaigns and newsletters with templates, sequences, and audience segmentation",
|
|
330
314
|
category: "Business & Marketing",
|
|
331
|
-
tags: ["email", "campaign", "marketing", "automation"]
|
|
315
|
+
tags: ["email", "campaign", "marketing", "automation"]
|
|
332
316
|
},
|
|
333
317
|
{
|
|
334
318
|
name: "feedback-survey-designer",
|
|
335
319
|
displayName: "Feedback Survey Designer",
|
|
336
320
|
description: "Design feedback surveys with optimized questions and response formats",
|
|
337
321
|
category: "Business & Marketing",
|
|
338
|
-
tags: ["survey", "feedback", "design", "questionnaire"]
|
|
322
|
+
tags: ["survey", "feedback", "design", "questionnaire"]
|
|
339
323
|
},
|
|
340
324
|
{
|
|
341
325
|
name: "generate-social-posts",
|
|
342
326
|
displayName: "Generate Social Posts",
|
|
343
327
|
description: "Generate social media posts optimized for different platforms",
|
|
344
328
|
category: "Business & Marketing",
|
|
345
|
-
tags: ["social-media", "posts", "marketing", "content"]
|
|
329
|
+
tags: ["social-media", "posts", "marketing", "content"]
|
|
346
330
|
},
|
|
347
331
|
{
|
|
348
332
|
name: "landing-page-copy",
|
|
349
333
|
displayName: "Landing Page Copy",
|
|
350
334
|
description: "Write conversion-optimized landing page copy with headlines and CTAs",
|
|
351
335
|
category: "Business & Marketing",
|
|
352
|
-
tags: ["landing-page", "copywriting", "conversion", "marketing"]
|
|
336
|
+
tags: ["landing-page", "copywriting", "conversion", "marketing"]
|
|
353
337
|
},
|
|
354
338
|
{
|
|
355
339
|
name: "onboarding-sequence-builder",
|
|
356
340
|
displayName: "Onboarding Sequence Builder",
|
|
357
341
|
description: "Build employee or customer onboarding sequences with steps and milestones",
|
|
358
342
|
category: "Business & Marketing",
|
|
359
|
-
tags: ["onboarding", "sequence", "workflow", "automation"]
|
|
343
|
+
tags: ["onboarding", "sequence", "workflow", "automation"]
|
|
360
344
|
},
|
|
361
345
|
{
|
|
362
346
|
name: "outreach-cadence-designer",
|
|
363
347
|
displayName: "Outreach Cadence Designer",
|
|
364
348
|
description: "Design multi-touch outreach cadences for sales and marketing campaigns",
|
|
365
349
|
category: "Business & Marketing",
|
|
366
|
-
tags: ["outreach", "cadence", "sales", "marketing"]
|
|
350
|
+
tags: ["outreach", "cadence", "sales", "marketing"]
|
|
367
351
|
},
|
|
368
352
|
{
|
|
369
353
|
name: "partner-kit-assembler",
|
|
370
354
|
displayName: "Partner Kit Assembler",
|
|
371
355
|
description: "Assemble partner kits with brand assets, guidelines, and marketing materials",
|
|
372
356
|
category: "Business & Marketing",
|
|
373
|
-
tags: ["partner", "kit", "branding", "marketing"]
|
|
357
|
+
tags: ["partner", "kit", "branding", "marketing"]
|
|
374
358
|
},
|
|
375
359
|
{
|
|
376
360
|
name: "persona-based-adwriter",
|
|
377
361
|
displayName: "Persona-Based Ad Writer",
|
|
378
362
|
description: "Write targeted ads based on customer persona profiles",
|
|
379
363
|
category: "Business & Marketing",
|
|
380
|
-
tags: ["persona", "ads", "targeting", "copywriting"]
|
|
364
|
+
tags: ["persona", "ads", "targeting", "copywriting"]
|
|
381
365
|
},
|
|
382
366
|
{
|
|
383
367
|
name: "persona-generator",
|
|
384
368
|
displayName: "Persona Generator",
|
|
385
369
|
description: "Generate detailed customer and user personas for marketing and UX",
|
|
386
370
|
category: "Business & Marketing",
|
|
387
|
-
tags: ["persona", "generation", "marketing", "ux"]
|
|
371
|
+
tags: ["persona", "generation", "marketing", "ux"]
|
|
388
372
|
},
|
|
389
373
|
{
|
|
390
374
|
name: "product-demo-script",
|
|
391
375
|
displayName: "Product Demo Script",
|
|
392
376
|
description: "Write product demo scripts with talking points and flow",
|
|
393
377
|
category: "Business & Marketing",
|
|
394
|
-
tags: ["demo", "script", "product", "presentation"]
|
|
378
|
+
tags: ["demo", "script", "product", "presentation"]
|
|
395
379
|
},
|
|
396
380
|
{
|
|
397
381
|
name: "sales-call-recapper",
|
|
398
382
|
displayName: "Sales Call Recapper",
|
|
399
383
|
description: "Recap sales calls with key points, objections, and follow-up actions",
|
|
400
384
|
category: "Business & Marketing",
|
|
401
|
-
tags: ["sales", "calls", "recap", "follow-up"]
|
|
385
|
+
tags: ["sales", "calls", "recap", "follow-up"]
|
|
402
386
|
},
|
|
403
387
|
{
|
|
404
388
|
name: "salescopy",
|
|
405
389
|
displayName: "Sales Copy",
|
|
406
390
|
description: "Generate persuasive sales copy using AI for products and services",
|
|
407
391
|
category: "Business & Marketing",
|
|
408
|
-
tags: ["sales", "copywriting", "marketing", "persuasion"]
|
|
392
|
+
tags: ["sales", "copywriting", "marketing", "persuasion"]
|
|
409
393
|
},
|
|
410
394
|
{
|
|
411
395
|
name: "seo-brief-builder",
|
|
412
396
|
displayName: "SEO Brief Builder",
|
|
413
397
|
description: "Build SEO content briefs with keyword research and competitive analysis",
|
|
414
398
|
category: "Business & Marketing",
|
|
415
|
-
tags: ["seo", "brief", "content", "keywords"]
|
|
399
|
+
tags: ["seo", "brief", "content", "keywords"]
|
|
416
400
|
},
|
|
417
401
|
{
|
|
418
402
|
name: "social-media-kit",
|
|
419
403
|
displayName: "Social Media Kit",
|
|
420
404
|
description: "Create social media kits with graphics, templates, and brand guidelines",
|
|
421
405
|
category: "Business & Marketing",
|
|
422
|
-
tags: ["social-media", "kit", "branding", "templates"]
|
|
406
|
+
tags: ["social-media", "kit", "branding", "templates"]
|
|
423
407
|
},
|
|
424
408
|
{
|
|
425
409
|
name: "sponsorship-proposal-lab",
|
|
426
410
|
displayName: "Sponsorship Proposal Lab",
|
|
427
411
|
description: "Create sponsorship proposals with packages, ROI projections, and benefits",
|
|
428
412
|
category: "Business & Marketing",
|
|
429
|
-
tags: ["sponsorship", "proposal", "marketing", "partnerships"]
|
|
413
|
+
tags: ["sponsorship", "proposal", "marketing", "partnerships"]
|
|
430
414
|
},
|
|
431
415
|
{
|
|
432
416
|
name: "webinar-script-coach",
|
|
433
417
|
displayName: "Webinar Script Coach",
|
|
434
418
|
description: "Coach and refine webinar scripts with engagement tips and flow optimization",
|
|
435
419
|
category: "Business & Marketing",
|
|
436
|
-
tags: ["webinar", "script", "coaching", "presentation"]
|
|
420
|
+
tags: ["webinar", "script", "coaching", "presentation"]
|
|
437
421
|
},
|
|
438
|
-
|
|
439
|
-
// Productivity & Organization
|
|
440
422
|
{
|
|
441
423
|
name: "convert",
|
|
442
424
|
displayName: "Convert",
|
|
443
425
|
description: "File format conversion and transformation CLI between images, PDFs, documents, CSV, and data formats",
|
|
444
426
|
category: "Productivity & Organization",
|
|
445
|
-
tags: ["conversion", "formats", "files", "transform"]
|
|
427
|
+
tags: ["conversion", "formats", "files", "transform"]
|
|
446
428
|
},
|
|
447
429
|
{
|
|
448
430
|
name: "decision-journal",
|
|
449
431
|
displayName: "Decision Journal",
|
|
450
432
|
description: "Track and reflect on decisions with structured journaling",
|
|
451
433
|
category: "Productivity & Organization",
|
|
452
|
-
tags: ["decisions", "journal", "reflection", "tracking"]
|
|
434
|
+
tags: ["decisions", "journal", "reflection", "tracking"]
|
|
453
435
|
},
|
|
454
436
|
{
|
|
455
437
|
name: "file-organizer",
|
|
456
438
|
displayName: "File Organizer",
|
|
457
439
|
description: "Organize files into structured directories based on type, date, or content",
|
|
458
440
|
category: "Productivity & Organization",
|
|
459
|
-
tags: ["files", "organization", "sorting", "cleanup"]
|
|
441
|
+
tags: ["files", "organization", "sorting", "cleanup"]
|
|
460
442
|
},
|
|
461
443
|
{
|
|
462
444
|
name: "folder-tree",
|
|
463
445
|
displayName: "Folder Tree",
|
|
464
446
|
description: "Generate and display folder tree structures for documentation",
|
|
465
447
|
category: "Productivity & Organization",
|
|
466
|
-
tags: ["folder", "tree", "structure", "visualization"]
|
|
448
|
+
tags: ["folder", "tree", "structure", "visualization"]
|
|
467
449
|
},
|
|
468
450
|
{
|
|
469
451
|
name: "form-filler",
|
|
470
452
|
displayName: "Form Filler",
|
|
471
453
|
description: "Automatically fill out web forms and document templates",
|
|
472
454
|
category: "Productivity & Organization",
|
|
473
|
-
tags: ["forms", "automation", "filling", "data-entry"]
|
|
455
|
+
tags: ["forms", "automation", "filling", "data-entry"]
|
|
474
456
|
},
|
|
475
457
|
{
|
|
476
458
|
name: "inbox-priority-planner",
|
|
477
459
|
displayName: "Inbox Priority Planner",
|
|
478
460
|
description: "Prioritize and organize email inbox items by importance and urgency",
|
|
479
461
|
category: "Productivity & Organization",
|
|
480
|
-
tags: ["inbox", "priority", "email", "organization"]
|
|
462
|
+
tags: ["inbox", "priority", "email", "organization"]
|
|
481
463
|
},
|
|
482
464
|
{
|
|
483
465
|
name: "meeting-insight-summarizer",
|
|
484
466
|
displayName: "Meeting Insight Summarizer",
|
|
485
467
|
description: "Summarize meetings with key insights, decisions, and action items",
|
|
486
468
|
category: "Productivity & Organization",
|
|
487
|
-
tags: ["meeting", "summary", "insights", "action-items"]
|
|
469
|
+
tags: ["meeting", "summary", "insights", "action-items"]
|
|
488
470
|
},
|
|
489
471
|
{
|
|
490
472
|
name: "merge-pdfs",
|
|
491
473
|
displayName: "Merge PDFs",
|
|
492
474
|
description: "Merge multiple PDF files into a single document",
|
|
493
475
|
category: "Productivity & Organization",
|
|
494
|
-
tags: ["pdf", "merge", "documents", "combining"]
|
|
476
|
+
tags: ["pdf", "merge", "documents", "combining"]
|
|
495
477
|
},
|
|
496
478
|
{
|
|
497
479
|
name: "notion-manager",
|
|
498
480
|
displayName: "Notion Manager",
|
|
499
481
|
description: "Advanced Notion management with templates, automation, and bulk operations",
|
|
500
482
|
category: "Productivity & Organization",
|
|
501
|
-
tags: ["notion", "management", "automation", "templates"]
|
|
483
|
+
tags: ["notion", "management", "automation", "templates"]
|
|
502
484
|
},
|
|
503
485
|
{
|
|
504
486
|
name: "personal-daily-ops",
|
|
505
487
|
displayName: "Personal Daily Ops",
|
|
506
488
|
description: "Manage personal daily operations with routines, tasks, and priorities",
|
|
507
489
|
category: "Productivity & Organization",
|
|
508
|
-
tags: ["daily", "operations", "routines", "personal"]
|
|
490
|
+
tags: ["daily", "operations", "routines", "personal"]
|
|
509
491
|
},
|
|
510
492
|
{
|
|
511
493
|
name: "split-pdf",
|
|
512
494
|
displayName: "Split PDF",
|
|
513
495
|
description: "Split PDF documents into separate pages or sections",
|
|
514
496
|
category: "Productivity & Organization",
|
|
515
|
-
tags: ["pdf", "split", "documents", "pages"]
|
|
497
|
+
tags: ["pdf", "split", "documents", "pages"]
|
|
516
498
|
},
|
|
517
|
-
|
|
518
|
-
// Project Management
|
|
519
499
|
{
|
|
520
500
|
name: "action-item-router",
|
|
521
501
|
displayName: "Action Item Router",
|
|
522
502
|
description: "Route and assign action items from meetings or documents to appropriate owners",
|
|
523
503
|
category: "Project Management",
|
|
524
|
-
tags: ["action-items", "routing", "delegation", "tasks"]
|
|
504
|
+
tags: ["action-items", "routing", "delegation", "tasks"]
|
|
525
505
|
},
|
|
526
506
|
{
|
|
527
507
|
name: "businessactivity",
|
|
528
508
|
displayName: "Business Activity",
|
|
529
509
|
description: "Business activity, workflow, and ownership management service",
|
|
530
510
|
category: "Project Management",
|
|
531
|
-
tags: ["business", "workflow", "activities", "management"]
|
|
511
|
+
tags: ["business", "workflow", "activities", "management"]
|
|
532
512
|
},
|
|
533
513
|
{
|
|
534
514
|
name: "delegation-brief-writer",
|
|
535
515
|
displayName: "Delegation Brief Writer",
|
|
536
516
|
description: "Write clear delegation briefs with context, expectations, and deadlines",
|
|
537
517
|
category: "Project Management",
|
|
538
|
-
tags: ["delegation", "briefs", "management", "tasks"]
|
|
518
|
+
tags: ["delegation", "briefs", "management", "tasks"]
|
|
539
519
|
},
|
|
540
520
|
{
|
|
541
521
|
name: "goal-quarterly-roadmap",
|
|
542
522
|
displayName: "Goal Quarterly Roadmap",
|
|
543
523
|
description: "Create quarterly goal roadmaps with milestones and tracking",
|
|
544
524
|
category: "Project Management",
|
|
545
|
-
tags: ["goals", "roadmap", "quarterly", "planning"]
|
|
525
|
+
tags: ["goals", "roadmap", "quarterly", "planning"]
|
|
546
526
|
},
|
|
547
527
|
{
|
|
548
528
|
name: "implementation",
|
|
549
529
|
displayName: "Implementation",
|
|
550
530
|
description: "Create .implementation scaffold for project development tracking",
|
|
551
531
|
category: "Project Management",
|
|
552
|
-
tags: ["implementation", "tracking", "scaffold", "project"]
|
|
532
|
+
tags: ["implementation", "tracking", "scaffold", "project"]
|
|
553
533
|
},
|
|
554
534
|
{
|
|
555
535
|
name: "implementation-agent",
|
|
556
536
|
displayName: "Implementation Agent",
|
|
557
537
|
description: "AI agent for managing implementation workflows and task execution",
|
|
558
538
|
category: "Project Management",
|
|
559
|
-
tags: ["implementation", "agent", "workflow", "execution"]
|
|
539
|
+
tags: ["implementation", "agent", "workflow", "execution"]
|
|
560
540
|
},
|
|
561
541
|
{
|
|
562
542
|
name: "implementation-plan",
|
|
563
543
|
displayName: "Implementation Plan",
|
|
564
544
|
description: "Generate detailed implementation plans with phases and milestones",
|
|
565
545
|
category: "Project Management",
|
|
566
|
-
tags: ["implementation", "planning", "milestones", "phases"]
|
|
546
|
+
tags: ["implementation", "planning", "milestones", "phases"]
|
|
567
547
|
},
|
|
568
548
|
{
|
|
569
549
|
name: "implementation-todo",
|
|
570
550
|
displayName: "Implementation Todo",
|
|
571
551
|
description: "Manage implementation task lists and todo items",
|
|
572
552
|
category: "Project Management",
|
|
573
|
-
tags: ["implementation", "todo", "tasks", "tracking"]
|
|
553
|
+
tags: ["implementation", "todo", "tasks", "tracking"]
|
|
574
554
|
},
|
|
575
555
|
{
|
|
576
556
|
name: "project-retro-companion",
|
|
577
557
|
displayName: "Project Retro Companion",
|
|
578
558
|
description: "Facilitate project retrospectives with structured reflection and action items",
|
|
579
559
|
category: "Project Management",
|
|
580
|
-
tags: ["retrospective", "project", "feedback", "improvement"]
|
|
560
|
+
tags: ["retrospective", "project", "feedback", "improvement"]
|
|
581
561
|
},
|
|
582
|
-
|
|
583
|
-
// Content Generation
|
|
584
562
|
{
|
|
585
563
|
name: "audio",
|
|
586
564
|
displayName: "Audio",
|
|
587
565
|
description: "Generate audio, voiceovers, and speech using AI-powered TTS APIs (ElevenLabs, OpenAI)",
|
|
588
566
|
category: "Content Generation",
|
|
589
|
-
tags: ["audio", "tts", "speech", "ai"]
|
|
567
|
+
tags: ["audio", "tts", "speech", "ai"]
|
|
590
568
|
},
|
|
591
569
|
{
|
|
592
570
|
name: "audiobook-chapter-proofer",
|
|
593
571
|
displayName: "Audiobook Chapter Proofer",
|
|
594
572
|
description: "Proofread and validate audiobook chapters for consistency and quality",
|
|
595
573
|
category: "Content Generation",
|
|
596
|
-
tags: ["audiobook", "proofreading", "quality", "publishing"]
|
|
574
|
+
tags: ["audiobook", "proofreading", "quality", "publishing"]
|
|
597
575
|
},
|
|
598
576
|
{
|
|
599
577
|
name: "emoji",
|
|
600
578
|
displayName: "Emoji",
|
|
601
579
|
description: "Generate complete emoji packs using AI with DALL-E 3 or Gemini",
|
|
602
580
|
category: "Content Generation",
|
|
603
|
-
tags: ["emoji", "generation", "ai", "design"]
|
|
581
|
+
tags: ["emoji", "generation", "ai", "design"]
|
|
604
582
|
},
|
|
605
583
|
{
|
|
606
584
|
name: "generate-diagram",
|
|
607
585
|
displayName: "Generate Diagram",
|
|
608
586
|
description: "Generate diagrams including flowcharts, sequence diagrams, and system architecture",
|
|
609
587
|
category: "Content Generation",
|
|
610
|
-
tags: ["diagrams", "flowcharts", "visualization", "architecture"]
|
|
588
|
+
tags: ["diagrams", "flowcharts", "visualization", "architecture"]
|
|
611
589
|
},
|
|
612
590
|
{
|
|
613
591
|
name: "generate-docx",
|
|
614
592
|
displayName: "Generate DOCX",
|
|
615
593
|
description: "Generate DOCX documents with formatted content and styling",
|
|
616
594
|
category: "Content Generation",
|
|
617
|
-
tags: ["docx", "document", "word", "generation"]
|
|
595
|
+
tags: ["docx", "document", "word", "generation"]
|
|
618
596
|
},
|
|
619
597
|
{
|
|
620
598
|
name: "generate-excel",
|
|
621
599
|
displayName: "Generate Excel",
|
|
622
600
|
description: "Generate Excel spreadsheets with formatted data, formulas, and charts",
|
|
623
601
|
category: "Content Generation",
|
|
624
|
-
tags: ["excel", "spreadsheet", "generation", "data"]
|
|
602
|
+
tags: ["excel", "spreadsheet", "generation", "data"]
|
|
625
603
|
},
|
|
626
604
|
{
|
|
627
605
|
name: "generate-pdf",
|
|
628
606
|
displayName: "Generate PDF",
|
|
629
607
|
description: "Generate PDF documents with rich formatting and layouts",
|
|
630
608
|
category: "Content Generation",
|
|
631
|
-
tags: ["pdf", "document", "generation", "formatting"]
|
|
609
|
+
tags: ["pdf", "document", "generation", "formatting"]
|
|
632
610
|
},
|
|
633
611
|
{
|
|
634
612
|
name: "generate-presentation",
|
|
635
613
|
displayName: "Generate Presentation",
|
|
636
614
|
description: "Generate presentation decks with slides, content, and visuals",
|
|
637
615
|
category: "Content Generation",
|
|
638
|
-
tags: ["presentation", "slides", "deck", "generation"]
|
|
616
|
+
tags: ["presentation", "slides", "deck", "generation"]
|
|
639
617
|
},
|
|
640
618
|
{
|
|
641
619
|
name: "generate-qrcode",
|
|
642
620
|
displayName: "Generate QR Code",
|
|
643
621
|
description: "Generate QR codes with custom styling and embedded data",
|
|
644
622
|
category: "Content Generation",
|
|
645
|
-
tags: ["qrcode", "generation", "encoding", "visual"]
|
|
623
|
+
tags: ["qrcode", "generation", "encoding", "visual"]
|
|
646
624
|
},
|
|
647
625
|
{
|
|
648
626
|
name: "generate-resume",
|
|
649
627
|
displayName: "Generate Resume",
|
|
650
628
|
description: "Generate professional resumes with formatting and content optimization",
|
|
651
629
|
category: "Content Generation",
|
|
652
|
-
tags: ["resume", "cv", "career", "generation"]
|
|
630
|
+
tags: ["resume", "cv", "career", "generation"]
|
|
653
631
|
},
|
|
654
632
|
{
|
|
655
633
|
name: "image",
|
|
656
634
|
displayName: "Image",
|
|
657
635
|
description: "Generate images using multiple AI providers: DALL-E 3, Imagen 3, and Aurora",
|
|
658
636
|
category: "Content Generation",
|
|
659
|
-
tags: ["image", "generation", "ai", "dalle"]
|
|
637
|
+
tags: ["image", "generation", "ai", "dalle"]
|
|
660
638
|
},
|
|
661
639
|
{
|
|
662
640
|
name: "jingle-composer",
|
|
663
641
|
displayName: "Jingle Composer",
|
|
664
642
|
description: "Compose advertising jingles and short musical pieces for brands",
|
|
665
643
|
category: "Content Generation",
|
|
666
|
-
tags: ["jingle", "music", "composition", "advertising"]
|
|
644
|
+
tags: ["jingle", "music", "composition", "advertising"]
|
|
667
645
|
},
|
|
668
646
|
{
|
|
669
647
|
name: "video",
|
|
670
648
|
displayName: "Video",
|
|
671
649
|
description: "Generate videos using AI models from Google Veo, OpenAI Sora, and Runway",
|
|
672
650
|
category: "Content Generation",
|
|
673
|
-
tags: ["video", "generation", "ai", "sora"]
|
|
651
|
+
tags: ["video", "generation", "ai", "sora"]
|
|
674
652
|
},
|
|
675
653
|
{
|
|
676
654
|
name: "voiceover-casting-assistant",
|
|
677
655
|
displayName: "Voiceover Casting Assistant",
|
|
678
656
|
description: "Assist with voiceover casting by matching voice profiles to project needs",
|
|
679
657
|
category: "Content Generation",
|
|
680
|
-
tags: ["voiceover", "casting", "voice", "selection"]
|
|
658
|
+
tags: ["voiceover", "casting", "voice", "selection"]
|
|
681
659
|
},
|
|
682
|
-
|
|
683
|
-
// Finance & Compliance
|
|
684
660
|
{
|
|
685
661
|
name: "budget-variance-analyzer",
|
|
686
662
|
displayName: "Budget Variance Analyzer",
|
|
687
663
|
description: "Analyze budget versus actual spending with variance reporting",
|
|
688
664
|
category: "Finance & Compliance",
|
|
689
|
-
tags: ["budget", "variance", "analysis", "finance"]
|
|
665
|
+
tags: ["budget", "variance", "analysis", "finance"]
|
|
690
666
|
},
|
|
691
667
|
{
|
|
692
668
|
name: "compliance-copy-check",
|
|
693
669
|
displayName: "Compliance Copy Check",
|
|
694
670
|
description: "Check marketing copy for regulatory compliance and legal requirements",
|
|
695
671
|
category: "Finance & Compliance",
|
|
696
|
-
tags: ["compliance", "copy", "legal", "regulatory"]
|
|
672
|
+
tags: ["compliance", "copy", "legal", "regulatory"]
|
|
697
673
|
},
|
|
698
674
|
{
|
|
699
675
|
name: "compliance-report-pack",
|
|
700
676
|
displayName: "Compliance Report Pack",
|
|
701
677
|
description: "Generate compliance report packages for regulatory submissions",
|
|
702
678
|
category: "Finance & Compliance",
|
|
703
|
-
tags: ["compliance", "reporting", "regulatory", "audit"]
|
|
679
|
+
tags: ["compliance", "reporting", "regulatory", "audit"]
|
|
704
680
|
},
|
|
705
681
|
{
|
|
706
682
|
name: "contract-plainlanguage",
|
|
707
683
|
displayName: "Contract Plain Language",
|
|
708
684
|
description: "Convert legal contracts into plain language summaries for easy understanding",
|
|
709
685
|
category: "Finance & Compliance",
|
|
710
|
-
tags: ["contract", "legal", "plain-language", "summary"]
|
|
686
|
+
tags: ["contract", "legal", "plain-language", "summary"]
|
|
711
687
|
},
|
|
712
688
|
{
|
|
713
689
|
name: "extract-invoice",
|
|
714
690
|
displayName: "Extract Invoice",
|
|
715
691
|
description: "Extract structured data from invoice documents using AI",
|
|
716
692
|
category: "Finance & Compliance",
|
|
717
|
-
tags: ["invoice", "extraction", "ocr", "finance"]
|
|
693
|
+
tags: ["invoice", "extraction", "ocr", "finance"]
|
|
718
694
|
},
|
|
719
695
|
{
|
|
720
696
|
name: "forecast-scenario-lab",
|
|
721
697
|
displayName: "Forecast Scenario Lab",
|
|
722
698
|
description: "Model business forecast scenarios with multiple variable assumptions",
|
|
723
699
|
category: "Finance & Compliance",
|
|
724
|
-
tags: ["forecast", "scenarios", "modeling", "planning"]
|
|
700
|
+
tags: ["forecast", "scenarios", "modeling", "planning"]
|
|
725
701
|
},
|
|
726
702
|
{
|
|
727
703
|
name: "grant-application-drafter",
|
|
728
704
|
displayName: "Grant Application Drafter",
|
|
729
705
|
description: "Draft grant applications with structured proposals and budgets",
|
|
730
706
|
category: "Finance & Compliance",
|
|
731
|
-
tags: ["grants", "application", "drafting", "funding"]
|
|
707
|
+
tags: ["grants", "application", "drafting", "funding"]
|
|
732
708
|
},
|
|
733
709
|
{
|
|
734
710
|
name: "invoice",
|
|
735
711
|
displayName: "Invoice",
|
|
736
712
|
description: "Generate professional invoices with company management and PDF export",
|
|
737
713
|
category: "Finance & Compliance",
|
|
738
|
-
tags: ["invoice", "billing", "pdf", "finance"]
|
|
714
|
+
tags: ["invoice", "billing", "pdf", "finance"]
|
|
739
715
|
},
|
|
740
716
|
{
|
|
741
717
|
name: "invoice-dispute-helper",
|
|
742
718
|
displayName: "Invoice Dispute Helper",
|
|
743
719
|
description: "Assist with invoice disputes by analyzing charges and generating responses",
|
|
744
720
|
category: "Finance & Compliance",
|
|
745
|
-
tags: ["invoice", "dispute", "resolution", "billing"]
|
|
721
|
+
tags: ["invoice", "dispute", "resolution", "billing"]
|
|
746
722
|
},
|
|
747
723
|
{
|
|
748
724
|
name: "payroll-change-prepper",
|
|
749
725
|
displayName: "Payroll Change Prepper",
|
|
750
726
|
description: "Prepare payroll change documentation and calculations",
|
|
751
727
|
category: "Finance & Compliance",
|
|
752
|
-
tags: ["payroll", "changes", "hr", "finance"]
|
|
728
|
+
tags: ["payroll", "changes", "hr", "finance"]
|
|
753
729
|
},
|
|
754
730
|
{
|
|
755
731
|
name: "procurement-scorecard",
|
|
756
732
|
displayName: "Procurement Scorecard",
|
|
757
733
|
description: "Generate procurement scorecards for vendor evaluation and comparison",
|
|
758
734
|
category: "Finance & Compliance",
|
|
759
|
-
tags: ["procurement", "scorecard", "vendor", "evaluation"]
|
|
735
|
+
tags: ["procurement", "scorecard", "vendor", "evaluation"]
|
|
760
736
|
},
|
|
761
737
|
{
|
|
762
738
|
name: "proposal-redline-advisor",
|
|
763
739
|
displayName: "Proposal Redline Advisor",
|
|
764
740
|
description: "Review and redline proposals with suggested edits and negotiations",
|
|
765
741
|
category: "Finance & Compliance",
|
|
766
|
-
tags: ["proposal", "redline", "review", "negotiation"]
|
|
742
|
+
tags: ["proposal", "redline", "review", "negotiation"]
|
|
767
743
|
},
|
|
768
744
|
{
|
|
769
745
|
name: "risk-disclosure-kit",
|
|
770
746
|
displayName: "Risk Disclosure Kit",
|
|
771
747
|
description: "Generate risk disclosure documents and compliance statements",
|
|
772
748
|
category: "Finance & Compliance",
|
|
773
|
-
tags: ["risk", "disclosure", "compliance", "legal"]
|
|
749
|
+
tags: ["risk", "disclosure", "compliance", "legal"]
|
|
774
750
|
},
|
|
775
751
|
{
|
|
776
752
|
name: "roi-comparison-tool",
|
|
777
753
|
displayName: "ROI Comparison Tool",
|
|
778
754
|
description: "Compare return on investment across different options and scenarios",
|
|
779
755
|
category: "Finance & Compliance",
|
|
780
|
-
tags: ["roi", "comparison", "investment", "analysis"]
|
|
756
|
+
tags: ["roi", "comparison", "investment", "analysis"]
|
|
781
757
|
},
|
|
782
758
|
{
|
|
783
759
|
name: "subscription-spend-watcher",
|
|
784
760
|
displayName: "Subscription Spend Watcher",
|
|
785
761
|
description: "Track and analyze subscription spending with alerts and optimization tips",
|
|
786
762
|
category: "Finance & Compliance",
|
|
787
|
-
tags: ["subscription", "spending", "tracking", "optimization"]
|
|
763
|
+
tags: ["subscription", "spending", "tracking", "optimization"]
|
|
788
764
|
},
|
|
789
765
|
{
|
|
790
766
|
name: "timesheet",
|
|
791
767
|
displayName: "Timesheet",
|
|
792
768
|
description: "Generate employee timesheets with multi-profile support",
|
|
793
769
|
category: "Finance & Compliance",
|
|
794
|
-
tags: ["timesheet", "hours", "tracking", "payroll"]
|
|
770
|
+
tags: ["timesheet", "hours", "tracking", "payroll"]
|
|
795
771
|
},
|
|
796
|
-
|
|
797
|
-
// Data & Analysis
|
|
798
772
|
{
|
|
799
773
|
name: "analyze-data",
|
|
800
774
|
displayName: "Analyze Data",
|
|
801
775
|
description: "Data science insights for CSV and JSON datasets with statistical analysis",
|
|
802
776
|
category: "Data & Analysis",
|
|
803
|
-
tags: ["data", "analysis", "csv", "json", "statistics"]
|
|
777
|
+
tags: ["data", "analysis", "csv", "json", "statistics"]
|
|
804
778
|
},
|
|
805
779
|
{
|
|
806
780
|
name: "anomaly-investigator",
|
|
807
781
|
displayName: "Anomaly Investigator",
|
|
808
782
|
description: "Investigate and diagnose anomalies in data, logs, and system metrics",
|
|
809
783
|
category: "Data & Analysis",
|
|
810
|
-
tags: ["anomaly", "investigation", "monitoring", "diagnostics"]
|
|
784
|
+
tags: ["anomaly", "investigation", "monitoring", "diagnostics"]
|
|
811
785
|
},
|
|
812
786
|
{
|
|
813
787
|
name: "benchmark-finder",
|
|
814
788
|
displayName: "Benchmark Finder",
|
|
815
789
|
description: "Find industry benchmarks and performance metrics for comparison analysis",
|
|
816
790
|
category: "Data & Analysis",
|
|
817
|
-
tags: ["benchmark", "metrics", "industry", "comparison"]
|
|
791
|
+
tags: ["benchmark", "metrics", "industry", "comparison"]
|
|
818
792
|
},
|
|
819
793
|
{
|
|
820
794
|
name: "dashboard-builder",
|
|
821
795
|
displayName: "Dashboard Builder",
|
|
822
796
|
description: "Build data dashboards with charts, metrics, and visualizations",
|
|
823
797
|
category: "Data & Analysis",
|
|
824
|
-
tags: ["dashboard", "visualization", "charts", "metrics"]
|
|
798
|
+
tags: ["dashboard", "visualization", "charts", "metrics"]
|
|
825
799
|
},
|
|
826
800
|
{
|
|
827
801
|
name: "dashboard-narrator",
|
|
828
802
|
displayName: "Dashboard Narrator",
|
|
829
803
|
description: "Generate narrative summaries from dashboard data and metrics",
|
|
830
804
|
category: "Data & Analysis",
|
|
831
|
-
tags: ["dashboard", "narrative", "reporting", "insights"]
|
|
805
|
+
tags: ["dashboard", "narrative", "reporting", "insights"]
|
|
832
806
|
},
|
|
833
807
|
{
|
|
834
808
|
name: "data-anonymizer",
|
|
835
809
|
displayName: "Data Anonymizer",
|
|
836
810
|
description: "Anonymize sensitive data in datasets for privacy compliance",
|
|
837
811
|
category: "Data & Analysis",
|
|
838
|
-
tags: ["anonymization", "privacy", "data", "compliance"]
|
|
812
|
+
tags: ["anonymization", "privacy", "data", "compliance"]
|
|
839
813
|
},
|
|
840
814
|
{
|
|
841
815
|
name: "dataset-health-check",
|
|
842
816
|
displayName: "Dataset Health Check",
|
|
843
817
|
description: "Validate dataset quality with completeness, consistency, and accuracy checks",
|
|
844
818
|
category: "Data & Analysis",
|
|
845
|
-
tags: ["dataset", "quality", "validation", "health-check"]
|
|
819
|
+
tags: ["dataset", "quality", "validation", "health-check"]
|
|
846
820
|
},
|
|
847
821
|
{
|
|
848
822
|
name: "extract",
|
|
849
823
|
displayName: "Extract",
|
|
850
824
|
description: "Extract text and structured data from images, PDFs, and documents using AI",
|
|
851
825
|
category: "Data & Analysis",
|
|
852
|
-
tags: ["extraction", "ocr", "vision", "pdf"]
|
|
826
|
+
tags: ["extraction", "ocr", "vision", "pdf"]
|
|
853
827
|
},
|
|
854
828
|
{
|
|
855
829
|
name: "generate-chart",
|
|
856
830
|
displayName: "Generate Chart",
|
|
857
831
|
description: "Generate data charts and visualizations from datasets",
|
|
858
832
|
category: "Data & Analysis",
|
|
859
|
-
tags: ["charts", "visualization", "data", "graphs"]
|
|
833
|
+
tags: ["charts", "visualization", "data", "graphs"]
|
|
860
834
|
},
|
|
861
835
|
{
|
|
862
836
|
name: "kpi-digest-generator",
|
|
863
837
|
displayName: "KPI Digest Generator",
|
|
864
838
|
description: "Generate KPI digest reports with trends, alerts, and performance summaries",
|
|
865
839
|
category: "Data & Analysis",
|
|
866
|
-
tags: ["kpi", "digest", "metrics", "reporting"]
|
|
840
|
+
tags: ["kpi", "digest", "metrics", "reporting"]
|
|
867
841
|
},
|
|
868
842
|
{
|
|
869
843
|
name: "spreadsheet-cleanroom",
|
|
870
844
|
displayName: "Spreadsheet Cleanroom",
|
|
871
845
|
description: "Clean and sanitize spreadsheet data for analysis readiness",
|
|
872
846
|
category: "Data & Analysis",
|
|
873
|
-
tags: ["spreadsheet", "cleaning", "data", "sanitization"]
|
|
847
|
+
tags: ["spreadsheet", "cleaning", "data", "sanitization"]
|
|
874
848
|
},
|
|
875
849
|
{
|
|
876
850
|
name: "survey-insight-extractor",
|
|
877
851
|
displayName: "Survey Insight Extractor",
|
|
878
852
|
description: "Extract actionable insights and trends from survey response data",
|
|
879
853
|
category: "Data & Analysis",
|
|
880
|
-
tags: ["survey", "insights", "analysis", "data"]
|
|
854
|
+
tags: ["survey", "insights", "analysis", "data"]
|
|
881
855
|
},
|
|
882
|
-
|
|
883
|
-
// Media Processing
|
|
884
856
|
{
|
|
885
857
|
name: "audio-cleanup-lab",
|
|
886
858
|
displayName: "Audio Cleanup Lab",
|
|
887
859
|
description: "Professional audio cleanup recipes with structured workflows for processing audio files",
|
|
888
860
|
category: "Media Processing",
|
|
889
|
-
tags: ["audio", "cleanup", "processing", "restoration"]
|
|
861
|
+
tags: ["audio", "cleanup", "processing", "restoration"]
|
|
890
862
|
},
|
|
891
863
|
{
|
|
892
864
|
name: "compress-video",
|
|
893
865
|
displayName: "Compress Video",
|
|
894
866
|
description: "Compress video files while preserving visual quality using ffmpeg",
|
|
895
867
|
category: "Media Processing",
|
|
896
|
-
tags: ["video", "compression", "ffmpeg", "optimization"]
|
|
868
|
+
tags: ["video", "compression", "ffmpeg", "optimization"]
|
|
897
869
|
},
|
|
898
870
|
{
|
|
899
871
|
name: "extract-audio",
|
|
900
872
|
displayName: "Extract Audio",
|
|
901
873
|
description: "Extract audio tracks from video files with multiple format support",
|
|
902
874
|
category: "Media Processing",
|
|
903
|
-
tags: ["audio", "extraction", "video", "conversion"]
|
|
875
|
+
tags: ["audio", "extraction", "video", "conversion"]
|
|
904
876
|
},
|
|
905
877
|
{
|
|
906
878
|
name: "extract-frames",
|
|
907
879
|
displayName: "Extract Frames",
|
|
908
880
|
description: "Extract frames from video files at specified intervals or timestamps",
|
|
909
881
|
category: "Media Processing",
|
|
910
|
-
tags: ["frames", "video", "extraction", "images"]
|
|
882
|
+
tags: ["frames", "video", "extraction", "images"]
|
|
911
883
|
},
|
|
912
884
|
{
|
|
913
885
|
name: "gif-maker",
|
|
914
886
|
displayName: "GIF Maker",
|
|
915
887
|
description: "Create animated GIFs from images, videos, or screen recordings",
|
|
916
888
|
category: "Media Processing",
|
|
917
|
-
tags: ["gif", "animation", "images", "video"]
|
|
889
|
+
tags: ["gif", "animation", "images", "video"]
|
|
918
890
|
},
|
|
919
891
|
{
|
|
920
892
|
name: "highlight-reel-generator",
|
|
921
893
|
displayName: "Highlight Reel Generator",
|
|
922
894
|
description: "Generate video highlight reels from longer content with key moments",
|
|
923
895
|
category: "Media Processing",
|
|
924
|
-
tags: ["highlights", "video", "editing", "content"]
|
|
896
|
+
tags: ["highlights", "video", "editing", "content"]
|
|
925
897
|
},
|
|
926
898
|
{
|
|
927
899
|
name: "remove-background",
|
|
928
900
|
displayName: "Remove Background",
|
|
929
901
|
description: "Remove backgrounds from images using AI segmentation",
|
|
930
902
|
category: "Media Processing",
|
|
931
|
-
tags: ["background-removal", "image", "ai", "editing"]
|
|
903
|
+
tags: ["background-removal", "image", "ai", "editing"]
|
|
932
904
|
},
|
|
933
905
|
{
|
|
934
906
|
name: "subtitle",
|
|
935
907
|
displayName: "Subtitle",
|
|
936
908
|
description: "Generate styled subtitles from audio using OpenAI Whisper",
|
|
937
909
|
category: "Media Processing",
|
|
938
|
-
tags: ["subtitles", "transcription", "whisper", "video"]
|
|
910
|
+
tags: ["subtitles", "transcription", "whisper", "video"]
|
|
939
911
|
},
|
|
940
912
|
{
|
|
941
913
|
name: "transcript",
|
|
942
914
|
displayName: "Transcript",
|
|
943
915
|
description: "Generate transcripts from audio and video files with timestamps",
|
|
944
916
|
category: "Media Processing",
|
|
945
|
-
tags: ["transcript", "audio", "video", "speech-to-text"]
|
|
917
|
+
tags: ["transcript", "audio", "video", "speech-to-text"]
|
|
946
918
|
},
|
|
947
919
|
{
|
|
948
920
|
name: "video-cut-suggester",
|
|
949
921
|
displayName: "Video Cut Suggester",
|
|
950
922
|
description: "Suggest video cuts and edits based on content analysis and pacing",
|
|
951
923
|
category: "Media Processing",
|
|
952
|
-
tags: ["video", "editing", "cuts", "suggestions"]
|
|
924
|
+
tags: ["video", "editing", "cuts", "suggestions"]
|
|
953
925
|
},
|
|
954
926
|
{
|
|
955
927
|
name: "video-downloader",
|
|
956
928
|
displayName: "Video Downloader",
|
|
957
929
|
description: "Download videos from various online platforms and services",
|
|
958
930
|
category: "Media Processing",
|
|
959
|
-
tags: ["video", "download", "platforms", "media"]
|
|
931
|
+
tags: ["video", "download", "platforms", "media"]
|
|
960
932
|
},
|
|
961
933
|
{
|
|
962
934
|
name: "video-thumbnail",
|
|
963
935
|
displayName: "Video Thumbnail",
|
|
964
936
|
description: "Generate eye-catching video thumbnails with text overlays",
|
|
965
937
|
category: "Media Processing",
|
|
966
|
-
tags: ["video", "thumbnail", "design", "youtube"]
|
|
938
|
+
tags: ["video", "thumbnail", "design", "youtube"]
|
|
967
939
|
},
|
|
968
940
|
{
|
|
969
941
|
name: "watermark",
|
|
970
942
|
displayName: "Watermark",
|
|
971
943
|
description: "Add watermarks to images and documents for copyright protection",
|
|
972
944
|
category: "Media Processing",
|
|
973
|
-
tags: ["watermark", "protection", "copyright", "images"]
|
|
945
|
+
tags: ["watermark", "protection", "copyright", "images"]
|
|
974
946
|
},
|
|
975
|
-
|
|
976
|
-
// Design & Branding
|
|
977
947
|
{
|
|
978
948
|
name: "brand-style-guide",
|
|
979
949
|
displayName: "Brand Style Guide",
|
|
980
950
|
description: "Generate comprehensive brand style guides with visual identity guidelines",
|
|
981
951
|
category: "Design & Branding",
|
|
982
|
-
tags: ["brand", "style-guide", "identity", "design"]
|
|
952
|
+
tags: ["brand", "style-guide", "identity", "design"]
|
|
983
953
|
},
|
|
984
954
|
{
|
|
985
955
|
name: "brand-voice-audit",
|
|
986
956
|
displayName: "Brand Voice Audit",
|
|
987
957
|
description: "Audit content for brand voice consistency and tone alignment",
|
|
988
958
|
category: "Design & Branding",
|
|
989
|
-
tags: ["brand", "voice", "audit", "tone"]
|
|
959
|
+
tags: ["brand", "voice", "audit", "tone"]
|
|
990
960
|
},
|
|
991
961
|
{
|
|
992
962
|
name: "color-palette-harmonizer",
|
|
993
963
|
displayName: "Color Palette Harmonizer",
|
|
994
964
|
description: "Generate harmonious color palettes for design and branding projects",
|
|
995
965
|
category: "Design & Branding",
|
|
996
|
-
tags: ["color", "palette", "design", "harmony"]
|
|
966
|
+
tags: ["color", "palette", "design", "harmony"]
|
|
997
967
|
},
|
|
998
968
|
{
|
|
999
969
|
name: "generate-book-cover",
|
|
1000
970
|
displayName: "Generate Book Cover",
|
|
1001
971
|
description: "Generate professional book cover designs with AI",
|
|
1002
972
|
category: "Design & Branding",
|
|
1003
|
-
tags: ["book-cover", "design", "generation", "publishing"]
|
|
973
|
+
tags: ["book-cover", "design", "generation", "publishing"]
|
|
1004
974
|
},
|
|
1005
975
|
{
|
|
1006
976
|
name: "generate-favicon",
|
|
1007
977
|
displayName: "Generate Favicon",
|
|
1008
978
|
description: "Generate favicons in multiple sizes and formats for websites",
|
|
1009
979
|
category: "Design & Branding",
|
|
1010
|
-
tags: ["favicon", "icon", "design", "web"]
|
|
980
|
+
tags: ["favicon", "icon", "design", "web"]
|
|
1011
981
|
},
|
|
1012
982
|
{
|
|
1013
983
|
name: "microcopy-generator",
|
|
1014
984
|
displayName: "Microcopy Generator",
|
|
1015
985
|
description: "Generate UI microcopy including button text, tooltips, and error messages",
|
|
1016
986
|
category: "Design & Branding",
|
|
1017
|
-
tags: ["microcopy", "ux", "ui-text", "writing"]
|
|
987
|
+
tags: ["microcopy", "ux", "ui-text", "writing"]
|
|
1018
988
|
},
|
|
1019
989
|
{
|
|
1020
990
|
name: "packaging-concept-studio",
|
|
1021
991
|
displayName: "Packaging Concept Studio",
|
|
1022
992
|
description: "Design product packaging concepts with mockups and specifications",
|
|
1023
993
|
category: "Design & Branding",
|
|
1024
|
-
tags: ["packaging", "design", "product", "concept"]
|
|
994
|
+
tags: ["packaging", "design", "product", "concept"]
|
|
1025
995
|
},
|
|
1026
996
|
{
|
|
1027
997
|
name: "presentation-theme-maker",
|
|
1028
998
|
displayName: "Presentation Theme Maker",
|
|
1029
999
|
description: "Create custom presentation themes with color schemes and layouts",
|
|
1030
1000
|
category: "Design & Branding",
|
|
1031
|
-
tags: ["presentation", "theme", "design", "templates"]
|
|
1001
|
+
tags: ["presentation", "theme", "design", "templates"]
|
|
1032
1002
|
},
|
|
1033
1003
|
{
|
|
1034
1004
|
name: "print-collateral-designer",
|
|
1035
1005
|
displayName: "Print Collateral Designer",
|
|
1036
1006
|
description: "Design print collateral including brochures, flyers, and business cards",
|
|
1037
1007
|
category: "Design & Branding",
|
|
1038
|
-
tags: ["print", "collateral", "brochures", "design"]
|
|
1008
|
+
tags: ["print", "collateral", "brochures", "design"]
|
|
1039
1009
|
},
|
|
1040
1010
|
{
|
|
1041
1011
|
name: "product-mockup",
|
|
1042
1012
|
displayName: "Product Mockup",
|
|
1043
1013
|
description: "Generate product mockups for visualization and marketing materials",
|
|
1044
1014
|
category: "Design & Branding",
|
|
1045
|
-
tags: ["product", "mockup", "visualization", "marketing"]
|
|
1015
|
+
tags: ["product", "mockup", "visualization", "marketing"]
|
|
1046
1016
|
},
|
|
1047
1017
|
{
|
|
1048
1018
|
name: "testimonial-graphics",
|
|
1049
1019
|
displayName: "Testimonial Graphics",
|
|
1050
1020
|
description: "Create visual testimonial graphics for social proof and marketing",
|
|
1051
1021
|
category: "Design & Branding",
|
|
1052
|
-
tags: ["testimonials", "graphics", "social-proof", "marketing"]
|
|
1022
|
+
tags: ["testimonials", "graphics", "social-proof", "marketing"]
|
|
1053
1023
|
},
|
|
1054
|
-
|
|
1055
|
-
// Web & Browser
|
|
1056
1024
|
{
|
|
1057
1025
|
name: "browse",
|
|
1058
1026
|
displayName: "Browse",
|
|
1059
1027
|
description: "Browser automation using Browser-Use Cloud API for AI agents",
|
|
1060
1028
|
category: "Web & Browser",
|
|
1061
|
-
tags: ["browser", "automation", "scraping", "web"]
|
|
1029
|
+
tags: ["browser", "automation", "scraping", "web"]
|
|
1062
1030
|
},
|
|
1063
1031
|
{
|
|
1064
1032
|
name: "domainpurchase",
|
|
1065
1033
|
displayName: "Domain Purchase",
|
|
1066
1034
|
description: "Purchase and manage domains via registrar connectors",
|
|
1067
1035
|
category: "Web & Browser",
|
|
1068
|
-
tags: ["domain", "purchase", "registrar", "management"]
|
|
1036
|
+
tags: ["domain", "purchase", "registrar", "management"]
|
|
1069
1037
|
},
|
|
1070
1038
|
{
|
|
1071
1039
|
name: "domainsearch",
|
|
1072
1040
|
displayName: "Domain Search",
|
|
1073
1041
|
description: "Search domain availability and suggestions via registrar connectors",
|
|
1074
1042
|
category: "Web & Browser",
|
|
1075
|
-
tags: ["domain", "search", "availability", "registration"]
|
|
1043
|
+
tags: ["domain", "search", "availability", "registration"]
|
|
1076
1044
|
},
|
|
1077
1045
|
{
|
|
1078
1046
|
name: "webcrawling",
|
|
1079
1047
|
displayName: "Web Crawling",
|
|
1080
1048
|
description: "Web crawling service using Firecrawl API for content extraction",
|
|
1081
1049
|
category: "Web & Browser",
|
|
1082
|
-
tags: ["crawling", "web", "firecrawl", "extraction"]
|
|
1050
|
+
tags: ["crawling", "web", "firecrawl", "extraction"]
|
|
1083
1051
|
},
|
|
1084
|
-
|
|
1085
|
-
// Research & Writing
|
|
1086
1052
|
{
|
|
1087
1053
|
name: "blog-topic-cluster",
|
|
1088
1054
|
displayName: "Blog Topic Cluster",
|
|
1089
1055
|
description: "Generate topic clusters and content strategies for blog SEO planning",
|
|
1090
1056
|
category: "Research & Writing",
|
|
1091
|
-
tags: ["blog", "seo", "topics", "content-strategy"]
|
|
1057
|
+
tags: ["blog", "seo", "topics", "content-strategy"]
|
|
1092
1058
|
},
|
|
1093
1059
|
{
|
|
1094
1060
|
name: "copytone-translator",
|
|
1095
1061
|
displayName: "Copy Tone Translator",
|
|
1096
1062
|
description: "Translate copy between different tones and writing styles",
|
|
1097
1063
|
category: "Research & Writing",
|
|
1098
|
-
tags: ["copywriting", "tone", "translation", "style"]
|
|
1064
|
+
tags: ["copywriting", "tone", "translation", "style"]
|
|
1099
1065
|
},
|
|
1100
1066
|
{
|
|
1101
1067
|
name: "create-blog-article",
|
|
1102
1068
|
displayName: "Create Blog Article",
|
|
1103
1069
|
description: "Create SEO-optimized blog articles with structured content",
|
|
1104
1070
|
category: "Research & Writing",
|
|
1105
|
-
tags: ["blog", "article", "writing", "seo"]
|
|
1071
|
+
tags: ["blog", "article", "writing", "seo"]
|
|
1106
1072
|
},
|
|
1107
1073
|
{
|
|
1108
1074
|
name: "create-ebook",
|
|
1109
1075
|
displayName: "Create eBook",
|
|
1110
1076
|
description: "Create complete eBooks with chapters, formatting, and cover design",
|
|
1111
1077
|
category: "Research & Writing",
|
|
1112
|
-
tags: ["ebook", "writing", "publishing", "content"]
|
|
1078
|
+
tags: ["ebook", "writing", "publishing", "content"]
|
|
1113
1079
|
},
|
|
1114
1080
|
{
|
|
1115
1081
|
name: "deepresearch",
|
|
1116
1082
|
displayName: "Deep Research (Agentic)",
|
|
1117
1083
|
description: "Agentic deep research using Exa.ai for parallel semantic search and LLM synthesis",
|
|
1118
1084
|
category: "Research & Writing",
|
|
1119
|
-
tags: ["research", "exa", "semantic-search", "synthesis"]
|
|
1085
|
+
tags: ["research", "exa", "semantic-search", "synthesis"]
|
|
1120
1086
|
},
|
|
1121
1087
|
{
|
|
1122
1088
|
name: "faq-packager",
|
|
1123
1089
|
displayName: "FAQ Packager",
|
|
1124
1090
|
description: "Package and organize frequently asked questions into structured documents",
|
|
1125
1091
|
category: "Research & Writing",
|
|
1126
|
-
tags: ["faq", "documentation", "knowledge-base", "content"]
|
|
1092
|
+
tags: ["faq", "documentation", "knowledge-base", "content"]
|
|
1127
1093
|
},
|
|
1128
1094
|
{
|
|
1129
1095
|
name: "longform-structurer",
|
|
1130
1096
|
displayName: "Longform Structurer",
|
|
1131
1097
|
description: "Structure long-form content with outlines, chapters, and sections",
|
|
1132
1098
|
category: "Research & Writing",
|
|
1133
|
-
tags: ["longform", "structure", "outline", "writing"]
|
|
1099
|
+
tags: ["longform", "structure", "outline", "writing"]
|
|
1134
1100
|
},
|
|
1135
1101
|
{
|
|
1136
1102
|
name: "podcast-show-notes",
|
|
1137
1103
|
displayName: "Podcast Show Notes",
|
|
1138
1104
|
description: "Generate podcast show notes with timestamps, summaries, and links",
|
|
1139
1105
|
category: "Research & Writing",
|
|
1140
|
-
tags: ["podcast", "show-notes", "summary", "content"]
|
|
1106
|
+
tags: ["podcast", "show-notes", "summary", "content"]
|
|
1141
1107
|
},
|
|
1142
1108
|
{
|
|
1143
1109
|
name: "press-release-drafter",
|
|
1144
1110
|
displayName: "Press Release Drafter",
|
|
1145
1111
|
description: "Draft professional press releases for announcements and media distribution",
|
|
1146
1112
|
category: "Research & Writing",
|
|
1147
|
-
tags: ["press-release", "pr", "media", "writing"]
|
|
1113
|
+
tags: ["press-release", "pr", "media", "writing"]
|
|
1148
1114
|
},
|
|
1149
1115
|
{
|
|
1150
1116
|
name: "write",
|
|
1151
1117
|
displayName: "Write",
|
|
1152
1118
|
description: "Write short or long-form content - articles, books, documentation at scale",
|
|
1153
1119
|
category: "Research & Writing",
|
|
1154
|
-
tags: ["writing", "content", "articles", "documentation"]
|
|
1120
|
+
tags: ["writing", "content", "articles", "documentation"]
|
|
1155
1121
|
},
|
|
1156
|
-
|
|
1157
|
-
// Science & Academic
|
|
1158
1122
|
{
|
|
1159
1123
|
name: "academic-journal-matcher",
|
|
1160
1124
|
displayName: "Academic Journal Matcher",
|
|
1161
1125
|
description: "Match research papers to appropriate academic journals for submission",
|
|
1162
1126
|
category: "Science & Academic",
|
|
1163
|
-
tags: ["academic", "journal", "research", "publishing"]
|
|
1127
|
+
tags: ["academic", "journal", "research", "publishing"]
|
|
1164
1128
|
},
|
|
1165
1129
|
{
|
|
1166
1130
|
name: "advanced-math",
|
|
1167
1131
|
displayName: "Advanced Math",
|
|
1168
1132
|
description: "Solve advanced mathematical problems including calculus, algebra, and statistics",
|
|
1169
1133
|
category: "Science & Academic",
|
|
1170
|
-
tags: ["math", "calculus", "algebra", "computation"]
|
|
1134
|
+
tags: ["math", "calculus", "algebra", "computation"]
|
|
1171
1135
|
},
|
|
1172
1136
|
{
|
|
1173
1137
|
name: "bio-sequence-tool",
|
|
1174
1138
|
displayName: "Bio Sequence Tool",
|
|
1175
1139
|
description: "Analyze and manipulate biological sequences including DNA, RNA, and protein data",
|
|
1176
1140
|
category: "Science & Academic",
|
|
1177
|
-
tags: ["biology", "dna", "sequence", "bioinformatics"]
|
|
1141
|
+
tags: ["biology", "dna", "sequence", "bioinformatics"]
|
|
1178
1142
|
},
|
|
1179
1143
|
{
|
|
1180
1144
|
name: "chemistry-calculator",
|
|
1181
1145
|
displayName: "Chemistry Calculator",
|
|
1182
1146
|
description: "Perform chemistry calculations including molecular weights, reactions, and stoichiometry",
|
|
1183
1147
|
category: "Science & Academic",
|
|
1184
|
-
tags: ["chemistry", "calculations", "molecular", "science"]
|
|
1148
|
+
tags: ["chemistry", "calculations", "molecular", "science"]
|
|
1185
1149
|
},
|
|
1186
1150
|
{
|
|
1187
1151
|
name: "citation-formatter",
|
|
1188
1152
|
displayName: "Citation Formatter",
|
|
1189
1153
|
description: "Format academic citations in APA, MLA, Chicago, and other styles",
|
|
1190
1154
|
category: "Science & Academic",
|
|
1191
|
-
tags: ["citation", "formatting", "academic", "references"]
|
|
1155
|
+
tags: ["citation", "formatting", "academic", "references"]
|
|
1192
1156
|
},
|
|
1193
1157
|
{
|
|
1194
1158
|
name: "experiment-power-calculator",
|
|
1195
1159
|
displayName: "Experiment Power Calculator",
|
|
1196
1160
|
description: "Calculate statistical power and sample size for experiments",
|
|
1197
1161
|
category: "Science & Academic",
|
|
1198
|
-
tags: ["experiment", "statistics", "power-analysis", "sample-size"]
|
|
1162
|
+
tags: ["experiment", "statistics", "power-analysis", "sample-size"]
|
|
1199
1163
|
},
|
|
1200
1164
|
{
|
|
1201
1165
|
name: "lab-notebook-formatter",
|
|
1202
1166
|
displayName: "Lab Notebook Formatter",
|
|
1203
1167
|
description: "Format laboratory notebook entries with structured scientific records",
|
|
1204
1168
|
category: "Science & Academic",
|
|
1205
|
-
tags: ["lab", "notebook", "formatting", "science"]
|
|
1169
|
+
tags: ["lab", "notebook", "formatting", "science"]
|
|
1206
1170
|
},
|
|
1207
1171
|
{
|
|
1208
1172
|
name: "latex-table-generator",
|
|
1209
1173
|
displayName: "LaTeX Table Generator",
|
|
1210
1174
|
description: "Generate formatted LaTeX tables from data for academic papers",
|
|
1211
1175
|
category: "Science & Academic",
|
|
1212
|
-
tags: ["latex", "tables", "academic", "formatting"]
|
|
1176
|
+
tags: ["latex", "tables", "academic", "formatting"]
|
|
1213
1177
|
},
|
|
1214
1178
|
{
|
|
1215
1179
|
name: "scientific-figure-check",
|
|
1216
1180
|
displayName: "Scientific Figure Check",
|
|
1217
1181
|
description: "Validate scientific figures for accuracy, formatting, and publication standards",
|
|
1218
1182
|
category: "Science & Academic",
|
|
1219
|
-
tags: ["scientific", "figures", "validation", "publishing"]
|
|
1183
|
+
tags: ["scientific", "figures", "validation", "publishing"]
|
|
1220
1184
|
},
|
|
1221
1185
|
{
|
|
1222
1186
|
name: "statistical-test-selector",
|
|
1223
1187
|
displayName: "Statistical Test Selector",
|
|
1224
1188
|
description: "Recommend appropriate statistical tests based on data and research questions",
|
|
1225
1189
|
category: "Science & Academic",
|
|
1226
|
-
tags: ["statistics", "test-selection", "research", "analysis"]
|
|
1190
|
+
tags: ["statistics", "test-selection", "research", "analysis"]
|
|
1227
1191
|
},
|
|
1228
|
-
|
|
1229
|
-
// Education & Learning
|
|
1230
1192
|
{
|
|
1231
1193
|
name: "classroom-newsletter-kit",
|
|
1232
1194
|
displayName: "Classroom Newsletter Kit",
|
|
1233
1195
|
description: "Create classroom newsletters with templates for teachers and educators",
|
|
1234
1196
|
category: "Education & Learning",
|
|
1235
|
-
tags: ["classroom", "newsletter", "education", "teachers"]
|
|
1197
|
+
tags: ["classroom", "newsletter", "education", "teachers"]
|
|
1236
1198
|
},
|
|
1237
1199
|
{
|
|
1238
1200
|
name: "educational-resource-finder",
|
|
1239
1201
|
displayName: "Educational Resource Finder",
|
|
1240
1202
|
description: "Find educational resources, courses, and learning materials by topic",
|
|
1241
1203
|
category: "Education & Learning",
|
|
1242
|
-
tags: ["education", "resources", "learning", "courses"]
|
|
1204
|
+
tags: ["education", "resources", "learning", "courses"]
|
|
1243
1205
|
},
|
|
1244
1206
|
{
|
|
1245
1207
|
name: "exam-readiness-check",
|
|
1246
1208
|
displayName: "Exam Readiness Check",
|
|
1247
1209
|
description: "Assess exam readiness with practice questions and gap analysis",
|
|
1248
1210
|
category: "Education & Learning",
|
|
1249
|
-
tags: ["exam", "readiness", "assessment", "preparation"]
|
|
1211
|
+
tags: ["exam", "readiness", "assessment", "preparation"]
|
|
1250
1212
|
},
|
|
1251
1213
|
{
|
|
1252
1214
|
name: "field-trip-planner",
|
|
1253
1215
|
displayName: "Field Trip Planner",
|
|
1254
1216
|
description: "Plan educational field trips with logistics, safety, and learning objectives",
|
|
1255
1217
|
category: "Education & Learning",
|
|
1256
|
-
tags: ["field-trip", "education", "planning", "logistics"]
|
|
1218
|
+
tags: ["field-trip", "education", "planning", "logistics"]
|
|
1257
1219
|
},
|
|
1258
1220
|
{
|
|
1259
1221
|
name: "homework-feedback-coach",
|
|
1260
1222
|
displayName: "Homework Feedback Coach",
|
|
1261
1223
|
description: "Provide constructive feedback on homework assignments with improvement suggestions",
|
|
1262
1224
|
category: "Education & Learning",
|
|
1263
|
-
tags: ["homework", "feedback", "coaching", "education"]
|
|
1225
|
+
tags: ["homework", "feedback", "coaching", "education"]
|
|
1264
1226
|
},
|
|
1265
1227
|
{
|
|
1266
1228
|
name: "learning-style-profiler",
|
|
1267
1229
|
displayName: "Learning Style Profiler",
|
|
1268
1230
|
description: "Profile individual learning styles and recommend personalized study strategies",
|
|
1269
1231
|
category: "Education & Learning",
|
|
1270
|
-
tags: ["learning", "profiling", "personalization", "education"]
|
|
1232
|
+
tags: ["learning", "profiling", "personalization", "education"]
|
|
1271
1233
|
},
|
|
1272
1234
|
{
|
|
1273
1235
|
name: "lesson-plan-customizer",
|
|
1274
1236
|
displayName: "Lesson Plan Customizer",
|
|
1275
1237
|
description: "Customize lesson plans for different age groups, subjects, and learning objectives",
|
|
1276
1238
|
category: "Education & Learning",
|
|
1277
|
-
tags: ["lesson-plan", "customization", "teaching", "education"]
|
|
1239
|
+
tags: ["lesson-plan", "customization", "teaching", "education"]
|
|
1278
1240
|
},
|
|
1279
1241
|
{
|
|
1280
1242
|
name: "parent-teacher-brief",
|
|
1281
1243
|
displayName: "Parent Teacher Brief",
|
|
1282
1244
|
description: "Generate parent-teacher conference briefs with student progress summaries",
|
|
1283
1245
|
category: "Education & Learning",
|
|
1284
|
-
tags: ["parent-teacher", "conference", "education", "progress"]
|
|
1246
|
+
tags: ["parent-teacher", "conference", "education", "progress"]
|
|
1285
1247
|
},
|
|
1286
1248
|
{
|
|
1287
1249
|
name: "scholarship-tracker",
|
|
1288
1250
|
displayName: "Scholarship Tracker",
|
|
1289
1251
|
description: "Track scholarship applications, deadlines, and requirements",
|
|
1290
1252
|
category: "Education & Learning",
|
|
1291
|
-
tags: ["scholarship", "tracking", "education", "applications"]
|
|
1253
|
+
tags: ["scholarship", "tracking", "education", "applications"]
|
|
1292
1254
|
},
|
|
1293
1255
|
{
|
|
1294
1256
|
name: "study-guide-builder",
|
|
1295
1257
|
displayName: "Study Guide Builder",
|
|
1296
1258
|
description: "Build comprehensive study guides with summaries, key concepts, and practice questions",
|
|
1297
1259
|
category: "Education & Learning",
|
|
1298
|
-
tags: ["study-guide", "learning", "education", "review"]
|
|
1260
|
+
tags: ["study-guide", "learning", "education", "review"]
|
|
1299
1261
|
},
|
|
1300
|
-
|
|
1301
|
-
// Communication
|
|
1302
1262
|
{
|
|
1303
1263
|
name: "calendar-events",
|
|
1304
1264
|
displayName: "Calendar Events",
|
|
1305
1265
|
description: "Create, manage, and organize calendar events and scheduling",
|
|
1306
1266
|
category: "Communication",
|
|
1307
|
-
tags: ["calendar", "events", "scheduling", "organization"]
|
|
1267
|
+
tags: ["calendar", "events", "scheduling", "organization"]
|
|
1308
1268
|
},
|
|
1309
1269
|
{
|
|
1310
1270
|
name: "gmail",
|
|
1311
1271
|
displayName: "Gmail",
|
|
1312
1272
|
description: "Compose, read, and manage Gmail messages with AI assistance",
|
|
1313
1273
|
category: "Communication",
|
|
1314
|
-
tags: ["email", "gmail", "compose", "management"]
|
|
1274
|
+
tags: ["email", "gmail", "compose", "management"]
|
|
1315
1275
|
},
|
|
1316
1276
|
{
|
|
1317
1277
|
name: "slack-assistant",
|
|
1318
1278
|
displayName: "Slack Assistant",
|
|
1319
1279
|
description: "Automate Slack interactions with message management and channel operations",
|
|
1320
1280
|
category: "Communication",
|
|
1321
|
-
tags: ["slack", "assistant", "automation", "messaging"]
|
|
1281
|
+
tags: ["slack", "assistant", "automation", "messaging"]
|
|
1322
1282
|
},
|
|
1323
1283
|
{
|
|
1324
1284
|
name: "sms",
|
|
1325
1285
|
displayName: "SMS",
|
|
1326
1286
|
description: "Send and receive SMS messages via Twilio",
|
|
1327
1287
|
category: "Communication",
|
|
1328
|
-
tags: ["sms", "twilio", "messaging", "text"]
|
|
1288
|
+
tags: ["sms", "twilio", "messaging", "text"]
|
|
1329
1289
|
},
|
|
1330
|
-
|
|
1331
|
-
// Health & Wellness
|
|
1332
1290
|
{
|
|
1333
1291
|
name: "grocery-basket-optimizer",
|
|
1334
1292
|
displayName: "Grocery Basket Optimizer",
|
|
1335
1293
|
description: "Optimize grocery shopping lists for budget, nutrition, and preferences",
|
|
1336
1294
|
category: "Health & Wellness",
|
|
1337
|
-
tags: ["grocery", "shopping", "optimization", "meal-planning"]
|
|
1295
|
+
tags: ["grocery", "shopping", "optimization", "meal-planning"]
|
|
1338
1296
|
},
|
|
1339
1297
|
{
|
|
1340
1298
|
name: "habit-reflection-digest",
|
|
1341
1299
|
displayName: "Habit Reflection Digest",
|
|
1342
1300
|
description: "Generate habit tracking digests with reflection prompts and insights",
|
|
1343
1301
|
category: "Health & Wellness",
|
|
1344
|
-
tags: ["habits", "reflection", "tracking", "wellness"]
|
|
1302
|
+
tags: ["habits", "reflection", "tracking", "wellness"]
|
|
1345
1303
|
},
|
|
1346
1304
|
{
|
|
1347
1305
|
name: "meal-plan-designer",
|
|
1348
1306
|
displayName: "Meal Plan Designer",
|
|
1349
1307
|
description: "Design weekly meal plans with nutrition, recipes, and shopping lists",
|
|
1350
1308
|
category: "Health & Wellness",
|
|
1351
|
-
tags: ["meal-plan", "nutrition", "recipes", "health"]
|
|
1309
|
+
tags: ["meal-plan", "nutrition", "recipes", "health"]
|
|
1352
1310
|
},
|
|
1353
1311
|
{
|
|
1354
1312
|
name: "mindfulness-prompt-cache",
|
|
1355
1313
|
displayName: "Mindfulness Prompt Cache",
|
|
1356
1314
|
description: "Curate and deliver mindfulness prompts for meditation and relaxation",
|
|
1357
1315
|
category: "Health & Wellness",
|
|
1358
|
-
tags: ["mindfulness", "meditation", "prompts", "wellness"]
|
|
1316
|
+
tags: ["mindfulness", "meditation", "prompts", "wellness"]
|
|
1359
1317
|
},
|
|
1360
1318
|
{
|
|
1361
1319
|
name: "sleep-routine-analyzer",
|
|
1362
1320
|
displayName: "Sleep Routine Analyzer",
|
|
1363
1321
|
description: "Analyze sleep patterns and provide improvement recommendations",
|
|
1364
1322
|
category: "Health & Wellness",
|
|
1365
|
-
tags: ["sleep", "analysis", "routine", "wellness"]
|
|
1323
|
+
tags: ["sleep", "analysis", "routine", "wellness"]
|
|
1366
1324
|
},
|
|
1367
1325
|
{
|
|
1368
1326
|
name: "stress-relief-playbook",
|
|
1369
1327
|
displayName: "Stress Relief Playbook",
|
|
1370
1328
|
description: "Generate personalized stress relief strategies and relaxation techniques",
|
|
1371
1329
|
category: "Health & Wellness",
|
|
1372
|
-
tags: ["stress", "relief", "wellness", "relaxation"]
|
|
1330
|
+
tags: ["stress", "relief", "wellness", "relaxation"]
|
|
1373
1331
|
},
|
|
1374
1332
|
{
|
|
1375
1333
|
name: "wellness-progress-reporter",
|
|
1376
1334
|
displayName: "Wellness Progress Reporter",
|
|
1377
1335
|
description: "Generate wellness progress reports with health metrics and trends",
|
|
1378
1336
|
category: "Health & Wellness",
|
|
1379
|
-
tags: ["wellness", "progress", "reporting", "health"]
|
|
1337
|
+
tags: ["wellness", "progress", "reporting", "health"]
|
|
1380
1338
|
},
|
|
1381
1339
|
{
|
|
1382
1340
|
name: "workout-cycle-planner",
|
|
1383
1341
|
displayName: "Workout Cycle Planner",
|
|
1384
1342
|
description: "Plan workout cycles with periodization, exercises, and progression",
|
|
1385
1343
|
category: "Health & Wellness",
|
|
1386
|
-
tags: ["workout", "planning", "fitness", "exercise"]
|
|
1344
|
+
tags: ["workout", "planning", "fitness", "exercise"]
|
|
1387
1345
|
},
|
|
1388
|
-
|
|
1389
|
-
// Travel & Lifestyle
|
|
1390
1346
|
{
|
|
1391
1347
|
name: "destination-briefing",
|
|
1392
1348
|
displayName: "Destination Briefing",
|
|
1393
1349
|
description: "Create travel destination briefings with local info, tips, and logistics",
|
|
1394
1350
|
category: "Travel & Lifestyle",
|
|
1395
|
-
tags: ["travel", "destination", "briefing", "tourism"]
|
|
1351
|
+
tags: ["travel", "destination", "briefing", "tourism"]
|
|
1396
1352
|
},
|
|
1397
1353
|
{
|
|
1398
1354
|
name: "family-activity-curator",
|
|
1399
1355
|
displayName: "Family Activity Curator",
|
|
1400
1356
|
description: "Curate family-friendly activities based on age, interests, and location",
|
|
1401
1357
|
category: "Travel & Lifestyle",
|
|
1402
|
-
tags: ["family", "activities", "kids", "recreation"]
|
|
1358
|
+
tags: ["family", "activities", "kids", "recreation"]
|
|
1403
1359
|
},
|
|
1404
1360
|
{
|
|
1405
1361
|
name: "household-maintenance-mgr",
|
|
1406
1362
|
displayName: "Household Maintenance Manager",
|
|
1407
1363
|
description: "Track and schedule household maintenance tasks and reminders",
|
|
1408
1364
|
category: "Travel & Lifestyle",
|
|
1409
|
-
tags: ["household", "maintenance", "scheduling", "home"]
|
|
1365
|
+
tags: ["household", "maintenance", "scheduling", "home"]
|
|
1410
1366
|
},
|
|
1411
1367
|
{
|
|
1412
1368
|
name: "itinerary-architect",
|
|
1413
1369
|
displayName: "Itinerary Architect",
|
|
1414
1370
|
description: "Design detailed travel itineraries with activities, timing, and logistics",
|
|
1415
1371
|
category: "Travel & Lifestyle",
|
|
1416
|
-
tags: ["itinerary", "travel", "planning", "logistics"]
|
|
1372
|
+
tags: ["itinerary", "travel", "planning", "logistics"]
|
|
1417
1373
|
},
|
|
1418
1374
|
{
|
|
1419
1375
|
name: "packing-plan-pro",
|
|
1420
1376
|
displayName: "Packing Plan Pro",
|
|
1421
1377
|
description: "Create detailed packing plans for trips with weather-based recommendations",
|
|
1422
1378
|
category: "Travel & Lifestyle",
|
|
1423
|
-
tags: ["packing", "travel", "planning", "checklist"]
|
|
1379
|
+
tags: ["packing", "travel", "planning", "checklist"]
|
|
1424
1380
|
},
|
|
1425
1381
|
{
|
|
1426
1382
|
name: "pet-care-scheduler",
|
|
1427
1383
|
displayName: "Pet Care Scheduler",
|
|
1428
1384
|
description: "Schedule and track pet care activities including feeding, walks, and vet visits",
|
|
1429
1385
|
category: "Travel & Lifestyle",
|
|
1430
|
-
tags: ["pets", "care", "scheduling", "reminders"]
|
|
1386
|
+
tags: ["pets", "care", "scheduling", "reminders"]
|
|
1431
1387
|
},
|
|
1432
1388
|
{
|
|
1433
1389
|
name: "travel-budget-balancer",
|
|
1434
1390
|
displayName: "Travel Budget Balancer",
|
|
1435
1391
|
description: "Balance travel budgets across categories with optimization suggestions",
|
|
1436
1392
|
category: "Travel & Lifestyle",
|
|
1437
|
-
tags: ["travel", "budget", "planning", "optimization"]
|
|
1393
|
+
tags: ["travel", "budget", "planning", "optimization"]
|
|
1438
1394
|
},
|
|
1439
|
-
|
|
1440
|
-
// Event Management
|
|
1441
1395
|
{
|
|
1442
1396
|
name: "guest-communication-suite",
|
|
1443
1397
|
displayName: "Guest Communication Suite",
|
|
1444
1398
|
description: "Manage guest communications for events, hospitality, and venues",
|
|
1445
1399
|
category: "Event Management",
|
|
1446
|
-
tags: ["guest", "communication", "hospitality", "events"]
|
|
1400
|
+
tags: ["guest", "communication", "hospitality", "events"]
|
|
1447
1401
|
},
|
|
1448
1402
|
{
|
|
1449
1403
|
name: "livestream-runofshow",
|
|
1450
1404
|
displayName: "Livestream Run of Show",
|
|
1451
1405
|
description: "Create run-of-show documents for livestream events with timing and cues",
|
|
1452
1406
|
category: "Event Management",
|
|
1453
|
-
tags: ["livestream", "run-of-show", "scheduling", "production"]
|
|
1407
|
+
tags: ["livestream", "run-of-show", "scheduling", "production"]
|
|
1454
1408
|
},
|
|
1455
1409
|
{
|
|
1456
1410
|
name: "onsite-ops-checklist",
|
|
1457
1411
|
displayName: "Onsite Ops Checklist",
|
|
1458
1412
|
description: "Create operational checklists for on-site events and activities",
|
|
1459
1413
|
category: "Event Management",
|
|
1460
|
-
tags: ["onsite", "operations", "checklist", "events"]
|
|
1414
|
+
tags: ["onsite", "operations", "checklist", "events"]
|
|
1461
1415
|
},
|
|
1462
1416
|
{
|
|
1463
1417
|
name: "seating-chart-maker",
|
|
1464
1418
|
displayName: "Seating Chart Maker",
|
|
1465
1419
|
description: "Create seating charts for events, classrooms, and venues",
|
|
1466
1420
|
category: "Event Management",
|
|
1467
|
-
tags: ["seating", "chart", "events", "venues"]
|
|
1468
|
-
}
|
|
1469
|
-
|
|
1421
|
+
tags: ["seating", "chart", "events", "venues"]
|
|
1422
|
+
}
|
|
1470
1423
|
];
|
|
1471
|
-
|
|
1472
|
-
export function getSkillsByCategory(category: Category): SkillMeta[] {
|
|
1424
|
+
function getSkillsByCategory(category) {
|
|
1473
1425
|
return SKILLS.filter((s) => s.category === category);
|
|
1474
1426
|
}
|
|
1427
|
+
function searchSkills(query) {
|
|
1428
|
+
const words = query.toLowerCase().split(/\s+/).filter(Boolean);
|
|
1429
|
+
if (words.length === 0)
|
|
1430
|
+
return [];
|
|
1431
|
+
const scored = [];
|
|
1432
|
+
for (const skill of SKILLS) {
|
|
1433
|
+
const nameLower = skill.name.toLowerCase();
|
|
1434
|
+
const displayNameLower = skill.displayName.toLowerCase();
|
|
1435
|
+
const descriptionLower = skill.description.toLowerCase();
|
|
1436
|
+
const tagsLower = skill.tags.map((t) => t.toLowerCase());
|
|
1437
|
+
let score = 0;
|
|
1438
|
+
let allWordsMatch = true;
|
|
1439
|
+
for (const word of words) {
|
|
1440
|
+
let wordMatched = false;
|
|
1441
|
+
if (nameLower.includes(word)) {
|
|
1442
|
+
score += 10;
|
|
1443
|
+
wordMatched = true;
|
|
1444
|
+
}
|
|
1445
|
+
if (displayNameLower.includes(word)) {
|
|
1446
|
+
score += 7;
|
|
1447
|
+
wordMatched = true;
|
|
1448
|
+
}
|
|
1449
|
+
if (tagsLower.some((t) => t.includes(word))) {
|
|
1450
|
+
score += 5;
|
|
1451
|
+
wordMatched = true;
|
|
1452
|
+
}
|
|
1453
|
+
if (descriptionLower.includes(word)) {
|
|
1454
|
+
score += 2;
|
|
1455
|
+
wordMatched = true;
|
|
1456
|
+
}
|
|
1457
|
+
if (!wordMatched) {
|
|
1458
|
+
allWordsMatch = false;
|
|
1459
|
+
break;
|
|
1460
|
+
}
|
|
1461
|
+
}
|
|
1462
|
+
if (allWordsMatch && score > 0) {
|
|
1463
|
+
scored.push({ skill, score });
|
|
1464
|
+
}
|
|
1465
|
+
}
|
|
1466
|
+
scored.sort((a, b) => b.score - a.score);
|
|
1467
|
+
return scored.map((s) => s.skill);
|
|
1468
|
+
}
|
|
1469
|
+
function getSkill(name) {
|
|
1470
|
+
return SKILLS.find((s) => s.name === name);
|
|
1471
|
+
}
|
|
1472
|
+
// src/lib/installer.ts
|
|
1473
|
+
import { existsSync, cpSync, mkdirSync, writeFileSync, rmSync, readdirSync, statSync, readFileSync } from "fs";
|
|
1474
|
+
import { join, dirname } from "path";
|
|
1475
|
+
import { homedir } from "os";
|
|
1476
|
+
import { fileURLToPath } from "url";
|
|
1475
1477
|
|
|
1476
|
-
|
|
1477
|
-
|
|
1478
|
-
return
|
|
1479
|
-
(s) =>
|
|
1480
|
-
s.name.toLowerCase().includes(q) ||
|
|
1481
|
-
s.displayName.toLowerCase().includes(q) ||
|
|
1482
|
-
s.description.toLowerCase().includes(q) ||
|
|
1483
|
-
s.tags.some((t) => t.includes(q))
|
|
1484
|
-
);
|
|
1478
|
+
// src/lib/utils.ts
|
|
1479
|
+
function normalizeSkillName(name) {
|
|
1480
|
+
return name.startsWith("skill-") ? name : `skill-${name}`;
|
|
1485
1481
|
}
|
|
1486
1482
|
|
|
1487
|
-
|
|
1488
|
-
|
|
1483
|
+
// src/lib/installer.ts
|
|
1484
|
+
var __dirname2 = dirname(fileURLToPath(import.meta.url));
|
|
1485
|
+
function findSkillsDir() {
|
|
1486
|
+
let dir = __dirname2;
|
|
1487
|
+
for (let i = 0;i < 5; i++) {
|
|
1488
|
+
const candidate = join(dir, "skills");
|
|
1489
|
+
if (existsSync(candidate)) {
|
|
1490
|
+
return candidate;
|
|
1491
|
+
}
|
|
1492
|
+
dir = dirname(dir);
|
|
1493
|
+
}
|
|
1494
|
+
return join(__dirname2, "..", "skills");
|
|
1495
|
+
}
|
|
1496
|
+
var SKILLS_DIR = findSkillsDir();
|
|
1497
|
+
function getSkillPath(name) {
|
|
1498
|
+
const skillName = normalizeSkillName(name);
|
|
1499
|
+
return join(SKILLS_DIR, skillName);
|
|
1500
|
+
}
|
|
1501
|
+
function skillExists(name) {
|
|
1502
|
+
return existsSync(getSkillPath(name));
|
|
1503
|
+
}
|
|
1504
|
+
function installSkill(name, options = {}) {
|
|
1505
|
+
const { targetDir = process.cwd(), overwrite = false } = options;
|
|
1506
|
+
const skillName = normalizeSkillName(name);
|
|
1507
|
+
const sourcePath = getSkillPath(name);
|
|
1508
|
+
const destDir = join(targetDir, ".skills");
|
|
1509
|
+
const destPath = join(destDir, skillName);
|
|
1510
|
+
if (!existsSync(sourcePath)) {
|
|
1511
|
+
return {
|
|
1512
|
+
skill: name,
|
|
1513
|
+
success: false,
|
|
1514
|
+
error: `Skill '${name}' not found`
|
|
1515
|
+
};
|
|
1516
|
+
}
|
|
1517
|
+
if (existsSync(destPath) && !overwrite) {
|
|
1518
|
+
return {
|
|
1519
|
+
skill: name,
|
|
1520
|
+
success: false,
|
|
1521
|
+
error: `Already installed. Use --overwrite to replace.`,
|
|
1522
|
+
path: destPath
|
|
1523
|
+
};
|
|
1524
|
+
}
|
|
1525
|
+
try {
|
|
1526
|
+
if (!existsSync(destDir)) {
|
|
1527
|
+
mkdirSync(destDir, { recursive: true });
|
|
1528
|
+
}
|
|
1529
|
+
if (existsSync(destPath) && overwrite) {
|
|
1530
|
+
rmSync(destPath, { recursive: true, force: true });
|
|
1531
|
+
}
|
|
1532
|
+
cpSync(sourcePath, destPath, {
|
|
1533
|
+
recursive: true,
|
|
1534
|
+
filter: (src) => {
|
|
1535
|
+
const rel = src.slice(sourcePath.length);
|
|
1536
|
+
return !rel.includes("/.git") && !rel.includes("/node_modules");
|
|
1537
|
+
}
|
|
1538
|
+
});
|
|
1539
|
+
updateSkillsIndex(destDir);
|
|
1540
|
+
return {
|
|
1541
|
+
skill: name,
|
|
1542
|
+
success: true,
|
|
1543
|
+
path: destPath
|
|
1544
|
+
};
|
|
1545
|
+
} catch (error) {
|
|
1546
|
+
return {
|
|
1547
|
+
skill: name,
|
|
1548
|
+
success: false,
|
|
1549
|
+
error: error instanceof Error ? error.message : "Unknown error"
|
|
1550
|
+
};
|
|
1551
|
+
}
|
|
1552
|
+
}
|
|
1553
|
+
function installSkills(names, options = {}) {
|
|
1554
|
+
return names.map((name) => installSkill(name, options));
|
|
1555
|
+
}
|
|
1556
|
+
function updateSkillsIndex(skillsDir) {
|
|
1557
|
+
const indexPath = join(skillsDir, "index.ts");
|
|
1558
|
+
const skills = readdirSync(skillsDir).filter((f) => f.startsWith("skill-") && !f.includes("."));
|
|
1559
|
+
const exports = skills.map((s) => {
|
|
1560
|
+
const name = s.replace("skill-", "").replace(/-/g, "_");
|
|
1561
|
+
return `export * as ${name} from './${s}/src/index.js';`;
|
|
1562
|
+
}).join(`
|
|
1563
|
+
`);
|
|
1564
|
+
const content = `/**
|
|
1565
|
+
* Auto-generated index of installed skills
|
|
1566
|
+
* Do not edit manually - run 'skills install' to update
|
|
1567
|
+
*/
|
|
1568
|
+
|
|
1569
|
+
${exports}
|
|
1570
|
+
`;
|
|
1571
|
+
writeFileSync(indexPath, content);
|
|
1572
|
+
}
|
|
1573
|
+
function getInstalledSkills(targetDir = process.cwd()) {
|
|
1574
|
+
const skillsDir = join(targetDir, ".skills");
|
|
1575
|
+
if (!existsSync(skillsDir)) {
|
|
1576
|
+
return [];
|
|
1577
|
+
}
|
|
1578
|
+
return readdirSync(skillsDir).filter((f) => {
|
|
1579
|
+
const fullPath = join(skillsDir, f);
|
|
1580
|
+
return f.startsWith("skill-") && statSync(fullPath).isDirectory();
|
|
1581
|
+
}).map((f) => f.replace("skill-", ""));
|
|
1582
|
+
}
|
|
1583
|
+
function removeSkill(name, targetDir = process.cwd()) {
|
|
1584
|
+
const skillName = normalizeSkillName(name);
|
|
1585
|
+
const skillsDir = join(targetDir, ".skills");
|
|
1586
|
+
const skillPath = join(skillsDir, skillName);
|
|
1587
|
+
if (!existsSync(skillPath)) {
|
|
1588
|
+
return false;
|
|
1589
|
+
}
|
|
1590
|
+
rmSync(skillPath, { recursive: true, force: true });
|
|
1591
|
+
updateSkillsIndex(skillsDir);
|
|
1592
|
+
return true;
|
|
1593
|
+
}
|
|
1594
|
+
var AGENT_TARGETS = ["claude", "codex", "gemini"];
|
|
1595
|
+
function getAgentSkillsDir(agent, scope = "global", projectDir) {
|
|
1596
|
+
const agentDir = `.${agent}`;
|
|
1597
|
+
if (scope === "project") {
|
|
1598
|
+
return join(projectDir || process.cwd(), agentDir, "skills");
|
|
1599
|
+
}
|
|
1600
|
+
return join(homedir(), agentDir, "skills");
|
|
1601
|
+
}
|
|
1602
|
+
function getAgentSkillPath(name, agent, scope = "global", projectDir) {
|
|
1603
|
+
const skillName = normalizeSkillName(name);
|
|
1604
|
+
return join(getAgentSkillsDir(agent, scope, projectDir), skillName);
|
|
1605
|
+
}
|
|
1606
|
+
function installSkillForAgent(name, options, generateSkillMd) {
|
|
1607
|
+
const { agent, scope = "global", projectDir } = options;
|
|
1608
|
+
const skillName = normalizeSkillName(name);
|
|
1609
|
+
const sourcePath = getSkillPath(name);
|
|
1610
|
+
if (!existsSync(sourcePath)) {
|
|
1611
|
+
return { skill: name, success: false, error: `Skill '${name}' not found` };
|
|
1612
|
+
}
|
|
1613
|
+
let skillMdContent = null;
|
|
1614
|
+
const skillMdPath = join(sourcePath, "SKILL.md");
|
|
1615
|
+
if (existsSync(skillMdPath)) {
|
|
1616
|
+
skillMdContent = readFileSync(skillMdPath, "utf-8");
|
|
1617
|
+
} else if (generateSkillMd) {
|
|
1618
|
+
skillMdContent = generateSkillMd(name);
|
|
1619
|
+
}
|
|
1620
|
+
if (!skillMdContent) {
|
|
1621
|
+
return { skill: name, success: false, error: `No SKILL.md found and could not generate one for '${name}'` };
|
|
1622
|
+
}
|
|
1623
|
+
const destDir = getAgentSkillPath(name, agent, scope, projectDir);
|
|
1624
|
+
try {
|
|
1625
|
+
mkdirSync(destDir, { recursive: true });
|
|
1626
|
+
writeFileSync(join(destDir, "SKILL.md"), skillMdContent);
|
|
1627
|
+
return { skill: name, success: true, path: destDir };
|
|
1628
|
+
} catch (error) {
|
|
1629
|
+
return {
|
|
1630
|
+
skill: name,
|
|
1631
|
+
success: false,
|
|
1632
|
+
error: error instanceof Error ? error.message : "Unknown error"
|
|
1633
|
+
};
|
|
1634
|
+
}
|
|
1635
|
+
}
|
|
1636
|
+
function removeSkillForAgent(name, options) {
|
|
1637
|
+
const { agent, scope = "global", projectDir } = options;
|
|
1638
|
+
const destDir = getAgentSkillPath(name, agent, scope, projectDir);
|
|
1639
|
+
if (!existsSync(destDir)) {
|
|
1640
|
+
return false;
|
|
1641
|
+
}
|
|
1642
|
+
rmSync(destDir, { recursive: true, force: true });
|
|
1643
|
+
return true;
|
|
1644
|
+
}
|
|
1645
|
+
// src/lib/skillinfo.ts
|
|
1646
|
+
import { existsSync as existsSync2, readFileSync as readFileSync2, readdirSync as readdirSync2 } from "fs";
|
|
1647
|
+
import { join as join2 } from "path";
|
|
1648
|
+
function getSkillDocs(name) {
|
|
1649
|
+
const skillPath = getSkillPath(name);
|
|
1650
|
+
if (!existsSync2(skillPath))
|
|
1651
|
+
return null;
|
|
1652
|
+
return {
|
|
1653
|
+
skillMd: readIfExists(join2(skillPath, "SKILL.md")),
|
|
1654
|
+
readme: readIfExists(join2(skillPath, "README.md")),
|
|
1655
|
+
claudeMd: readIfExists(join2(skillPath, "CLAUDE.md"))
|
|
1656
|
+
};
|
|
1657
|
+
}
|
|
1658
|
+
function getSkillBestDoc(name) {
|
|
1659
|
+
const docs = getSkillDocs(name);
|
|
1660
|
+
if (!docs)
|
|
1661
|
+
return null;
|
|
1662
|
+
return docs.skillMd || docs.readme || docs.claudeMd || null;
|
|
1663
|
+
}
|
|
1664
|
+
function getSkillRequirements(name) {
|
|
1665
|
+
const skillPath = getSkillPath(name);
|
|
1666
|
+
if (!existsSync2(skillPath))
|
|
1667
|
+
return null;
|
|
1668
|
+
const texts = [];
|
|
1669
|
+
for (const file of ["SKILL.md", "README.md", "CLAUDE.md", ".env.example", ".env.local.example"]) {
|
|
1670
|
+
const content = readIfExists(join2(skillPath, file));
|
|
1671
|
+
if (content)
|
|
1672
|
+
texts.push(content);
|
|
1673
|
+
}
|
|
1674
|
+
const allText = texts.join(`
|
|
1675
|
+
`);
|
|
1676
|
+
const envVars = extractEnvVars(allText);
|
|
1677
|
+
const systemDeps = new Set;
|
|
1678
|
+
const depPatterns = [
|
|
1679
|
+
[/\bffmpeg\b/i, "ffmpeg"],
|
|
1680
|
+
[/\bplaywright\b/i, "playwright"],
|
|
1681
|
+
[/\bchromium\b/i, "chromium"],
|
|
1682
|
+
[/\bpuppeteer\b/i, "puppeteer"],
|
|
1683
|
+
[/\bpython3?\b/i, "python"],
|
|
1684
|
+
[/\bdocker\b/i, "docker"],
|
|
1685
|
+
[/\bpandoc\b/i, "pandoc"],
|
|
1686
|
+
[/\bimageMagick\b|imagemagick|\bconvert\b.*image/i, "imagemagick"],
|
|
1687
|
+
[/\bwkhtmltopdf\b/i, "wkhtmltopdf"],
|
|
1688
|
+
[/\bgit\b(?! ?(hub|lab|ignore))/i, "git"]
|
|
1689
|
+
];
|
|
1690
|
+
for (const [pattern, dep] of depPatterns) {
|
|
1691
|
+
if (pattern.test(allText)) {
|
|
1692
|
+
systemDeps.add(dep);
|
|
1693
|
+
}
|
|
1694
|
+
}
|
|
1695
|
+
let cliCommand = null;
|
|
1696
|
+
let dependencies = {};
|
|
1697
|
+
const pkgPath = join2(skillPath, "package.json");
|
|
1698
|
+
if (existsSync2(pkgPath)) {
|
|
1699
|
+
try {
|
|
1700
|
+
const pkg = JSON.parse(readFileSync2(pkgPath, "utf-8"));
|
|
1701
|
+
if (pkg.bin) {
|
|
1702
|
+
const binKeys = Object.keys(pkg.bin);
|
|
1703
|
+
if (binKeys.length > 0)
|
|
1704
|
+
cliCommand = binKeys[0];
|
|
1705
|
+
}
|
|
1706
|
+
dependencies = pkg.dependencies || {};
|
|
1707
|
+
} catch {}
|
|
1708
|
+
}
|
|
1709
|
+
return {
|
|
1710
|
+
envVars: Array.from(envVars).sort(),
|
|
1711
|
+
systemDeps: Array.from(systemDeps).sort(),
|
|
1712
|
+
cliCommand,
|
|
1713
|
+
dependencies
|
|
1714
|
+
};
|
|
1715
|
+
}
|
|
1716
|
+
async function runSkill(name, args, options = {}) {
|
|
1717
|
+
const skillName = normalizeSkillName(name);
|
|
1718
|
+
let skillPath;
|
|
1719
|
+
if (options.installed) {
|
|
1720
|
+
skillPath = join2(process.cwd(), ".skills", skillName);
|
|
1721
|
+
} else {
|
|
1722
|
+
const installedPath = join2(process.cwd(), ".skills", skillName);
|
|
1723
|
+
if (existsSync2(installedPath)) {
|
|
1724
|
+
skillPath = installedPath;
|
|
1725
|
+
} else {
|
|
1726
|
+
skillPath = getSkillPath(name);
|
|
1727
|
+
}
|
|
1728
|
+
}
|
|
1729
|
+
if (!existsSync2(skillPath)) {
|
|
1730
|
+
return { exitCode: 1, error: `Skill '${name}' not found` };
|
|
1731
|
+
}
|
|
1732
|
+
const pkgPath = join2(skillPath, "package.json");
|
|
1733
|
+
if (!existsSync2(pkgPath)) {
|
|
1734
|
+
return { exitCode: 1, error: `No package.json in skill '${name}'` };
|
|
1735
|
+
}
|
|
1736
|
+
let entryPoint;
|
|
1737
|
+
try {
|
|
1738
|
+
const pkg = JSON.parse(readFileSync2(pkgPath, "utf-8"));
|
|
1739
|
+
if (pkg.bin) {
|
|
1740
|
+
const binValues = Object.values(pkg.bin);
|
|
1741
|
+
entryPoint = binValues[0];
|
|
1742
|
+
} else if (pkg.scripts?.dev) {
|
|
1743
|
+
const devScript = pkg.scripts.dev;
|
|
1744
|
+
const match = devScript.match(/(?:bun\s+run\s+)(.+)/);
|
|
1745
|
+
entryPoint = match ? match[1] : "bin/cli.ts";
|
|
1746
|
+
} else {
|
|
1747
|
+
entryPoint = "bin/cli.ts";
|
|
1748
|
+
}
|
|
1749
|
+
} catch {
|
|
1750
|
+
return { exitCode: 1, error: `Failed to parse package.json for skill '${name}'` };
|
|
1751
|
+
}
|
|
1752
|
+
const entryPath = join2(skillPath, entryPoint);
|
|
1753
|
+
if (!existsSync2(entryPath)) {
|
|
1754
|
+
return { exitCode: 1, error: `Entry point '${entryPoint}' not found in skill '${name}'` };
|
|
1755
|
+
}
|
|
1756
|
+
const nodeModules = join2(skillPath, "node_modules");
|
|
1757
|
+
if (!existsSync2(nodeModules)) {
|
|
1758
|
+
const install = Bun.spawn(["bun", "install", "--no-save"], {
|
|
1759
|
+
cwd: skillPath,
|
|
1760
|
+
stdout: "pipe",
|
|
1761
|
+
stderr: "pipe"
|
|
1762
|
+
});
|
|
1763
|
+
await install.exited;
|
|
1764
|
+
}
|
|
1765
|
+
const proc = Bun.spawn(["bun", "run", entryPath, ...args], {
|
|
1766
|
+
cwd: skillPath,
|
|
1767
|
+
stdout: "inherit",
|
|
1768
|
+
stderr: "inherit",
|
|
1769
|
+
stdin: "inherit"
|
|
1770
|
+
});
|
|
1771
|
+
const exitCode = await proc.exited;
|
|
1772
|
+
return { exitCode };
|
|
1773
|
+
}
|
|
1774
|
+
function generateEnvExample(targetDir = process.cwd()) {
|
|
1775
|
+
const skillsDir = join2(targetDir, ".skills");
|
|
1776
|
+
if (!existsSync2(skillsDir))
|
|
1777
|
+
return "";
|
|
1778
|
+
const dirs = readdirSync2(skillsDir).filter((f) => f.startsWith("skill-") && existsSync2(join2(skillsDir, f, "package.json")));
|
|
1779
|
+
const envMap = new Map;
|
|
1780
|
+
for (const dir of dirs) {
|
|
1781
|
+
const skillName = dir.replace("skill-", "");
|
|
1782
|
+
const skillPath = join2(skillsDir, dir);
|
|
1783
|
+
const texts = [];
|
|
1784
|
+
for (const file of ["SKILL.md", "README.md", "CLAUDE.md", ".env.example"]) {
|
|
1785
|
+
const content = readIfExists(join2(skillPath, file));
|
|
1786
|
+
if (content)
|
|
1787
|
+
texts.push(content);
|
|
1788
|
+
}
|
|
1789
|
+
const allText = texts.join(`
|
|
1790
|
+
`);
|
|
1791
|
+
const foundVars = extractEnvVars(allText);
|
|
1792
|
+
for (const envVar of foundVars) {
|
|
1793
|
+
if (!envMap.has(envVar)) {
|
|
1794
|
+
envMap.set(envVar, []);
|
|
1795
|
+
}
|
|
1796
|
+
if (!envMap.get(envVar).includes(skillName)) {
|
|
1797
|
+
envMap.get(envVar).push(skillName);
|
|
1798
|
+
}
|
|
1799
|
+
}
|
|
1800
|
+
}
|
|
1801
|
+
if (envMap.size === 0)
|
|
1802
|
+
return "";
|
|
1803
|
+
const lines = [
|
|
1804
|
+
"# Environment variables for installed skills",
|
|
1805
|
+
"# Auto-generated by: skills init",
|
|
1806
|
+
""
|
|
1807
|
+
];
|
|
1808
|
+
const sorted = Array.from(envMap.entries()).sort(([a], [b]) => a.localeCompare(b));
|
|
1809
|
+
let lastPrefix = "";
|
|
1810
|
+
for (const [envVar, skills] of sorted) {
|
|
1811
|
+
const prefix = envVar.split("_")[0];
|
|
1812
|
+
if (prefix !== lastPrefix) {
|
|
1813
|
+
if (lastPrefix)
|
|
1814
|
+
lines.push("");
|
|
1815
|
+
lines.push(`# ${prefix}`);
|
|
1816
|
+
lastPrefix = prefix;
|
|
1817
|
+
}
|
|
1818
|
+
lines.push(`# Used by: ${skills.join(", ")}`);
|
|
1819
|
+
lines.push(`${envVar}=`);
|
|
1820
|
+
}
|
|
1821
|
+
return lines.join(`
|
|
1822
|
+
`) + `
|
|
1823
|
+
`;
|
|
1824
|
+
}
|
|
1825
|
+
function generateSkillMd(name) {
|
|
1826
|
+
const meta = getSkill(name);
|
|
1827
|
+
if (!meta)
|
|
1828
|
+
return null;
|
|
1829
|
+
const skillPath = getSkillPath(name);
|
|
1830
|
+
if (!existsSync2(skillPath))
|
|
1831
|
+
return null;
|
|
1832
|
+
const frontmatter = [
|
|
1833
|
+
"---",
|
|
1834
|
+
`name: ${meta.name}`,
|
|
1835
|
+
`description: ${meta.description}`,
|
|
1836
|
+
"---"
|
|
1837
|
+
].join(`
|
|
1838
|
+
`);
|
|
1839
|
+
const readme = readIfExists(join2(skillPath, "README.md"));
|
|
1840
|
+
const claudeMd = readIfExists(join2(skillPath, "CLAUDE.md"));
|
|
1841
|
+
let cliCommand = null;
|
|
1842
|
+
const pkgPath = join2(skillPath, "package.json");
|
|
1843
|
+
if (existsSync2(pkgPath)) {
|
|
1844
|
+
try {
|
|
1845
|
+
const pkg = JSON.parse(readFileSync2(pkgPath, "utf-8"));
|
|
1846
|
+
if (pkg.bin) {
|
|
1847
|
+
const binKeys = Object.keys(pkg.bin);
|
|
1848
|
+
if (binKeys.length > 0)
|
|
1849
|
+
cliCommand = binKeys[0];
|
|
1850
|
+
}
|
|
1851
|
+
} catch {}
|
|
1852
|
+
}
|
|
1853
|
+
const sections = [];
|
|
1854
|
+
sections.push(`# ${meta.displayName}`);
|
|
1855
|
+
sections.push("");
|
|
1856
|
+
sections.push(meta.description);
|
|
1857
|
+
if (readme) {
|
|
1858
|
+
const lines = readme.split(`
|
|
1859
|
+
`);
|
|
1860
|
+
let startIdx = 0;
|
|
1861
|
+
if (lines[0]?.startsWith("# ")) {
|
|
1862
|
+
startIdx = 1;
|
|
1863
|
+
if (lines[1]?.trim() === "")
|
|
1864
|
+
startIdx = 2;
|
|
1865
|
+
}
|
|
1866
|
+
const body = lines.slice(startIdx).join(`
|
|
1867
|
+
`).trim();
|
|
1868
|
+
if (body) {
|
|
1869
|
+
sections.push("");
|
|
1870
|
+
sections.push(body);
|
|
1871
|
+
}
|
|
1872
|
+
} else if (claudeMd) {
|
|
1873
|
+
const lines = claudeMd.split(`
|
|
1874
|
+
`);
|
|
1875
|
+
let startIdx = 0;
|
|
1876
|
+
if (lines[0]?.startsWith("# ")) {
|
|
1877
|
+
startIdx = 1;
|
|
1878
|
+
if (lines[1]?.trim() === "")
|
|
1879
|
+
startIdx = 2;
|
|
1880
|
+
}
|
|
1881
|
+
const body = lines.slice(startIdx).join(`
|
|
1882
|
+
`).trim();
|
|
1883
|
+
if (body) {
|
|
1884
|
+
sections.push("");
|
|
1885
|
+
sections.push(body);
|
|
1886
|
+
}
|
|
1887
|
+
}
|
|
1888
|
+
if (cliCommand) {
|
|
1889
|
+
sections.push("");
|
|
1890
|
+
sections.push("## CLI");
|
|
1891
|
+
sections.push("");
|
|
1892
|
+
sections.push("```bash");
|
|
1893
|
+
sections.push(`skills run ${meta.name}`);
|
|
1894
|
+
sections.push("```");
|
|
1895
|
+
}
|
|
1896
|
+
sections.push("");
|
|
1897
|
+
sections.push(`Category: ${meta.category}`);
|
|
1898
|
+
sections.push(`Tags: ${meta.tags.join(", ")}`);
|
|
1899
|
+
return frontmatter + `
|
|
1900
|
+
|
|
1901
|
+
` + sections.join(`
|
|
1902
|
+
`) + `
|
|
1903
|
+
`;
|
|
1904
|
+
}
|
|
1905
|
+
var ENV_VAR_PATTERN = /\b([A-Z][A-Z0-9_]{2,}(?:_API_KEY|_KEY|_TOKEN|_SECRET|_URL|_ID|_PASSWORD|_ENDPOINT|_REGION|_BUCKET))\b/g;
|
|
1906
|
+
var GENERIC_ENV_PATTERN = /\b((?:OPENAI|ANTHROPIC|GEMINI|XAI|ELEVENLABS|DEEPGRAM|REPLICATE|FAL|STABILITY|EXA|FIRECRAWL|TWILIO|SENDGRID|RESEND|SLACK|DISCORD|NOTION|LINEAR|GITHUB|AWS|GOOGLE|CLOUDFLARE|VERCEL|SUPABASE|STRIPE)_[A-Z_]+)\b/g;
|
|
1907
|
+
function extractEnvVars(text) {
|
|
1908
|
+
const envVars = new Set;
|
|
1909
|
+
for (const pattern of [ENV_VAR_PATTERN, GENERIC_ENV_PATTERN]) {
|
|
1910
|
+
pattern.lastIndex = 0;
|
|
1911
|
+
let match;
|
|
1912
|
+
while ((match = pattern.exec(text)) !== null) {
|
|
1913
|
+
envVars.add(match[1]);
|
|
1914
|
+
}
|
|
1915
|
+
}
|
|
1916
|
+
return envVars;
|
|
1917
|
+
}
|
|
1918
|
+
function readIfExists(path) {
|
|
1919
|
+
try {
|
|
1920
|
+
if (existsSync2(path)) {
|
|
1921
|
+
return readFileSync2(path, "utf-8");
|
|
1922
|
+
}
|
|
1923
|
+
} catch {}
|
|
1924
|
+
return null;
|
|
1489
1925
|
}
|
|
1926
|
+
export {
|
|
1927
|
+
skillExists,
|
|
1928
|
+
searchSkills,
|
|
1929
|
+
runSkill,
|
|
1930
|
+
removeSkillForAgent,
|
|
1931
|
+
removeSkill,
|
|
1932
|
+
installSkills,
|
|
1933
|
+
installSkillForAgent,
|
|
1934
|
+
installSkill,
|
|
1935
|
+
getSkillsByCategory,
|
|
1936
|
+
getSkillRequirements,
|
|
1937
|
+
getSkillPath,
|
|
1938
|
+
getSkillDocs,
|
|
1939
|
+
getSkillBestDoc,
|
|
1940
|
+
getSkill,
|
|
1941
|
+
getInstalledSkills,
|
|
1942
|
+
getAgentSkillsDir,
|
|
1943
|
+
getAgentSkillPath,
|
|
1944
|
+
generateSkillMd,
|
|
1945
|
+
generateEnvExample,
|
|
1946
|
+
SKILLS,
|
|
1947
|
+
CATEGORIES,
|
|
1948
|
+
AGENT_TARGETS
|
|
1949
|
+
};
|