@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,51 +0,0 @@
1
- ---
2
- name: market-research-report
3
- description: Generate a market research report with competitor, audience, pricing, source, Markdown, and PDF artifacts.
4
- kind: instruction
5
- ---
6
-
7
- # Market Research Report
8
-
9
- Generate a market research report package for SaaS, developer tools, and business planning work.
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` | Market, product category, or research question. Positional text also works. | required |
26
- | `audience` | Target audience or buyer segment. | Operators and founders |
27
- | `competitors` | Comma-separated competitor names. | inferred examples |
28
- | `region` | Geographic or commercial scope. | Global |
29
- | `format` | `strategic`, `investor`, or `product`. | strategic |
30
-
31
- ## Deliverables
32
-
33
- - `market-research-report.md`
34
- - `competitors.csv`
35
- - `sources.json`
36
- - `manifest.json`
37
-
38
- ## Method
39
-
40
- 1. State the question, the market boundary, and the date. A market report without
41
- an explicit as-of date decays silently.
42
- 2. Map competitors by the dimension that actually differentiates them, not by
43
- feature checklist. Say what each one is genuinely best at.
44
- 3. Segment the audience by job-to-be-done and note which segments are underserved.
45
- 4. Analyse pricing as packaging: what is metered, what is gated, where the
46
- upgrade pressure sits.
47
- 5. Separate what you verified from what you inferred, and record every source
48
- with its URL and access date. Use your own web tools or sources the user
49
- supplied; do not invent citations.
50
- 6. Close with the two or three findings that would change a decision, and say
51
- what evidence would falsify each.
@@ -1,10 +0,0 @@
1
- {
2
- "name": "market-research-report",
3
- "version": "0.1.0",
4
- "private": true,
5
- "description": "Generate market research report artifacts",
6
- "type": "module",
7
- "skills": {
8
- "kind": "instruction"
9
- }
10
- }
@@ -1,52 +0,0 @@
1
- ---
2
- name: meeting-pack
3
- description: Generate meeting artifact packs from transcripts or notes with summaries, decisions, action items, owner/deadline tables, follow-up email, project export, timeline, and manifest metadata.
4
- kind: instruction
5
- ---
6
-
7
- # Meeting Pack
8
-
9
- Generate a complete meeting artifact package from transcripts, notes, call summaries, or rough bullets.
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
- | `notes` | Meeting transcript, rough notes, or summary. Positional text also works. | required unless `--source` is used |
26
- | `source` | Read notes or transcript from a file. | none |
27
- | `meeting` | Meeting title. | Meeting |
28
- | `participants` | Comma-separated participant names. | Team |
29
- | `format` | `project`, `executive`, `sales`, or `standup`. | project |
30
-
31
- ## Deliverables
32
-
33
- - `meeting-summary.md`
34
- - `decisions.md`
35
- - `action-items.csv`
36
- - `follow-up-email.md`
37
- - `project-export.json`
38
- - `timeline.md`
39
- - `manifest.json`
40
-
41
- ## Method
42
-
43
- 1. Read the transcript fully before summarizing; decisions are often reversed
44
- later in the same meeting.
45
- 2. Separate decisions from discussion. A decision has an owner and a resolution;
46
- everything else is context.
47
- 3. Extract action items with owner, deadline, and the acceptance condition. An
48
- action item without an owner will not happen.
49
- 4. Flag anything explicitly deferred, and anything raised but never resolved —
50
- the second category is what meetings routinely lose.
51
- 5. Build the timeline from what was said, not from what you expect the process to be.
52
- 6. Draft the follow-up email so a non-attendee can act on it without the transcript.
@@ -1,10 +0,0 @@
1
- {
2
- "name": "meeting-pack",
3
- "version": "0.1.0",
4
- "private": true,
5
- "description": "Hosted premium meeting artifact package generator",
6
- "type": "module",
7
- "skills": {
8
- "kind": "instruction"
9
- }
10
- }
@@ -1,19 +0,0 @@
1
- # merge-pdfs
2
-
3
- Merge Pdfs skill.
4
-
5
- ## Tech Stack
6
-
7
- - Runtime: Bun
8
- - Language: TypeScript
9
- - CLI: Commander.js
10
-
11
- ## CLI
12
-
13
- ```bash
14
- merge-pdfs run
15
- ```
16
-
17
- ## Data Directory
18
-
19
- ~/.skill/merge-pdfs/
@@ -1,31 +0,0 @@
1
- {
2
- "name": "merge-pdfs",
3
- "version": "0.1.0",
4
- "description": "Merge Pdfs skill",
5
- "type": "module",
6
- "bin": {
7
- "merge-pdfs": "./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
- "pdf-lib": "^1.17.1",
16
- "minimist": "^1.2.8",
17
- "glob": "^11.1.0"
18
- },
19
- "devDependencies": {
20
- "@types/bun": "latest",
21
- "typescript": "^5.7.0"
22
- },
23
- "publishConfig": {
24
- "access": "restricted",
25
- "registry": "https://registry.npmjs.org/"
26
- },
27
- "files": [
28
- "src",
29
- "tsconfig.json"
30
- ]
31
- }
@@ -1,427 +0,0 @@
1
- #!/usr/bin/env bun
2
-
3
- import { PDFDocument, rgb, StandardFonts, degrees } from "pdf-lib";
4
- import * as fs from "fs";
5
- import * as path from "path";
6
- import minimist from "minimist";
7
- import { globSync } from "glob";
8
-
9
- // Types
10
- interface FileSpec {
11
- path: string;
12
- pages: string;
13
- }
14
-
15
- interface MergeOptions {
16
- output: string;
17
- bookmarks: boolean;
18
- sort: "none" | "name" | "date" | "size";
19
- reverse: boolean;
20
- blankBetween: boolean;
21
- title: string | null;
22
- author: string | null;
23
- rotate: number;
24
- compress: boolean;
25
- pageNumbers: boolean;
26
- pageNumberFormat: string;
27
- pageNumberPosition: string;
28
- }
29
-
30
- // Parse command line arguments
31
- const args = minimist(process.argv.slice(2), {
32
- string: [
33
- "output",
34
- "sort",
35
- "title",
36
- "author",
37
- "page-number-format",
38
- "page-number-position",
39
- ],
40
- boolean: [
41
- "bookmarks",
42
- "reverse",
43
- "blank-between",
44
- "compress",
45
- "page-numbers",
46
- "help",
47
- ],
48
- default: {
49
- output: "merged.pdf",
50
- sort: "none",
51
- reverse: false,
52
- bookmarks: false,
53
- "blank-between": false,
54
- compress: false,
55
- "page-numbers": false,
56
- "page-number-format": "Page {n}",
57
- "page-number-position": "bottom-center",
58
- rotate: 0,
59
- },
60
- alias: {
61
- o: "output",
62
- h: "help",
63
- },
64
- });
65
-
66
- // Show help
67
- if (args.help || args._.length === 0) {
68
- console.log(`
69
- Merge PDFs - Combine multiple PDF files into one
70
-
71
- Usage:
72
- skills run merge-pdfs -- <file1.pdf> [file2.pdf...] [options]
73
-
74
- Options:
75
- -o, --output <file> Output file path (default: merged.pdf)
76
- --bookmarks Add bookmarks for each source file
77
- --sort <type> Sort order: none, name, date, size (default: none)
78
- --reverse Reverse the merge order
79
- --blank-between Insert blank page between documents
80
- --title <text> Set PDF title metadata
81
- --author <text> Set PDF author metadata
82
- --rotate <degrees> Rotate all pages: 0, 90, 180, 270
83
- --compress Compress output PDF
84
- --page-numbers Add page numbers
85
- --page-number-format <fmt> Format: "Page {n}" or "Page {n} of {total}"
86
- --page-number-position <pos> Position: top/bottom-left/center/right
87
- -h, --help Show this help message
88
-
89
- Page Selection:
90
- file.pdf All pages
91
- file.pdf:1-5 Pages 1 through 5
92
- file.pdf:1,3,5 Specific pages
93
- file.pdf:1-3,7,10-12 Mixed ranges
94
-
95
- Examples:
96
- skills run merge-pdfs -- doc1.pdf doc2.pdf -o combined.pdf
97
- skills run merge-pdfs -- "doc.pdf:1-5" "other.pdf:2,4" -o output.pdf
98
- skills run merge-pdfs -- ./docs/*.pdf --sort name --bookmarks -o book.pdf
99
- `);
100
- process.exit(0);
101
- }
102
-
103
- // Parse options
104
- const options: MergeOptions = {
105
- output: args.output,
106
- bookmarks: args.bookmarks,
107
- sort: args.sort as MergeOptions["sort"],
108
- reverse: args.reverse,
109
- blankBetween: args["blank-between"],
110
- title: args.title || null,
111
- author: args.author || null,
112
- rotate: parseInt(args.rotate) || 0,
113
- compress: args.compress,
114
- pageNumbers: args["page-numbers"],
115
- pageNumberFormat: args["page-number-format"],
116
- pageNumberPosition: args["page-number-position"],
117
- };
118
-
119
- // Parse file spec (path:pages)
120
- function parseFileSpec(spec: string): FileSpec {
121
- const colonIndex = spec.lastIndexOf(":");
122
- // Check if colon is part of page spec (not Windows drive letter)
123
- if (colonIndex > 1 && !spec.substring(colonIndex + 1).includes("/")) {
124
- const possiblePages = spec.substring(colonIndex + 1);
125
- if (/^[\d,\-all]+$/i.test(possiblePages)) {
126
- return {
127
- path: spec.substring(0, colonIndex),
128
- pages: possiblePages.toLowerCase(),
129
- };
130
- }
131
- }
132
- return { path: spec, pages: "all" };
133
- }
134
-
135
- // Parse page range into array of page indices (0-based)
136
- function parsePageRange(pageStr: string, totalPages: number): number[] {
137
- if (pageStr === "all") {
138
- return Array.from({ length: totalPages }, (_, i) => i);
139
- }
140
-
141
- const pages: Set<number> = new Set();
142
- const parts = pageStr.split(",").map((p) => p.trim());
143
-
144
- for (const part of parts) {
145
- if (part.includes("-")) {
146
- const [startStr, endStr] = part.split("-");
147
- const start = startStr ? parseInt(startStr) : 1;
148
- const end = endStr ? parseInt(endStr) : totalPages;
149
- for (let i = start - 1; i < Math.min(end, totalPages); i++) {
150
- if (i >= 0) pages.add(i);
151
- }
152
- } else {
153
- const pageNum = parseInt(part) - 1;
154
- if (pageNum >= 0 && pageNum < totalPages) {
155
- pages.add(pageNum);
156
- }
157
- }
158
- }
159
-
160
- return Array.from(pages).sort((a, b) => a - b);
161
- }
162
-
163
- // Expand glob patterns and get file list
164
- function getFileList(specs: string[]): FileSpec[] {
165
- const files: FileSpec[] = [];
166
-
167
- for (const spec of specs) {
168
- const { path: pattern, pages } = parseFileSpec(spec);
169
-
170
- // Try glob expansion
171
- const matches = globSync(pattern);
172
-
173
- if (matches.length === 0) {
174
- // No glob match, try as literal path
175
- if (fs.existsSync(pattern)) {
176
- files.push({ path: pattern, pages });
177
- } else {
178
- console.warn(`Warning: File not found: ${pattern}`);
179
- }
180
- } else {
181
- for (const match of matches) {
182
- if (match.toLowerCase().endsWith(".pdf")) {
183
- files.push({ path: match, pages });
184
- }
185
- }
186
- }
187
- }
188
-
189
- return files;
190
- }
191
-
192
- // Sort files based on option
193
- function sortFiles(files: FileSpec[], sortBy: string, reverse: boolean): FileSpec[] {
194
- const sorted = [...files];
195
-
196
- switch (sortBy) {
197
- case "name":
198
- sorted.sort((a, b) =>
199
- path.basename(a.path).localeCompare(path.basename(b.path))
200
- );
201
- break;
202
- case "date":
203
- sorted.sort((a, b) => {
204
- const statA = fs.statSync(a.path);
205
- const statB = fs.statSync(b.path);
206
- return statA.mtime.getTime() - statB.mtime.getTime();
207
- });
208
- break;
209
- case "size":
210
- sorted.sort((a, b) => {
211
- const statA = fs.statSync(a.path);
212
- const statB = fs.statSync(b.path);
213
- return statA.size - statB.size;
214
- });
215
- break;
216
- }
217
-
218
- if (reverse) {
219
- sorted.reverse();
220
- }
221
-
222
- return sorted;
223
- }
224
-
225
- // Add page numbers to document
226
- async function addPageNumbers(
227
- pdfDoc: PDFDocument,
228
- format: string,
229
- position: string
230
- ): Promise<void> {
231
- const pages = pdfDoc.getPages();
232
- const totalPages = pages.length;
233
- const font = await pdfDoc.embedFont(StandardFonts.Helvetica);
234
- const fontSize = 10;
235
-
236
- for (let i = 0; i < pages.length; i++) {
237
- const page = pages[i];
238
- const { width, height } = page.getSize();
239
-
240
- const text = format
241
- .replace("{n}", String(i + 1))
242
- .replace("{total}", String(totalPages));
243
-
244
- const textWidth = font.widthOfTextAtSize(text, fontSize);
245
-
246
- let x: number;
247
- let y: number;
248
-
249
- // Determine position
250
- const [vPos, hPos] = position.split("-");
251
-
252
- // Vertical position
253
- if (vPos === "top") {
254
- y = height - 30;
255
- } else {
256
- y = 20;
257
- }
258
-
259
- // Horizontal position
260
- switch (hPos) {
261
- case "left":
262
- x = 30;
263
- break;
264
- case "right":
265
- x = width - textWidth - 30;
266
- break;
267
- default: // center
268
- x = (width - textWidth) / 2;
269
- }
270
-
271
- page.drawText(text, {
272
- x,
273
- y,
274
- size: fontSize,
275
- font,
276
- color: rgb(0.3, 0.3, 0.3),
277
- });
278
- }
279
- }
280
-
281
- // Create a blank page with same size as reference
282
- function createBlankPage(pdfDoc: PDFDocument, width: number, height: number) {
283
- return pdfDoc.addPage([width, height]);
284
- }
285
-
286
- // Main merge function
287
- async function mergePdfs(fileSpecs: FileSpec[]): Promise<void> {
288
- console.log(`\nMerging ${fileSpecs.length} PDF files...\n`);
289
-
290
- // Create output document
291
- const mergedPdf = await PDFDocument.create();
292
-
293
- // Track source documents for bookmarks
294
- const bookmarkInfo: { title: string; pageIndex: number }[] = [];
295
- let totalSourcePages = 0;
296
- const sourceStats: { name: string; pages: number }[] = [];
297
-
298
- // Process each file
299
- for (const spec of fileSpecs) {
300
- console.log(`Processing: ${spec.path}`);
301
-
302
- try {
303
- const fileBytes = fs.readFileSync(spec.path);
304
- const sourcePdf = await PDFDocument.load(fileBytes);
305
- const sourcePageCount = sourcePdf.getPageCount();
306
-
307
- // Get pages to include
308
- const pageIndices = parsePageRange(spec.pages, sourcePageCount);
309
- console.log(` - Including ${pageIndices.length} of ${sourcePageCount} pages`);
310
-
311
- // Record bookmark position
312
- if (options.bookmarks) {
313
- bookmarkInfo.push({
314
- title: path.basename(spec.path, ".pdf"),
315
- pageIndex: mergedPdf.getPageCount(),
316
- });
317
- }
318
-
319
- // Copy pages
320
- const copiedPages = await mergedPdf.copyPages(sourcePdf, pageIndices);
321
-
322
- for (const page of copiedPages) {
323
- // Apply rotation if specified
324
- if (options.rotate !== 0) {
325
- page.setRotation(degrees(options.rotate));
326
- }
327
- mergedPdf.addPage(page);
328
- }
329
-
330
- // Add blank page between documents if requested
331
- if (options.blankBetween && spec !== fileSpecs[fileSpecs.length - 1]) {
332
- const lastPage = copiedPages[copiedPages.length - 1];
333
- const { width, height } = lastPage.getSize();
334
- createBlankPage(mergedPdf, width, height);
335
- }
336
-
337
- totalSourcePages += pageIndices.length;
338
- sourceStats.push({
339
- name: path.basename(spec.path),
340
- pages: pageIndices.length,
341
- });
342
- } catch (error: any) {
343
- console.error(` Error processing ${spec.path}: ${error.message}`);
344
- }
345
- }
346
-
347
- // Set metadata
348
- if (options.title) {
349
- mergedPdf.setTitle(options.title);
350
- }
351
- if (options.author) {
352
- mergedPdf.setAuthor(options.author);
353
- }
354
- mergedPdf.setCreator("merge-pdfs skill");
355
- mergedPdf.setProducer("pdf-lib");
356
- mergedPdf.setCreationDate(new Date());
357
- mergedPdf.setModificationDate(new Date());
358
-
359
- // Add page numbers if requested
360
- if (options.pageNumbers) {
361
- console.log("\nAdding page numbers...");
362
- await addPageNumbers(
363
- mergedPdf,
364
- options.pageNumberFormat,
365
- options.pageNumberPosition
366
- );
367
- }
368
-
369
- // Note: pdf-lib doesn't support bookmarks/outlines directly
370
- // For full bookmark support, we'd need a different library
371
- if (options.bookmarks && bookmarkInfo.length > 0) {
372
- console.log("\nNote: Bookmark metadata recorded (visual bookmarks require additional processing)");
373
- }
374
-
375
- // Save output
376
- console.log("\nSaving merged PDF...");
377
- const outputBytes = await mergedPdf.save();
378
-
379
- // Ensure output directory exists
380
- const outputDir = path.dirname(options.output);
381
- if (outputDir && !fs.existsSync(outputDir)) {
382
- fs.mkdirSync(outputDir, { recursive: true });
383
- }
384
-
385
- fs.writeFileSync(options.output, outputBytes);
386
-
387
- // Print summary
388
- console.log(`\n${"=".repeat(50)}`);
389
- console.log(`Merged ${fileSpecs.length} files (${mergedPdf.getPageCount()} pages total) into: ${options.output}`);
390
- console.log("=".repeat(50));
391
- for (const stat of sourceStats) {
392
- console.log(` - ${stat.name}: ${stat.pages} pages`);
393
- }
394
- console.log("");
395
-
396
- const outputSize = fs.statSync(options.output).size;
397
- console.log(`Output file size: ${(outputSize / 1024 / 1024).toFixed(2)} MB`);
398
- console.log("\nDone!");
399
- }
400
-
401
- // Main execution
402
- async function main() {
403
- try {
404
- // Get file list
405
- let files = getFileList(args._ as string[]);
406
-
407
- if (files.length === 0) {
408
- console.error("Error: No valid PDF files found");
409
- process.exit(1);
410
- }
411
-
412
- if (files.length === 1) {
413
- console.warn("Warning: Only one file specified, nothing to merge");
414
- }
415
-
416
- // Sort files
417
- files = sortFiles(files, options.sort, options.reverse);
418
-
419
- // Perform merge
420
- await mergePdfs(files);
421
- } catch (error: any) {
422
- console.error(`Error: ${error.message}`);
423
- process.exit(1);
424
- }
425
- }
426
-
427
- main();
@@ -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,56 +0,0 @@
1
- ---
2
- name: migration-plan-pack
3
- description: Generate migration planning packs for framework, library, database, infrastructure, or architecture upgrades with risk matrix, checklist, rollout plan, and test strategy.
4
- kind: instruction
5
- ---
6
-
7
- # Migration Plan Pack
8
-
9
- Generate a migration package from current state, target state, system context, and operating constraints. Hosted runs can inspect richer project inputs, while local direct execution produces deterministic artifacts for validation.
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
- | `system` | Product, repo, app, or service being migrated. | Migration Target |
26
- | `from` | Current framework, library, database, infrastructure, or architecture state. | current state |
27
- | `to` | Desired target state. | target state |
28
- | `scope` | Comma-separated systems or workstreams in scope. | app, data, deploy, tests |
29
- | `constraints` | Risk, downtime, compliance, billing, or operational constraints. | optional |
30
- | `deadline` | Date, release train, or migration window. | optional |
31
- | `strategy` | `phased`, `big-bang`, or `parallel-run`. | phased |
32
-
33
- ## Deliverables
34
-
35
- - `migration-plan.md`
36
- - `risk-matrix.csv`
37
- - `ordered-checklist.md`
38
- - `test-strategy.md`
39
- - `dependency-map.json`
40
- - `rollout-plan.md`
41
- - `manifest.json`
42
-
43
- ## Method
44
-
45
- 1. Establish the from/to states precisely, including versions, and list what is
46
- explicitly out of scope.
47
- 2. Map dependencies before sequencing. The order is forced by the dependency
48
- graph, not by preference.
49
- 3. Identify the irreversible steps. These dominate the plan: everything else can
50
- be retried.
51
- 4. Build the risk matrix with a concrete mitigation and a rollback for each row.
52
- "Monitor closely" is not a mitigation.
53
- 5. Define the cutover checklist as ordered, individually verifiable steps with an
54
- explicit go/no-go gate.
55
- 6. Specify the test strategy per phase, including how you prove parity between
56
- old and new rather than merely that the new one starts.
@@ -1,10 +0,0 @@
1
- {
2
- "name": "migration-plan-pack",
3
- "version": "0.1.0",
4
- "private": true,
5
- "description": "Hosted premium migration planning pack generator",
6
- "type": "module",
7
- "skills": {
8
- "kind": "instruction"
9
- }
10
- }