@hasna/skills 0.1.62 → 0.1.63

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 (526) hide show
  1. package/README.md +10 -6
  2. package/bin/index.js +14271 -21602
  3. package/bin/mcp.js +3527 -11449
  4. package/bin/migrate.js +53 -3
  5. package/bin/server.js +5140 -2675
  6. package/bin/worker.js +4542 -2129
  7. package/dist/cli/commands/publish.d.ts +2 -0
  8. package/dist/cli/components/App.d.ts +2 -1
  9. package/dist/cli/components/CategorySelect.d.ts +2 -1
  10. package/dist/cli/components/Header.d.ts +2 -1
  11. package/dist/cli/components/InstallProgress.d.ts +2 -1
  12. package/dist/cli/components/SearchView.d.ts +2 -1
  13. package/dist/cli/components/SkillSelect.d.ts +2 -1
  14. package/dist/index.d.ts +4 -1
  15. package/dist/index.js +5094 -13755
  16. package/dist/lib/agent-sync.d.ts +38 -3
  17. package/dist/lib/home-adoption.d.ts +91 -0
  18. package/dist/lib/home-census.d.ts +22 -0
  19. package/dist/lib/home-migration.d.ts +61 -0
  20. package/dist/lib/portable-skills-files.d.ts +21 -1
  21. package/dist/lib/portable-skills-types.d.ts +46 -0
  22. package/dist/lib/pull.d.ts +66 -0
  23. package/dist/lib/remote-client.d.ts +6 -0
  24. package/dist/lib/run-state.d.ts +5 -0
  25. package/dist/lib/skill-bundles.d.ts +54 -0
  26. package/dist/lib/skill-contract.d.ts +35 -0
  27. package/dist/lib/skill-hash.d.ts +77 -0
  28. package/dist/sdk/cancel.d.ts +30 -0
  29. package/dist/sdk/dispatcher.d.ts +40 -0
  30. package/dist/sdk/event-sink.d.ts +2 -0
  31. package/dist/sdk/events.d.ts +79 -0
  32. package/dist/sdk/execution/admission.d.ts +44 -0
  33. package/dist/sdk/execution/dispatchers/e2b.d.ts +17 -0
  34. package/dist/sdk/execution/dispatchers/ecs.d.ts +151 -0
  35. package/dist/sdk/execution/image-profile.d.ts +73 -0
  36. package/dist/sdk/execution/index.d.ts +15 -0
  37. package/dist/sdk/execution/receipts.d.ts +44 -0
  38. package/dist/sdk/execution/state-machine.d.ts +38 -0
  39. package/dist/sdk/execution/storage.d.ts +158 -0
  40. package/dist/sdk/execution/types.d.ts +130 -0
  41. package/dist/sdk/executor.d.ts +17 -0
  42. package/dist/sdk/governance-store.d.ts +156 -0
  43. package/dist/sdk/governance.d.ts +92 -0
  44. package/dist/sdk/index.d.ts +26 -0
  45. package/dist/sdk/index.js +48730 -0
  46. package/dist/sdk/offline.d.ts +16 -0
  47. package/dist/sdk/outputs.d.ts +71 -0
  48. package/dist/sdk/registry.d.ts +28 -0
  49. package/dist/sdk/runs.d.ts +229 -0
  50. package/dist/sdk/server.d.ts +35 -0
  51. package/dist/sdk/spend.d.ts +36 -0
  52. package/dist/sdk/storage.d.ts +25 -0
  53. package/dist/server/app.d.ts +42 -0
  54. package/dist/server/artifact-storage.d.ts +102 -0
  55. package/dist/server/auth.d.ts +5 -0
  56. package/dist/server/config.d.ts +40 -0
  57. package/dist/server/database-url.d.ts +42 -0
  58. package/dist/server/handlers.d.ts +3 -0
  59. package/dist/server/index.d.ts +2 -0
  60. package/dist/server/migrate.d.ts +13 -0
  61. package/dist/server/migrations-dir.d.ts +18 -0
  62. package/dist/server/redaction.d.ts +1 -0
  63. package/dist/server/registry.d.ts +5 -0
  64. package/dist/server/rows.d.ts +23 -0
  65. package/dist/server/skills-api.d.ts +68 -0
  66. package/dist/server/sqlite-store.d.ts +114 -0
  67. package/dist/server/store-fixtures.d.ts +25 -0
  68. package/dist/server/store.d.ts +144 -0
  69. package/dist/server/types.d.ts +242 -0
  70. package/dist/server/worker.d.ts +4 -0
  71. package/dist/storage.js +32 -0
  72. package/docs/skill-standard.md +211 -39
  73. package/migrations/postgres/0003_run_outputs_governance.sql +83 -0
  74. package/migrations/sqlite/0003_run_outputs_governance.sql +58 -0
  75. package/package.json +11 -8
  76. package/schemas/skill.schema.json +181 -0
  77. package/agent-skills/README.md +0 -41
  78. package/agent-skills/fleet-package-rollout/SKILL.md +0 -169
  79. package/agent-skills/inbox/SKILL.md +0 -25
  80. package/agent-skills/inbox/scripts/inbox +0 -109
  81. package/agent-skills/inbox/tests/test_registered_sender_id.sh +0 -92
  82. package/agent-skills/inbox-monitor/SKILL.md +0 -41
  83. package/agent-skills/inbox-monitor/scripts/inbox_monitor.sh +0 -91
  84. package/agent-skills/inbox-monitor/scripts/test_inbox_monitor.sh +0 -71
  85. package/agent-skills/merge-pr/SKILL.md +0 -85
  86. package/agent-skills/merge-pr/references/merge-safety.md +0 -82
  87. package/agent-skills/merge-pr/scripts/merge_pr_guard.py +0 -694
  88. package/agent-skills/merge-pr/scripts/test_merge_pr_guard.py +0 -647
  89. package/agent-skills/merge-pr/tests/fixtures/multi-commit-synthesized.json +0 -28
  90. package/agent-skills/merge-pr/tests/fixtures/trailer-free-provider.json +0 -28
  91. package/agent-skills/skill-goal-execute/SKILL.md +0 -115
  92. package/agent-skills/skill-login/SKILL.md +0 -109
  93. package/agent-skills/skill-project-create/SKILL.md +0 -91
  94. package/agent-skills/skill-publish/SKILL.md +0 -254
  95. package/agent-skills/skill-publish/scripts/capture_registry.js +0 -47
  96. package/agent-skills/skill-publish/scripts/publish_with_git_head.sh +0 -143
  97. package/agent-skills/skill-publish/scripts/test_publish_with_git_head.sh +0 -231
  98. package/skills/_common/auth.ts +0 -45
  99. package/skills/_common/http-client.ts +0 -143
  100. package/skills/_common/index.ts +0 -26
  101. package/skills/_common/install.sh +0 -7
  102. package/skills/_common/installer.ts +0 -72
  103. package/skills/_common/skill-install.ts +0 -37
  104. package/skills/_common/vision.ts +0 -374
  105. package/skills/ad-creative-pack/SKILL.md +0 -55
  106. package/skills/ad-creative-pack/package.json +0 -10
  107. package/skills/analyze-data/CLAUDE.md +0 -16
  108. package/skills/analyze-data/SKILL.md +0 -112
  109. package/skills/analyze-data/package.json +0 -23
  110. package/skills/analyze-data/src/analysis.ts +0 -401
  111. package/skills/analyze-data/src/cli.ts +0 -66
  112. package/skills/analyze-data/src/formatters.ts +0 -235
  113. package/skills/analyze-data/src/index.ts +0 -74
  114. package/skills/analyze-data/src/logger.ts +0 -36
  115. package/skills/analyze-data/src/parsers.ts +0 -57
  116. package/skills/analyze-data/src/stats.ts +0 -151
  117. package/skills/analyze-data/src/types.ts +0 -85
  118. package/skills/analyze-data/tsconfig.json +0 -19
  119. package/skills/api-docs-portal/SKILL.md +0 -84
  120. package/skills/api-docs-portal/package.json +0 -35
  121. package/skills/api-docs-portal/src/index.ts +0 -919
  122. package/skills/api-docs-portal/tsconfig.json +0 -17
  123. package/skills/api-test-suite/CLAUDE.md +0 -19
  124. package/skills/api-test-suite/package.json +0 -27
  125. package/skills/api-test-suite/src/index.ts +0 -381
  126. package/skills/api-test-suite/tsconfig.json +0 -10
  127. package/skills/audio-extract/CLAUDE.md +0 -9
  128. package/skills/audio-extract/SKILL.md +0 -73
  129. package/skills/audio-extract/package.json +0 -23
  130. package/skills/audio-extract/src/index.ts +0 -323
  131. package/skills/audio-extract/tsconfig.json +0 -11
  132. package/skills/bio-sequence-tool/CLAUDE.md +0 -19
  133. package/skills/bio-sequence-tool/package.json +0 -27
  134. package/skills/bio-sequence-tool/src/index.ts +0 -85
  135. package/skills/bio-sequence-tool/tsconfig.json +0 -10
  136. package/skills/blog-article/CLAUDE.md +0 -12
  137. package/skills/blog-article/SKILL.md +0 -55
  138. package/skills/blog-article/package.json +0 -10
  139. package/skills/blog-article/tsconfig.json +0 -10
  140. package/skills/brand-assets/SKILL.md +0 -118
  141. package/skills/brand-assets/package.json +0 -35
  142. package/skills/brand-assets/src/cli.ts +0 -155
  143. package/skills/brand-assets/src/constants.ts +0 -8
  144. package/skills/brand-assets/src/extract.ts +0 -236
  145. package/skills/brand-assets/src/index.ts +0 -668
  146. package/skills/brand-assets/src/types.ts +0 -59
  147. package/skills/brand-assets/tsconfig.json +0 -17
  148. package/skills/brand-kit/SKILL.md +0 -54
  149. package/skills/brand-kit/package.json +0 -10
  150. package/skills/businessactivity/CLAUDE.md +0 -176
  151. package/skills/businessactivity/LICENSE +0 -192
  152. package/skills/businessactivity/README.md +0 -287
  153. package/skills/businessactivity/package.json +0 -25
  154. package/skills/businessactivity/scripts/publish.ts +0 -210
  155. package/skills/businessactivity/src/commands/activity.ts +0 -211
  156. package/skills/businessactivity/src/commands/function.ts +0 -227
  157. package/skills/businessactivity/src/commands/owner.ts +0 -193
  158. package/skills/businessactivity/src/commands/profile.ts +0 -121
  159. package/skills/businessactivity/src/commands/responsibility.ts +0 -264
  160. package/skills/businessactivity/src/commands/team.ts +0 -244
  161. package/skills/businessactivity/src/commands/workflow.ts +0 -359
  162. package/skills/businessactivity/src/index.ts +0 -3
  163. package/skills/businessactivity/src/lib/config.ts +0 -167
  164. package/skills/businessactivity/src/lib/output.ts +0 -76
  165. package/skills/businessactivity/src/lib/paths.ts +0 -79
  166. package/skills/businessactivity/src/lib/storage.ts +0 -95
  167. package/skills/businessactivity/src/types/index.ts +0 -86
  168. package/skills/businessactivity/tsconfig.json +0 -29
  169. package/skills/codefix/LICENSE +0 -192
  170. package/skills/codefix/README.md +0 -232
  171. package/skills/codefix/SKILL.md +0 -94
  172. package/skills/codefix/package.json +0 -21
  173. package/skills/codefix/src/fixers/batch.ts +0 -213
  174. package/skills/codefix/src/fixers/detector.ts +0 -160
  175. package/skills/codefix/src/fixers/index.ts +0 -7
  176. package/skills/codefix/src/fixers/runner.ts +0 -522
  177. package/skills/codefix/src/index-local.ts +0 -431
  178. package/skills/codefix/src/index.ts +0 -4
  179. package/skills/codefix/src/types.ts +0 -211
  180. package/skills/codefix/tsconfig.json +0 -15
  181. package/skills/commitpush/SKILL.md +0 -57
  182. package/skills/commitpush/package.json +0 -33
  183. package/skills/commitpush/src/index.ts +0 -34
  184. package/skills/commitpush/tsconfig.json +0 -17
  185. package/skills/commitpushpr/SKILL.md +0 -55
  186. package/skills/commitpushpr/package.json +0 -33
  187. package/skills/commitpushpr/src/index.ts +0 -34
  188. package/skills/commitpushpr/tsconfig.json +0 -17
  189. package/skills/compress-video/CLAUDE.md +0 -9
  190. package/skills/compress-video/SKILL.md +0 -79
  191. package/skills/compress-video/package.json +0 -23
  192. package/skills/compress-video/src/index.ts +0 -473
  193. package/skills/compress-video/tsconfig.json +0 -11
  194. package/skills/contract-review-report/SKILL.md +0 -52
  195. package/skills/contract-review-report/package.json +0 -10
  196. package/skills/customer-feedback-report/SKILL.md +0 -52
  197. package/skills/customer-feedback-report/package.json +0 -10
  198. package/skills/dashboard-builder/CLAUDE.md +0 -19
  199. package/skills/dashboard-builder/package.json +0 -29
  200. package/skills/dashboard-builder/src/index.ts +0 -150
  201. package/skills/dashboard-builder/tsconfig.json +0 -10
  202. package/skills/data-anonymizer/CLAUDE.md +0 -19
  203. package/skills/data-anonymizer/package.json +0 -27
  204. package/skills/data-anonymizer/src/index.ts +0 -183
  205. package/skills/data-anonymizer/tsconfig.json +0 -10
  206. package/skills/database-explorer/CLAUDE.md +0 -19
  207. package/skills/database-explorer/package.json +0 -29
  208. package/skills/database-explorer/src/index.ts +0 -95
  209. package/skills/database-explorer/tsconfig.json +0 -10
  210. package/skills/diff-viewer/CLAUDE.md +0 -19
  211. package/skills/diff-viewer/package.json +0 -30
  212. package/skills/diff-viewer/src/index.ts +0 -164
  213. package/skills/diff-viewer/tsconfig.json +0 -10
  214. package/skills/doc-read/SKILL.md +0 -45
  215. package/skills/doc-read/package.json +0 -29
  216. package/skills/doc-read/src/index.ts +0 -324
  217. package/skills/doc-read/tsconfig.json +0 -8
  218. package/skills/domainpurchase/LICENSE +0 -192
  219. package/skills/domainpurchase/SKILL.md +0 -29
  220. package/skills/domainpurchase/package.json +0 -30
  221. package/skills/domainpurchase/src/index.ts +0 -3
  222. package/skills/domainpurchase/tsconfig.json +0 -21
  223. package/skills/email-sequence/SKILL.md +0 -53
  224. package/skills/email-sequence/package.json +0 -10
  225. package/skills/experiment-power-calculator/CLAUDE.md +0 -19
  226. package/skills/experiment-power-calculator/package.json +0 -29
  227. package/skills/experiment-power-calculator/src/index.ts +0 -86
  228. package/skills/experiment-power-calculator/tsconfig.json +0 -10
  229. package/skills/extract-frames/CLAUDE.md +0 -19
  230. package/skills/extract-frames/package.json +0 -27
  231. package/skills/extract-frames/src/index.ts +0 -616
  232. package/skills/extract-frames/tsconfig.json +0 -10
  233. package/skills/file-organizer/CLAUDE.md +0 -19
  234. package/skills/file-organizer/package.json +0 -27
  235. package/skills/file-organizer/src/index.ts +0 -91
  236. package/skills/file-organizer/tsconfig.json +0 -10
  237. package/skills/folder-tree/CLAUDE.md +0 -19
  238. package/skills/folder-tree/package.json +0 -29
  239. package/skills/folder-tree/src/index.ts +0 -568
  240. package/skills/folder-tree/tsconfig.json +0 -10
  241. package/skills/form-filler/CLAUDE.md +0 -19
  242. package/skills/form-filler/package.json +0 -29
  243. package/skills/form-filler/src/index.ts +0 -81
  244. package/skills/form-filler/tsconfig.json +0 -10
  245. package/skills/generate-api-client/CLAUDE.md +0 -19
  246. package/skills/generate-api-client/package.json +0 -29
  247. package/skills/generate-api-client/src/generator.ts +0 -47
  248. package/skills/generate-api-client/src/index.ts +0 -92
  249. package/skills/generate-api-client/src/logger.ts +0 -34
  250. package/skills/generate-api-client/src/python-generator.ts +0 -245
  251. package/skills/generate-api-client/src/spec-loader.ts +0 -48
  252. package/skills/generate-api-client/src/type-mappers.ts +0 -79
  253. package/skills/generate-api-client/src/types.ts +0 -76
  254. package/skills/generate-api-client/src/typescript-generator.ts +0 -247
  255. package/skills/generate-api-client/tsconfig.json +0 -10
  256. package/skills/generate-chart/CLAUDE.md +0 -19
  257. package/skills/generate-chart/package.json +0 -27
  258. package/skills/generate-chart/src/index.ts +0 -510
  259. package/skills/generate-chart/tsconfig.json +0 -10
  260. package/skills/generate-dockerfile/CLAUDE.md +0 -19
  261. package/skills/generate-dockerfile/package.json +0 -27
  262. package/skills/generate-dockerfile/src/cli.ts +0 -78
  263. package/skills/generate-dockerfile/src/dockerfile-templates.ts +0 -392
  264. package/skills/generate-dockerfile/src/index.ts +0 -81
  265. package/skills/generate-dockerfile/src/logger.ts +0 -30
  266. package/skills/generate-dockerfile/src/project-detection.ts +0 -68
  267. package/skills/generate-dockerfile/src/support-files.ts +0 -171
  268. package/skills/generate-dockerfile/src/types.ts +0 -29
  269. package/skills/generate-dockerfile/tsconfig.json +0 -10
  270. package/skills/generate-env/CLAUDE.md +0 -19
  271. package/skills/generate-env/package.json +0 -29
  272. package/skills/generate-env/src/cli.ts +0 -85
  273. package/skills/generate-env/src/detection.ts +0 -161
  274. package/skills/generate-env/src/env-data.ts +0 -66
  275. package/skills/generate-env/src/generators.ts +0 -240
  276. package/skills/generate-env/src/index.ts +0 -120
  277. package/skills/generate-env/src/runtime.ts +0 -30
  278. package/skills/generate-env/src/types.ts +0 -32
  279. package/skills/generate-env/tsconfig.json +0 -10
  280. package/skills/generate-favicon/CLAUDE.md +0 -19
  281. package/skills/generate-favicon/package.json +0 -29
  282. package/skills/generate-favicon/src/index.ts +0 -421
  283. package/skills/generate-favicon/tsconfig.json +0 -10
  284. package/skills/generate-qrcode/CLAUDE.md +0 -19
  285. package/skills/generate-qrcode/package.json +0 -30
  286. package/skills/generate-qrcode/src/index.ts +0 -584
  287. package/skills/generate-qrcode/tsconfig.json +0 -10
  288. package/skills/generate-resume/CLAUDE.md +0 -19
  289. package/skills/generate-resume/package.json +0 -27
  290. package/skills/generate-resume/src/cli.ts +0 -157
  291. package/skills/generate-resume/src/index.ts +0 -178
  292. package/skills/generate-resume/src/parsers.ts +0 -95
  293. package/skills/generate-resume/src/renderers.ts +0 -538
  294. package/skills/generate-resume/src/security.ts +0 -39
  295. package/skills/generate-resume/src/types.ts +0 -86
  296. package/skills/generate-resume/tsconfig.json +0 -10
  297. package/skills/generate-sitemap/CLAUDE.md +0 -19
  298. package/skills/generate-sitemap/package.json +0 -27
  299. package/skills/generate-sitemap/src/index.ts +0 -626
  300. package/skills/generate-sitemap/tsconfig.json +0 -10
  301. package/skills/gif-maker/CLAUDE.md +0 -19
  302. package/skills/gif-maker/package.json +0 -30
  303. package/skills/gif-maker/src/index.ts +0 -600
  304. package/skills/gif-maker/tsconfig.json +0 -10
  305. package/skills/hook/LICENSE +0 -192
  306. package/skills/hook/README.md +0 -74
  307. package/skills/hook/SKILL.md +0 -85
  308. package/skills/hook/bunfig.toml +0 -5
  309. package/skills/hook/package.json +0 -28
  310. package/skills/hook/src/commands/create.ts +0 -112
  311. package/skills/hook/src/commands/events.ts +0 -37
  312. package/skills/hook/src/commands/validate.ts +0 -117
  313. package/skills/hook/src/index.ts +0 -118
  314. package/skills/hook/src/templates/root.ts +0 -196
  315. package/skills/hook/src/templates/source.ts +0 -647
  316. package/skills/hook/tsconfig.json +0 -18
  317. package/skills/http-server/CLAUDE.md +0 -19
  318. package/skills/http-server/package.json +0 -29
  319. package/skills/http-server/src/index.ts +0 -51
  320. package/skills/http-server/tsconfig.json +0 -10
  321. package/skills/implementation/LICENSE +0 -192
  322. package/skills/implementation/README.md +0 -53
  323. package/skills/implementation/SKILL.md +0 -57
  324. package/skills/implementation/bunfig.toml +0 -5
  325. package/skills/implementation/package.json +0 -28
  326. package/skills/implementation/src/commands/create.ts +0 -187
  327. package/skills/implementation/src/index.ts +0 -62
  328. package/skills/implementation/tsconfig.json +0 -18
  329. package/skills/implementation-plan/CLAUDE.md +0 -19
  330. package/skills/implementation-plan/package.json +0 -29
  331. package/skills/implementation-plan/src/index.ts +0 -520
  332. package/skills/implementation-plan/tsconfig.json +0 -10
  333. package/skills/implementation-todo/CLAUDE.md +0 -19
  334. package/skills/implementation-todo/package.json +0 -29
  335. package/skills/implementation-todo/src/index.ts +0 -429
  336. package/skills/implementation-todo/tsconfig.json +0 -10
  337. package/skills/invoice/.env.example +0 -3
  338. package/skills/invoice/CLAUDE.md +0 -31
  339. package/skills/invoice/LICENSE +0 -192
  340. package/skills/invoice/README.md +0 -70
  341. package/skills/invoice/package.json +0 -26
  342. package/skills/invoice/src/commands/companies.ts +0 -202
  343. package/skills/invoice/src/commands/config.ts +0 -132
  344. package/skills/invoice/src/commands/generate.ts +0 -177
  345. package/skills/invoice/src/commands/invoices.ts +0 -218
  346. package/skills/invoice/src/index.ts +0 -3
  347. package/skills/invoice/src/lib/api.ts +0 -124
  348. package/skills/invoice/src/lib/storage.ts +0 -171
  349. package/skills/invoice/src/types/index.ts +0 -86
  350. package/skills/invoice/src/utils/logger.ts +0 -33
  351. package/skills/invoice/src/utils/paths.ts +0 -25
  352. package/skills/invoice/tsconfig.json +0 -23
  353. package/skills/invoice-reconciliation/SKILL.md +0 -98
  354. package/skills/invoice-reconciliation/package.json +0 -36
  355. package/skills/invoice-reconciliation/src/index.ts +0 -743
  356. package/skills/invoice-reconciliation/tsconfig.json +0 -17
  357. package/skills/landing-page-pack/SKILL.md +0 -55
  358. package/skills/landing-page-pack/package.json +0 -10
  359. package/skills/latex-table-generator/CLAUDE.md +0 -19
  360. package/skills/latex-table-generator/package.json +0 -29
  361. package/skills/latex-table-generator/src/index.ts +0 -113
  362. package/skills/latex-table-generator/tsconfig.json +0 -10
  363. package/skills/logo-design/SKILL.md +0 -94
  364. package/skills/logo-design/package.json +0 -35
  365. package/skills/logo-design/src/cli.ts +0 -132
  366. package/skills/logo-design/src/constants.ts +0 -5
  367. package/skills/logo-design/src/docs.ts +0 -102
  368. package/skills/logo-design/src/geometry.ts +0 -324
  369. package/skills/logo-design/src/index.ts +0 -212
  370. package/skills/logo-design/src/palette.ts +0 -258
  371. package/skills/logo-design/src/types.ts +0 -50
  372. package/skills/logo-design/tsconfig.json +0 -17
  373. package/skills/lorem-generator/CLAUDE.md +0 -19
  374. package/skills/lorem-generator/package.json +0 -29
  375. package/skills/lorem-generator/src/index.ts +0 -59
  376. package/skills/lorem-generator/tsconfig.json +0 -10
  377. package/skills/managemcp/CLAUDE.md +0 -14
  378. package/skills/managemcp/README.md +0 -24
  379. package/skills/managemcp/package.json +0 -16
  380. package/skills/managemcp/src/index.ts +0 -3
  381. package/skills/managemcp/tsconfig.json +0 -27
  382. package/skills/markdown-validator/CLAUDE.md +0 -19
  383. package/skills/markdown-validator/package.json +0 -29
  384. package/skills/markdown-validator/src/index.ts +0 -92
  385. package/skills/markdown-validator/tsconfig.json +0 -10
  386. package/skills/market-research-report/SKILL.md +0 -51
  387. package/skills/market-research-report/package.json +0 -10
  388. package/skills/meeting-pack/SKILL.md +0 -52
  389. package/skills/meeting-pack/package.json +0 -10
  390. package/skills/merge-pdfs/CLAUDE.md +0 -19
  391. package/skills/merge-pdfs/package.json +0 -31
  392. package/skills/merge-pdfs/src/index.ts +0 -427
  393. package/skills/merge-pdfs/tsconfig.json +0 -10
  394. package/skills/migration-plan-pack/SKILL.md +0 -56
  395. package/skills/migration-plan-pack/package.json +0 -10
  396. package/skills/monitor/SKILL.md +0 -69
  397. package/skills/monitor/package.json +0 -33
  398. package/skills/monitor/src/index.ts +0 -34
  399. package/skills/monitor/tsconfig.json +0 -17
  400. package/skills/one-page-website/SKILL.md +0 -128
  401. package/skills/one-page-website/package.json +0 -34
  402. package/skills/one-page-website/src/design.ts +0 -336
  403. package/skills/one-page-website/src/docs.ts +0 -159
  404. package/skills/one-page-website/src/index.ts +0 -357
  405. package/skills/one-page-website/src/page.ts +0 -340
  406. package/skills/one-page-website/src/styles.ts +0 -508
  407. package/skills/one-page-website/src/types.ts +0 -78
  408. package/skills/one-page-website/tsconfig.json +0 -17
  409. package/skills/pdf-generate/CLAUDE.md +0 -19
  410. package/skills/pdf-generate/SKILL.md +0 -86
  411. package/skills/pdf-generate/package.json +0 -21
  412. package/skills/pdf-generate/src/cli.ts +0 -162
  413. package/skills/pdf-generate/src/html.ts +0 -84
  414. package/skills/pdf-generate/src/index.ts +0 -62
  415. package/skills/pdf-generate/src/markdown.ts +0 -27
  416. package/skills/pdf-generate/src/pdf-writer.ts +0 -78
  417. package/skills/pdf-generate/src/runtime.ts +0 -34
  418. package/skills/pdf-generate/src/security.ts +0 -37
  419. package/skills/pdf-generate/src/templates.ts +0 -311
  420. package/skills/pdf-generate/src/types.ts +0 -28
  421. package/skills/pdf-generate/tsconfig.json +0 -16
  422. package/skills/pdf-to-dataset/SKILL.md +0 -88
  423. package/skills/pdf-to-dataset/package.json +0 -37
  424. package/skills/pdf-to-dataset/src/index.ts +0 -790
  425. package/skills/pdf-to-dataset/tsconfig.json +0 -17
  426. package/skills/pdf-to-markdown/SKILL.md +0 -81
  427. package/skills/pdf-to-markdown/package.json +0 -35
  428. package/skills/pdf-to-markdown/src/index.ts +0 -694
  429. package/skills/pdf-to-markdown/tsconfig.json +0 -17
  430. package/skills/performance-audit-report/SKILL.md +0 -49
  431. package/skills/performance-audit-report/package.json +0 -10
  432. package/skills/pitch-deck/SKILL.md +0 -51
  433. package/skills/pitch-deck/package.json +0 -10
  434. package/skills/product-mockup/SKILL.md +0 -107
  435. package/skills/product-mockup/package.json +0 -32
  436. package/skills/product-mockup/src/cli.ts +0 -150
  437. package/skills/product-mockup/src/design.ts +0 -151
  438. package/skills/product-mockup/src/docs.ts +0 -134
  439. package/skills/product-mockup/src/index.ts +0 -182
  440. package/skills/product-mockup/src/render.ts +0 -407
  441. package/skills/product-mockup/src/types.ts +0 -66
  442. package/skills/product-mockup/tsconfig.json +0 -17
  443. package/skills/proposal-pack/SKILL.md +0 -53
  444. package/skills/proposal-pack/package.json +0 -10
  445. package/skills/read-csv/SKILL.md +0 -62
  446. package/skills/read-csv/package.json +0 -37
  447. package/skills/read-csv/src/index.ts +0 -356
  448. package/skills/read-csv/tsconfig.json +0 -17
  449. package/skills/read-excel/SKILL.md +0 -64
  450. package/skills/read-excel/package.json +0 -36
  451. package/skills/read-excel/src/index.ts +0 -266
  452. package/skills/read-excel/tsconfig.json +0 -17
  453. package/skills/regex-tester/CLAUDE.md +0 -19
  454. package/skills/regex-tester/package.json +0 -27
  455. package/skills/regex-tester/src/index.ts +0 -183
  456. package/skills/regex-tester/tsconfig.json +0 -10
  457. package/skills/repo-onboarding-report/SKILL.md +0 -52
  458. package/skills/repo-onboarding-report/package.json +0 -10
  459. package/skills/scancommitpr/SKILL.md +0 -178
  460. package/skills/scancommitpr/package.json +0 -34
  461. package/skills/scancommitpr/src/index.ts +0 -44
  462. package/skills/scancommitpr/tsconfig.json +0 -13
  463. package/skills/scancommitpush/SKILL.md +0 -174
  464. package/skills/scancommitpush/package.json +0 -32
  465. package/skills/scancommitpush/src/index.ts +0 -44
  466. package/skills/scancommitpush/tsconfig.json +0 -13
  467. package/skills/scientific-figure-check/CLAUDE.md +0 -19
  468. package/skills/scientific-figure-check/package.json +0 -29
  469. package/skills/scientific-figure-check/src/index.ts +0 -83
  470. package/skills/scientific-figure-check/tsconfig.json +0 -10
  471. package/skills/security-audit/CLAUDE.md +0 -19
  472. package/skills/security-audit/package.json +0 -27
  473. package/skills/security-audit/src/index.ts +0 -145
  474. package/skills/security-audit/tsconfig.json +0 -10
  475. package/skills/security-audit-report/SKILL.md +0 -52
  476. package/skills/security-audit-report/package.json +0 -10
  477. package/skills/seo-content-pack/SKILL.md +0 -54
  478. package/skills/seo-content-pack/package.json +0 -10
  479. package/skills/siteanalyze/SKILL.md +0 -25
  480. package/skills/siteanalyze/package.json +0 -27
  481. package/skills/siteanalyze/src/index.ts +0 -592
  482. package/skills/slide-deck-generator/SKILL.md +0 -93
  483. package/skills/slide-deck-generator/package.json +0 -38
  484. package/skills/slide-deck-generator/src/cli.ts +0 -133
  485. package/skills/slide-deck-generator/src/index.ts +0 -148
  486. package/skills/slide-deck-generator/src/model.ts +0 -307
  487. package/skills/slide-deck-generator/src/pptx.ts +0 -143
  488. package/skills/slide-deck-generator/src/render.ts +0 -248
  489. package/skills/slide-deck-generator/src/types.ts +0 -114
  490. package/skills/slide-deck-generator/src/utils.ts +0 -53
  491. package/skills/slide-deck-generator/tsconfig.json +0 -17
  492. package/skills/social-content-calendar/SKILL.md +0 -54
  493. package/skills/social-content-calendar/package.json +0 -10
  494. package/skills/split-pdf/CLAUDE.md +0 -19
  495. package/skills/split-pdf/package.json +0 -30
  496. package/skills/split-pdf/src/index.ts +0 -301
  497. package/skills/split-pdf/tsconfig.json +0 -10
  498. package/skills/statistical-test-selector/CLAUDE.md +0 -19
  499. package/skills/statistical-test-selector/package.json +0 -27
  500. package/skills/statistical-test-selector/src/index.ts +0 -75
  501. package/skills/statistical-test-selector/tsconfig.json +0 -10
  502. package/skills/test-suite-generator/SKILL.md +0 -51
  503. package/skills/test-suite-generator/package.json +0 -10
  504. package/skills/tmux-session/SKILL.md +0 -109
  505. package/skills/tmux-session/package.json +0 -33
  506. package/skills/tmux-session/src/index.ts +0 -34
  507. package/skills/tmux-session/tsconfig.json +0 -17
  508. package/skills/todos-plan/SKILL.md +0 -363
  509. package/skills/todos-plan/agents/openai.yaml +0 -4
  510. package/skills/todos-plan/package.json +0 -9
  511. package/skills/todos-plan/src/index.ts +0 -68
  512. package/skills/tsconfig.base.json +0 -12
  513. package/skills/validate-config/CLAUDE.md +0 -19
  514. package/skills/validate-config/package.json +0 -29
  515. package/skills/validate-config/src/index.ts +0 -56
  516. package/skills/validate-config/tsconfig.json +0 -10
  517. package/skills/video-downloader/CLAUDE.md +0 -19
  518. package/skills/video-downloader/package.json +0 -29
  519. package/skills/video-downloader/src/index.ts +0 -561
  520. package/skills/video-downloader/tsconfig.json +0 -10
  521. package/skills/video-highlight-pack/SKILL.md +0 -54
  522. package/skills/video-highlight-pack/package.json +0 -10
  523. package/skills/watermark/CLAUDE.md +0 -19
  524. package/skills/watermark/package.json +0 -32
  525. package/skills/watermark/src/index.ts +0 -587
  526. package/skills/watermark/tsconfig.json +0 -10
