@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,323 +0,0 @@
1
- #!/usr/bin/env bun
2
- /**
3
- * Extract Audio Skill
4
- * Extracts audio from video files using FFmpeg
5
- */
6
-
7
- import { parseArgs } from "util";
8
- import { mkdirSync, appendFileSync, existsSync, statSync } from "fs";
9
- import { join, dirname, basename, extname } from "path";
10
- import { randomUUID } from "crypto";
11
- import { spawn } from "child_process";
12
-
13
- // Types
14
- interface ExtractOptions {
15
- inputFiles: string[];
16
- format: "mp3" | "wav" | "aac" | "flac" | "ogg";
17
- quality: "low" | "medium" | "high" | "ultra";
18
- output?: string;
19
- }
20
-
21
- interface BitrateConfig {
22
- mp3: string;
23
- aac: string;
24
- wav: string;
25
- flac: string;
26
- ogg: string;
27
- }
28
-
29
- // Constants
30
- const SKILL_NAME = "extract-audio";
31
- const SESSION_ID = randomUUID().slice(0, 8);
32
-
33
- // Use SKILLS_OUTPUT_DIR from CLI if available, otherwise fall back to cwd
34
- const SKILLS_OUTPUT_DIR = process.env.SKILLS_OUTPUT_DIR || join(process.cwd(), ".skills");
35
- const EXPORTS_DIR = join(SKILLS_OUTPUT_DIR, "exports", SKILL_NAME);
36
- const LOGS_DIR = join(SKILLS_OUTPUT_DIR, "logs", SKILL_NAME);
37
-
38
- // Supported video formats
39
- const SUPPORTED_VIDEO_FORMATS = [".mp4", ".mov", ".avi", ".mkv", ".webm", ".flv", ".wmv", ".m4v", ".3gp"];
40
-
41
- // Bitrate configurations for different quality levels
42
- const BITRATES: Record<ExtractOptions["quality"], BitrateConfig> = {
43
- low: { mp3: "128k", aac: "96k", wav: "", flac: "", ogg: "64k" },
44
- medium: { mp3: "192k", aac: "128k", wav: "", flac: "", ogg: "128k" },
45
- high: { mp3: "256k", aac: "192k", wav: "", flac: "", ogg: "192k" },
46
- ultra: { mp3: "320k", aac: "256k", wav: "", flac: "", ogg: "256k" },
47
- };
48
-
49
- // Ensure directories exist
50
- function ensureDir(dir: string) {
51
- if (!existsSync(dir)) {
52
- mkdirSync(dir, { recursive: true });
53
- }
54
- }
55
-
56
- // Session timestamp for log filename
57
- const SESSION_TIMESTAMP = new Date().toISOString().replace(/[:.]/g, "_").replace(/-/g, "_").slice(0, 19).toLowerCase();
58
-
59
- // Logger
60
- function log(message: string, level: "info" | "error" | "success" = "info") {
61
- const timestamp = new Date().toISOString();
62
- const logFile = join(LOGS_DIR, `log_${SESSION_TIMESTAMP}_${SESSION_ID}.log`);
63
-
64
- ensureDir(LOGS_DIR);
65
-
66
- const logEntry = `[${timestamp}] [${level.toUpperCase()}] ${message}\n`;
67
- appendFileSync(logFile, logEntry);
68
-
69
- const prefix = level === "error" ? "❌" : level === "success" ? "✅" : "ℹ️";
70
- if (level === "error") {
71
- console.error(`${prefix} ${message}`);
72
- } else {
73
- console.log(`${prefix} ${message}`);
74
- }
75
- }
76
-
77
- // Check if FFmpeg is installed
78
- async function checkFFmpeg(): Promise<boolean> {
79
- return new Promise((resolve) => {
80
- const process = spawn("ffmpeg", ["-version"]);
81
-
82
- process.on("error", () => {
83
- resolve(false);
84
- });
85
-
86
- process.on("close", (code) => {
87
- resolve(code === 0);
88
- });
89
- });
90
- }
91
-
92
- // Validate input file
93
- function validateInputFile(filePath: string): void {
94
- if (!existsSync(filePath)) {
95
- throw new Error(`Input file not found: ${filePath}`);
96
- }
97
-
98
- const stats = statSync(filePath);
99
- if (!stats.isFile()) {
100
- throw new Error(`Not a file: ${filePath}`);
101
- }
102
-
103
- const ext = extname(filePath).toLowerCase();
104
- if (!SUPPORTED_VIDEO_FORMATS.includes(ext)) {
105
- throw new Error(`Unsupported video format: ${ext}. Supported formats: ${SUPPORTED_VIDEO_FORMATS.join(", ")}`);
106
- }
107
- }
108
-
109
- // Extract audio from video file
110
- async function extractAudio(
111
- inputFile: string,
112
- outputFile: string,
113
- options: ExtractOptions
114
- ): Promise<void> {
115
- log(`Extracting audio from: ${inputFile}`);
116
- log(`Output format: ${options.format}, Quality: ${options.quality}`);
117
-
118
- const args: string[] = [
119
- "-i", inputFile,
120
- "-vn", // No video
121
- ];
122
-
123
- // Add codec and bitrate based on format
124
- const bitrate = BITRATES[options.quality][options.format];
125
-
126
- switch (options.format) {
127
- case "mp3":
128
- args.push("-acodec", "libmp3lame");
129
- if (bitrate) args.push("-b:a", bitrate);
130
- break;
131
- case "wav":
132
- args.push("-acodec", "pcm_s16le");
133
- break;
134
- case "aac":
135
- args.push("-acodec", "aac");
136
- if (bitrate) args.push("-b:a", bitrate);
137
- break;
138
- case "flac":
139
- args.push("-acodec", "flac");
140
- break;
141
- case "ogg":
142
- args.push("-acodec", "libvorbis");
143
- if (bitrate) args.push("-b:a", bitrate);
144
- break;
145
- }
146
-
147
- args.push("-y"); // Overwrite output file
148
- args.push(outputFile);
149
-
150
- return new Promise((resolve, reject) => {
151
- const ffmpeg = spawn("ffmpeg", args);
152
-
153
- let stderr = "";
154
-
155
- ffmpeg.stderr.on("data", (data) => {
156
- stderr += data.toString();
157
- });
158
-
159
- ffmpeg.on("close", (code) => {
160
- if (code === 0) {
161
- log(`Successfully extracted audio to: ${outputFile}`, "success");
162
- resolve();
163
- } else {
164
- log(`FFmpeg error: ${stderr}`, "error");
165
- reject(new Error(`FFmpeg exited with code ${code}`));
166
- }
167
- });
168
-
169
- ffmpeg.on("error", (error) => {
170
- reject(new Error(`Failed to spawn FFmpeg: ${error.message}`));
171
- });
172
- });
173
- }
174
-
175
- // Generate output filename
176
- function generateOutputFilename(inputFile: string, format: string): string {
177
- const timestamp = new Date().toISOString().replace(/[:.]/g, "_").replace(/-/g, "_").slice(0, 19).toLowerCase();
178
- const inputBasename = basename(inputFile, extname(inputFile));
179
- return join(EXPORTS_DIR, `export_${timestamp}_${inputBasename}.${format}`);
180
- }
181
-
182
- // Main function
183
- async function main() {
184
- const { values, positionals } = parseArgs({
185
- args: Bun.argv.slice(2),
186
- options: {
187
- format: { type: "string", default: "mp3" },
188
- quality: { type: "string", default: "medium" },
189
- output: { type: "string", short: "o" },
190
- help: { type: "boolean", short: "h" },
191
- },
192
- allowPositionals: true,
193
- });
194
-
195
- // Show help
196
- if (values.help || positionals.length === 0) {
197
- console.log(`
198
- Extract Audio - Extract audio from video files using FFmpeg
199
-
200
- Usage:
201
- bun run src/index.ts <video-file> [more-files...] [options]
202
-
203
- Options:
204
- --format <format> Output format (mp3, wav, aac, flac, ogg) [default: mp3]
205
- --quality <quality> Quality level (low, medium, high, ultra) [default: medium]
206
- --output, -o <path> Custom output path (single file only)
207
- --help, -h Show this help
208
-
209
- Quality Levels:
210
- low - MP3: 128k, AAC: 96k (suitable for voice, podcasts)
211
- medium - MP3: 192k, AAC: 128k (good balance)
212
- high - MP3: 256k, AAC: 192k (high quality music)
213
- ultra - MP3: 320k, AAC: 256k (maximum quality)
214
-
215
- Supported Input Formats:
216
- ${SUPPORTED_VIDEO_FORMATS.join(", ")}
217
-
218
- Examples:
219
- bun run src/index.ts video.mp4
220
- bun run src/index.ts video.mov --format wav --quality high
221
- bun run src/index.ts video1.mp4 video2.mp4 video3.mp4
222
- bun run src/index.ts interview.mp4 --output ./podcast.mp3
223
- `);
224
- process.exit(0);
225
- }
226
-
227
- // Validate format
228
- const format = values.format?.toLowerCase() as ExtractOptions["format"];
229
- const validFormats = ["mp3", "wav", "aac", "flac", "ogg"];
230
- if (!validFormats.includes(format)) {
231
- log(`Invalid format: ${format}. Valid formats: ${validFormats.join(", ")}`, "error");
232
- process.exit(1);
233
- }
234
-
235
- // Validate quality
236
- const quality = values.quality?.toLowerCase() as ExtractOptions["quality"];
237
- const validQualities = ["low", "medium", "high", "ultra"];
238
- if (!validQualities.includes(quality)) {
239
- log(`Invalid quality: ${quality}. Valid qualities: ${validQualities.join(", ")}`, "error");
240
- process.exit(1);
241
- }
242
-
243
- // Get input files
244
- const inputFiles = positionals;
245
-
246
- if (inputFiles.length === 0) {
247
- log("Please provide at least one video file", "error");
248
- process.exit(1);
249
- }
250
-
251
- // Check for custom output with multiple files
252
- if (values.output && inputFiles.length > 1) {
253
- log("Custom output path can only be used with a single input file", "error");
254
- process.exit(1);
255
- }
256
-
257
- try {
258
- log(`Session ID: ${SESSION_ID}`);
259
-
260
- // Check if FFmpeg is installed
261
- log("Checking for FFmpeg installation...");
262
- const ffmpegInstalled = await checkFFmpeg();
263
-
264
- if (!ffmpegInstalled) {
265
- log("FFmpeg is not installed or not found in PATH", "error");
266
- console.log(`
267
- ⚠️ FFmpeg is required but not found
268
-
269
- Please install FFmpeg:
270
-
271
- macOS:
272
- brew install ffmpeg
273
-
274
- Ubuntu/Debian:
275
- sudo apt-get install ffmpeg
276
-
277
- Windows:
278
- Download from https://ffmpeg.org/download.html
279
- `);
280
- process.exit(1);
281
- }
282
-
283
- log("FFmpeg is installed", "success");
284
-
285
- // Ensure export directory exists
286
- ensureDir(EXPORTS_DIR);
287
-
288
- // Validate all input files
289
- for (const inputFile of inputFiles) {
290
- validateInputFile(inputFile);
291
- }
292
-
293
- log(`Processing ${inputFiles.length} file(s)...`);
294
-
295
- // Process each file
296
- for (const inputFile of inputFiles) {
297
- const outputFile = values.output || generateOutputFilename(inputFile, format);
298
-
299
- // Ensure output directory exists
300
- const outputDir = dirname(outputFile);
301
- ensureDir(outputDir);
302
-
303
- await extractAudio(inputFile, outputFile, {
304
- inputFiles,
305
- format,
306
- quality,
307
- output: values.output as string,
308
- });
309
-
310
- console.log(`\n✨ Audio extracted successfully!`);
311
- console.log(` 📁 Input: ${inputFile}`);
312
- console.log(` 🎵 Output: ${outputFile}`);
313
- }
314
-
315
- console.log(`\n 📋 Log: ${join(LOGS_DIR, `log_${SESSION_TIMESTAMP}_${SESSION_ID}.log`)}`);
316
-
317
- } catch (error) {
318
- log(`Error: ${error instanceof Error ? error.message : "Unknown error"}`, "error");
319
- process.exit(1);
320
- }
321
- }
322
-
323
- main();
@@ -1,11 +0,0 @@
1
- {
2
- "extends": "../tsconfig.base.json",
3
- "compilerOptions": {
4
- "forceConsistentCasingInFileNames": true,
5
- "outDir": "dist"
6
- },
7
- "include": [
8
- "src",
9
- "bin"
10
- ]
11
- }
@@ -1,19 +0,0 @@
1
- # bio-sequence-tool
2
-
3
- Bio Sequence Tool skill.
4
-
5
- ## Tech Stack
6
-
7
- - Runtime: Bun
8
- - Language: TypeScript
9
- - CLI: Commander.js
10
-
11
- ## CLI
12
-
13
- ```bash
14
- bio-sequence-tool run
15
- ```
16
-
17
- ## Data Directory
18
-
19
- ~/.skill/bio-sequence-tool/
@@ -1,27 +0,0 @@
1
- {
2
- "name": "bio-sequence-tool",
3
- "version": "0.1.0",
4
- "description": "Bio Sequence Tool skill",
5
- "type": "module",
6
- "bin": {
7
- "bio-sequence-tool": "./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
- "typecheck": "tsc --noEmit"
13
- },
14
- "dependencies": {},
15
- "devDependencies": {
16
- "@types/bun": "latest",
17
- "typescript": "^5.7.0"
18
- },
19
- "publishConfig": {
20
- "access": "restricted",
21
- "registry": "https://registry.npmjs.org/"
22
- },
23
- "files": [
24
- "src",
25
- "tsconfig.json"
26
- ]
27
- }
@@ -1,85 +0,0 @@
1
- #!/usr/bin/env bun
2
- import { parseArgs } from "util";
3
-
4
- const { values, positionals } = parseArgs({
5
- args: process.argv.slice(2),
6
- options: {
7
- mode: { type: "string", default: "reverse-complement" }, // reverse-complement, translate, gc-content
8
- help: { type: "boolean" },
9
- },
10
- allowPositionals: true,
11
- });
12
-
13
- if (values.help || positionals.length === 0) {
14
- console.log(`
15
- Bio Sequence Tool
16
- Usage: skills run bio-sequence-tool -- <sequence> [options]
17
-
18
- Options:
19
- --mode <mode> Operation mode: reverse-complement, translate, gc-content
20
- `);
21
- process.exit(0);
22
- }
23
-
24
- const sequence = positionals[0].toUpperCase().replace(/[^ATGCU]/g, "");
25
-
26
- if (!sequence) {
27
- console.error("Error: Invalid sequence provided.");
28
- process.exit(1);
29
- }
30
-
31
- function reverseComplement(seq: string): string {
32
- const map: Record<string, string> = { A: "T", T: "A", G: "C", C: "G", U: "A" };
33
- return seq.split("").reverse().map(c => map[c] || c).join("");
34
- }
35
-
36
- function getGCContent(seq: string): number {
37
- const gc = seq.split("").filter(c => c === "G" || c === "C").length;
38
- return (gc / seq.length) * 100;
39
- }
40
-
41
- function translate(seq: string): string {
42
- // Basic codon table (DNA)
43
- const codons: Record<string, string> = {
44
- ATA: "I", ATC: "I", ATT: "I", ATG: "M",
45
- ACA: "T", ACC: "T", ACG: "T", ACT: "T",
46
- AAC: "N", AAT: "N", AAA: "K", AAG: "K",
47
- AGC: "S", AGT: "S", AGA: "R", AGG: "R",
48
- CTA: "L", CTC: "L", CTG: "L", CTT: "L",
49
- CCA: "P", CCC: "P", CCG: "P", CCT: "P",
50
- CAC: "H", CAT: "H", CAA: "Q", CAG: "Q",
51
- CGA: "R", CGC: "R", CGG: "R", CGT: "R",
52
- GTA: "V", GTC: "V", GTG: "V", GTT: "V",
53
- GCA: "A", GCC: "A", GCG: "A", GCT: "A",
54
- GAC: "D", GAT: "D", GAA: "E", GAG: "E",
55
- GGA: "G", GGC: "G", GGG: "G", GGT: "G",
56
- TCA: "S", TCC: "S", TCG: "S", TCT: "S",
57
- TTC: "F", TTT: "F", TTA: "L", TTG: "L",
58
- TAC: "Y", TAT: "Y", TAA: "_", TAG: "_",
59
- TGC: "C", TGT: "C", TGA: "_", TGG: "W",
60
- };
61
-
62
- let protein = "";
63
- for (let i = 0; i < seq.length; i += 3) {
64
- const codon = seq.substr(i, 3);
65
- if (codon.length === 3) {
66
- protein += codons[codon] || "?";
67
- }
68
- }
69
- return protein;
70
- }
71
-
72
- switch (values.mode) {
73
- case "reverse-complement":
74
- console.log(reverseComplement(sequence));
75
- break;
76
- case "translate":
77
- console.log(translate(sequence.replace(/U/g, "T"))); // Treat as DNA for simplicity
78
- break;
79
- case "gc-content":
80
- console.log(`${getGCContent(sequence).toFixed(2)}%`);
81
- break;
82
- default:
83
- console.error(`Unknown mode: ${values.mode}`);
84
- process.exit(1);
85
- }
@@ -1,10 +0,0 @@
1
- {
2
- "extends": "../tsconfig.base.json",
3
- "compilerOptions": {
4
- "outDir": "dist"
5
- },
6
- "include": [
7
- "src/**/*",
8
- "bin/**/*"
9
- ]
10
- }
@@ -1,12 +0,0 @@
1
- # blog-article
2
-
3
- Generate one or more SEO-ready blog article packages through the hosted Skills runtime.
4
-
5
- Use via:
6
-
7
- ```bash
8
- skills quote create-blog-article --count 8 --topic "SaaS onboarding"
9
- skills run create-blog-article --count 8 --topic "SaaS onboarding" --audience "founders" --length long --seo
10
- ```
11
-
12
- Hosted runs write Markdown, HTML, JSON, and manifest artifacts to the run export directory.
@@ -1,55 +0,0 @@
1
- ---
2
- name: blog-article
3
- description: Generate one or more SEO-ready blog article packages as hosted artifacts.
4
- kind: instruction
5
- ---
6
-
7
- # Blog Article
8
-
9
- Generate blog articles as downloadable Markdown, HTML, JSON, and manifest artifacts.
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
- | `topic` | Topic or theme. Positional text also works. | required |
26
- | `audience` | Intended reader or buyer persona. | |
27
- | `count` | Number of articles to generate, 1-12. | 1 |
28
- | `articles` | Alias for `--count`. | |
29
- | `tone` | `professional`, `casual`, `technical`, or `friendly`. | professional |
30
- | `length` | `short`, `medium`, or `long`. | medium |
31
- | `seo` | Include SEO metadata and keyword-oriented structure. | false |
32
- | `outline` | Optional outline, angles, or required sections. | |
33
-
34
- ## Deliverables
35
-
36
- - `manifest.json` using the `skills.blogArticle.outputs.v1` contract
37
- - For a single article: `article.md`, `article.html`, `article.json`
38
- - For batch runs: `article-XX-<slug>/article.md`, `article.html`, `article.json`
39
-
40
- `manifest.json` includes the run id, prompt, sanitized input options, requested tone/length/SEO settings, receipt cost, and an `articles` array. Each article entry includes `title`, `slug`, `summary`, `keywords`, optional `featuredImage`, word count, reading time, and relative file paths.
41
-
42
- ## Method
43
-
44
- 1. Confirm topic, audience and search intent before writing. If the topic is
45
- ambiguous, state the interpretation you chose.
46
- 2. Outline first: H2/H3 skeleton with one sentence of intent per section. Get the
47
- shape right before producing prose.
48
- 3. Write the draft to the requested length and tone. Lead with the answer; do not
49
- warm up for three paragraphs.
50
- 4. Support claims with specifics — numbers, examples, named tools. Remove any
51
- sentence that would survive unchanged in an article about something else.
52
- 5. If SEO is requested, add title, meta description, slug and internal-link
53
- suggestions as a separate block, never by stuffing the body.
54
- 6. Finish with a self-edit pass: cut hedging, merge duplicate points, verify every
55
- factual claim you cannot source is marked as an assumption.
@@ -1,10 +0,0 @@
1
- {
2
- "name": "blog-article",
3
- "version": "0.1.0",
4
- "private": true,
5
- "description": "Hosted premium blog article artifact generator",
6
- "type": "module",
7
- "skills": {
8
- "kind": "instruction"
9
- }
10
- }
@@ -1,10 +0,0 @@
1
- {
2
- "extends": "../tsconfig.base.json",
3
- "compilerOptions": {
4
- "outDir": "dist"
5
- },
6
- "include": [
7
- "src/**/*",
8
- "bin/**/*"
9
- ]
10
- }
@@ -1,118 +0,0 @@
1
- ---
2
- name: brand-assets
3
- description: Extract brand assets from a website you name — icons, social preview images, logo images, inline SVG marks, theme colors, CSS color tokens, and font stacks — downloaded into a folder with full source provenance. Use when a user asks to find, extract, download, or package a site's logo and visual identity.
4
- ---
5
-
6
- # Brand Assets
7
-
8
- Point this at a URL. It fetches that page over plain HTTP, parses the markup and
9
- the stylesheets it links, and pulls out the brand's icons, social images, logo
10
- images, colors, and typography. Everything downloaded is recorded against the
11
- exact URL it came from.
12
-
13
- The only hosts contacted are the one you name and whatever that page links its
14
- own assets from. There is no search API, no AI service, and no key of any kind.
15
-
16
- ## Requirements
17
-
18
- - Bun (the skill runs as `bun run src/index.ts`).
19
- - Outbound HTTP access to the site you pass. Nothing else.
20
- - No API keys and no environment variables.
21
- - One runtime dependency: `node-html-parser`. Run `bun install` in this skill
22
- directory. If it is missing you get
23
- `Missing dependency 'node-html-parser'. Run bun install in this skill directory.`
24
-
25
- `--url` is **required**. There is no brand-name search fallback — omitting it
26
- fails immediately and names the flag.
27
-
28
- ## Usage
29
-
30
- ```bash
31
- # the normal case
32
- skills run brand-assets -- --url https://example.com
33
-
34
- # positional URL, custom destination and timeout
35
- skills run brand-assets -- https://example.com --output ./out/example --timeout 30000
36
-
37
- # inspect without downloading any binaries
38
- skills run brand-assets -- --url https://example.com --no-download
39
-
40
- # machine-readable profile on stdout
41
- skills run brand-assets -- --url https://example.com --json
42
- ```
43
-
44
- Run it directly from the skill directory with `bun run src/index.ts --help`.
45
-
46
- ## Options
47
-
48
- | Option | Description | Default |
49
- |--------|-------------|---------|
50
- | `--url <url>`, `-u` | Website to inspect. A bare hostname is upgraded to `https://`. A positional URL also works. | **required** |
51
- | `--output <dir>`, `-o` | Output directory. | `./brand-assets` |
52
- | `--timeout <ms>`, `-t` | Per-request timeout, 500–300000. Applies to the page, each stylesheet, and each asset. | `15000` |
53
- | `--max-assets <n>` | Cap on downloaded assets, 0–200. Anything beyond is listed as `skipped`. | `20` |
54
- | `--no-download` | Discover and report only; fetch no binaries. | off |
55
- | `--json` | Print the full profile as JSON on stdout. | off |
56
- | `--help` | Show help and exit 0. | |
57
- | `--version` | Print the version. | |
58
-
59
- ## What is discovered
60
-
61
- | Source | What is taken |
62
- |--------|---------------|
63
- | `<link rel="icon">`, `shortcut icon`, `apple-touch-icon`, `mask-icon` | Favicons and touch icons, with their `sizes` and `type` |
64
- | `<link rel="manifest">` | The web app manifest: `name`, `short_name`, `theme_color`, `background_color`, and every declared icon |
65
- | `<meta property="og:image">`, `<meta name="twitter:image">` | Social preview images |
66
- | `<meta name="theme-color">` | Brand color, including per-`media` light/dark variants |
67
- | `<img>` whose `src`, `alt`, `class`, or `id` matches logo / wordmark / brandmark / brand | Logo images |
68
- | Inline `<svg>` inside `header`, `nav`, links, or logo-classed elements | Up to three inline marks, saved as standalone SVG files |
69
- | Inline `<style>`, `style=` attributes, and up to 6 linked stylesheets | CSS custom properties whose name mentions color / brand / accent / primary / bg / fg / surface / theme, plus ordinary `color`, `background`, `fill`, and `stroke` declarations |
70
- | The same CSS | `font-family` declarations and font-related custom properties |
71
-
72
- If the page declares no icon at all, `/favicon.ico` is tried as a conventional
73
- fallback and reported honestly if it 404s.
74
-
75
- ### How colors are ranked
76
-
77
- `<meta>` and web app manifest colors first, then hand-authored CSS custom
78
- properties, then ordinary declarations. Utility-framework plumbing (`--tw-*` and
79
- friends) is deliberately demoted so real brand tokens surface first. Every entry
80
- records how many times it was seen and every source it appeared in. The palette
81
- is capped at 48 distinct colors.
82
-
83
- ## Outputs
84
-
85
- | File | Contents |
86
- |------|----------|
87
- | `assets/` | Every downloaded file, named `<role>-<original-name>.<ext>` — e.g. `icon-favicon-32x32.png`, `logo-img-wordmark.svg`, `inline-logo-01.svg`. |
88
- | `brand-profile.json` | Everything discovered: metadata, assets with status, palette, typography, stylesheet results, counts. |
89
- | `brand-profile.md` | The same profile as a readable summary with asset, palette, and typography tables. |
90
- | `palette.json` | Every color: hex, how it was declared, which properties carried it, its kind, occurrence count, and every source. |
91
- | `typography.md` | Each font stack with its full fallback chain, source, and notes on reproducing the type without the font binaries. |
92
- | `sources.json` | The provenance map: downloaded file → source URL, status, content type, byte size, plus per-stylesheet fetch results. |
93
- | `manifest.json` | Every file written, with byte sizes and the run inputs. |
94
-
95
- Webfont binaries are never downloaded — licenses almost never permit
96
- redistributing them. `typography.md` gives you the stacks instead.
97
-
98
- ## Failure behaviour
99
-
100
- Exit code 1 with a single clear line on stderr for each of:
101
-
102
- - `--url` missing — names the flag and shows an example.
103
- - A value that is not an http(s) URL.
104
- - DNS or connection failure.
105
- - A timeout — the message tells you to raise `--timeout`.
106
- - A non-200 response — the status code is included.
107
- - A response whose content type is not HTML — the actual content type is quoted.
108
-
109
- Failures *below* the page level are not fatal: a 404 favicon, an unreachable
110
- stylesheet, or a malformed manifest is recorded with its status in
111
- `sources.json` and `brand-profile.md`, and the run still completes.
112
-
113
- ## Provenance and reuse
114
-
115
- These are someone else's trademarks. `sources.json` exists so you can prove where
116
- each file came from. Confirm you have the right to use an asset before you ship
117
- it, and check the site's own brand or press page for official guidelines and
118
- higher-resolution originals.