@hasna/skills 0.1.29 → 0.1.30

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.
Files changed (186) hide show
  1. package/bin/mcp.js +9 -9
  2. package/dist/mcp/http.d.ts +2 -1
  3. package/package.json +1 -1
  4. package/skills/skill-academic-journal-matcher/bin/cli.ts +34 -0
  5. package/skills/skill-action-item-router/bin/cli.ts +34 -0
  6. package/skills/skill-ad-creative-generator/bin/cli.ts +34 -0
  7. package/skills/skill-advanced-math/bin/cli.ts +34 -0
  8. package/skills/skill-analyze-data/bin/cli.ts +19 -0
  9. package/skills/skill-anomaly-investigator/bin/cli.ts +34 -0
  10. package/skills/skill-api-test-suite/bin/cli.ts +34 -0
  11. package/skills/skill-apidocs/bin/cli.ts +87 -0
  12. package/skills/skill-audio-cleanup-lab/bin/cli.ts +6 -0
  13. package/skills/skill-audiobook-chapter-proofer/bin/cli.ts +34 -0
  14. package/skills/skill-banner-ad-suite/bin/cli.ts +34 -0
  15. package/skills/skill-benchmark-finder/bin/cli.ts +34 -0
  16. package/skills/skill-bio-sequence-tool/bin/cli.ts +34 -0
  17. package/skills/skill-blog-topic-cluster/bin/cli.ts +34 -0
  18. package/skills/skill-brand-style-guide/bin/cli.ts +19 -0
  19. package/skills/skill-brand-voice-audit/bin/cli.ts +34 -0
  20. package/skills/skill-budget-variance-analyzer/bin/cli.ts +6 -0
  21. package/skills/skill-businessactivity/bin/cli.ts +28 -0
  22. package/skills/skill-calendar-events/bin/cli.ts +34 -0
  23. package/skills/skill-campaign-metric-brief/bin/cli.ts +34 -0
  24. package/skills/skill-campaign-moodboard/bin/cli.ts +34 -0
  25. package/skills/skill-caption-style-stylist/bin/cli.ts +34 -0
  26. package/skills/skill-chemistry-calculator/bin/cli.ts +34 -0
  27. package/skills/skill-churn-risk-notifier/bin/cli.ts +34 -0
  28. package/skills/skill-citation-formatter/bin/cli.ts +34 -0
  29. package/skills/skill-classroom-newsletter-kit/bin/cli.ts +34 -0
  30. package/skills/skill-color-palette-harmonizer/bin/cli.ts +34 -0
  31. package/skills/skill-competitor-ad-analyzer/bin/cli.ts +34 -0
  32. package/skills/skill-compliance-copy-check/bin/cli.ts +34 -0
  33. package/skills/skill-compliance-report-pack/bin/cli.ts +34 -0
  34. package/skills/skill-compress-video/bin/cli.ts +19 -0
  35. package/skills/skill-consolelog/bin/cli.ts +884 -0
  36. package/skills/skill-contract-plainlanguage/bin/cli.ts +34 -0
  37. package/skills/skill-copytone-translator/bin/cli.ts +34 -0
  38. package/skills/skill-create-blog-article/bin/cli.ts +34 -0
  39. package/skills/skill-create-ebook/bin/cli.ts +34 -0
  40. package/skills/skill-crm-note-enhancer/bin/cli.ts +34 -0
  41. package/skills/skill-customer-journey-mapper/bin/cli.ts +34 -0
  42. package/skills/skill-dashboard-builder/bin/cli.ts +34 -0
  43. package/skills/skill-dashboard-narrator/bin/cli.ts +34 -0
  44. package/skills/skill-data-anonymizer/bin/cli.ts +34 -0
  45. package/skills/skill-database-explorer/bin/cli.ts +34 -0
  46. package/skills/skill-dataset-health-check/bin/cli.ts +34 -0
  47. package/skills/skill-decision-journal/bin/cli.ts +34 -0
  48. package/skills/skill-delegation-brief-writer/bin/cli.ts +34 -0
  49. package/skills/skill-destination-briefing/bin/cli.ts +34 -0
  50. package/skills/skill-diff-viewer/bin/cli.ts +34 -0
  51. package/skills/skill-domainpurchase/bin/cli.ts +683 -0
  52. package/skills/skill-domainsearch/bin/cli.ts +410 -0
  53. package/skills/skill-educational-resource-finder/bin/cli.ts +34 -0
  54. package/skills/skill-email-campaign/bin/cli.ts +34 -0
  55. package/skills/skill-exam-readiness-check/bin/cli.ts +34 -0
  56. package/skills/skill-experiment-power-calculator/bin/cli.ts +34 -0
  57. package/skills/skill-extract-audio/bin/cli.ts +19 -0
  58. package/skills/skill-extract-frames/bin/cli.ts +34 -0
  59. package/skills/skill-extract-invoice/bin/cli.ts +34 -0
  60. package/skills/skill-family-activity-curator/bin/cli.ts +34 -0
  61. package/skills/skill-faq-packager/bin/cli.ts +34 -0
  62. package/skills/skill-feedback-survey-designer/bin/cli.ts +34 -0
  63. package/skills/skill-field-trip-planner/bin/cli.ts +34 -0
  64. package/skills/skill-file-organizer/bin/cli.ts +34 -0
  65. package/skills/skill-folder-tree/bin/cli.ts +34 -0
  66. package/skills/skill-forecast-scenario-lab/bin/cli.ts +34 -0
  67. package/skills/skill-form-filler/bin/cli.ts +34 -0
  68. package/skills/skill-generate-api-client/bin/cli.ts +34 -0
  69. package/skills/skill-generate-book-cover/bin/cli.ts +34 -0
  70. package/skills/skill-generate-chart/bin/cli.ts +34 -0
  71. package/skills/skill-generate-diagram/bin/cli.ts +34 -0
  72. package/skills/skill-generate-dockerfile/bin/cli.ts +34 -0
  73. package/skills/skill-generate-documentation/bin/cli.ts +34 -0
  74. package/skills/skill-generate-docx/bin/cli.ts +6 -0
  75. package/skills/skill-generate-env/bin/cli.ts +34 -0
  76. package/skills/skill-generate-excel/bin/cli.ts +34 -0
  77. package/skills/skill-generate-favicon/bin/cli.ts +34 -0
  78. package/skills/skill-generate-mock-data/bin/cli.ts +34 -0
  79. package/skills/skill-generate-pdf/bin/cli.ts +6 -0
  80. package/skills/skill-generate-pr-description/bin/cli.ts +34 -0
  81. package/skills/skill-generate-presentation/bin/cli.ts +34 -0
  82. package/skills/skill-generate-qrcode/bin/cli.ts +34 -0
  83. package/skills/skill-generate-regex/bin/cli.ts +34 -0
  84. package/skills/skill-generate-resume/bin/cli.ts +34 -0
  85. package/skills/skill-generate-sitemap/bin/cli.ts +34 -0
  86. package/skills/skill-generate-social-posts/bin/cli.ts +34 -0
  87. package/skills/skill-generate-sql/bin/cli.ts +34 -0
  88. package/skills/skill-gif-maker/bin/cli.ts +34 -0
  89. package/skills/skill-github-manager/bin/cli.ts +34 -0
  90. package/skills/skill-gmail/bin/cli.ts +34 -0
  91. package/skills/skill-goal-quarterly-roadmap/bin/cli.ts +34 -0
  92. package/skills/skill-grant-application-drafter/bin/cli.ts +34 -0
  93. package/skills/skill-grocery-basket-optimizer/bin/cli.ts +34 -0
  94. package/skills/skill-guest-communication-suite/bin/cli.ts +34 -0
  95. package/skills/skill-habit-reflection-digest/bin/cli.ts +34 -0
  96. package/skills/skill-highlight-reel-generator/bin/cli.ts +34 -0
  97. package/skills/skill-homework-feedback-coach/bin/cli.ts +34 -0
  98. package/skills/skill-household-maintenance-mgr/bin/cli.ts +34 -0
  99. package/skills/skill-http-server/bin/cli.ts +34 -0
  100. package/skills/skill-implementation-agent/bin/cli.ts +34 -0
  101. package/skills/skill-implementation-plan/bin/cli.ts +34 -0
  102. package/skills/skill-implementation-todo/bin/cli.ts +34 -0
  103. package/skills/skill-inbox-priority-planner/bin/cli.ts +34 -0
  104. package/skills/skill-invoice/bin/cli.ts +20 -0
  105. package/skills/skill-invoice-dispute-helper/bin/cli.ts +34 -0
  106. package/skills/skill-itinerary-architect/bin/cli.ts +34 -0
  107. package/skills/skill-jingle-composer/bin/cli.ts +34 -0
  108. package/skills/skill-kpi-digest-generator/bin/cli.ts +34 -0
  109. package/skills/skill-lab-notebook-formatter/bin/cli.ts +34 -0
  110. package/skills/skill-landing-page-copy/bin/cli.ts +34 -0
  111. package/skills/skill-latex-table-generator/bin/cli.ts +34 -0
  112. package/skills/skill-learning-style-profiler/bin/cli.ts +34 -0
  113. package/skills/skill-lesson-plan-customizer/bin/cli.ts +34 -0
  114. package/skills/skill-livestream-runofshow/bin/cli.ts +34 -0
  115. package/skills/skill-longform-structurer/bin/cli.ts +34 -0
  116. package/skills/skill-lorem-generator/bin/cli.ts +34 -0
  117. package/skills/skill-managehook/bin/cli.ts +241 -0
  118. package/skills/skill-managemcp/bin/cli.ts +241 -0
  119. package/skills/skill-manageskill/bin/cli.ts +241 -0
  120. package/skills/skill-markdown-validator/bin/cli.ts +34 -0
  121. package/skills/skill-mcp-builder/bin/cli.ts +34 -0
  122. package/skills/skill-meal-plan-designer/bin/cli.ts +34 -0
  123. package/skills/skill-meeting-insight-summarizer/bin/cli.ts +34 -0
  124. package/skills/skill-merge-pdfs/bin/cli.ts +34 -0
  125. package/skills/skill-microcopy-generator/bin/cli.ts +34 -0
  126. package/skills/skill-mindfulness-prompt-cache/bin/cli.ts +34 -0
  127. package/skills/skill-notion-manager/bin/cli.ts +34 -0
  128. package/skills/skill-onboarding-sequence-builder/bin/cli.ts +34 -0
  129. package/skills/skill-onsite-ops-checklist/bin/cli.ts +34 -0
  130. package/skills/skill-outreach-cadence-designer/bin/cli.ts +34 -0
  131. package/skills/skill-packaging-concept-studio/bin/cli.ts +34 -0
  132. package/skills/skill-packing-plan-pro/bin/cli.ts +34 -0
  133. package/skills/skill-parent-teacher-brief/bin/cli.ts +34 -0
  134. package/skills/skill-partner-kit-assembler/bin/cli.ts +34 -0
  135. package/skills/skill-payroll-change-prepper/bin/cli.ts +34 -0
  136. package/skills/skill-persona-based-adwriter/bin/cli.ts +34 -0
  137. package/skills/skill-persona-generator/bin/cli.ts +34 -0
  138. package/skills/skill-personal-daily-ops/bin/cli.ts +34 -0
  139. package/skills/skill-pet-care-scheduler/bin/cli.ts +34 -0
  140. package/skills/skill-podcast-show-notes/bin/cli.ts +34 -0
  141. package/skills/skill-presentation-theme-maker/bin/cli.ts +34 -0
  142. package/skills/skill-press-release-drafter/bin/cli.ts +34 -0
  143. package/skills/skill-print-collateral-designer/bin/cli.ts +34 -0
  144. package/skills/skill-procurement-scorecard/bin/cli.ts +34 -0
  145. package/skills/skill-product-demo-script/bin/cli.ts +34 -0
  146. package/skills/skill-product-mockup/bin/cli.ts +34 -0
  147. package/skills/skill-project-retro-companion/bin/cli.ts +34 -0
  148. package/skills/skill-proposal-redline-advisor/bin/cli.ts +34 -0
  149. package/skills/skill-regex-tester/bin/cli.ts +34 -0
  150. package/skills/skill-remove-background/bin/cli.ts +34 -0
  151. package/skills/skill-risk-disclosure-kit/bin/cli.ts +34 -0
  152. package/skills/skill-roi-comparison-tool/bin/cli.ts +34 -0
  153. package/skills/skill-sales-call-recapper/bin/cli.ts +34 -0
  154. package/skills/skill-salescopy/bin/cli.ts +20 -0
  155. package/skills/skill-scaffold-project/bin/cli.ts +34 -0
  156. package/skills/skill-scholarship-tracker/bin/cli.ts +34 -0
  157. package/skills/skill-scientific-figure-check/bin/cli.ts +34 -0
  158. package/skills/skill-seating-chart-maker/bin/cli.ts +34 -0
  159. package/skills/skill-security-audit/bin/cli.ts +34 -0
  160. package/skills/skill-seo-brief-builder/bin/cli.ts +34 -0
  161. package/skills/skill-slack-assistant/bin/cli.ts +34 -0
  162. package/skills/skill-sleep-routine-analyzer/bin/cli.ts +34 -0
  163. package/skills/skill-social-media-kit/bin/cli.ts +34 -0
  164. package/skills/skill-split-pdf/bin/cli.ts +34 -0
  165. package/skills/skill-sponsorship-proposal-lab/bin/cli.ts +34 -0
  166. package/skills/skill-spreadsheet-cleanroom/bin/cli.ts +34 -0
  167. package/skills/skill-statistical-test-selector/bin/cli.ts +34 -0
  168. package/skills/skill-stress-relief-playbook/bin/cli.ts +34 -0
  169. package/skills/skill-study-guide-builder/bin/cli.ts +34 -0
  170. package/skills/skill-subscription-spend-watcher/bin/cli.ts +34 -0
  171. package/skills/skill-subtitle/bin/cli.ts +20 -0
  172. package/skills/skill-survey-insight-extractor/bin/cli.ts +34 -0
  173. package/skills/skill-terraform-generator/bin/cli.ts +34 -0
  174. package/skills/skill-testimonial-graphics/bin/cli.ts +34 -0
  175. package/skills/skill-timesheet/bin/cli.ts +47 -0
  176. package/skills/skill-travel-budget-balancer/bin/cli.ts +34 -0
  177. package/skills/skill-validate-config/bin/cli.ts +34 -0
  178. package/skills/skill-video-cut-suggester/bin/cli.ts +34 -0
  179. package/skills/skill-video-downloader/bin/cli.ts +34 -0
  180. package/skills/skill-video-thumbnail/bin/cli.ts +34 -0
  181. package/skills/skill-voiceover-casting-assistant/bin/cli.ts +34 -0
  182. package/skills/skill-watermark/bin/cli.ts +34 -0
  183. package/skills/skill-webcrawling/bin/cli.ts +21 -0
  184. package/skills/skill-webinar-script-coach/bin/cli.ts +34 -0
  185. package/skills/skill-wellness-progress-reporter/bin/cli.ts +34 -0
  186. package/skills/skill-workout-cycle-planner/bin/cli.ts +34 -0
