@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,508 +0,0 @@
1
- import { hslToHex } from "./design.js";
2
- import type { Tokens } from "./types.js";
3
-
4
- export function buildCss(tokens: Tokens): string {
5
- return `/* Generated by the one-page-website skill. Design tokens live in :root. */
6
-
7
- :root {
8
- color-scheme: light dark;
9
-
10
- --font-display: ${tokens.fontDisplay};
11
- --font-sans: ${tokens.fontSans};
12
- --font-mono: ${tokens.fontMono};
13
-
14
- --heading-weight: ${tokens.headingWeight};
15
- --heading-tracking: ${tokens.headingTracking};
16
- --measure: ${tokens.measure};
17
-
18
- --radius: ${tokens.radius};
19
- --radius-lg: ${tokens.radiusLg};
20
-
21
- --accent: ${tokens.accent};
22
- --accent-contrast: ${tokens.accentContrast};
23
- --accent-soft: ${hslToHex(tokens.hue, 0.7, 0.94)};
24
- --accent-strong: ${hslToHex(tokens.hue, 0.72, 0.34)};
25
-
26
- --bg: #FFFFFF;
27
- --bg-alt: ${hslToHex(tokens.hue, 0.32, 0.975)};
28
- --surface: #FFFFFF;
29
- --border: ${hslToHex(tokens.hue, 0.18, 0.88)};
30
- --text: ${hslToHex(tokens.hue, 0.26, 0.12)};
31
- --muted: ${hslToHex(tokens.hue, 0.12, 0.42)};
32
- --shadow: 0 1px 2px rgba(15, 20, 30, 0.06), 0 12px 32px -18px rgba(15, 20, 30, 0.28);
33
-
34
- --space-1: 0.25rem;
35
- --space-2: 0.5rem;
36
- --space-3: 0.75rem;
37
- --space-4: 1rem;
38
- --space-6: 1.5rem;
39
- --space-8: 2rem;
40
- --space-12: 3rem;
41
- --space-16: 4rem;
42
- --space-24: 6rem;
43
-
44
- --container: 1140px;
45
- }
46
-
47
- @media (prefers-color-scheme: dark) {
48
- :root {
49
- --accent: ${hslToHex(tokens.hue, 0.72, 0.62)};
50
- --accent-contrast: #0B0E14;
51
- --accent-soft: ${hslToHex(tokens.hue, 0.4, 0.2)};
52
- --accent-strong: ${hslToHex(tokens.hue, 0.7, 0.72)};
53
-
54
- --bg: ${hslToHex(tokens.hue, 0.16, 0.07)};
55
- --bg-alt: ${hslToHex(tokens.hue, 0.15, 0.1)};
56
- --surface: ${hslToHex(tokens.hue, 0.14, 0.12)};
57
- --border: ${hslToHex(tokens.hue, 0.12, 0.24)};
58
- --text: #EEF1F6;
59
- --muted: ${hslToHex(tokens.hue, 0.1, 0.68)};
60
- --shadow: 0 1px 2px rgba(0, 0, 0, 0.4), 0 18px 40px -24px rgba(0, 0, 0, 0.8);
61
- }
62
- }
63
-
64
- *, *::before, *::after { box-sizing: border-box; }
65
-
66
- html { -webkit-text-size-adjust: 100%; }
67
-
68
- @media (prefers-reduced-motion: no-preference) {
69
- html { scroll-behavior: smooth; }
70
- }
71
-
72
- body {
73
- margin: 0;
74
- background: var(--bg);
75
- color: var(--text);
76
- font-family: var(--font-sans);
77
- font-size: clamp(1rem, 0.96rem + 0.2vw, 1.0625rem);
78
- line-height: 1.65;
79
- -webkit-font-smoothing: antialiased;
80
- }
81
-
82
- img, svg { max-width: 100%; height: auto; }
83
-
84
- h1, h2, h3 {
85
- font-family: var(--font-display);
86
- font-weight: var(--heading-weight);
87
- letter-spacing: var(--heading-tracking);
88
- line-height: 1.15;
89
- margin: 0 0 var(--space-4);
90
- text-wrap: balance;
91
- }
92
-
93
- h1 { font-size: clamp(2.25rem, 1.6rem + 3.1vw, 3.75rem); }
94
- h2 { font-size: clamp(1.75rem, 1.4rem + 1.6vw, 2.5rem); }
95
- h3 { font-size: clamp(1.125rem, 1.05rem + 0.35vw, 1.3rem); }
96
- p { margin: 0 0 var(--space-4); }
97
-
98
- a { color: var(--accent-strong); }
99
- a:hover { color: var(--accent); }
100
-
101
- :where(a, button, summary, input, [tabindex]):focus-visible {
102
- outline: 3px solid var(--accent);
103
- outline-offset: 3px;
104
- border-radius: var(--radius);
105
- }
106
-
107
- .skip-link {
108
- position: absolute;
109
- left: var(--space-4);
110
- top: -100%;
111
- z-index: 100;
112
- padding: var(--space-3) var(--space-4);
113
- background: var(--accent);
114
- color: var(--accent-contrast);
115
- border-radius: var(--radius);
116
- font-weight: 600;
117
- text-decoration: none;
118
- }
119
- .skip-link:focus { top: var(--space-4); }
120
-
121
- .container {
122
- width: 100%;
123
- max-width: var(--container);
124
- margin-inline: auto;
125
- padding-inline: var(--space-6);
126
- }
127
-
128
- .section { padding-block: var(--space-16); }
129
- .section--alt { background: var(--bg-alt); }
130
- .section__head { max-width: var(--measure); margin-bottom: var(--space-12); }
131
- .section__eyebrow {
132
- display: inline-block;
133
- margin-bottom: var(--space-3);
134
- font-family: var(--font-mono);
135
- font-size: 0.75rem;
136
- letter-spacing: 0.12em;
137
- text-transform: uppercase;
138
- color: var(--muted);
139
- }
140
- .lede { font-size: 1.125rem; color: var(--muted); max-width: var(--measure); }
141
-
142
- /* ---- header ---- */
143
-
144
- .site-header {
145
- position: sticky;
146
- top: 0;
147
- z-index: 50;
148
- background: color-mix(in srgb, var(--bg) 88%, transparent);
149
- border-bottom: 1px solid transparent;
150
- backdrop-filter: saturate(180%) blur(12px);
151
- transition: border-color 150ms ease;
152
- }
153
- .site-header[data-scrolled="true"] { border-bottom-color: var(--border); }
154
-
155
- .site-header__inner {
156
- display: flex;
157
- align-items: center;
158
- gap: var(--space-6);
159
- min-height: 4rem;
160
- }
161
-
162
- .brand {
163
- display: inline-flex;
164
- align-items: center;
165
- gap: var(--space-3);
166
- font-weight: 700;
167
- font-family: var(--font-display);
168
- letter-spacing: var(--heading-tracking);
169
- color: var(--text);
170
- text-decoration: none;
171
- margin-right: auto;
172
- }
173
- .brand__mark {
174
- display: grid;
175
- place-items: center;
176
- width: 1.75rem;
177
- height: 1.75rem;
178
- border-radius: var(--radius);
179
- background: var(--accent);
180
- color: var(--accent-contrast);
181
- font-size: 0.9rem;
182
- font-weight: 800;
183
- }
184
-
185
- .nav-toggle {
186
- display: none;
187
- align-items: center;
188
- gap: var(--space-2);
189
- padding: var(--space-2) var(--space-3);
190
- border: 1px solid var(--border);
191
- border-radius: var(--radius);
192
- background: var(--surface);
193
- color: var(--text);
194
- font: inherit;
195
- font-size: 0.875rem;
196
- cursor: pointer;
197
- }
198
- .nav-toggle__bars { display: block; width: 1rem; height: 2px; background: currentColor; box-shadow: 0 5px currentColor, 0 -5px currentColor; }
199
-
200
- .site-nav__list {
201
- display: flex;
202
- align-items: center;
203
- gap: var(--space-6);
204
- margin: 0;
205
- padding: 0;
206
- list-style: none;
207
- }
208
- .site-nav__list a {
209
- color: var(--muted);
210
- text-decoration: none;
211
- font-size: 0.9375rem;
212
- font-weight: 500;
213
- }
214
- .site-nav__list a:hover { color: var(--text); }
215
- .site-nav__list a[aria-current="true"] { color: var(--text); }
216
-
217
- /* ---- buttons ---- */
218
-
219
- .btn {
220
- display: inline-flex;
221
- align-items: center;
222
- justify-content: center;
223
- gap: var(--space-2);
224
- padding: 0.75rem 1.25rem;
225
- border-radius: var(--radius);
226
- border: 1px solid transparent;
227
- font: inherit;
228
- font-weight: 600;
229
- line-height: 1;
230
- text-decoration: none;
231
- cursor: pointer;
232
- transition: transform 120ms ease, background-color 120ms ease;
233
- }
234
- .btn:active { transform: translateY(1px); }
235
- .btn--primary { background: var(--accent); color: var(--accent-contrast); }
236
- .btn--primary:hover { background: var(--accent-strong); color: var(--accent-contrast); }
237
- .btn--ghost { background: transparent; color: var(--text); border-color: var(--border); }
238
- .btn--ghost:hover { background: var(--bg-alt); color: var(--text); }
239
- .btn--sm { padding: 0.5rem 0.875rem; font-size: 0.875rem; }
240
-
241
- /* ---- hero ---- */
242
-
243
- .hero { padding-block: var(--space-24) var(--space-16); }
244
- .hero__grid { display: grid; gap: var(--space-12); align-items: center; }
245
- .hero__badge {
246
- display: inline-flex;
247
- align-items: center;
248
- gap: var(--space-2);
249
- margin-bottom: var(--space-6);
250
- padding: 0.3rem 0.75rem;
251
- border-radius: 999px;
252
- background: var(--accent-soft);
253
- color: var(--accent-strong);
254
- font-size: 0.8125rem;
255
- font-weight: 600;
256
- }
257
- .hero__actions { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-top: var(--space-8); }
258
- .hero__note { margin-top: var(--space-4); font-size: 0.875rem; color: var(--muted); }
259
- .hero__panel {
260
- border: 1px solid var(--border);
261
- border-radius: var(--radius-lg);
262
- background: var(--surface);
263
- box-shadow: var(--shadow);
264
- padding: var(--space-6);
265
- }
266
- .hero__panel-bar { display: flex; gap: var(--space-2); margin-bottom: var(--space-6); }
267
- .hero__panel-bar span { width: 0.625rem; height: 0.625rem; border-radius: 999px; background: var(--border); }
268
- .hero__panel-row { display: flex; align-items: center; gap: var(--space-4); padding-block: var(--space-3); border-top: 1px solid var(--border); }
269
- .hero__panel-row:first-of-type { border-top: 0; }
270
- .hero__panel-key { font-family: var(--font-mono); font-size: 0.8125rem; color: var(--muted); }
271
- .hero__panel-val { margin-left: auto; font-weight: 700; }
272
-
273
- /* ---- features ---- */
274
-
275
- .grid { display: grid; gap: var(--space-6); }
276
- .grid--3 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); }
277
-
278
- .card {
279
- padding: var(--space-6);
280
- border: 1px solid var(--border);
281
- border-radius: var(--radius-lg);
282
- background: var(--surface);
283
- }
284
- .card__icon {
285
- display: grid;
286
- place-items: center;
287
- width: 2.5rem;
288
- height: 2.5rem;
289
- margin-bottom: var(--space-4);
290
- border-radius: var(--radius);
291
- background: var(--accent-soft);
292
- color: var(--accent-strong);
293
- }
294
- .card p:last-child { margin-bottom: 0; }
295
-
296
- /* ---- proof ---- */
297
-
298
- .stats { display: grid; gap: var(--space-6); grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr)); margin-bottom: var(--space-12); }
299
- .stat__value { font-family: var(--font-display); font-size: clamp(2rem, 1.5rem + 2vw, 3rem); font-weight: var(--heading-weight); letter-spacing: var(--heading-tracking); line-height: 1; }
300
- .stat__label { margin-top: var(--space-2); color: var(--muted); font-size: 0.9375rem; }
301
-
302
- .quote {
303
- margin: 0;
304
- padding: var(--space-8);
305
- border-left: 3px solid var(--accent);
306
- border-radius: 0 var(--radius-lg) var(--radius-lg) 0;
307
- background: var(--surface);
308
- }
309
- .quote p { font-size: 1.125rem; max-width: var(--measure); }
310
- .quote footer { color: var(--muted); font-size: 0.9375rem; }
311
-
312
- /* ---- pricing ---- */
313
-
314
- .tier { display: flex; flex-direction: column; }
315
- .tier--featured { border-color: var(--accent); box-shadow: var(--shadow); }
316
- .tier__badge { display: inline-block; margin-bottom: var(--space-3); padding: 0.15rem 0.6rem; border-radius: 999px; background: var(--accent); color: var(--accent-contrast); font-size: 0.75rem; font-weight: 700; }
317
- .tier__price { display: flex; align-items: baseline; gap: var(--space-2); margin-block: var(--space-4); }
318
- .tier__amount { font-family: var(--font-display); font-size: 2.25rem; font-weight: var(--heading-weight); letter-spacing: var(--heading-tracking); }
319
- .tier__cadence { color: var(--muted); font-size: 0.875rem; }
320
- .tier__list { list-style: none; margin: 0 0 var(--space-6); padding: 0; display: grid; gap: var(--space-2); }
321
- .tier__list li { position: relative; padding-left: 1.5rem; font-size: 0.9375rem; }
322
- .tier__list li::before { content: ""; position: absolute; left: 0; top: 0.55em; width: 0.5rem; height: 0.5rem; border-radius: 999px; background: var(--accent); }
323
- .tier .btn { margin-top: auto; }
324
-
325
- /* ---- faq ---- */
326
-
327
- .faq { display: grid; gap: var(--space-3); max-width: 52rem; }
328
- .faq__item { border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--surface); }
329
- .faq__item summary {
330
- display: flex;
331
- align-items: center;
332
- justify-content: space-between;
333
- gap: var(--space-4);
334
- padding: var(--space-4) var(--space-6);
335
- font-weight: 600;
336
- cursor: pointer;
337
- list-style: none;
338
- }
339
- .faq__item summary::-webkit-details-marker { display: none; }
340
- .faq__item summary::after { content: "+"; font-family: var(--font-mono); font-size: 1.25rem; color: var(--muted); }
341
- .faq__item[open] summary::after { content: "\\2212"; }
342
- .faq__answer { padding: 0 var(--space-6) var(--space-6); color: var(--muted); max-width: var(--measure); }
343
-
344
- /* ---- cta ---- */
345
-
346
- .cta-band {
347
- padding: var(--space-16) var(--space-8);
348
- border-radius: var(--radius-lg);
349
- background: var(--accent);
350
- color: var(--accent-contrast);
351
- text-align: center;
352
- }
353
- .cta-band h2 { color: inherit; }
354
- .cta-band p { color: inherit; opacity: 0.9; max-width: var(--measure); margin-inline: auto; }
355
- .cta-band .btn--primary { background: var(--accent-contrast); color: var(--accent); }
356
- .cta-band .btn--primary:hover { background: var(--accent-contrast); opacity: 0.9; color: var(--accent); }
357
-
358
- /* ---- rich text (from --copy) ---- */
359
-
360
- .rich-text { max-width: var(--measure); }
361
- .rich-text > :last-child { margin-bottom: 0; }
362
- .rich-text ul, .rich-text ol { padding-left: 1.25rem; margin: 0 0 var(--space-4); }
363
- .rich-text li { margin-bottom: var(--space-2); }
364
- .rich-text code { font-family: var(--font-mono); font-size: 0.9em; background: var(--bg-alt); padding: 0.1em 0.35em; border-radius: 4px; }
365
- .rich-text pre { overflow-x: auto; padding: var(--space-4); background: var(--bg-alt); border-radius: var(--radius); }
366
- .rich-text blockquote { margin: 0 0 var(--space-4); padding-left: var(--space-4); border-left: 3px solid var(--border); color: var(--muted); }
367
- .rich-text table { width: 100%; border-collapse: collapse; }
368
- .rich-text th, .rich-text td { text-align: left; padding: var(--space-2) var(--space-3); border-bottom: 1px solid var(--border); }
369
-
370
- /* ---- footer ---- */
371
-
372
- .site-footer { padding-block: var(--space-12); border-top: 1px solid var(--border); color: var(--muted); font-size: 0.9375rem; }
373
- .site-footer__inner { display: flex; flex-wrap: wrap; gap: var(--space-4); align-items: center; justify-content: space-between; }
374
- .site-footer ul { display: flex; flex-wrap: wrap; gap: var(--space-6); margin: 0; padding: 0; list-style: none; }
375
- .site-footer a { color: var(--muted); text-decoration: none; }
376
- .site-footer a:hover { color: var(--text); }
377
-
378
- /* ---- responsive ---- */
379
-
380
- @media (min-width: 60rem) {
381
- .hero__grid { grid-template-columns: 1.05fr 0.95fr; }
382
- .section { padding-block: var(--space-24); }
383
- }
384
-
385
- @media (max-width: 52rem) {
386
- .site-header__inner { flex-wrap: wrap; }
387
- .site-nav { flex-basis: 100%; }
388
- .site-nav__list { flex-direction: column; align-items: flex-start; gap: var(--space-2); padding-bottom: var(--space-4); }
389
-
390
- /* Without JavaScript the menu stays open; the toggle only exists for the JS path. */
391
- html.js .nav-toggle { display: inline-flex; }
392
- html.js .site-nav { display: none; }
393
- html.js .site-nav[data-open="true"] { display: block; }
394
- }
395
-
396
- @media print {
397
- .site-header, .nav-toggle, .skip-link { display: none; }
398
- .section { padding-block: var(--space-8); }
399
- }
400
- `;
401
- }
402
-
403
- /* ------------------------------------------------------------------ */
404
- /* script */
405
- /* ------------------------------------------------------------------ */
406
-
407
- export function buildJs(): string {
408
- return `/* Generated by the one-page-website skill.
409
- Progressive enhancement only: every behaviour below is an upgrade on markup
410
- that already works with JavaScript disabled. */
411
- (function () {
412
- "use strict";
413
-
414
- var doc = document;
415
- var reduceMotion = window.matchMedia("(prefers-reduced-motion: reduce)");
416
-
417
- /* ---- mobile navigation ---- */
418
- var toggle = doc.querySelector(".nav-toggle");
419
- var nav = doc.getElementById("site-nav");
420
-
421
- function closeNav() {
422
- if (!toggle || !nav) return;
423
- toggle.setAttribute("aria-expanded", "false");
424
- nav.setAttribute("data-open", "false");
425
- }
426
-
427
- if (toggle && nav) {
428
- toggle.hidden = false;
429
- closeNav();
430
- toggle.addEventListener("click", function () {
431
- var open = toggle.getAttribute("aria-expanded") === "true";
432
- toggle.setAttribute("aria-expanded", open ? "false" : "true");
433
- nav.setAttribute("data-open", open ? "false" : "true");
434
- });
435
- doc.addEventListener("keydown", function (event) {
436
- if (event.key === "Escape") closeNav();
437
- });
438
- }
439
-
440
- /* ---- smooth scroll + focus management ---- */
441
- doc.addEventListener("click", function (event) {
442
- var link = event.target && event.target.closest ? event.target.closest('a[href^="#"]') : null;
443
- if (!link) return;
444
- var id = link.getAttribute("href").slice(1);
445
- if (!id) return;
446
- var target = doc.getElementById(id);
447
- if (!target) return;
448
-
449
- event.preventDefault();
450
- closeNav();
451
- target.scrollIntoView({ behavior: reduceMotion.matches ? "auto" : "smooth", block: "start" });
452
-
453
- // Move focus so keyboard and screen reader users land where sighted users do.
454
- if (!target.hasAttribute("tabindex")) target.setAttribute("tabindex", "-1");
455
- target.focus({ preventScroll: true });
456
-
457
- if (history.replaceState) history.replaceState(null, "", "#" + id);
458
- });
459
-
460
- /* ---- FAQ accordion: keep one open at a time ---- */
461
- var faqItems = Array.prototype.slice.call(doc.querySelectorAll(".faq__item"));
462
- faqItems.forEach(function (item) {
463
- item.addEventListener("toggle", function () {
464
- if (!item.open) return;
465
- faqItems.forEach(function (other) {
466
- if (other !== item) other.open = false;
467
- });
468
- });
469
- });
470
-
471
- /* ---- header shadow on scroll ---- */
472
- var header = doc.querySelector(".site-header");
473
- if (header) {
474
- var onScroll = function () {
475
- header.setAttribute("data-scrolled", window.scrollY > 8 ? "true" : "false");
476
- };
477
- onScroll();
478
- window.addEventListener("scroll", onScroll, { passive: true });
479
- }
480
-
481
- /* ---- scrollspy on the nav ---- */
482
- var navLinks = Array.prototype.slice.call(doc.querySelectorAll('#site-nav a[href^="#"]'));
483
- if (navLinks.length && "IntersectionObserver" in window) {
484
- var sections = navLinks
485
- .map(function (link) { return doc.getElementById(link.getAttribute("href").slice(1)); })
486
- .filter(Boolean);
487
-
488
- var observer = new IntersectionObserver(function (entries) {
489
- entries.forEach(function (entry) {
490
- if (!entry.isIntersecting) return;
491
- navLinks.forEach(function (link) {
492
- var active = link.getAttribute("href") === "#" + entry.target.id;
493
- if (active) link.setAttribute("aria-current", "true");
494
- else link.removeAttribute("aria-current");
495
- });
496
- });
497
- }, { rootMargin: "-45% 0px -50% 0px", threshold: 0 });
498
-
499
- sections.forEach(function (section) { observer.observe(section); });
500
- }
501
- })();
502
- `;
503
- }
504
-
505
- /* ------------------------------------------------------------------ */
506
- /* html */
507
- /* ------------------------------------------------------------------ */
508
-
@@ -1,78 +0,0 @@
1
- export const KNOWN_SECTIONS = ["hero", "features", "proof", "pricing", "faq", "cta"] as const;
2
- export type KnownSection = (typeof KNOWN_SECTIONS)[number];
3
-
4
- export interface CliOptions {
5
- name?: string;
6
- tagline?: string;
7
- sections: string;
8
- style: string;
9
- copy?: string;
10
- goal: string;
11
- audience: string;
12
- features?: string;
13
- accent?: string;
14
- output: string;
15
- json: boolean;
16
- }
17
-
18
- export interface Tokens {
19
- preset: string;
20
- hue: number;
21
- accent: string;
22
- accentContrast: string;
23
- fontDisplay: string;
24
- fontSans: string;
25
- fontMono: string;
26
- radius: string;
27
- radiusLg: string;
28
- headingWeight: number;
29
- headingTracking: string;
30
- measure: string;
31
- }
32
-
33
- export interface CopyOverride {
34
- slug: string;
35
- title: string;
36
- html: string;
37
- known: boolean;
38
- }
39
-
40
- /* ------------------------------------------------------------------ */
41
- /* deterministic randomness */
42
- /* ------------------------------------------------------------------ */
43
-
44
- export interface Content {
45
- name: string;
46
- tagline: string;
47
- lead: string;
48
- eyebrow: string;
49
- goal: string;
50
- audience: string;
51
- features: Array<{ title: string; body: string }>;
52
- stats: Array<{ value: string; label: string }>;
53
- quote: { text: string; author: string; role: string };
54
- tiers: Array<{ name: string; price: string; cadence: string; blurb: string; items: string[]; featured: boolean }>;
55
- faqs: Array<{ q: string; a: string }>;
56
- ctaHeading: string;
57
- ctaBody: string;
58
- year: number;
59
- }
60
-
61
- const FEATURE_BANK: Array<{ title: string; body: string }> = [
62
- { title: "Set up in minutes", body: "Connect your stack, pick the defaults that fit, and go live the same afternoon. No migration project, no professional services line item." },
63
- { title: "Answers, not dashboards", body: "Every view leads with the number that changes a decision, then lets you drill into the rows behind it when you need the detail." },
64
- { title: "Built for the whole team", body: "Roles, shared views, and comment threads mean the people who own the outcome do not have to file a ticket to see the data." },
65
- { title: "Auditable by default", body: "Every change is recorded with who, what, and when. Export the log whenever finance, security, or a customer asks for it." },
66
- { title: "Fits your workflow", body: "A documented API, webhooks, and a CLI so the thing you already built keeps working instead of being replaced." },
67
- { title: "Predictable pricing", body: "Usage is metered transparently and shown before it bills. No surprise overage invoice at the end of the quarter." },
68
- ];
69
-
70
- const FAQ_BANK: Array<{ q: string; a: string }> = [
71
- { q: "How long does setup take?", a: "Most teams are live the same day. The guided setup walks through connecting a data source, inviting your team, and turning on the first workflow." },
72
- { q: "Can we try it before committing?", a: "Yes. Every plan starts with a full-feature trial, no card required. Nothing is deleted if you decide not to continue — you can export everything." },
73
- { q: "How does pricing work?", a: "You pay for the plan tier plus metered usage above the included allowance. Usage is shown live in the app so there is never a surprise invoice." },
74
- { q: "Where is our data stored?", a: "Data is encrypted in transit and at rest. You choose the storage region during setup, and you can request a full export or deletion at any time." },
75
- { q: "Do you integrate with what we already use?", a: "There is a documented REST API, outbound webhooks, and a CLI. If a first-party integration is missing, the API covers the same surface." },
76
- { q: "What does support look like?", a: "Email support on every plan, shared Slack or Teams channel on the higher tiers, and a public status page with incident history." },
77
- ];
78
-
@@ -1,17 +0,0 @@
1
- {
2
- "extends": "../tsconfig.base.json",
3
- "compilerOptions": {
4
- "module": "ESNext",
5
- "outDir": "./dist",
6
- "rootDir": "./src",
7
- "resolveJsonModule": true,
8
- "noEmit": true
9
- },
10
- "include": [
11
- "src/**/*"
12
- ],
13
- "exclude": [
14
- "node_modules",
15
- "dist"
16
- ]
17
- }
@@ -1,19 +0,0 @@
1
- # pdf-generate
2
-
3
- Generate PDF documents.
4
-
5
- ## Development
6
-
7
- - Runtime: Bun
8
- - Use `bun` instead of `npm`, `yarn`, or `pnpm`
9
- - Use `bun run` instead of `npm run`
10
- - Use `bun install` instead of `npm install`
11
-
12
- ## Commands
13
-
14
- ```bash
15
- bun install # Install dependencies
16
- bun run start # Run the skill
17
- bun run dev # Run with watch mode
18
- bun run cli # Run via CLI
19
- ```