@@ -1,74 +0,0 @@
1
- #!/usr/bin/env bun
2
-
3
- /**
4
- * Analyze Data Skill
5
- *
6
- * Comprehensive data analysis for CSV and JSON files with statistics,
7
- * quality checks, correlation detection, and trend analysis.
8
- */
9
-
10
- import { statSync, writeFileSync } from 'fs';
11
- import { resolve } from 'path';
12
-
13
- import { analyzeData } from './analysis';
14
- import { parseArguments } from './cli';
15
- import { formatHTML, formatMarkdown } from './formatters';
16
- import { log, SESSION_ID, SKILL_NAME } from './logger';
17
-
18
- async function main() {
19
- try {
20
- log(`Starting ${SKILL_NAME} session: ${SESSION_ID}`);
21
- const { filePath, options } = parseArguments();
22
-
23
- // Check if file exists
24
- try {
25
- statSync(filePath);
26
- } catch {
27
- log(`Error: File not found: ${filePath}`, 'error');
28
- process.exit(1);
29
- }
30
-
31
- // Perform analysis
32
- const report = await analyzeData(filePath, options);
33
-
34
- // Format output
35
- let output: string;
36
- switch (options.format) {
37
- case 'json':
38
- output = JSON.stringify(report, null, 2);
39
- break;
40
- case 'html':
41
- output = formatHTML(report);
42
- break;
43
- default:
44
- output = formatMarkdown(report);
45
- }
46
-
47
- // Save or print
48
- if (options.output) {
49
- const outputPath = resolve(process.cwd(), options.output);
50
- writeFileSync(outputPath, output, 'utf-8');
51
- log(`Report saved to: ${outputPath}`, 'success');
52
- } else {
53
- console.log(output);
54
- }
55
-
56
- // Show summary in verbose mode
57
- if (options.verbose) {
58
- log('Analysis Complete', 'success');
59
- log(`Rows: ${report.overview.rowCount}`);
60
- log(`Columns: ${report.overview.columnCount}`);
61
- log(`Quality Score: ${report.quality.dataQualityScore}/100`);
62
- log(`Processing Time: ${report.overview.processingTime}ms`);
63
- }
64
-
65
- } catch (error) {
66
- log(`Error: ${error instanceof Error ? error.message : String(error)}`, 'error');
67
- process.exit(1);
68
- }
69
- }
70
-
71
- // Run if called directly
72
- if (import.meta.main) {
73
- main();
74
- }
@@ -1,36 +0,0 @@
1
- import { appendFileSync, existsSync, mkdirSync } from 'fs';
2
- import { randomUUID } from 'crypto';
3
- import { join } from 'path';
4
-
5
- export const SKILL_NAME = "analyze-data";
6
- export const SESSION_ID = randomUUID().slice(0, 8);
7
- export const SKILLS_OUTPUT_DIR = process.env.SKILLS_OUTPUT_DIR || join(process.cwd(), ".skills");
8
- export const LOGS_DIR = join(SKILLS_OUTPUT_DIR, "logs", SKILL_NAME);
9
- export const LOG_FILE = join(LOGS_DIR, `${new Date().toISOString().replace(/[:.]/g, "_").slice(0, 19)}_${SESSION_ID}.log`);
10
-
11
- export function ensureDir(dir: string) {
12
- if (!existsSync(dir)) {
13
- mkdirSync(dir, { recursive: true });
14
- }
15
- }
16
-
17
- export function log(message: string, level: "info" | "error" | "success" = "info") {
18
- ensureDir(LOGS_DIR);
19
- const timestamp = new Date().toISOString();
20
- const logMessage = `[${timestamp}] [${level.toUpperCase()}] ${message}\n`;
21
- appendFileSync(LOG_FILE, logMessage);
22
-
23
- const prefixes = {
24
- info: "ℹ️ ",
25
- error: "❌ ",
26
- success: "✅ "
27
- };
28
-
29
- if (level === "error") {
30
- console.error(`${prefixes[level]} ${message}`);
31
- } else {
32
- console.log(`${prefixes[level]} ${message}`);
33
- }
34
- }
35
-
36
- // ============================================================================
@@ -1,57 +0,0 @@
1
- export function parseCSV(content: string): any[] {
2
- const lines = content.split('\n').filter(line => line.trim());
3
- if (lines.length === 0) return [];
4
-
5
- const headers = lines[0].split(',').map(h => h.trim().replace(/^"|"$/g, ''));
6
- const data: any[] = [];
7
-
8
- for (let i = 1; i < lines.length; i++) {
9
- const values = parseCSVLine(lines[i]);
10
- if (values.length === headers.length) {
11
- const row: any = {};
12
- headers.forEach((header, idx) => {
13
- row[header] = values[idx];
14
- });
15
- data.push(row);
16
- }
17
- }
18
-
19
- return data;
20
- }
21
-
22
- function parseCSVLine(line: string): string[] {
23
- const values: string[] = [];
24
- let current = '';
25
- let inQuotes = false;
26
-
27
- for (let i = 0; i < line.length; i++) {
28
- const char = line[i];
29
-
30
- if (char === '"') {
31
- inQuotes = !inQuotes;
32
- } else if (char === ',' && !inQuotes) {
33
- values.push(current.trim());
34
- current = '';
35
- } else {
36
- current += char;
37
- }
38
- }
39
-
40
- values.push(current.trim());
41
- return values.map(v => v.replace(/^"|"$/g, ''));
42
- }
43
-
44
- export function parseJSON(content: string): any[] {
45
- const parsed = JSON.parse(content);
46
-
47
- if (Array.isArray(parsed)) {
48
- return parsed;
49
- } else if (parsed.data && Array.isArray(parsed.data)) {
50
- return parsed.data;
51
- } else if (typeof parsed === 'object') {
52
- // Convert object to array of key-value pairs
53
- return Object.entries(parsed).map(([key, value]) => ({ key, value }));
54
- }
55
-
56
- throw new Error('Unsupported JSON structure');
57
- }
@@ -1,151 +0,0 @@
1
- import type { ColumnStats } from './types';
2
-
3
- export function detectDataType(values: any[]): ColumnStats['dataType'] {
4
- const nonNullValues = values.filter(v => v !== null && v !== undefined && v !== '');
5
- if (nonNullValues.length === 0) return 'string';
6
-
7
- let numericCount = 0;
8
- let dateCount = 0;
9
- let booleanCount = 0;
10
-
11
- for (const value of nonNullValues.slice(0, 100)) {
12
- if (typeof value === 'number' || !isNaN(Number(value))) {
13
- numericCount++;
14
- }
15
- if (value === true || value === false || value === 'true' || value === 'false') {
16
- booleanCount++;
17
- }
18
- if (!isNaN(Date.parse(String(value)))) {
19
- dateCount++;
20
- }
21
- }
22
-
23
- const total = Math.min(nonNullValues.length, 100);
24
-
25
- if (numericCount / total > 0.8) return 'numeric';
26
- if (booleanCount / total > 0.8) return 'boolean';
27
- if (dateCount / total > 0.8) return 'date';
28
- if (numericCount > 0 && numericCount < total * 0.8) return 'mixed';
29
-
30
- return 'string';
31
- }
32
-
33
- export function calculateStats(values: number[]): Partial<ColumnStats> {
34
- if (values.length === 0) return {};
35
-
36
- const sorted = [...values].sort((a, b) => a - b);
37
- const n = sorted.length;
38
-
39
- // Basic stats
40
- const sum = sorted.reduce((acc, val) => acc + val, 0);
41
- const mean = sum / n;
42
-
43
- const median = n % 2 === 0
44
- ? (sorted[n / 2 - 1] + sorted[n / 2]) / 2
45
- : sorted[Math.floor(n / 2)];
46
-
47
- // Mode
48
- const frequency: Record<number, number> = {};
49
- sorted.forEach(val => {
50
- frequency[val] = (frequency[val] || 0) + 1;
51
- });
52
- const maxFreq = Math.max(...Object.values(frequency));
53
- const modes = Object.keys(frequency)
54
- .filter(key => frequency[Number(key)] === maxFreq)
55
- .map(Number);
56
- const mode = modes.length === sorted.length ? undefined : (modes.length === 1 ? modes[0] : modes);
57
-
58
- // Variance and standard deviation
59
- const squaredDiffs = sorted.map(val => Math.pow(val - mean, 2));
60
- const variance = squaredDiffs.reduce((acc, val) => acc + val, 0) / n;
61
- const stdDev = Math.sqrt(variance);
62
-
63
- // Quartiles
64
- const q1 = sorted[Math.floor(n * 0.25)];
65
- const q2 = median;
66
- const q3 = sorted[Math.floor(n * 0.75)];
67
-
68
- // Skewness and kurtosis
69
- const cubedDiffs = sorted.map(val => Math.pow((val - mean) / stdDev, 3));
70
- const skewness = cubedDiffs.reduce((acc, val) => acc + val, 0) / n;
71
-
72
- const fourthDiffs = sorted.map(val => Math.pow((val - mean) / stdDev, 4));
73
- const kurtosis = fourthDiffs.reduce((acc, val) => acc + val, 0) / n - 3;
74
-
75
- return {
76
- mean: roundTo(mean, 4),
77
- median: roundTo(median, 4),
78
- mode,
79
- stdDev: roundTo(stdDev, 4),
80
- variance: roundTo(variance, 4),
81
- min: sorted[0],
82
- max: sorted[n - 1],
83
- range: sorted[n - 1] - sorted[0],
84
- q1: roundTo(q1, 4),
85
- q2: roundTo(q2, 4),
86
- q3: roundTo(q3, 4),
87
- skewness: roundTo(skewness, 4),
88
- kurtosis: roundTo(kurtosis, 4),
89
- };
90
- }
91
-
92
- export function calculatePercentiles(values: number[], percentiles: number[]): Record<number, number> {
93
- const sorted = [...values].sort((a, b) => a - b);
94
- const result: Record<number, number> = {};
95
-
96
- percentiles.forEach(p => {
97
- const index = (p / 100) * (sorted.length - 1);
98
- const lower = Math.floor(index);
99
- const upper = Math.ceil(index);
100
- const fraction = index - lower;
101
-
102
- result[p] = sorted[lower] + fraction * (sorted[upper] - sorted[lower]);
103
- });
104
-
105
- return result;
106
- }
107
-
108
- export function detectOutliers(values: number[], q1: number, q3: number): number[] {
109
- const iqr = q3 - q1;
110
- const lowerBound = q1 - 1.5 * iqr;
111
- const upperBound = q3 + 1.5 * iqr;
112
-
113
- return values.filter(val => val < lowerBound || val > upperBound);
114
- }
115
-
116
- export function calculateCorrelation(x: number[], y: number[]): number {
117
- const n = Math.min(x.length, y.length);
118
- if (n === 0) return 0;
119
-
120
- const meanX = x.reduce((acc, val) => acc + val, 0) / n;
121
- const meanY = y.reduce((acc, val) => acc + val, 0) / n;
122
-
123
- let numerator = 0;
124
- let sumXSquared = 0;
125
- let sumYSquared = 0;
126
-
127
- for (let i = 0; i < n; i++) {
128
- const dx = x[i] - meanX;
129
- const dy = y[i] - meanY;
130
- numerator += dx * dy;
131
- sumXSquared += dx * dx;
132
- sumYSquared += dy * dy;
133
- }
134
-
135
- const denominator = Math.sqrt(sumXSquared * sumYSquared);
136
- return denominator === 0 ? 0 : numerator / denominator;
137
- }
138
-
139
- export function roundTo(value: number, decimals: number): number {
140
- const factor = Math.pow(10, decimals);
141
- return Math.round(value * factor) / factor;
142
- }
143
-
144
- export function formatBytes(bytes: number): string {
145
- if (bytes < 1024) return bytes + ' B';
146
- if (bytes < 1024 * 1024) return (bytes / 1024).toFixed(2) + ' KB';
147
- if (bytes < 1024 * 1024 * 1024) return (bytes / (1024 * 1024)).toFixed(2) + ' MB';
148
- return (bytes / (1024 * 1024 * 1024)).toFixed(2) + ' GB';
149
- }
150
-
151
- // ============================================================================
@@ -1,85 +0,0 @@
1
- export interface AnalysisOptions {
2
- format: 'markdown' | 'json' | 'html';
3
- output?: string;
4
- correlations: boolean;
5
- outliers: boolean;
6
- trends: boolean;
7
- sample?: number;
8
- percentiles: number[];
9
- verbose: boolean;
10
- }
11
-
12
- export interface ColumnStats {
13
- name: string;
14
- dataType: 'numeric' | 'string' | 'date' | 'boolean' | 'mixed';
15
- count: number;
16
- nullCount: number;
17
- nullPercentage: number;
18
- uniqueCount: number;
19
- uniquePercentage: number;
20
- sampleValues: any[];
21
-
22
- // Numeric stats
23
- mean?: number;
24
- median?: number;
25
- mode?: number | number[];
26
- stdDev?: number;
27
- variance?: number;
28
- min?: number;
29
- max?: number;
30
- range?: number;
31
- q1?: number;
32
- q2?: number;
33
- q3?: number;
34
- percentiles?: Record<number, number>;
35
- skewness?: number;
36
- kurtosis?: number;
37
- outliers?: number[];
38
-
39
- // String stats
40
- avgLength?: number;
41
- minLength?: number;
42
- maxLength?: number;
43
-
44
- // Distribution
45
- distribution?: Record<string, number>;
46
- topValues?: Array<{ value: any; count: number; percentage: number }>;
47
- }
48
-
49
- export interface AnalysisReport {
50
- overview: {
51
- fileName: string;
52
- fileSize: string;
53
- fileType: string;
54
- rowCount: number;
55
- columnCount: number;
56
- memoryUsage: string;
57
- processingTime: number;
58
- timestamp: string;
59
- };
60
- columns: ColumnStats[];
61
- correlations?: number[][];
62
- correlationPairs?: Array<{ col1: string; col2: string; correlation: number }>;
63
- quality: {
64
- totalCells: number;
65
- missingCells: number;
66
- missingPercentage: number;
67
- duplicateRows: number;
68
- duplicatePercentage: number;
69
- dataQualityScore: number;
70
- issues: string[];
71
- };
72
- trends?: {
73
- detected: boolean;
74
- patterns: string[];
75
- insights: string[];
76
- };
77
- visualizationRecommendations: Array<{
78
- column: string;
79
- chartType: string;
80
- reason: string;
81
- }>;
82
- insights: string[];
83
- }
84
-
85
- // ============================================================================
@@ -1,19 +0,0 @@
1
- {
2
- "extends": "../tsconfig.base.json",
3
- "compilerOptions": {
4
- "forceConsistentCasingInFileNames": true,
5
- "outDir": "dist",
6
- "rootDir": ".",
7
- "types": [
8
- "bun"
9
- ]
10
- },
11
- "include": [
12
- "src/**/*",
13
- "bin/**/*"
14
- ],
15
- "exclude": [
16
- "node_modules",
17
- "dist"
18
- ]
19
- }
@@ -1,84 +0,0 @@
1
- ---
2
- name: api-docs-portal
3
- description: Generate a self-contained static API documentation portal, normalized endpoint JSON, and a markdown reference from an OpenAPI 3.x or Swagger 2.0 spec.
4
- ---
5
-
6
- # API Docs Portal
7
-
8
- Turn an OpenAPI/Swagger document into a browsable static portal. Everything is
9
- generated locally and deterministically: no network calls, no credentials, and
10
- the emitted HTML makes no external requests.
11
-
12
- ## What It Does
13
-
14
- - Reads OpenAPI 3.x or Swagger 2.0 specs in JSON or YAML.
15
- - Resolves local `$ref` pointers (`#/components/schemas/...`, `#/definitions/...`) with a cycle guard, so referenced request/response schemas render inline.
16
- - Groups endpoints by their first tag, falling back to the first path segment.
17
- - Renders method, path, summary, description, deprecation, path/query/header/cookie parameters (including path-level shared parameters), request body fields, and per-status response fields.
18
- - Flattens nested object schemas up to three levels and labels types (`string<uuid>`, `object[]`, `string (open | paid | cancelled)`, `A | B`).
19
- - Extracts security schemes and per-operation security requirements, and generates a cURL example per endpoint.
20
-
21
- ## Requirements
22
-
23
- - [Bun](https://bun.sh) 1.x
24
- - npm dependency: `yaml` (install once with `bun install` in this skill directory) — only needed for YAML specs, JSON specs parse natively
25
- - An OpenAPI/Swagger document with a `paths` object. External (`http://`, `other.yaml#/...`) `$ref`s are not fetched; they are marked as unresolved in the output.
26
-
27
- ## Usage
28
-
29
- ```bash
30
- # Generate the portal into ./api-portal
31
- skills run api-docs-portal -- --spec ./openapi.yaml
32
-
33
- # Dark theme, custom output directory and base URL
34
- skills run api-docs-portal -- --spec ./openapi.json --output ./docs/api \
35
- --theme slate --base-url https://api.example.com/v2
36
-
37
- # Machine-readable summary on stdout
38
- skills run api-docs-portal -- --spec ./openapi.yaml --json
39
- ```
40
-
41
- Then open `./api-portal/index.html` in a browser. Run it directly from the skill
42
- directory with `bun run src/index.ts --spec ./openapi.yaml`.
43
-
44
- ## Options
45
-
46
- | Option | Description | Default |
47
- |--------|-------------|---------|
48
- | `-s, --spec <path>` | OpenAPI/Swagger document, JSON or YAML (also accepted positionally) | required |
49
- | `-o, --output <dir>` | Output directory | `./api-portal` |
50
- | `--theme <name>` | `light` or `slate` | `light` |
51
- | `--base-url <url>` | Base URL shown in the portal and cURL examples | first `servers[].url` |
52
- | `--title <text>` | Override the portal title | spec `info.title` |
53
- | `--json` | Print a JSON summary on stdout | off |
54
- | `--help` | Show usage | |
55
- | `--version` | Show version | |
56
-
57
- ## Outputs
58
-
59
- Written into `--output` (default `./api-portal`):
60
-
61
- | File | Contents |
62
- |------|----------|
63
- | `index.html` | Self-contained portal: inline CSS, sticky sidebar navigation, responsive layout, zero external requests (no CDN scripts, fonts, or images) |
64
- | `endpoints.json` | Normalized endpoint model (method, path, group, params, request body fields, response fields, security) |
65
- | `reference.md` | Markdown API reference with parameter/field tables and cURL examples |
66
-
67
- Without `--json`, a summary is printed to stdout:
68
-
69
- ```
70
- api-docs-portal: /abs/path/openapi.yaml
71
- title Orders API v2.1.0
72
- base url https://api.example.com/v2
73
- theme slate
74
- endpoints 5 in 2 groups
75
- customers: 1
76
- orders: 4
77
- output /abs/path/api-portal
78
- files index.html, endpoints.json, reference.md
79
- ```
80
-
81
- ## Exit Codes
82
-
83
- - `0` — portal generated
84
- - `1` — missing/unreadable spec, invalid JSON/YAML, no `paths` object, no operations, or an invalid option value
@@ -1,35 +0,0 @@
1
- {
2
- "name": "api-docs-portal",
3
- "version": "0.1.0",
4
- "private": true,
5
- "description": "Generate a self-contained static API documentation portal from an OpenAPI or Swagger spec",
6
- "type": "module",
7
- "main": "src/index.ts",
8
- "bin": {
9
- "api-docs-portal": "src/index.ts"
10
- },
11
- "files": [
12
- "src",
13
- "SKILL.md",
14
- "tsconfig.json"
15
- ],
16
- "keywords": [
17
- "openapi",
18
- "swagger",
19
- "documentation",
20
- "static-site",
21
- "cli",
22
- "skill"
23
- ],
24
- "scripts": {
25
- "start": "bun run src/index.ts",
26
- "typecheck": "tsc --noEmit"
27
- },
28
- "dependencies": {
29
- "yaml": "^2.8.2"
30
- },
31
- "devDependencies": {
32
- "@types/bun": "latest",
33
- "typescript": "^5.7.0"
34
- }
35
- }