package/bin/mcp.js CHANGED
@@ -45375,10 +45375,10 @@ class StreamableHTTPServerTransport {
45375
45375
  }
45376
45376
 
45377
45377
  // src/mcp/http.ts
45378
- var MCP_HTTP_DEFAULT_PORT = 8836;
45378
+ var MCP_HTTP_DEFAULT_PORT = 8879;
45379
45379
  var MCP_HTTP_SERVICE_NAME = "skills";
45380
- function isMcpHttpMode(argv = process.argv.slice(2)) {
45381
- return argv.includes("--http") || process.env.MCP_HTTP === "1";
45380
+ function isMcpStdioMode(argv = process.argv.slice(2)) {
45381
+ return argv.includes("--stdio") || process.env.MCP_STDIO === "1";
45382
45382
  }
45383
45383
  function parseMcpHttpPort(argv, defaultPort = MCP_HTTP_DEFAULT_PORT) {
45384
45384
  const portIdx = argv.indexOf("--port");
@@ -45492,14 +45492,14 @@ if (args.includes("--version") || args.includes("-V")) {
45492
45492
  process.exit(0);
45493
45493
  }
45494
45494
  async function main() {
45495
- if (isMcpHttpMode(args)) {
45496
- const port = parseMcpHttpPort(args);
45497
- await startSkillsMcpHttpServer({ port, hostname: "127.0.0.1" });
45495
+ if (isMcpStdioMode(args)) {
45496
+ const server2 = buildServer();
45497
+ registerCloudTools(server2, "skills");
45498
+ await server2.connect(new StdioServerTransport);
45498
45499
  return;
45499
45500
  }
45500
- const server2 = buildServer();
45501
- registerCloudTools(server2, "skills");
45502
- await server2.connect(new StdioServerTransport);
45501
+ const port = parseMcpHttpPort(args);
45502
+ await startSkillsMcpHttpServer({ port, hostname: "127.0.0.1" });
45503
45503
  }
45504
45504
  if (import.meta.main) {
45505
45505
  main().catch((error48) => {
@@ -1,7 +1,8 @@
1
1
  import { createServer, type IncomingMessage, type ServerResponse } from "node:http";
2
- export declare const MCP_HTTP_DEFAULT_PORT = 8836;
2
+ export declare const MCP_HTTP_DEFAULT_PORT = 8879;
3
3
  export declare const MCP_HTTP_SERVICE_NAME = "skills";
4
4
  export declare function isMcpHttpMode(argv?: string[]): boolean;
5
+ export declare function isMcpStdioMode(argv?: string[]): boolean;
5
6
  export declare function parseMcpHttpPort(argv: string[], defaultPort?: number): number;
6
7
  export declare function handleMcpHttpNodeRequest(req: IncomingMessage, res: ServerResponse): Promise<boolean>;
7
8
  export declare function startSkillsMcpHttpServer(options?: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hasna/skills",
3
- "version": "0.1.29",
3
+ "version": "0.1.30",
4
4
  "description": "Skills library for AI coding agents",
5
5
  "type": "module",
6
6
  "bin": {
@@ -0,0 +1,34 @@
1
+ #!/usr/bin/env bun
2
+
3
+ import { Command } from "commander";
4
+ import { homedir } from "os";
5
+ import { join } from "path";
6
+
7
+ function getDataDir(): string {
8
+ return process.env.DATA_DIR || join(homedir(), ".skill", "skill-academic-journal-matcher");
9
+ }
10
+
11
+ const program = new Command();
12
+
13
+ program
14
+ .name("skill-academic-journal-matcher")
15
+ .description("Academic Journal Matcher skill")
16
+ .version("0.1.0");
17
+
18
+ program
19
+ .command("run")
20
+ .description("Run the skill")
21
+ .option("-o, --output <path>", "Output directory", join(getDataDir(), "output"))
22
+ .allowUnknownOption(true)
23
+ .action(async (options, command) => {
24
+ try {
25
+ const args = command.args;
26
+ process.env.DATA_DIR = process.env.DATA_DIR || getDataDir();
27
+ await import("../src/index.js");
28
+ } catch (err) {
29
+ console.error(`Error: ${err instanceof Error ? err.message : err}`);
30
+ process.exit(1);
31
+ }
32
+ });
33
+
34
+ program.parse();
@@ -0,0 +1,34 @@
1
+ #!/usr/bin/env bun
2
+
3
+ import { Command } from "commander";
4
+ import { homedir } from "os";
5
+ import { join } from "path";
6
+
7
+ function getDataDir(): string {
8
+ return process.env.DATA_DIR || join(homedir(), ".skill", "skill-action-item-router");
9
+ }
10
+
11
+ const program = new Command();
12
+
13
+ program
14
+ .name("skill-action-item-router")
15
+ .description("Action Item Router skill")
16
+ .version("0.1.0");
17
+
18
+ program
19
+ .command("run")
20
+ .description("Run the skill")
21
+ .option("-o, --output <path>", "Output directory", join(getDataDir(), "output"))
22
+ .allowUnknownOption(true)
23
+ .action(async (options, command) => {
24
+ try {
25
+ const args = command.args;
26
+ process.env.DATA_DIR = process.env.DATA_DIR || getDataDir();
27
+ await import("../src/index.js");
28
+ } catch (err) {
29
+ console.error(`Error: ${err instanceof Error ? err.message : err}`);
30
+ process.exit(1);
31
+ }
32
+ });
33
+
34
+ program.parse();
@@ -0,0 +1,34 @@
1
+ #!/usr/bin/env bun
2
+
3
+ import { Command } from "commander";
4
+ import { homedir } from "os";
5
+ import { join } from "path";
6
+
7
+ function getDataDir(): string {
8
+ return process.env.DATA_DIR || join(homedir(), ".skill", "skill-ad-creative-generator");
9
+ }
10
+
11
+ const program = new Command();
12
+
13
+ program
14
+ .name("skill-ad-creative-generator")
15
+ .description("Ad Creative Generator skill")
16
+ .version("0.1.0");
17
+
18
+ program
19
+ .command("run")
20
+ .description("Run the skill")
21
+ .option("-o, --output <path>", "Output directory", join(getDataDir(), "output"))
22
+ .allowUnknownOption(true)
23
+ .action(async (options, command) => {
24
+ try {
25
+ const args = command.args;
26
+ process.env.DATA_DIR = process.env.DATA_DIR || getDataDir();
27
+ await import("../src/index.js");
28
+ } catch (err) {
29
+ console.error(`Error: ${err instanceof Error ? err.message : err}`);
30
+ process.exit(1);
31
+ }
32
+ });
33
+
34
+ program.parse();
@@ -0,0 +1,34 @@
1
+ #!/usr/bin/env bun
2
+
3
+ import { Command } from "commander";
4
+ import { homedir } from "os";
5
+ import { join } from "path";
6
+
7
+ function getDataDir(): string {
8
+ return process.env.DATA_DIR || join(homedir(), ".skill", "skill-advanced-math");
9
+ }
10
+
11
+ const program = new Command();
12
+
13
+ program
14
+ .name("skill-advanced-math")
15
+ .description("Advanced Math skill")
16
+ .version("0.1.0");
17
+
18
+ program
19
+ .command("run")
20
+ .description("Run the skill")
21
+ .option("-o, --output <path>", "Output directory", join(getDataDir(), "output"))
22
+ .allowUnknownOption(true)
23
+ .action(async (options, command) => {
24
+ try {
25
+ const args = command.args;
26
+ process.env.DATA_DIR = process.env.DATA_DIR || getDataDir();
27
+ await import("../src/index.js");
28
+ } catch (err) {
29
+ console.error(`Error: ${err instanceof Error ? err.message : err}`);
30
+ process.exit(1);
31
+ }
32
+ });
33
+
34
+ program.parse();
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env bun
2
+ import { Command } from "commander";
3
+
4
+ const program = new Command();
5
+
6
+ program
7
+ .name("skill-analyze-data")
8
+ .description("Data science insights for CSV and JSON")
9
+ .version("0.1.0");
10
+
11
+ program
12
+ .command("run", { isDefault: true })
13
+ .description("Run the skill")
14
+ .allowUnknownOption(true)
15
+ .action(async () => {
16
+ await import("../src/index.js");
17
+ });
18
+
19
+ program.parse();
@@ -0,0 +1,34 @@
1
+ #!/usr/bin/env bun
2
+
3
+ import { Command } from "commander";
4
+ import { homedir } from "os";
5
+ import { join } from "path";
6
+
7
+ function getDataDir(): string {
8
+ return process.env.DATA_DIR || join(homedir(), ".skill", "skill-anomaly-investigator");
9
+ }
10
+
11
+ const program = new Command();
12
+
13
+ program
14
+ .name("skill-anomaly-investigator")
15
+ .description("Anomaly Investigator skill")
16
+ .version("0.1.0");
17
+
18
+ program
19
+ .command("run")
20
+ .description("Run the skill")
21
+ .option("-o, --output <path>", "Output directory", join(getDataDir(), "output"))
22
+ .allowUnknownOption(true)
23
+ .action(async (options, command) => {
24
+ try {
25
+ const args = command.args;
26
+ process.env.DATA_DIR = process.env.DATA_DIR || getDataDir();
27
+ await import("../src/index.js");
28
+ } catch (err) {
29
+ console.error(`Error: ${err instanceof Error ? err.message : err}`);
30
+ process.exit(1);
31
+ }
32
+ });
33
+
34
+ program.parse();
@@ -0,0 +1,34 @@
1
+ #!/usr/bin/env bun
2
+
3
+ import { Command } from "commander";
4
+ import { homedir } from "os";
5
+ import { join } from "path";
6
+
7
+ function getDataDir(): string {
8
+ return process.env.DATA_DIR || join(homedir(), ".skill", "skill-api-test-suite");
9
+ }
10
+
11
+ const program = new Command();
12
+
13
+ program
14
+ .name("skill-api-test-suite")
15
+ .description("Api Test Suite skill")
16
+ .version("0.1.0");
17
+
18
+ program
19
+ .command("run")
20
+ .description("Run the skill")
21
+ .option("-o, --output <path>", "Output directory", join(getDataDir(), "output"))
22
+ .allowUnknownOption(true)
23
+ .action(async (options, command) => {
24
+ try {
25
+ const args = command.args;
26
+ process.env.DATA_DIR = process.env.DATA_DIR || getDataDir();
27
+ await import("../src/index.js");
28
+ } catch (err) {
29
+ console.error(`Error: ${err instanceof Error ? err.message : err}`);
30
+ process.exit(1);
31
+ }
32
+ });
33
+
34
+ program.parse();
@@ -0,0 +1,87 @@
1
+ #!/usr/bin/env bun
2
+
3
+ import { Command } from 'commander';
4
+ import { add } from '../src/commands/add.js';
5
+ import { query } from '../src/commands/query.js';
6
+ import { list } from '../src/commands/list.js';
7
+ import { sync } from '../src/commands/sync.js';
8
+ import { remove } from '../src/commands/remove.js';
9
+ import { endpoints } from '../src/commands/endpoints.js';
10
+
11
+ const program = new Command();
12
+
13
+ program
14
+ .name('service-apidocs')
15
+ .description('Agentic web crawler for API documentation indexing and semantic search')
16
+ .version('0.3.0');
17
+
18
+ // Add command
19
+ program
20
+ .command('add <website-url>')
21
+ .description('Add documentation from a website URL')
22
+ .option('-n, --name <name>', 'Custom library name')
23
+ .option('-m, --max-pages <number>', 'Maximum pages to crawl', (v) => parseInt(v, 10))
24
+ .action(async (websiteUrl: string, options) => {
25
+ await add(websiteUrl, options);
26
+ });
27
+
28
+ // Query command
29
+ program
30
+ .command('query <library> <question>')
31
+ .description('Query documentation semantically')
32
+ .option('--tokens <number>', 'Maximum tokens in response', (v) => parseInt(v, 10))
33
+ .option('--top-k <number>', 'Number of results to retrieve', (v) => parseInt(v, 10))
34
+ .option('--json', 'Output as JSON')
35
+ .action(async (library: string, question: string, options) => {
36
+ await query(library, question, {
37
+ library,
38
+ question,
39
+ tokens: options.tokens,
40
+ topK: options.topK,
41
+ json: options.json,
42
+ });
43
+ });
44
+
45
+ // List command
46
+ program
47
+ .command('list')
48
+ .description('List all indexed libraries')
49
+ .action(async () => {
50
+ await list();
51
+ });
52
+
53
+ // Sync command
54
+ program
55
+ .command('sync [library]')
56
+ .description('Re-crawl and sync a library\'s documentation')
57
+ .option('--all', 'Sync all indexed libraries')
58
+ .option('-m, --max-pages <number>', 'Maximum pages to crawl', (v) => parseInt(v, 10))
59
+ .action(async (library: string | undefined, options) => {
60
+ await sync(library, options);
61
+ });
62
+
63
+ // Remove command
64
+ program
65
+ .command('remove <library>')
66
+ .description('Remove a library from the index')
67
+ .action(async (library: string) => {
68
+ await remove(library);
69
+ });
70
+
71
+ // Endpoints command
72
+ program
73
+ .command('endpoints <library>')
74
+ .description('List API endpoints from indexed documentation')
75
+ .option('--json', 'Output as JSON')
76
+ .option('--group-by <type>', 'Group by: resource (default) or method', 'resource')
77
+ .option('--filter <method>', 'Filter by HTTP method (GET, POST, PUT, DELETE, etc.)')
78
+ .action(async (library: string, options) => {
79
+ await endpoints(library, {
80
+ json: options.json,
81
+ groupBy: options.groupBy as 'resource' | 'method',
82
+ filter: options.filter,
83
+ });
84
+ });
85
+
86
+ // Parse and run
87
+ program.parse();
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env bun
2
+ import { Command } from "commander";
3
+ const program = new Command();
4
+ program.name("skill-audio-cleanup-lab").description("Professional audio cleanup recipes").version("0.1.0");
5
+ program.command("run", { isDefault: true }).description("Run the skill").allowUnknownOption(true).action(async () => { await import("../src/index.js"); });
6
+ program.parse();
@@ -0,0 +1,34 @@
1
+ #!/usr/bin/env bun
2
+
3
+ import { Command } from "commander";
4
+ import { homedir } from "os";
5
+ import { join } from "path";
6
+
7
+ function getDataDir(): string {
8
+ return process.env.DATA_DIR || join(homedir(), ".skill", "skill-audiobook-chapter-proofer");
9
+ }
10
+
11
+ const program = new Command();
12
+
13
+ program
14
+ .name("skill-audiobook-chapter-proofer")
15
+ .description("Audiobook Chapter Proofer skill")
16
+ .version("0.1.0");
17
+
18
+ program
19
+ .command("run")
20
+ .description("Run the skill")
21
+ .option("-o, --output <path>", "Output directory", join(getDataDir(), "output"))
22
+ .allowUnknownOption(true)
23
+ .action(async (options, command) => {
24
+ try {
25
+ const args = command.args;
26
+ process.env.DATA_DIR = process.env.DATA_DIR || getDataDir();
27
+ await import("../src/index.js");
28
+ } catch (err) {
29
+ console.error(`Error: ${err instanceof Error ? err.message : err}`);
30
+ process.exit(1);
31
+ }
32
+ });
33
+
34
+ program.parse();
@@ -0,0 +1,34 @@
1
+ #!/usr/bin/env bun
2
+
3
+ import { Command } from "commander";
4
+ import { homedir } from "os";
5
+ import { join } from "path";
6
+
7
+ function getDataDir(): string {
8
+ return process.env.DATA_DIR || join(homedir(), ".skill", "skill-banner-ad-suite");
9
+ }
10
+
11
+ const program = new Command();
12
+
13
+ program
14
+ .name("skill-banner-ad-suite")
15
+ .description("Banner Ad Suite skill")
16
+ .version("0.1.0");
17
+
18
+ program
19
+ .command("run")
20
+ .description("Run the skill")
21
+ .option("-o, --output <path>", "Output directory", join(getDataDir(), "output"))
22
+ .allowUnknownOption(true)
23
+ .action(async (options, command) => {
24
+ try {
25
+ const args = command.args;
26
+ process.env.DATA_DIR = process.env.DATA_DIR || getDataDir();
27
+ await import("../src/index.js");
28
+ } catch (err) {
29
+ console.error(`Error: ${err instanceof Error ? err.message : err}`);
30
+ process.exit(1);
31
+ }
32
+ });
33
+
34
+ program.parse();
@@ -0,0 +1,34 @@
1
+ #!/usr/bin/env bun
2
+
3
+ import { Command } from "commander";
4
+ import { homedir } from "os";
5
+ import { join } from "path";
6
+
7
+ function getDataDir(): string {
8
+ return process.env.DATA_DIR || join(homedir(), ".skill", "skill-benchmark-finder");
9
+ }
10
+
11
+ const program = new Command();
12
+
13
+ program
14
+ .name("skill-benchmark-finder")
15
+ .description("Benchmark Finder skill")
16
+ .version("0.1.0");
17
+
18
+ program
19
+ .command("run")
20
+ .description("Run the skill")
21
+ .option("-o, --output <path>", "Output directory", join(getDataDir(), "output"))
22
+ .allowUnknownOption(true)
23
+ .action(async (options, command) => {
24
+ try {
25
+ const args = command.args;
26
+ process.env.DATA_DIR = process.env.DATA_DIR || getDataDir();
27
+ await import("../src/index.js");
28
+ } catch (err) {
29
+ console.error(`Error: ${err instanceof Error ? err.message : err}`);
30
+ process.exit(1);
31
+ }
32
+ });
33
+
34
+ program.parse();
@@ -0,0 +1,34 @@
1
+ #!/usr/bin/env bun
2
+
3
+ import { Command } from "commander";
4
+ import { homedir } from "os";
5
+ import { join } from "path";
6
+
7
+ function getDataDir(): string {
8
+ return process.env.DATA_DIR || join(homedir(), ".skill", "skill-bio-sequence-tool");
9
+ }
10
+
11
+ const program = new Command();
12
+
13
+ program
14
+ .name("skill-bio-sequence-tool")
15
+ .description("Bio Sequence Tool skill")
16
+ .version("0.1.0");
17
+
18
+ program
19
+ .command("run")
20
+ .description("Run the skill")
21
+ .option("-o, --output <path>", "Output directory", join(getDataDir(), "output"))
22
+ .allowUnknownOption(true)
23
+ .action(async (options, command) => {
24
+ try {
25
+ const args = command.args;
26
+ process.env.DATA_DIR = process.env.DATA_DIR || getDataDir();
27
+ await import("../src/index.js");
28
+ } catch (err) {
29
+ console.error(`Error: ${err instanceof Error ? err.message : err}`);
30
+ process.exit(1);
31
+ }
32
+ });
33
+
34
+ program.parse();
@@ -0,0 +1,34 @@
1
+ #!/usr/bin/env bun
2
+
3
+ import { Command } from "commander";
4
+ import { homedir } from "os";
5
+ import { join } from "path";
6
+
7
+ function getDataDir(): string {
8
+ return process.env.DATA_DIR || join(homedir(), ".skill", "skill-blog-topic-cluster");
9
+ }
10
+
11
+ const program = new Command();
12
+
13
+ program
14
+ .name("skill-blog-topic-cluster")
15
+ .description("Blog Topic Cluster skill")
16
+ .version("0.1.0");
17
+
18
+ program
19
+ .command("run")
20
+ .description("Run the skill")
21
+ .option("-o, --output <path>", "Output directory", join(getDataDir(), "output"))
22
+ .allowUnknownOption(true)
23
+ .action(async (options, command) => {
24
+ try {
25
+ const args = command.args;
26
+ process.env.DATA_DIR = process.env.DATA_DIR || getDataDir();
27
+ await import("../src/index.js");
28
+ } catch (err) {
29
+ console.error(`Error: ${err instanceof Error ? err.message : err}`);
30
+ process.exit(1);
31
+ }
32
+ });
33
+
34
+ program.parse();
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env bun
2
+ import { Command } from "commander";
3
+
4
+ const program = new Command();
5
+
6
+ program
7
+ .name("skill-brand-style-guide")
8
+ .description("Brand style guide generation")
9
+ .version("0.1.0");
10
+
11
+ program
12
+ .command("run", { isDefault: true })
13
+ .description("Run the skill")
14
+ .allowUnknownOption(true)
15
+ .action(async () => {
16
+ await import("../src/index.js");
17
+ });
18
+
19
+ program.parse();
@@ -0,0 +1,34 @@
1
+ #!/usr/bin/env bun
2
+
3
+ import { Command } from "commander";
4
+ import { homedir } from "os";
5
+ import { join } from "path";
6
+
7
+ function getDataDir(): string {
8
+ return process.env.DATA_DIR || join(homedir(), ".skill", "skill-brand-voice-audit");
9
+ }
10
+
11
+ const program = new Command();
12
+
13
+ program
14
+ .name("skill-brand-voice-audit")
15
+ .description("Brand Voice Audit skill")
16
+ .version("0.1.0");
17
+
18
+ program
19
+ .command("run")
20
+ .description("Run the skill")
21
+ .option("-o, --output <path>", "Output directory", join(getDataDir(), "output"))
22
+ .allowUnknownOption(true)
23
+ .action(async (options, command) => {
24
+ try {
25
+ const args = command.args;
26
+ process.env.DATA_DIR = process.env.DATA_DIR || getDataDir();
27
+ await import("../src/index.js");
28
+ } catch (err) {
29
+ console.error(`Error: ${err instanceof Error ? err.message : err}`);
30
+ process.exit(1);
31
+ }
32
+ });
33
+
34
+ program.parse();
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env bun
2
+ import { Command } from "commander";
3
+ const program = new Command();
4
+ program.name("skill-budget-variance-analyzer").description("Budget vs actual variance analysis").version("0.1.0");
5
+ program.command("run", { isDefault: true }).description("Run the skill").allowUnknownOption(true).action(async () => { await import("../src/index.js"); });
6
+ program.parse();
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env bun
2
+
3
+ import { Command } from 'commander';
4
+ import { registerProfileCommands } from '../src/commands/profile';
5
+ import { registerOwnerCommands } from '../src/commands/owner';
6
+ import { registerTeamCommands } from '../src/commands/team';
7
+ import { registerFunctionCommands } from '../src/commands/function';
8
+ import { registerActivityCommands } from '../src/commands/activity';
9
+ import { registerWorkflowCommands } from '../src/commands/workflow';
10
+ import { registerResponsibilityCommands } from '../src/commands/responsibility';
11
+
12
+ const program = new Command();
13
+
14
+ program
15
+ .name('service-businessactivity')
16
+ .description('Business activity, workflow, and ownership management service')
17
+ .version('0.1.0');
18
+
19
+ // Register all commands
20
+ registerProfileCommands(program);
21
+ registerOwnerCommands(program);
22
+ registerTeamCommands(program);
23
+ registerFunctionCommands(program);
24
+ registerActivityCommands(program);
25
+ registerWorkflowCommands(program);
26
+ registerResponsibilityCommands(program);
27
+
28
+ program.parse();