@hasna/skills 0.1.62 → 0.1.64

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 (541) hide show
  1. package/README.md +38 -12
  2. package/bin/index.js +15743 -21709
  3. package/bin/mcp.js +3866 -11522
  4. package/bin/migrate.js +281 -35
  5. package/bin/server.js +5805 -2682
  6. package/bin/worker.js +5280 -2388
  7. package/dist/cli/commands/publish.d.ts +2 -0
  8. package/dist/cli/commands/registry-reconcile.d.ts +2 -0
  9. package/dist/cli/components/App.d.ts +2 -1
  10. package/dist/cli/components/CategorySelect.d.ts +2 -1
  11. package/dist/cli/components/Header.d.ts +2 -1
  12. package/dist/cli/components/InstallProgress.d.ts +2 -1
  13. package/dist/cli/components/SearchView.d.ts +2 -1
  14. package/dist/cli/components/SkillSelect.d.ts +2 -1
  15. package/dist/index.d.ts +5 -2
  16. package/dist/index.js +5386 -13739
  17. package/dist/lib/agent-sync.d.ts +61 -6
  18. package/dist/lib/auth-store.d.ts +37 -0
  19. package/dist/lib/config.d.ts +51 -0
  20. package/dist/lib/home-adoption.d.ts +91 -0
  21. package/dist/lib/home-census.d.ts +26 -0
  22. package/dist/lib/home-migration.d.ts +60 -0
  23. package/dist/lib/native-storage.d.ts +1 -1
  24. package/dist/lib/portable-skills-files.d.ts +21 -1
  25. package/dist/lib/portable-skills-types.d.ts +46 -0
  26. package/dist/lib/portable-skills.d.ts +35 -6
  27. package/dist/lib/pull.d.ts +97 -0
  28. package/dist/lib/registry-reconcile.d.ts +114 -0
  29. package/dist/lib/registry.d.ts +7 -4
  30. package/dist/lib/remote-client.d.ts +124 -1
  31. package/dist/lib/remote-registry.d.ts +26 -0
  32. package/dist/lib/revision.d.ts +29 -0
  33. package/dist/lib/run-state.d.ts +5 -0
  34. package/dist/lib/skill-bundles.d.ts +54 -0
  35. package/dist/lib/skill-contract.d.ts +35 -0
  36. package/dist/lib/skill-hash.d.ts +77 -0
  37. package/dist/sdk/cancel.d.ts +30 -0
  38. package/dist/sdk/dispatcher.d.ts +40 -0
  39. package/dist/sdk/event-sink.d.ts +2 -0
  40. package/dist/sdk/events.d.ts +79 -0
  41. package/dist/sdk/execution/admission.d.ts +44 -0
  42. package/dist/sdk/execution/dispatchers/e2b.d.ts +17 -0
  43. package/dist/sdk/execution/dispatchers/ecs.d.ts +151 -0
  44. package/dist/sdk/execution/image-profile.d.ts +73 -0
  45. package/dist/sdk/execution/index.d.ts +15 -0
  46. package/dist/sdk/execution/receipts.d.ts +44 -0
  47. package/dist/sdk/execution/state-machine.d.ts +38 -0
  48. package/dist/sdk/execution/storage.d.ts +158 -0
  49. package/dist/sdk/execution/types.d.ts +130 -0
  50. package/dist/sdk/executor.d.ts +17 -0
  51. package/dist/sdk/governance-store.d.ts +156 -0
  52. package/dist/sdk/governance.d.ts +92 -0
  53. package/dist/sdk/index.d.ts +26 -0
  54. package/dist/sdk/index.js +49728 -0
  55. package/dist/sdk/offline.d.ts +16 -0
  56. package/dist/sdk/outputs.d.ts +71 -0
  57. package/dist/sdk/registry.d.ts +28 -0
  58. package/dist/sdk/runs.d.ts +229 -0
  59. package/dist/sdk/server.d.ts +35 -0
  60. package/dist/sdk/spend.d.ts +36 -0
  61. package/dist/sdk/storage.d.ts +25 -0
  62. package/dist/server/app.d.ts +42 -0
  63. package/dist/server/artifact-storage.d.ts +102 -0
  64. package/dist/server/auth.d.ts +5 -0
  65. package/dist/server/config.d.ts +50 -0
  66. package/dist/server/database-url.d.ts +42 -0
  67. package/dist/server/handlers.d.ts +3 -0
  68. package/dist/server/index.d.ts +2 -0
  69. package/dist/server/migrate.d.ts +13 -0
  70. package/dist/server/migrations-dir.d.ts +18 -0
  71. package/dist/server/redaction.d.ts +1 -0
  72. package/dist/server/registry.d.ts +5 -0
  73. package/dist/server/rows.d.ts +24 -0
  74. package/dist/server/skills-api.d.ts +170 -0
  75. package/dist/server/sqlite-store.d.ts +131 -0
  76. package/dist/server/store-fixtures.d.ts +25 -0
  77. package/dist/server/store.d.ts +170 -0
  78. package/dist/server/types.d.ts +337 -0
  79. package/dist/server/worker.d.ts +4 -0
  80. package/dist/storage.js +39 -2
  81. package/docs/skill-standard.md +211 -39
  82. package/migrations/postgres/0003_run_outputs_governance.sql +83 -0
  83. package/migrations/postgres/0004_hosted_pins.sql +28 -0
  84. package/migrations/postgres/0005_revision_tombstone_registry.sql +37 -0
  85. package/migrations/postgres/0005_tag_projection.sql +36 -0
  86. package/migrations/sqlite/0003_run_outputs_governance.sql +58 -0
  87. package/migrations/sqlite/0004_hosted_pins.sql +21 -0
  88. package/migrations/sqlite/0005_revision_tombstone_registry.sql +18 -0
  89. package/migrations/sqlite/0005_tag_projection.sql +25 -0
  90. package/package.json +12 -8
  91. package/schemas/skill.schema.json +181 -0
  92. package/agent-skills/README.md +0 -41
  93. package/agent-skills/fleet-package-rollout/SKILL.md +0 -169
  94. package/agent-skills/inbox/SKILL.md +0 -25
  95. package/agent-skills/inbox/scripts/inbox +0 -109
  96. package/agent-skills/inbox/tests/test_registered_sender_id.sh +0 -92
  97. package/agent-skills/inbox-monitor/SKILL.md +0 -41
  98. package/agent-skills/inbox-monitor/scripts/inbox_monitor.sh +0 -91
  99. package/agent-skills/inbox-monitor/scripts/test_inbox_monitor.sh +0 -71
  100. package/agent-skills/merge-pr/SKILL.md +0 -85
  101. package/agent-skills/merge-pr/references/merge-safety.md +0 -82
  102. package/agent-skills/merge-pr/scripts/merge_pr_guard.py +0 -694
  103. package/agent-skills/merge-pr/scripts/test_merge_pr_guard.py +0 -647
  104. package/agent-skills/merge-pr/tests/fixtures/multi-commit-synthesized.json +0 -28
  105. package/agent-skills/merge-pr/tests/fixtures/trailer-free-provider.json +0 -28
  106. package/agent-skills/skill-goal-execute/SKILL.md +0 -115
  107. package/agent-skills/skill-login/SKILL.md +0 -109
  108. package/agent-skills/skill-project-create/SKILL.md +0 -91
  109. package/agent-skills/skill-publish/SKILL.md +0 -254
  110. package/agent-skills/skill-publish/scripts/capture_registry.js +0 -47
  111. package/agent-skills/skill-publish/scripts/publish_with_git_head.sh +0 -143
  112. package/agent-skills/skill-publish/scripts/test_publish_with_git_head.sh +0 -231
  113. package/skills/_common/auth.ts +0 -45
  114. package/skills/_common/http-client.ts +0 -143
  115. package/skills/_common/index.ts +0 -26
  116. package/skills/_common/install.sh +0 -7
  117. package/skills/_common/installer.ts +0 -72
  118. package/skills/_common/skill-install.ts +0 -37
  119. package/skills/_common/vision.ts +0 -374
  120. package/skills/ad-creative-pack/SKILL.md +0 -55
  121. package/skills/ad-creative-pack/package.json +0 -10
  122. package/skills/analyze-data/CLAUDE.md +0 -16
  123. package/skills/analyze-data/SKILL.md +0 -112
  124. package/skills/analyze-data/package.json +0 -23
  125. package/skills/analyze-data/src/analysis.ts +0 -401
  126. package/skills/analyze-data/src/cli.ts +0 -66
  127. package/skills/analyze-data/src/formatters.ts +0 -235
  128. package/skills/analyze-data/src/index.ts +0 -74
  129. package/skills/analyze-data/src/logger.ts +0 -36
  130. package/skills/analyze-data/src/parsers.ts +0 -57
  131. package/skills/analyze-data/src/stats.ts +0 -151
  132. package/skills/analyze-data/src/types.ts +0 -85
  133. package/skills/analyze-data/tsconfig.json +0 -19
  134. package/skills/api-docs-portal/SKILL.md +0 -84
  135. package/skills/api-docs-portal/package.json +0 -35
  136. package/skills/api-docs-portal/src/index.ts +0 -919
  137. package/skills/api-docs-portal/tsconfig.json +0 -17
  138. package/skills/api-test-suite/CLAUDE.md +0 -19
  139. package/skills/api-test-suite/package.json +0 -27
  140. package/skills/api-test-suite/src/index.ts +0 -381
  141. package/skills/api-test-suite/tsconfig.json +0 -10
  142. package/skills/audio-extract/CLAUDE.md +0 -9
  143. package/skills/audio-extract/SKILL.md +0 -73
  144. package/skills/audio-extract/package.json +0 -23
  145. package/skills/audio-extract/src/index.ts +0 -323
  146. package/skills/audio-extract/tsconfig.json +0 -11
  147. package/skills/bio-sequence-tool/CLAUDE.md +0 -19
  148. package/skills/bio-sequence-tool/package.json +0 -27
  149. package/skills/bio-sequence-tool/src/index.ts +0 -85
  150. package/skills/bio-sequence-tool/tsconfig.json +0 -10
  151. package/skills/blog-article/CLAUDE.md +0 -12
  152. package/skills/blog-article/SKILL.md +0 -55
  153. package/skills/blog-article/package.json +0 -10
  154. package/skills/blog-article/tsconfig.json +0 -10
  155. package/skills/brand-assets/SKILL.md +0 -118
  156. package/skills/brand-assets/package.json +0 -35
  157. package/skills/brand-assets/src/cli.ts +0 -155
  158. package/skills/brand-assets/src/constants.ts +0 -8
  159. package/skills/brand-assets/src/extract.ts +0 -236
  160. package/skills/brand-assets/src/index.ts +0 -668
  161. package/skills/brand-assets/src/types.ts +0 -59
  162. package/skills/brand-assets/tsconfig.json +0 -17
  163. package/skills/brand-kit/SKILL.md +0 -54
  164. package/skills/brand-kit/package.json +0 -10
  165. package/skills/businessactivity/CLAUDE.md +0 -176
  166. package/skills/businessactivity/LICENSE +0 -192
  167. package/skills/businessactivity/README.md +0 -287
  168. package/skills/businessactivity/package.json +0 -25
  169. package/skills/businessactivity/scripts/publish.ts +0 -210
  170. package/skills/businessactivity/src/commands/activity.ts +0 -211
  171. package/skills/businessactivity/src/commands/function.ts +0 -227
  172. package/skills/businessactivity/src/commands/owner.ts +0 -193
  173. package/skills/businessactivity/src/commands/profile.ts +0 -121
  174. package/skills/businessactivity/src/commands/responsibility.ts +0 -264
  175. package/skills/businessactivity/src/commands/team.ts +0 -244
  176. package/skills/businessactivity/src/commands/workflow.ts +0 -359
  177. package/skills/businessactivity/src/index.ts +0 -3
  178. package/skills/businessactivity/src/lib/config.ts +0 -167
  179. package/skills/businessactivity/src/lib/output.ts +0 -76
  180. package/skills/businessactivity/src/lib/paths.ts +0 -79
  181. package/skills/businessactivity/src/lib/storage.ts +0 -95
  182. package/skills/businessactivity/src/types/index.ts +0 -86
  183. package/skills/businessactivity/tsconfig.json +0 -29
  184. package/skills/codefix/LICENSE +0 -192
  185. package/skills/codefix/README.md +0 -232
  186. package/skills/codefix/SKILL.md +0 -94
  187. package/skills/codefix/package.json +0 -21
  188. package/skills/codefix/src/fixers/batch.ts +0 -213
  189. package/skills/codefix/src/fixers/detector.ts +0 -160
  190. package/skills/codefix/src/fixers/index.ts +0 -7
  191. package/skills/codefix/src/fixers/runner.ts +0 -522
  192. package/skills/codefix/src/index-local.ts +0 -431
  193. package/skills/codefix/src/index.ts +0 -4
  194. package/skills/codefix/src/types.ts +0 -211
  195. package/skills/codefix/tsconfig.json +0 -15
  196. package/skills/commitpush/SKILL.md +0 -57
  197. package/skills/commitpush/package.json +0 -33
  198. package/skills/commitpush/src/index.ts +0 -34
  199. package/skills/commitpush/tsconfig.json +0 -17
  200. package/skills/commitpushpr/SKILL.md +0 -55
  201. package/skills/commitpushpr/package.json +0 -33
  202. package/skills/commitpushpr/src/index.ts +0 -34
  203. package/skills/commitpushpr/tsconfig.json +0 -17
  204. package/skills/compress-video/CLAUDE.md +0 -9
  205. package/skills/compress-video/SKILL.md +0 -79
  206. package/skills/compress-video/package.json +0 -23
  207. package/skills/compress-video/src/index.ts +0 -473
  208. package/skills/compress-video/tsconfig.json +0 -11
  209. package/skills/contract-review-report/SKILL.md +0 -52
  210. package/skills/contract-review-report/package.json +0 -10
  211. package/skills/customer-feedback-report/SKILL.md +0 -52
  212. package/skills/customer-feedback-report/package.json +0 -10
  213. package/skills/dashboard-builder/CLAUDE.md +0 -19
  214. package/skills/dashboard-builder/package.json +0 -29
  215. package/skills/dashboard-builder/src/index.ts +0 -150
  216. package/skills/dashboard-builder/tsconfig.json +0 -10
  217. package/skills/data-anonymizer/CLAUDE.md +0 -19
  218. package/skills/data-anonymizer/package.json +0 -27
  219. package/skills/data-anonymizer/src/index.ts +0 -183
  220. package/skills/data-anonymizer/tsconfig.json +0 -10
  221. package/skills/database-explorer/CLAUDE.md +0 -19
  222. package/skills/database-explorer/package.json +0 -29
  223. package/skills/database-explorer/src/index.ts +0 -95
  224. package/skills/database-explorer/tsconfig.json +0 -10
  225. package/skills/diff-viewer/CLAUDE.md +0 -19
  226. package/skills/diff-viewer/package.json +0 -30
  227. package/skills/diff-viewer/src/index.ts +0 -164
  228. package/skills/diff-viewer/tsconfig.json +0 -10
  229. package/skills/doc-read/SKILL.md +0 -45
  230. package/skills/doc-read/package.json +0 -29
  231. package/skills/doc-read/src/index.ts +0 -324
  232. package/skills/doc-read/tsconfig.json +0 -8
  233. package/skills/domainpurchase/LICENSE +0 -192
  234. package/skills/domainpurchase/SKILL.md +0 -29
  235. package/skills/domainpurchase/package.json +0 -30
  236. package/skills/domainpurchase/src/index.ts +0 -3
  237. package/skills/domainpurchase/tsconfig.json +0 -21
  238. package/skills/email-sequence/SKILL.md +0 -53
  239. package/skills/email-sequence/package.json +0 -10
  240. package/skills/experiment-power-calculator/CLAUDE.md +0 -19
  241. package/skills/experiment-power-calculator/package.json +0 -29
  242. package/skills/experiment-power-calculator/src/index.ts +0 -86
  243. package/skills/experiment-power-calculator/tsconfig.json +0 -10
  244. package/skills/extract-frames/CLAUDE.md +0 -19
  245. package/skills/extract-frames/package.json +0 -27
  246. package/skills/extract-frames/src/index.ts +0 -616
  247. package/skills/extract-frames/tsconfig.json +0 -10
  248. package/skills/file-organizer/CLAUDE.md +0 -19
  249. package/skills/file-organizer/package.json +0 -27
  250. package/skills/file-organizer/src/index.ts +0 -91
  251. package/skills/file-organizer/tsconfig.json +0 -10
  252. package/skills/folder-tree/CLAUDE.md +0 -19
  253. package/skills/folder-tree/package.json +0 -29
  254. package/skills/folder-tree/src/index.ts +0 -568
  255. package/skills/folder-tree/tsconfig.json +0 -10
  256. package/skills/form-filler/CLAUDE.md +0 -19
  257. package/skills/form-filler/package.json +0 -29
  258. package/skills/form-filler/src/index.ts +0 -81
  259. package/skills/form-filler/tsconfig.json +0 -10
  260. package/skills/generate-api-client/CLAUDE.md +0 -19
  261. package/skills/generate-api-client/package.json +0 -29
  262. package/skills/generate-api-client/src/generator.ts +0 -47
  263. package/skills/generate-api-client/src/index.ts +0 -92
  264. package/skills/generate-api-client/src/logger.ts +0 -34
  265. package/skills/generate-api-client/src/python-generator.ts +0 -245
  266. package/skills/generate-api-client/src/spec-loader.ts +0 -48
  267. package/skills/generate-api-client/src/type-mappers.ts +0 -79
  268. package/skills/generate-api-client/src/types.ts +0 -76
  269. package/skills/generate-api-client/src/typescript-generator.ts +0 -247
  270. package/skills/generate-api-client/tsconfig.json +0 -10
  271. package/skills/generate-chart/CLAUDE.md +0 -19
  272. package/skills/generate-chart/package.json +0 -27
  273. package/skills/generate-chart/src/index.ts +0 -510
  274. package/skills/generate-chart/tsconfig.json +0 -10
  275. package/skills/generate-dockerfile/CLAUDE.md +0 -19
  276. package/skills/generate-dockerfile/package.json +0 -27
  277. package/skills/generate-dockerfile/src/cli.ts +0 -78
  278. package/skills/generate-dockerfile/src/dockerfile-templates.ts +0 -392
  279. package/skills/generate-dockerfile/src/index.ts +0 -81
  280. package/skills/generate-dockerfile/src/logger.ts +0 -30
  281. package/skills/generate-dockerfile/src/project-detection.ts +0 -68
  282. package/skills/generate-dockerfile/src/support-files.ts +0 -171
  283. package/skills/generate-dockerfile/src/types.ts +0 -29
  284. package/skills/generate-dockerfile/tsconfig.json +0 -10
  285. package/skills/generate-env/CLAUDE.md +0 -19
  286. package/skills/generate-env/package.json +0 -29
  287. package/skills/generate-env/src/cli.ts +0 -85
  288. package/skills/generate-env/src/detection.ts +0 -161
  289. package/skills/generate-env/src/env-data.ts +0 -66
  290. package/skills/generate-env/src/generators.ts +0 -240
  291. package/skills/generate-env/src/index.ts +0 -120
  292. package/skills/generate-env/src/runtime.ts +0 -30
  293. package/skills/generate-env/src/types.ts +0 -32
  294. package/skills/generate-env/tsconfig.json +0 -10
  295. package/skills/generate-favicon/CLAUDE.md +0 -19
  296. package/skills/generate-favicon/package.json +0 -29
  297. package/skills/generate-favicon/src/index.ts +0 -421
  298. package/skills/generate-favicon/tsconfig.json +0 -10
  299. package/skills/generate-qrcode/CLAUDE.md +0 -19
  300. package/skills/generate-qrcode/package.json +0 -30
  301. package/skills/generate-qrcode/src/index.ts +0 -584
  302. package/skills/generate-qrcode/tsconfig.json +0 -10
  303. package/skills/generate-resume/CLAUDE.md +0 -19
  304. package/skills/generate-resume/package.json +0 -27
  305. package/skills/generate-resume/src/cli.ts +0 -157
  306. package/skills/generate-resume/src/index.ts +0 -178
  307. package/skills/generate-resume/src/parsers.ts +0 -95
  308. package/skills/generate-resume/src/renderers.ts +0 -538
  309. package/skills/generate-resume/src/security.ts +0 -39
  310. package/skills/generate-resume/src/types.ts +0 -86
  311. package/skills/generate-resume/tsconfig.json +0 -10
  312. package/skills/generate-sitemap/CLAUDE.md +0 -19
  313. package/skills/generate-sitemap/package.json +0 -27
  314. package/skills/generate-sitemap/src/index.ts +0 -626
  315. package/skills/generate-sitemap/tsconfig.json +0 -10
  316. package/skills/gif-maker/CLAUDE.md +0 -19
  317. package/skills/gif-maker/package.json +0 -30
  318. package/skills/gif-maker/src/index.ts +0 -600
  319. package/skills/gif-maker/tsconfig.json +0 -10
  320. package/skills/hook/LICENSE +0 -192
  321. package/skills/hook/README.md +0 -74
  322. package/skills/hook/SKILL.md +0 -85
  323. package/skills/hook/bunfig.toml +0 -5
  324. package/skills/hook/package.json +0 -28
  325. package/skills/hook/src/commands/create.ts +0 -112
  326. package/skills/hook/src/commands/events.ts +0 -37
  327. package/skills/hook/src/commands/validate.ts +0 -117
  328. package/skills/hook/src/index.ts +0 -118
  329. package/skills/hook/src/templates/root.ts +0 -196
  330. package/skills/hook/src/templates/source.ts +0 -647
  331. package/skills/hook/tsconfig.json +0 -18
  332. package/skills/http-server/CLAUDE.md +0 -19
  333. package/skills/http-server/package.json +0 -29
  334. package/skills/http-server/src/index.ts +0 -51
  335. package/skills/http-server/tsconfig.json +0 -10
  336. package/skills/implementation/LICENSE +0 -192
  337. package/skills/implementation/README.md +0 -53
  338. package/skills/implementation/SKILL.md +0 -57
  339. package/skills/implementation/bunfig.toml +0 -5
  340. package/skills/implementation/package.json +0 -28
  341. package/skills/implementation/src/commands/create.ts +0 -187
  342. package/skills/implementation/src/index.ts +0 -62
  343. package/skills/implementation/tsconfig.json +0 -18
  344. package/skills/implementation-plan/CLAUDE.md +0 -19
  345. package/skills/implementation-plan/package.json +0 -29
  346. package/skills/implementation-plan/src/index.ts +0 -520
  347. package/skills/implementation-plan/tsconfig.json +0 -10
  348. package/skills/implementation-todo/CLAUDE.md +0 -19
  349. package/skills/implementation-todo/package.json +0 -29
  350. package/skills/implementation-todo/src/index.ts +0 -429
  351. package/skills/implementation-todo/tsconfig.json +0 -10
  352. package/skills/invoice/.env.example +0 -3
  353. package/skills/invoice/CLAUDE.md +0 -31
  354. package/skills/invoice/LICENSE +0 -192
  355. package/skills/invoice/README.md +0 -70
  356. package/skills/invoice/package.json +0 -26
  357. package/skills/invoice/src/commands/companies.ts +0 -202
  358. package/skills/invoice/src/commands/config.ts +0 -132
  359. package/skills/invoice/src/commands/generate.ts +0 -177
  360. package/skills/invoice/src/commands/invoices.ts +0 -218
  361. package/skills/invoice/src/index.ts +0 -3
  362. package/skills/invoice/src/lib/api.ts +0 -124
  363. package/skills/invoice/src/lib/storage.ts +0 -171
  364. package/skills/invoice/src/types/index.ts +0 -86
  365. package/skills/invoice/src/utils/logger.ts +0 -33
  366. package/skills/invoice/src/utils/paths.ts +0 -25
  367. package/skills/invoice/tsconfig.json +0 -23
  368. package/skills/invoice-reconciliation/SKILL.md +0 -98
  369. package/skills/invoice-reconciliation/package.json +0 -36
  370. package/skills/invoice-reconciliation/src/index.ts +0 -743
  371. package/skills/invoice-reconciliation/tsconfig.json +0 -17
  372. package/skills/landing-page-pack/SKILL.md +0 -55
  373. package/skills/landing-page-pack/package.json +0 -10
  374. package/skills/latex-table-generator/CLAUDE.md +0 -19
  375. package/skills/latex-table-generator/package.json +0 -29
  376. package/skills/latex-table-generator/src/index.ts +0 -113
  377. package/skills/latex-table-generator/tsconfig.json +0 -10
  378. package/skills/logo-design/SKILL.md +0 -94
  379. package/skills/logo-design/package.json +0 -35
  380. package/skills/logo-design/src/cli.ts +0 -132
  381. package/skills/logo-design/src/constants.ts +0 -5
  382. package/skills/logo-design/src/docs.ts +0 -102
  383. package/skills/logo-design/src/geometry.ts +0 -324
  384. package/skills/logo-design/src/index.ts +0 -212
  385. package/skills/logo-design/src/palette.ts +0 -258
  386. package/skills/logo-design/src/types.ts +0 -50
  387. package/skills/logo-design/tsconfig.json +0 -17
  388. package/skills/lorem-generator/CLAUDE.md +0 -19
  389. package/skills/lorem-generator/package.json +0 -29
  390. package/skills/lorem-generator/src/index.ts +0 -59
  391. package/skills/lorem-generator/tsconfig.json +0 -10
  392. package/skills/managemcp/CLAUDE.md +0 -14
  393. package/skills/managemcp/README.md +0 -24
  394. package/skills/managemcp/package.json +0 -16
  395. package/skills/managemcp/src/index.ts +0 -3
  396. package/skills/managemcp/tsconfig.json +0 -27
  397. package/skills/markdown-validator/CLAUDE.md +0 -19
  398. package/skills/markdown-validator/package.json +0 -29
  399. package/skills/markdown-validator/src/index.ts +0 -92
  400. package/skills/markdown-validator/tsconfig.json +0 -10
  401. package/skills/market-research-report/SKILL.md +0 -51
  402. package/skills/market-research-report/package.json +0 -10
  403. package/skills/meeting-pack/SKILL.md +0 -52
  404. package/skills/meeting-pack/package.json +0 -10
  405. package/skills/merge-pdfs/CLAUDE.md +0 -19
  406. package/skills/merge-pdfs/package.json +0 -31
  407. package/skills/merge-pdfs/src/index.ts +0 -427
  408. package/skills/merge-pdfs/tsconfig.json +0 -10
  409. package/skills/migration-plan-pack/SKILL.md +0 -56
  410. package/skills/migration-plan-pack/package.json +0 -10
  411. package/skills/monitor/SKILL.md +0 -69
  412. package/skills/monitor/package.json +0 -33
  413. package/skills/monitor/src/index.ts +0 -34
  414. package/skills/monitor/tsconfig.json +0 -17
  415. package/skills/one-page-website/SKILL.md +0 -128
  416. package/skills/one-page-website/package.json +0 -34
  417. package/skills/one-page-website/src/design.ts +0 -336
  418. package/skills/one-page-website/src/docs.ts +0 -159
  419. package/skills/one-page-website/src/index.ts +0 -357
  420. package/skills/one-page-website/src/page.ts +0 -340
  421. package/skills/one-page-website/src/styles.ts +0 -508
  422. package/skills/one-page-website/src/types.ts +0 -78
  423. package/skills/one-page-website/tsconfig.json +0 -17
  424. package/skills/pdf-generate/CLAUDE.md +0 -19
  425. package/skills/pdf-generate/SKILL.md +0 -86
  426. package/skills/pdf-generate/package.json +0 -21
  427. package/skills/pdf-generate/src/cli.ts +0 -162
  428. package/skills/pdf-generate/src/html.ts +0 -84
  429. package/skills/pdf-generate/src/index.ts +0 -62
  430. package/skills/pdf-generate/src/markdown.ts +0 -27
  431. package/skills/pdf-generate/src/pdf-writer.ts +0 -78
  432. package/skills/pdf-generate/src/runtime.ts +0 -34
  433. package/skills/pdf-generate/src/security.ts +0 -37
  434. package/skills/pdf-generate/src/templates.ts +0 -311
  435. package/skills/pdf-generate/src/types.ts +0 -28
  436. package/skills/pdf-generate/tsconfig.json +0 -16
  437. package/skills/pdf-to-dataset/SKILL.md +0 -88
  438. package/skills/pdf-to-dataset/package.json +0 -37
  439. package/skills/pdf-to-dataset/src/index.ts +0 -790
  440. package/skills/pdf-to-dataset/tsconfig.json +0 -17
  441. package/skills/pdf-to-markdown/SKILL.md +0 -81
  442. package/skills/pdf-to-markdown/package.json +0 -35
  443. package/skills/pdf-to-markdown/src/index.ts +0 -694
  444. package/skills/pdf-to-markdown/tsconfig.json +0 -17
  445. package/skills/performance-audit-report/SKILL.md +0 -49
  446. package/skills/performance-audit-report/package.json +0 -10
  447. package/skills/pitch-deck/SKILL.md +0 -51
  448. package/skills/pitch-deck/package.json +0 -10
  449. package/skills/product-mockup/SKILL.md +0 -107
  450. package/skills/product-mockup/package.json +0 -32
  451. package/skills/product-mockup/src/cli.ts +0 -150
  452. package/skills/product-mockup/src/design.ts +0 -151
  453. package/skills/product-mockup/src/docs.ts +0 -134
  454. package/skills/product-mockup/src/index.ts +0 -182
  455. package/skills/product-mockup/src/render.ts +0 -407
  456. package/skills/product-mockup/src/types.ts +0 -66
  457. package/skills/product-mockup/tsconfig.json +0 -17
  458. package/skills/proposal-pack/SKILL.md +0 -53
  459. package/skills/proposal-pack/package.json +0 -10
  460. package/skills/read-csv/SKILL.md +0 -62
  461. package/skills/read-csv/package.json +0 -37
  462. package/skills/read-csv/src/index.ts +0 -356
  463. package/skills/read-csv/tsconfig.json +0 -17
  464. package/skills/read-excel/SKILL.md +0 -64
  465. package/skills/read-excel/package.json +0 -36
  466. package/skills/read-excel/src/index.ts +0 -266
  467. package/skills/read-excel/tsconfig.json +0 -17
  468. package/skills/regex-tester/CLAUDE.md +0 -19
  469. package/skills/regex-tester/package.json +0 -27
  470. package/skills/regex-tester/src/index.ts +0 -183
  471. package/skills/regex-tester/tsconfig.json +0 -10
  472. package/skills/repo-onboarding-report/SKILL.md +0 -52
  473. package/skills/repo-onboarding-report/package.json +0 -10
  474. package/skills/scancommitpr/SKILL.md +0 -178
  475. package/skills/scancommitpr/package.json +0 -34
  476. package/skills/scancommitpr/src/index.ts +0 -44
  477. package/skills/scancommitpr/tsconfig.json +0 -13
  478. package/skills/scancommitpush/SKILL.md +0 -174
  479. package/skills/scancommitpush/package.json +0 -32
  480. package/skills/scancommitpush/src/index.ts +0 -44
  481. package/skills/scancommitpush/tsconfig.json +0 -13
  482. package/skills/scientific-figure-check/CLAUDE.md +0 -19
  483. package/skills/scientific-figure-check/package.json +0 -29
  484. package/skills/scientific-figure-check/src/index.ts +0 -83
  485. package/skills/scientific-figure-check/tsconfig.json +0 -10
  486. package/skills/security-audit/CLAUDE.md +0 -19
  487. package/skills/security-audit/package.json +0 -27
  488. package/skills/security-audit/src/index.ts +0 -145
  489. package/skills/security-audit/tsconfig.json +0 -10
  490. package/skills/security-audit-report/SKILL.md +0 -52
  491. package/skills/security-audit-report/package.json +0 -10
  492. package/skills/seo-content-pack/SKILL.md +0 -54
  493. package/skills/seo-content-pack/package.json +0 -10
  494. package/skills/siteanalyze/SKILL.md +0 -25
  495. package/skills/siteanalyze/package.json +0 -27
  496. package/skills/siteanalyze/src/index.ts +0 -592
  497. package/skills/slide-deck-generator/SKILL.md +0 -93
  498. package/skills/slide-deck-generator/package.json +0 -38
  499. package/skills/slide-deck-generator/src/cli.ts +0 -133
  500. package/skills/slide-deck-generator/src/index.ts +0 -148
  501. package/skills/slide-deck-generator/src/model.ts +0 -307
  502. package/skills/slide-deck-generator/src/pptx.ts +0 -143
  503. package/skills/slide-deck-generator/src/render.ts +0 -248
  504. package/skills/slide-deck-generator/src/types.ts +0 -114
  505. package/skills/slide-deck-generator/src/utils.ts +0 -53
  506. package/skills/slide-deck-generator/tsconfig.json +0 -17
  507. package/skills/social-content-calendar/SKILL.md +0 -54
  508. package/skills/social-content-calendar/package.json +0 -10
  509. package/skills/split-pdf/CLAUDE.md +0 -19
  510. package/skills/split-pdf/package.json +0 -30
  511. package/skills/split-pdf/src/index.ts +0 -301
  512. package/skills/split-pdf/tsconfig.json +0 -10
  513. package/skills/statistical-test-selector/CLAUDE.md +0 -19
  514. package/skills/statistical-test-selector/package.json +0 -27
  515. package/skills/statistical-test-selector/src/index.ts +0 -75
  516. package/skills/statistical-test-selector/tsconfig.json +0 -10
  517. package/skills/test-suite-generator/SKILL.md +0 -51
  518. package/skills/test-suite-generator/package.json +0 -10
  519. package/skills/tmux-session/SKILL.md +0 -109
  520. package/skills/tmux-session/package.json +0 -33
  521. package/skills/tmux-session/src/index.ts +0 -34
  522. package/skills/tmux-session/tsconfig.json +0 -17
  523. package/skills/todos-plan/SKILL.md +0 -363
  524. package/skills/todos-plan/agents/openai.yaml +0 -4
  525. package/skills/todos-plan/package.json +0 -9
  526. package/skills/todos-plan/src/index.ts +0 -68
  527. package/skills/tsconfig.base.json +0 -12
  528. package/skills/validate-config/CLAUDE.md +0 -19
  529. package/skills/validate-config/package.json +0 -29
  530. package/skills/validate-config/src/index.ts +0 -56
  531. package/skills/validate-config/tsconfig.json +0 -10
  532. package/skills/video-downloader/CLAUDE.md +0 -19
  533. package/skills/video-downloader/package.json +0 -29
  534. package/skills/video-downloader/src/index.ts +0 -561
  535. package/skills/video-downloader/tsconfig.json +0 -10
  536. package/skills/video-highlight-pack/SKILL.md +0 -54
  537. package/skills/video-highlight-pack/package.json +0 -10
  538. package/skills/watermark/CLAUDE.md +0 -19
  539. package/skills/watermark/package.json +0 -32
  540. package/skills/watermark/src/index.ts +0 -587
  541. package/skills/watermark/tsconfig.json +0 -10
@@ -1,37 +0,0 @@
1
- /**
2
- * Legacy install command boundary for bundled skill packages.
3
- *
4
- * Per-skill packages must not write into agent-native skill directories.
5
- * The root Skills CLI renders skills into agent-native skill directories.
6
- */
7
-
8
- interface SkillMeta {
9
- name: string;
10
- description: string;
11
- version: string;
12
- commands: string;
13
- requiredEnvVars?: string[];
14
- }
15
-
16
- export async function handleInstallCommand(meta: SkillMeta, args: string[]): Promise<boolean> {
17
- const command = args[0];
18
- const assistant = args[1];
19
-
20
- if (command !== "install" && command !== "uninstall") {
21
- return false;
22
- }
23
-
24
- if (!assistant || !["claude", "codex", "windsurf", "cursor"].includes(assistant)) {
25
- console.error("Direct per-skill installs are disabled.");
26
- console.error("Use: skills render");
27
- process.exit(1);
28
- }
29
-
30
- if (command === "install") {
31
- console.error(`Direct installs for ${meta.name} are disabled.`);
32
- } else {
33
- console.error(`Direct uninstalls for ${meta.name} are disabled.`);
34
- }
35
- console.error("Use: skills render");
36
- process.exit(1);
37
- }
@@ -1,374 +0,0 @@
1
- /**
2
- * Unified vision client for AI providers.
3
- * Follows @hasna/connectors pattern — auto-detects from env vars.
4
- * Providers: anthropic, openai, xai, gemini
5
- *
6
- * Uses built-in fetch only — no external SDK dependencies.
7
- */
8
-
9
- export type VisionProvider = "anthropic" | "openai" | "xai" | "gemini";
10
-
11
- export interface VisionOptions {
12
- provider?: VisionProvider;
13
- model?: string;
14
- maxTokens?: number;
15
- systemPrompt?: string;
16
- jsonMode?: boolean; // wrap prompt to request JSON response
17
- }
18
-
19
- export interface VisionResult {
20
- text: string;
21
- provider: VisionProvider;
22
- model: string;
23
- inputTokens?: number;
24
- outputTokens?: number;
25
- }
26
-
27
- // Default models per provider (vision-capable)
28
- export const DEFAULT_MODELS: Record<VisionProvider, string> = {
29
- anthropic: "claude-sonnet-4-6",
30
- openai: "gpt-4o",
31
- xai: "grok-2-vision-1212",
32
- gemini: "gemini-2.0-flash",
33
- };
34
-
35
- // API key env vars per provider
36
- export const API_KEY_VARS: Record<VisionProvider, string> = {
37
- anthropic: "ANTHROPIC_API_KEY",
38
- openai: "OPENAI_API_KEY",
39
- xai: "XAI_API_KEY",
40
- gemini: "GEMINI_API_KEY",
41
- };
42
-
43
- // Base URLs
44
- const BASE_URLS: Record<VisionProvider, string> = {
45
- anthropic: "https://api.anthropic.com/v1/messages",
46
- openai: "https://api.openai.com/v1/chat/completions",
47
- xai: "https://api.x.ai/v1/chat/completions",
48
- gemini: "https://generativelanguage.googleapis.com/v1beta/models",
49
- };
50
-
51
- /**
52
- * Auto-detect provider from env vars.
53
- * Priority: ANTHROPIC_API_KEY → OPENAI_API_KEY → XAI_API_KEY → GEMINI_API_KEY
54
- */
55
- export function detectProvider(): VisionProvider | null {
56
- const order: VisionProvider[] = ["anthropic", "openai", "xai", "gemini"];
57
- for (const provider of order) {
58
- if (process.env[API_KEY_VARS[provider]]) {
59
- return provider;
60
- }
61
- }
62
- return null;
63
- }
64
-
65
- /**
66
- * Get API key for a provider. Throws if not set.
67
- */
68
- export function getApiKey(provider: VisionProvider): string {
69
- const key = process.env[API_KEY_VARS[provider]];
70
- if (!key) {
71
- throw new Error(
72
- `${API_KEY_VARS[provider]} is not set. Run: connectors setup ${provider}`
73
- );
74
- }
75
- return key;
76
- }
77
-
78
- /**
79
- * Strip markdown code fences and JSON.parse.
80
- * Throws with raw text on failure.
81
- */
82
- export function parseJsonResponse(text: string): unknown {
83
- let str = text.trim();
84
- if (str.startsWith("```")) {
85
- str = str
86
- .replace(/^```(?:json)?\n?/, "")
87
- .replace(/\n?```$/, "")
88
- .trim();
89
- }
90
- try {
91
- return JSON.parse(str);
92
- } catch {
93
- throw new Error(
94
- `Failed to parse response as JSON.\nRaw response:\n${text}`
95
- );
96
- }
97
- }
98
-
99
- /**
100
- * Returns all providers that have an API key set.
101
- */
102
- export function listAvailableProviders(): VisionProvider[] {
103
- return (["anthropic", "openai", "xai", "gemini"] as VisionProvider[]).filter(
104
- (p) => !!process.env[API_KEY_VARS[p]]
105
- );
106
- }
107
-
108
- /**
109
- * Returns availability status for all providers.
110
- */
111
- export function getProviderInfo(): Record<
112
- VisionProvider,
113
- { available: boolean; model: string; keyVar: string }
114
- > {
115
- return {
116
- anthropic: {
117
- available: !!process.env[API_KEY_VARS.anthropic],
118
- model: DEFAULT_MODELS.anthropic,
119
- keyVar: API_KEY_VARS.anthropic,
120
- },
121
- openai: {
122
- available: !!process.env[API_KEY_VARS.openai],
123
- model: DEFAULT_MODELS.openai,
124
- keyVar: API_KEY_VARS.openai,
125
- },
126
- xai: {
127
- available: !!process.env[API_KEY_VARS.xai],
128
- model: DEFAULT_MODELS.xai,
129
- keyVar: API_KEY_VARS.xai,
130
- },
131
- gemini: {
132
- available: !!process.env[API_KEY_VARS.gemini],
133
- model: DEFAULT_MODELS.gemini,
134
- keyVar: API_KEY_VARS.gemini,
135
- },
136
- };
137
- }
138
-
139
- // ============================================================================
140
- // Provider implementations
141
- // ============================================================================
142
-
143
- async function analyzeWithAnthropic(
144
- imageBase64: string,
145
- mediaType: string,
146
- prompt: string,
147
- model: string,
148
- options: VisionOptions
149
- ): Promise<VisionResult> {
150
- const apiKey = getApiKey("anthropic");
151
- const body: Record<string, unknown> = {
152
- model,
153
- max_tokens: options.maxTokens ?? 1024,
154
- messages: [
155
- {
156
- role: "user",
157
- content: [
158
- {
159
- type: "image",
160
- source: { type: "base64", media_type: mediaType, data: imageBase64 },
161
- },
162
- { type: "text", text: prompt },
163
- ],
164
- },
165
- ],
166
- };
167
- if (options.systemPrompt) {
168
- body.system = options.systemPrompt;
169
- }
170
-
171
- const response = await fetch(BASE_URLS.anthropic, {
172
- method: "POST",
173
- headers: {
174
- "x-api-key": apiKey,
175
- "anthropic-version": "2023-06-01",
176
- "content-type": "application/json",
177
- },
178
- body: JSON.stringify(body),
179
- });
180
-
181
- if (!response.ok) {
182
- const err = await response.text();
183
- throw new Error(`Anthropic API error ${response.status}: ${err}`);
184
- }
185
-
186
- const data = (await response.json()) as {
187
- content: Array<{ type: string; text: string }>;
188
- usage: { input_tokens: number; output_tokens: number };
189
- };
190
-
191
- return {
192
- text: data.content[0].text,
193
- provider: "anthropic",
194
- model,
195
- inputTokens: data.usage?.input_tokens,
196
- outputTokens: data.usage?.output_tokens,
197
- };
198
- }
199
-
200
- async function analyzeWithOpenAICompat(
201
- provider: "openai" | "xai",
202
- imageBase64: string,
203
- mediaType: string,
204
- prompt: string,
205
- model: string,
206
- options: VisionOptions
207
- ): Promise<VisionResult> {
208
- const apiKey = getApiKey(provider);
209
- const messages: unknown[] = [];
210
-
211
- if (options.systemPrompt) {
212
- messages.push({ role: "system", content: options.systemPrompt });
213
- }
214
-
215
- messages.push({
216
- role: "user",
217
- content: [
218
- {
219
- type: "image_url",
220
- image_url: {
221
- url: `data:${mediaType};base64,${imageBase64}`,
222
- detail: "high",
223
- },
224
- },
225
- { type: "text", text: prompt },
226
- ],
227
- });
228
-
229
- const body = {
230
- model,
231
- max_tokens: options.maxTokens ?? 1024,
232
- messages,
233
- };
234
-
235
- const response = await fetch(BASE_URLS[provider], {
236
- method: "POST",
237
- headers: {
238
- Authorization: `Bearer ${apiKey}`,
239
- "content-type": "application/json",
240
- },
241
- body: JSON.stringify(body),
242
- });
243
-
244
- if (!response.ok) {
245
- const err = await response.text();
246
- throw new Error(
247
- `${provider.toUpperCase()} API error ${response.status}: ${err}`
248
- );
249
- }
250
-
251
- const data = (await response.json()) as {
252
- choices: Array<{ message: { content: string } }>;
253
- usage: { prompt_tokens: number; completion_tokens: number };
254
- };
255
-
256
- return {
257
- text: data.choices[0].message.content,
258
- provider,
259
- model,
260
- inputTokens: data.usage?.prompt_tokens,
261
- outputTokens: data.usage?.completion_tokens,
262
- };
263
- }
264
-
265
- async function analyzeWithGemini(
266
- imageBase64: string,
267
- mediaType: string,
268
- prompt: string,
269
- model: string,
270
- options: VisionOptions
271
- ): Promise<VisionResult> {
272
- const apiKey = getApiKey("gemini");
273
- const url = `${BASE_URLS.gemini}/${model}:generateContent?key=${apiKey}`;
274
-
275
- const body: Record<string, unknown> = {
276
- contents: [
277
- {
278
- parts: [
279
- { inlineData: { mimeType: mediaType, data: imageBase64 } },
280
- { text: prompt },
281
- ],
282
- },
283
- ],
284
- generationConfig: {
285
- maxOutputTokens: options.maxTokens ?? 1024,
286
- ...(options.jsonMode ? { responseMimeType: "application/json" } : {}),
287
- },
288
- };
289
-
290
- if (options.systemPrompt) {
291
- body.systemInstruction = { parts: [{ text: options.systemPrompt }] };
292
- }
293
-
294
- const response = await fetch(url, {
295
- method: "POST",
296
- headers: { "content-type": "application/json" },
297
- body: JSON.stringify(body),
298
- });
299
-
300
- if (!response.ok) {
301
- const err = await response.text();
302
- throw new Error(`Gemini API error ${response.status}: ${err}`);
303
- }
304
-
305
- const data = (await response.json()) as {
306
- candidates: Array<{
307
- content: { parts: Array<{ text: string }> };
308
- }>;
309
- usageMetadata?: { promptTokenCount: number; candidatesTokenCount: number };
310
- };
311
-
312
- return {
313
- text: data.candidates[0].content.parts[0].text,
314
- provider: "gemini",
315
- model,
316
- inputTokens: data.usageMetadata?.promptTokenCount,
317
- outputTokens: data.usageMetadata?.candidatesTokenCount,
318
- };
319
- }
320
-
321
- // ============================================================================
322
- // Main entry point
323
- // ============================================================================
324
-
325
- /**
326
- * Analyze an image with a vision-capable model.
327
- * Auto-detects provider from env vars unless options.provider is specified.
328
- */
329
- export async function analyzeImage(
330
- imageBase64: string,
331
- mediaType: string,
332
- prompt: string,
333
- options: VisionOptions = {}
334
- ): Promise<VisionResult> {
335
- const provider = options.provider ?? detectProvider();
336
- if (!provider) {
337
- throw new Error(
338
- "No AI provider API key found. Set one of: ANTHROPIC_API_KEY, OPENAI_API_KEY, XAI_API_KEY, GEMINI_API_KEY"
339
- );
340
- }
341
-
342
- const model = options.model ?? DEFAULT_MODELS[provider];
343
- const jsonPrompt =
344
- options.jsonMode
345
- ? `${prompt}\n\nIMPORTANT: Respond ONLY with valid JSON. No markdown, no code fences, no commentary.`
346
- : prompt;
347
-
348
- switch (provider) {
349
- case "anthropic":
350
- return analyzeWithAnthropic(
351
- imageBase64,
352
- mediaType,
353
- jsonPrompt,
354
- model,
355
- options
356
- );
357
- case "openai":
358
- case "xai":
359
- return analyzeWithOpenAICompat(
360
- provider,
361
- imageBase64,
362
- mediaType,
363
- jsonPrompt,
364
- model,
365
- options
366
- );
367
- case "gemini":
368
- return analyzeWithGemini(imageBase64, mediaType, jsonPrompt, model, options);
369
- default: {
370
- const _exhaustive: never = provider;
371
- throw new Error(`Unknown provider: ${_exhaustive}`);
372
- }
373
- }
374
- }
@@ -1,55 +0,0 @@
1
- ---
2
- name: ad-creative-pack
3
- description: Generate paid-ad copy, creative concepts, image prompts, audience angles, and test matrices.
4
- kind: instruction
5
- ---
6
-
7
- # Ad Creative Pack
8
-
9
- Generate a paid-ad launch package for Meta, Google, and LinkedIn.
10
-
11
- ## Requirements
12
-
13
- None. This is an instruction skill: it is prose an agent follows, so it needs no
14
- credentials, no network access, and no local runtime.
15
-
16
- ## Usage
17
-
18
- Ask an agent for the deliverables below and give it the inputs. Reading this file
19
- IS the invocation; `skills run` refuses instruction skills on purpose.
20
-
21
- ## Inputs
22
-
23
- | Input | Description | Default |
24
- |--------|-------------|---------|
25
- | `product` | Product, service, or campaign brief. Positional text also works. | required |
26
- | `audience` | Target buyer or segment. | software teams |
27
- | `offer` | Campaign promise or offer. | derived from product |
28
- | `goal` | Conversion goal. | book demos |
29
- | `platforms` | Comma-separated platforms. | Meta, Google, LinkedIn |
30
- | `tone` | `direct`, `premium`, `friendly`, or `technical`. | direct |
31
-
32
- ## Deliverables
33
-
34
- - `platform-copy.md`
35
- - `ad-copy.json`
36
- - `creative-concepts.md`
37
- - `image-prompts.md`
38
- - `audience-angles.csv`
39
- - `test-matrix.csv`
40
- - `launch-checklist.md`
41
- - `manifest.json`
42
-
43
- ## Method
44
-
45
- 1. Restate the offer, audience and platform mix in one line, and name the single
46
- conversion action every asset drives toward.
47
- 2. Draft 3-5 distinct creative concepts. Each needs a different *angle* (pain,
48
- aspiration, proof, novelty, objection), not a different adjective.
49
- 3. For each platform, write copy to that platform's real limits — headline and
50
- primary text lengths differ, so do not reuse one block everywhere.
51
- 4. Write image prompts as briefs a designer or an image model could act on:
52
- subject, composition, mood, colour, text placement.
53
- 5. Build the test matrix so exactly one variable changes per row; a matrix that
54
- varies two things at once cannot attribute a win.
55
- 6. Close with a launch checklist covering tracking, naming, and budget split.
@@ -1,10 +0,0 @@
1
- {
2
- "name": "ad-creative-pack",
3
- "version": "0.1.0",
4
- "private": true,
5
- "description": "Hosted premium paid ad creative artifact generator",
6
- "type": "module",
7
- "skills": {
8
- "kind": "instruction"
9
- }
10
- }
@@ -1,16 +0,0 @@
1
- # analyze-data
2
-
3
- Data science insights for CSV and JSON.
4
-
5
- ## Development
6
-
7
- - Runtime: Bun
8
- - Use `bun install` to install dependencies
9
- - Use `bun run dev` to run in development
10
- - Use `bun run build` to build for production
11
-
12
- ## Structure
13
-
14
- - `src/` - Source code
15
- - `bin/cli.ts` - CLI entry point using Commander.js
16
- - `SKILL.md` - Skill definition and prompts
@@ -1,112 +0,0 @@
1
- ---
2
- name: analyze-data
3
- version: 0.1.0
4
- description: Instant data science insights for CSV and JSON files with statistical summaries, quality audits, and trend detection
5
- author: Hasna
6
- category: Data & Analytics
7
- tags:
8
- - data
9
- - analytics
10
- - statistics
11
- - csv
12
- - json
13
- - insights
14
- - quality-assurance
15
- credits: 5
16
- ---
17
-
18
- # Analyze Data
19
-
20
- Instant data science insights for your CSV and JSON files. Automatically generates comprehensive reports including statistical summaries, data quality audits, correlation matrices, and trend detection without sending your data to external APIs.
21
-
22
- > **This is a CLI skill.** It requires the `skills` CLI to execute. Install it with `npm install -g @hasna/skills`, then run the commands below.
23
-
24
- ## Features
25
-
26
- - **Statistical Profiling**: Calculates mean, median, mode, standard deviation, quartiles, and custom percentiles for all numeric columns.
27
- - **Data Quality Audit**: Detects missing values, duplicates, mixed data types, and outliers to assess dataset health.
28
- - **Correlation Discovery**: Identifies relationships between variables using Pearson correlation coefficients.
29
- - **Trend Detection**: Automatically spots time-series patterns, seasonality, and growth trends.
30
- - **Visualization Ready**: Recommends the best chart types (histograms, line charts, scatter plots) based on data distribution.
31
- - **Multi-Format Reports**: Exports findings as interactive HTML, structured JSON, or readable Markdown.
32
- - **Scalable**: Efficiently processes large files using stream processing and sampling options.
33
-
34
- ## Usage
35
-
36
- ```bash
37
- skills run analyze-data -- <file-path> [options]
38
- ```
39
-
40
- ## Options
41
-
42
- | Option | Description | Default |
43
- | --------------- | ------------------------------------------------------------ | -------------------- |
44
- | `--format` | Output format: `markdown`, `json`, or `html` | `markdown` |
45
- | `--output` | Save report to file path | (prints to console) |
46
- | `--correlations`| Calculate correlation matrix for numeric columns | `false` |
47
- | `--outliers` | Detect and report outliers using IQR method | `false` |
48
- | `--trends` | Analyze trends if time-series data is detected | `false` |
49
- | `--sample` | Analyze only the first N rows (for large files) | (all rows) |
50
- | `--percentiles` | Custom percentiles to calculate (comma-separated) | `25,50,75,90,95` |
51
- | `--verbose` | Show detailed processing logs | `false` |
52
-
53
- ## Examples
54
-
55
- ### Quick Health Check
56
- ```bash
57
- # Analyze a CSV file and print report to console
58
- skills run analyze-data -- sales-data.csv
59
- ```
60
-
61
- ### Deep Dive Analysis
62
- ```bash
63
- # Full analysis with correlations, outliers, and HTML report
64
- skills run analyze-data -- dataset.csv \
65
- --correlations \
66
- --outliers \
67
- --format html \
68
- --output report.html
69
- ```
70
-
71
- ### Large File Sampling
72
- ```bash
73
- # Quickly analyze the first 10,000 rows of a large dataset
74
- skills run analyze-data -- huge-log-file.json \
75
- --sample 10000 \
76
- --verbose
77
- ```
78
-
79
- ### JSON Export for Pipelines
80
- ```bash
81
- # Generate JSON stats for downstream processing
82
- skills run analyze-data -- metrics.json \
83
- --format json \
84
- --output analysis.json
85
- ```
86
-
87
- ## Report Sections
88
-
89
- 1. **Dataset Overview**: File size, row/column counts, memory usage.
90
- 2. **Column Analysis**: Data types, unique values, null counts, and sample data.
91
- 3. **Statistical Summary**: Detailed metrics for numeric columns (mean, std dev, etc.).
92
- 4. **Data Quality**: Quality score (0-100), missing data summary, and duplicate detection.
93
- 5. **Correlations**: (Optional) Matrix of relationships between variables.
94
- 6. **Trends**: (Optional) Time-series patterns and anomalies.
95
- 7. **Visualization Recommendations**: Suggested charts for exploring the data.
96
- 8. **Key Insights**: Auto-generated observations about the dataset.
97
-
98
- ## Supported Formats
99
-
100
- - **CSV**: Standard comma-separated, TSV, and custom delimiters.
101
- - **JSON**: Arrays of objects or objects containing data arrays.
102
-
103
- ## Performance
104
-
105
- - **Small (<10MB)**: Instant analysis.
106
- - **Medium (10-100MB)**: 2-10 seconds.
107
- - **Large (>100MB)**: Use `--sample` for best performance.
108
-
109
- ## Requirements
110
-
111
- - Bun runtime.
112
- - No external API keys required (runs locally).
@@ -1,23 +0,0 @@
1
- {
2
- "name": "analyze-data",
3
- "version": "0.1.0",
4
- "description": "Data science insights for CSV and JSON",
5
- "type": "module",
6
- "bin": {
7
- "analyze-data": "./src/index.ts"
8
- },
9
- "scripts": {
10
- "dev": "bun run src/index.ts",
11
- "build": "bun build src/index.ts --outdir dist --target node",
12
- "start": "bun run src/index.ts"
13
- },
14
- "dependencies": {},
15
- "devDependencies": {
16
- "@types/bun": "latest",
17
- "typescript": "^5.7.0"
18
- },
19
- "publishConfig": {
20
- "registry": "https://registry.npmjs.org",
21
- "access": "restricted"
22
- }
23
- }