@hasna/skills 0.1.59 → 0.1.61

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 (1059) hide show
  1. package/README.md +189 -60
  2. package/agent-skills/README.md +41 -0
  3. package/agent-skills/fleet-package-rollout/SKILL.md +169 -0
  4. package/agent-skills/inbox/SKILL.md +25 -0
  5. package/agent-skills/inbox/scripts/inbox +109 -0
  6. package/agent-skills/inbox/tests/test_registered_sender_id.sh +92 -0
  7. package/agent-skills/inbox-monitor/SKILL.md +41 -0
  8. package/agent-skills/inbox-monitor/scripts/inbox_monitor.sh +91 -0
  9. package/agent-skills/inbox-monitor/scripts/test_inbox_monitor.sh +71 -0
  10. package/agent-skills/merge-pr/SKILL.md +85 -0
  11. package/agent-skills/merge-pr/references/merge-safety.md +82 -0
  12. package/agent-skills/merge-pr/scripts/merge_pr_guard.py +694 -0
  13. package/agent-skills/merge-pr/scripts/test_merge_pr_guard.py +647 -0
  14. package/agent-skills/merge-pr/tests/fixtures/multi-commit-synthesized.json +28 -0
  15. package/agent-skills/merge-pr/tests/fixtures/trailer-free-provider.json +28 -0
  16. package/agent-skills/skill-goal-execute/SKILL.md +115 -0
  17. package/agent-skills/skill-login/SKILL.md +109 -0
  18. package/agent-skills/skill-project-create/SKILL.md +91 -0
  19. package/agent-skills/skill-publish/SKILL.md +207 -0
  20. package/bin/index.js +2457 -3344
  21. package/bin/mcp.js +1127 -2641
  22. package/bin/migrate.js +955 -33
  23. package/bin/server.js +2367 -1989
  24. package/bin/worker.js +2089 -151
  25. package/dist/cli/cli.test-utils.d.ts +13 -2
  26. package/dist/cli/commands/publish.d.ts +30 -0
  27. package/dist/cli/commands/registry.d.ts +8 -0
  28. package/dist/index.d.ts +8 -6
  29. package/dist/index.js +1734 -2720
  30. package/dist/lib/agent-sync.d.ts +123 -0
  31. package/dist/lib/api-url.d.ts +34 -0
  32. package/dist/lib/auth-store.d.ts +21 -5
  33. package/dist/lib/blog-article.d.ts +37 -0
  34. package/dist/lib/config.d.ts +56 -2
  35. package/dist/lib/content-scan.d.ts +62 -9
  36. package/dist/lib/discovery.d.ts +10 -10
  37. package/dist/lib/doc-derived-counts.d.ts +56 -0
  38. package/dist/lib/feedback.d.ts +7 -0
  39. package/dist/lib/file-bytes.d.ts +43 -0
  40. package/dist/lib/hosted-skill-set.d.ts +69 -0
  41. package/dist/lib/infra-identifiers.d.ts +144 -0
  42. package/dist/lib/installer.d.ts +20 -6
  43. package/dist/lib/native-storage.d.ts +14 -11
  44. package/dist/lib/packlist.d.ts +13 -0
  45. package/dist/lib/portable-skills-files.d.ts +25 -0
  46. package/dist/lib/portable-skills-types.d.ts +105 -0
  47. package/dist/lib/portable-skills.d.ts +52 -103
  48. package/dist/lib/pull.d.ts +41 -0
  49. package/dist/lib/registry-merge.d.ts +57 -0
  50. package/dist/lib/registry-types.d.ts +1 -14
  51. package/dist/lib/registry.d.ts +6 -3
  52. package/dist/lib/remote-client.d.ts +15 -1
  53. package/dist/lib/remote-registry.d.ts +1 -1
  54. package/dist/lib/remote-run-contract.d.ts +0 -7
  55. package/dist/lib/retired-settings.d.ts +100 -0
  56. package/dist/lib/run-state.d.ts +14 -0
  57. package/dist/lib/skill-aliases.d.ts +0 -12
  58. package/dist/lib/skill-bundle.d.ts +37 -0
  59. package/dist/lib/vendor-host-code-scan.d.ts +66 -0
  60. package/dist/lib/vendor-host-folding.d.ts +40 -0
  61. package/dist/lib/vendor-host-guard.d.ts +47 -0
  62. package/dist/lib/vendor-host-package.d.ts +42 -0
  63. package/dist/lib/vendor-host-policy.d.ts +96 -0
  64. package/dist/lib/vendor-host-url.d.ts +81 -0
  65. package/dist/mcp/mcp-test-client.d.ts +18 -0
  66. package/dist/storage.d.ts +1 -1
  67. package/dist/storage.js +104 -51
  68. package/docs/skill-standard.md +1 -1
  69. package/migrations/postgres/0002_org_scoped_skill_registry.sql +72 -0
  70. package/migrations/sqlite/0001_open_skills_self_hosted.sql +150 -0
  71. package/migrations/sqlite/0002_org_scoped_skill_registry.sql +47 -0
  72. package/package.json +4 -4
  73. package/skills/_common/http-client.ts +17 -2
  74. package/skills/_common/install.sh +2 -2
  75. package/skills/_common/installer.ts +4 -5
  76. package/skills/_common/skill-install.ts +3 -3
  77. package/skills/ad-creative-pack/SKILL.md +28 -18
  78. package/skills/ad-creative-pack/package.json +1 -2
  79. package/skills/analyze-data/SKILL.md +1 -1
  80. package/skills/analyze-data/src/formatters.ts +2 -2
  81. package/skills/api-docs-portal/SKILL.md +62 -24
  82. package/skills/api-docs-portal/package.json +28 -4
  83. package/skills/api-docs-portal/src/index.ts +919 -0
  84. package/skills/audio-extract/SKILL.md +1 -1
  85. package/skills/blog-article/SKILL.md +32 -22
  86. package/skills/blog-article/package.json +1 -2
  87. package/skills/brand-assets/SKILL.md +94 -33
  88. package/skills/brand-assets/package.json +28 -4
  89. package/skills/brand-assets/src/cli.ts +155 -0
  90. package/skills/brand-assets/src/constants.ts +8 -0
  91. package/skills/brand-assets/src/extract.ts +236 -0
  92. package/skills/brand-assets/src/index.ts +668 -0
  93. package/skills/brand-assets/src/types.ts +59 -0
  94. package/skills/brand-kit/SKILL.md +27 -18
  95. package/skills/brand-kit/package.json +1 -2
  96. package/skills/compress-video/SKILL.md +1 -1
  97. package/skills/contract-review-report/SKILL.md +27 -18
  98. package/skills/contract-review-report/package.json +1 -2
  99. package/skills/customer-feedback-report/SKILL.md +27 -19
  100. package/skills/customer-feedback-report/package.json +1 -2
  101. package/skills/email-sequence/SKILL.md +26 -17
  102. package/skills/email-sequence/package.json +1 -2
  103. package/skills/generate-sitemap/src/index.ts +1 -1
  104. package/skills/invoice-reconciliation/SKILL.md +75 -19
  105. package/skills/invoice-reconciliation/package.json +29 -4
  106. package/skills/invoice-reconciliation/src/index.ts +743 -0
  107. package/skills/{convert → invoice-reconciliation}/tsconfig.json +3 -1
  108. package/skills/landing-page-pack/SKILL.md +27 -19
  109. package/skills/landing-page-pack/package.json +1 -2
  110. package/skills/logo-design/SKILL.md +69 -26
  111. package/skills/logo-design/package.json +28 -4
  112. package/skills/logo-design/src/cli.ts +132 -0
  113. package/skills/logo-design/src/constants.ts +5 -0
  114. package/skills/logo-design/src/docs.ts +102 -0
  115. package/skills/logo-design/src/geometry.ts +324 -0
  116. package/skills/logo-design/src/index.ts +212 -0
  117. package/skills/logo-design/src/palette.ts +258 -0
  118. package/skills/logo-design/src/types.ts +50 -0
  119. package/skills/logo-design/tsconfig.json +11 -2
  120. package/skills/market-research-report/SKILL.md +28 -18
  121. package/skills/market-research-report/package.json +2 -3
  122. package/skills/meeting-pack/SKILL.md +26 -17
  123. package/skills/meeting-pack/package.json +1 -2
  124. package/skills/merge-pdfs/src/index.ts +1 -1
  125. package/skills/migration-plan-pack/SKILL.md +30 -19
  126. package/skills/migration-plan-pack/package.json +1 -2
  127. package/skills/one-page-website/SKILL.md +105 -23
  128. package/skills/one-page-website/package.json +27 -4
  129. package/skills/one-page-website/src/design.ts +336 -0
  130. package/skills/one-page-website/src/docs.ts +159 -0
  131. package/skills/one-page-website/src/index.ts +357 -0
  132. package/skills/one-page-website/src/page.ts +340 -0
  133. package/skills/one-page-website/src/styles.ts +508 -0
  134. package/skills/one-page-website/src/types.ts +78 -0
  135. package/skills/one-page-website/tsconfig.json +11 -2
  136. package/skills/pdf-generate/SKILL.md +1 -1
  137. package/skills/pdf-to-dataset/SKILL.md +64 -21
  138. package/skills/pdf-to-dataset/package.json +30 -4
  139. package/skills/pdf-to-dataset/src/index.ts +790 -0
  140. package/skills/{emoji → pdf-to-dataset}/tsconfig.json +3 -4
  141. package/skills/pdf-to-markdown/SKILL.md +55 -23
  142. package/skills/pdf-to-markdown/package.json +28 -4
  143. package/skills/pdf-to-markdown/src/index.ts +694 -0
  144. package/skills/pdf-to-markdown/tsconfig.json +11 -4
  145. package/skills/performance-audit-report/SKILL.md +24 -17
  146. package/skills/performance-audit-report/package.json +1 -2
  147. package/skills/pitch-deck/SKILL.md +27 -19
  148. package/skills/pitch-deck/package.json +1 -2
  149. package/skills/product-mockup/SKILL.md +85 -23
  150. package/skills/product-mockup/package.json +25 -4
  151. package/skills/product-mockup/src/cli.ts +150 -0
  152. package/skills/product-mockup/src/design.ts +151 -0
  153. package/skills/product-mockup/src/docs.ts +134 -0
  154. package/skills/product-mockup/src/index.ts +182 -0
  155. package/skills/product-mockup/src/render.ts +407 -0
  156. package/skills/product-mockup/src/types.ts +66 -0
  157. package/skills/product-mockup/tsconfig.json +11 -2
  158. package/skills/proposal-pack/SKILL.md +27 -19
  159. package/skills/proposal-pack/package.json +2 -3
  160. package/skills/repo-onboarding-report/SKILL.md +26 -16
  161. package/skills/repo-onboarding-report/package.json +1 -2
  162. package/skills/security-audit/src/index.ts +1 -1
  163. package/skills/security-audit-report/SKILL.md +28 -16
  164. package/skills/security-audit-report/package.json +2 -3
  165. package/skills/seo-content-pack/SKILL.md +27 -17
  166. package/skills/seo-content-pack/package.json +1 -2
  167. package/skills/slide-deck-generator/SKILL.md +70 -21
  168. package/skills/slide-deck-generator/package.json +31 -4
  169. package/skills/slide-deck-generator/src/cli.ts +133 -0
  170. package/skills/slide-deck-generator/src/index.ts +148 -0
  171. package/skills/slide-deck-generator/src/model.ts +307 -0
  172. package/skills/slide-deck-generator/src/pptx.ts +143 -0
  173. package/skills/slide-deck-generator/src/render.ts +248 -0
  174. package/skills/slide-deck-generator/src/types.ts +114 -0
  175. package/skills/slide-deck-generator/src/utils.ts +53 -0
  176. package/skills/slide-deck-generator/tsconfig.json +17 -0
  177. package/skills/social-content-calendar/SKILL.md +27 -18
  178. package/skills/social-content-calendar/package.json +1 -2
  179. package/skills/split-pdf/src/index.ts +1 -1
  180. package/skills/test-suite-generator/SKILL.md +26 -16
  181. package/skills/test-suite-generator/package.json +2 -3
  182. package/skills/todos-plan/SKILL.md +339 -170
  183. package/skills/video-highlight-pack/SKILL.md +27 -17
  184. package/skills/video-highlight-pack/package.json +1 -2
  185. package/dist/cli/onboarding.d.ts +0 -13
  186. package/dist/lib/hosted-availability.d.ts +0 -13
  187. package/dist/lib/pricing.d.ts +0 -89
  188. package/skills/academic-journal-matcher/CLAUDE.md +0 -19
  189. package/skills/academic-journal-matcher/package.json +0 -27
  190. package/skills/academic-journal-matcher/src/index.ts +0 -86
  191. package/skills/academic-journal-matcher/tsconfig.json +0 -10
  192. package/skills/action-item-router/CLAUDE.md +0 -19
  193. package/skills/action-item-router/package.json +0 -27
  194. package/skills/action-item-router/src/index.ts +0 -304
  195. package/skills/action-item-router/tsconfig.json +0 -10
  196. package/skills/ad-creative-generator/CLAUDE.md +0 -19
  197. package/skills/ad-creative-generator/package.json +0 -27
  198. package/skills/ad-creative-generator/src/index.ts +0 -419
  199. package/skills/ad-creative-generator/tsconfig.json +0 -10
  200. package/skills/advanced-math/CLAUDE.md +0 -19
  201. package/skills/advanced-math/package.json +0 -29
  202. package/skills/advanced-math/src/calculators.ts +0 -118
  203. package/skills/advanced-math/src/cli.ts +0 -130
  204. package/skills/advanced-math/src/conversion.ts +0 -90
  205. package/skills/advanced-math/src/finance.ts +0 -75
  206. package/skills/advanced-math/src/formatting.ts +0 -95
  207. package/skills/advanced-math/src/index.ts +0 -133
  208. package/skills/advanced-math/src/runtime.ts +0 -49
  209. package/skills/advanced-math/src/symbolic.ts +0 -110
  210. package/skills/advanced-math/src/types.ts +0 -36
  211. package/skills/advanced-math/tsconfig.json +0 -10
  212. package/skills/anomaly-investigator/CLAUDE.md +0 -19
  213. package/skills/anomaly-investigator/package.json +0 -27
  214. package/skills/anomaly-investigator/src/index.ts +0 -311
  215. package/skills/anomaly-investigator/tsconfig.json +0 -10
  216. package/skills/apidocs/.env.example +0 -8
  217. package/skills/apidocs/CLAUDE.md +0 -278
  218. package/skills/apidocs/LICENSE +0 -192
  219. package/skills/apidocs/README.md +0 -196
  220. package/skills/apidocs/api-docs-list.json +0 -186
  221. package/skills/apidocs/package.json +0 -53
  222. package/skills/apidocs/scripts/crawl-all.ts +0 -157
  223. package/skills/apidocs/scripts/publish.ts +0 -210
  224. package/skills/apidocs/src/commands/add.ts +0 -279
  225. package/skills/apidocs/src/commands/endpoints.ts +0 -157
  226. package/skills/apidocs/src/commands/list.ts +0 -51
  227. package/skills/apidocs/src/commands/query.ts +0 -63
  228. package/skills/apidocs/src/commands/remove.ts +0 -39
  229. package/skills/apidocs/src/commands/sync.ts +0 -227
  230. package/skills/apidocs/src/index.ts +0 -3
  231. package/skills/apidocs/src/lib/crawler.ts +0 -427
  232. package/skills/apidocs/src/lib/discovery.ts +0 -244
  233. package/skills/apidocs/src/lib/embeddings.ts +0 -136
  234. package/skills/apidocs/src/lib/endpoint-extractor.ts +0 -359
  235. package/skills/apidocs/src/lib/html-to-md.ts +0 -163
  236. package/skills/apidocs/src/lib/parser.ts +0 -288
  237. package/skills/apidocs/src/lib/search.ts +0 -189
  238. package/skills/apidocs/src/lib/storage.ts +0 -242
  239. package/skills/apidocs/src/lib/vectors-local.ts +0 -220
  240. package/skills/apidocs/src/lib/vectors-s3.ts +0 -255
  241. package/skills/apidocs/src/lib/vectors.ts +0 -97
  242. package/skills/apidocs/src/types/index.ts +0 -297
  243. package/skills/apidocs/src/utils/output.ts +0 -132
  244. package/skills/apidocs/src/utils/paths.ts +0 -126
  245. package/skills/apidocs/tsconfig.json +0 -24
  246. package/skills/audio/SKILL.md +0 -35
  247. package/skills/audio/package.json +0 -11
  248. package/skills/audio-cleanup-lab/CLAUDE.md +0 -3
  249. package/skills/audio-cleanup-lab/SKILL.md +0 -81
  250. package/skills/audio-cleanup-lab/package.json +0 -23
  251. package/skills/audio-cleanup-lab/src/index.ts +0 -274
  252. package/skills/audio-cleanup-lab/tsconfig.json +0 -14
  253. package/skills/audio-transcript-pack/SKILL.md +0 -43
  254. package/skills/audio-transcript-pack/package.json +0 -11
  255. package/skills/banner-ad-suite/CLAUDE.md +0 -19
  256. package/skills/banner-ad-suite/package.json +0 -27
  257. package/skills/banner-ad-suite/src/index.ts +0 -331
  258. package/skills/banner-ad-suite/tsconfig.json +0 -10
  259. package/skills/benchmark-finder/CLAUDE.md +0 -19
  260. package/skills/benchmark-finder/package.json +0 -27
  261. package/skills/benchmark-finder/src/index.ts +0 -294
  262. package/skills/benchmark-finder/tsconfig.json +0 -10
  263. package/skills/blog-topic-cluster/CLAUDE.md +0 -19
  264. package/skills/blog-topic-cluster/package.json +0 -27
  265. package/skills/blog-topic-cluster/src/index.ts +0 -274
  266. package/skills/blog-topic-cluster/tsconfig.json +0 -10
  267. package/skills/brand-photo-shoot/SKILL.md +0 -28
  268. package/skills/brand-photo-shoot/package.json +0 -11
  269. package/skills/brand-style-guide/CLAUDE.md +0 -20
  270. package/skills/brand-style-guide/SKILL.md +0 -13
  271. package/skills/brand-style-guide/package.json +0 -26
  272. package/skills/brand-style-guide/src/index.ts +0 -288
  273. package/skills/brand-style-guide/tsconfig.json +0 -22
  274. package/skills/brand-voice-audit/CLAUDE.md +0 -19
  275. package/skills/brand-voice-audit/package.json +0 -27
  276. package/skills/brand-voice-audit/src/index.ts +0 -302
  277. package/skills/brand-voice-audit/tsconfig.json +0 -10
  278. package/skills/browse/LICENSE +0 -192
  279. package/skills/browse/README.md +0 -25
  280. package/skills/browse/SKILL.md +0 -35
  281. package/skills/browse/package.json +0 -11
  282. package/skills/browse/tsconfig.json +0 -22
  283. package/skills/budget-variance-analyzer/CLAUDE.md +0 -16
  284. package/skills/budget-variance-analyzer/SKILL.md +0 -83
  285. package/skills/budget-variance-analyzer/package.json +0 -24
  286. package/skills/budget-variance-analyzer/src/index.ts +0 -298
  287. package/skills/budget-variance-analyzer/tsconfig.json +0 -21
  288. package/skills/calendar-events/CLAUDE.md +0 -19
  289. package/skills/calendar-events/package.json +0 -27
  290. package/skills/calendar-events/src/ai-parser.ts +0 -103
  291. package/skills/calendar-events/src/api.ts +0 -157
  292. package/skills/calendar-events/src/auth.ts +0 -22
  293. package/skills/calendar-events/src/config.ts +0 -6
  294. package/skills/calendar-events/src/format.ts +0 -96
  295. package/skills/calendar-events/src/help.ts +0 -54
  296. package/skills/calendar-events/src/index.ts +0 -415
  297. package/skills/calendar-events/src/logger.ts +0 -34
  298. package/skills/calendar-events/src/types.ts +0 -67
  299. package/skills/calendar-events/tsconfig.json +0 -10
  300. package/skills/campaign-metric-brief/CLAUDE.md +0 -19
  301. package/skills/campaign-metric-brief/package.json +0 -27
  302. package/skills/campaign-metric-brief/src/index.ts +0 -307
  303. package/skills/campaign-metric-brief/tsconfig.json +0 -10
  304. package/skills/campaign-moodboard/CLAUDE.md +0 -19
  305. package/skills/campaign-moodboard/package.json +0 -27
  306. package/skills/campaign-moodboard/src/index.ts +0 -288
  307. package/skills/campaign-moodboard/tsconfig.json +0 -10
  308. package/skills/caption-style-stylist/CLAUDE.md +0 -19
  309. package/skills/caption-style-stylist/package.json +0 -27
  310. package/skills/caption-style-stylist/src/index.ts +0 -275
  311. package/skills/caption-style-stylist/tsconfig.json +0 -10
  312. package/skills/chemistry-calculator/CLAUDE.md +0 -19
  313. package/skills/chemistry-calculator/package.json +0 -27
  314. package/skills/chemistry-calculator/src/index.ts +0 -110
  315. package/skills/chemistry-calculator/tsconfig.json +0 -10
  316. package/skills/churn-risk-notifier/CLAUDE.md +0 -19
  317. package/skills/churn-risk-notifier/package.json +0 -27
  318. package/skills/churn-risk-notifier/src/index.ts +0 -308
  319. package/skills/churn-risk-notifier/tsconfig.json +0 -10
  320. package/skills/citation-formatter/CLAUDE.md +0 -19
  321. package/skills/citation-formatter/package.json +0 -27
  322. package/skills/citation-formatter/src/index.ts +0 -83
  323. package/skills/citation-formatter/tsconfig.json +0 -10
  324. package/skills/classroom-newsletter-kit/CLAUDE.md +0 -19
  325. package/skills/classroom-newsletter-kit/package.json +0 -27
  326. package/skills/classroom-newsletter-kit/src/index.ts +0 -293
  327. package/skills/classroom-newsletter-kit/tsconfig.json +0 -10
  328. package/skills/color-palette-harmonizer/CLAUDE.md +0 -19
  329. package/skills/color-palette-harmonizer/package.json +0 -27
  330. package/skills/color-palette-harmonizer/src/index.ts +0 -278
  331. package/skills/color-palette-harmonizer/tsconfig.json +0 -10
  332. package/skills/colorextract/SKILL.md +0 -35
  333. package/skills/colorextract/bun.lock +0 -102
  334. package/skills/colorextract/package.json +0 -25
  335. package/skills/colorextract/src/index.ts +0 -405
  336. package/skills/competitor-ad-analyzer/CLAUDE.md +0 -19
  337. package/skills/competitor-ad-analyzer/package.json +0 -27
  338. package/skills/competitor-ad-analyzer/src/index.ts +0 -350
  339. package/skills/competitor-ad-analyzer/tsconfig.json +0 -10
  340. package/skills/compliance-copy-check/CLAUDE.md +0 -19
  341. package/skills/compliance-copy-check/package.json +0 -27
  342. package/skills/compliance-copy-check/src/index.ts +0 -289
  343. package/skills/compliance-copy-check/tsconfig.json +0 -10
  344. package/skills/compliance-report-pack/CLAUDE.md +0 -19
  345. package/skills/compliance-report-pack/package.json +0 -27
  346. package/skills/compliance-report-pack/src/index.ts +0 -301
  347. package/skills/compliance-report-pack/tsconfig.json +0 -10
  348. package/skills/consolelog/.env.example +0 -19
  349. package/skills/consolelog/CLAUDE.md +0 -157
  350. package/skills/consolelog/LICENSE +0 -192
  351. package/skills/consolelog/README.md +0 -239
  352. package/skills/consolelog/data/.gitkeep +0 -0
  353. package/skills/consolelog/exports/products-2025-12-14T13-50-53-041Z.csv +0 -16
  354. package/skills/consolelog/exports/products-2025-12-14T13-50-53-041Z.json +0 -227
  355. package/skills/consolelog/package.json +0 -40
  356. package/skills/consolelog/scripts/migrate.ts +0 -26
  357. package/skills/consolelog/scripts/seed.ts +0 -48
  358. package/skills/consolelog/src/db/index.ts +0 -44
  359. package/skills/consolelog/src/db/queries.ts +0 -348
  360. package/skills/consolelog/src/db/schema.ts +0 -93
  361. package/skills/consolelog/src/index.ts +0 -3
  362. package/skills/consolelog/src/lib/config.ts +0 -110
  363. package/skills/consolelog/src/lib/installer.ts +0 -294
  364. package/skills/consolelog/src/lib/monitor.ts +0 -194
  365. package/skills/consolelog/src/lib/types.ts +0 -189
  366. package/skills/consolelog/src/lib/watcher.ts +0 -207
  367. package/skills/consolelog/tests/api.test.ts +0 -154
  368. package/skills/consolelog/tests/config.test.ts +0 -192
  369. package/skills/consolelog/tests/db.test.ts +0 -447
  370. package/skills/consolelog/tests/installer.test.ts +0 -155
  371. package/skills/consolelog/tsconfig.json +0 -24
  372. package/skills/contract-plainlanguage/CLAUDE.md +0 -19
  373. package/skills/contract-plainlanguage/package.json +0 -27
  374. package/skills/contract-plainlanguage/src/index.ts +0 -294
  375. package/skills/contract-plainlanguage/tsconfig.json +0 -10
  376. package/skills/convert/.env.example +0 -7
  377. package/skills/convert/LICENSE +0 -192
  378. package/skills/convert/README.md +0 -250
  379. package/skills/convert/SKILL.md +0 -106
  380. package/skills/convert/package.json +0 -37
  381. package/skills/convert/src/converters/ai.ts +0 -375
  382. package/skills/convert/src/converters/data.ts +0 -339
  383. package/skills/convert/src/converters/document.ts +0 -189
  384. package/skills/convert/src/converters/image.ts +0 -227
  385. package/skills/convert/src/converters/index.ts +0 -9
  386. package/skills/convert/src/converters/pdf.ts +0 -255
  387. package/skills/convert/src/index-local.ts +0 -568
  388. package/skills/convert/src/index.ts +0 -4
  389. package/skills/convert/src/types.ts +0 -192
  390. package/skills/copytone-translator/CLAUDE.md +0 -19
  391. package/skills/copytone-translator/package.json +0 -27
  392. package/skills/copytone-translator/src/index.ts +0 -295
  393. package/skills/copytone-translator/tsconfig.json +0 -10
  394. package/skills/create-ebook/CLAUDE.md +0 -19
  395. package/skills/create-ebook/package.json +0 -27
  396. package/skills/create-ebook/src/index.ts +0 -637
  397. package/skills/create-ebook/tsconfig.json +0 -10
  398. package/skills/crm-note-enhancer/CLAUDE.md +0 -19
  399. package/skills/crm-note-enhancer/package.json +0 -27
  400. package/skills/crm-note-enhancer/src/index.ts +0 -317
  401. package/skills/crm-note-enhancer/tsconfig.json +0 -10
  402. package/skills/customer-journey-mapper/CLAUDE.md +0 -19
  403. package/skills/customer-journey-mapper/package.json +0 -27
  404. package/skills/customer-journey-mapper/src/index.ts +0 -312
  405. package/skills/customer-journey-mapper/tsconfig.json +0 -10
  406. package/skills/dashboard-narrator/CLAUDE.md +0 -19
  407. package/skills/dashboard-narrator/package.json +0 -27
  408. package/skills/dashboard-narrator/src/index.ts +0 -307
  409. package/skills/dashboard-narrator/tsconfig.json +0 -10
  410. package/skills/dataset-health-check/CLAUDE.md +0 -19
  411. package/skills/dataset-health-check/package.json +0 -27
  412. package/skills/dataset-health-check/src/index.ts +0 -323
  413. package/skills/dataset-health-check/tsconfig.json +0 -10
  414. package/skills/decision-journal/CLAUDE.md +0 -19
  415. package/skills/decision-journal/package.json +0 -27
  416. package/skills/decision-journal/src/index.ts +0 -313
  417. package/skills/decision-journal/tsconfig.json +0 -10
  418. package/skills/deepresearch/CLAUDE.md +0 -11
  419. package/skills/deepresearch/README.md +0 -26
  420. package/skills/deepresearch/SKILL.md +0 -41
  421. package/skills/deepresearch/package.json +0 -11
  422. package/skills/deepresearch/tsconfig.json +0 -29
  423. package/skills/delegation-brief-writer/CLAUDE.md +0 -19
  424. package/skills/delegation-brief-writer/package.json +0 -27
  425. package/skills/delegation-brief-writer/src/index.ts +0 -314
  426. package/skills/delegation-brief-writer/tsconfig.json +0 -10
  427. package/skills/deploy/LICENSE +0 -192
  428. package/skills/deploy/README.md +0 -382
  429. package/skills/deploy/SKILL.md +0 -138
  430. package/skills/deploy/package.json +0 -18
  431. package/skills/deploy/src/deployer.ts +0 -256
  432. package/skills/deploy/src/health.ts +0 -103
  433. package/skills/deploy/src/hosts.ts +0 -45
  434. package/skills/deploy/src/http-client.ts +0 -128
  435. package/skills/deploy/src/index-local.ts +0 -366
  436. package/skills/deploy/src/index.ts +0 -4
  437. package/skills/deploy/src/types.ts +0 -56
  438. package/skills/deploy/tsconfig.json +0 -18
  439. package/skills/destination-briefing/CLAUDE.md +0 -19
  440. package/skills/destination-briefing/package.json +0 -27
  441. package/skills/destination-briefing/src/index.ts +0 -291
  442. package/skills/destination-briefing/tsconfig.json +0 -10
  443. package/skills/doc-generate/CLAUDE.md +0 -19
  444. package/skills/doc-generate/SKILL.md +0 -295
  445. package/skills/doc-generate/package.json +0 -23
  446. package/skills/doc-generate/src/ai.ts +0 -50
  447. package/skills/doc-generate/src/cli.ts +0 -203
  448. package/skills/doc-generate/src/dependencies.ts +0 -44
  449. package/skills/doc-generate/src/document-builder.ts +0 -299
  450. package/skills/doc-generate/src/index.ts +0 -90
  451. package/skills/doc-generate/src/markdown-parser.ts +0 -125
  452. package/skills/doc-generate/src/types.ts +0 -68
  453. package/skills/doc-generate/tsconfig.json +0 -16
  454. package/skills/domainsearch/.env.example +0 -7
  455. package/skills/domainsearch/LICENSE +0 -192
  456. package/skills/domainsearch/SKILL.md +0 -41
  457. package/skills/domainsearch/package.json +0 -33
  458. package/skills/domainsearch/src/index.ts +0 -3
  459. package/skills/domainsearch/src/lib/api-client.ts +0 -181
  460. package/skills/domainsearch/src/lib/config.ts +0 -72
  461. package/skills/domainsearch/src/lib/installer.ts +0 -164
  462. package/skills/domainsearch/tsconfig.json +0 -22
  463. package/skills/educational-resource-finder/CLAUDE.md +0 -19
  464. package/skills/educational-resource-finder/package.json +0 -27
  465. package/skills/educational-resource-finder/src/index.ts +0 -289
  466. package/skills/educational-resource-finder/tsconfig.json +0 -10
  467. package/skills/email-campaign/CLAUDE.md +0 -19
  468. package/skills/email-campaign/package.json +0 -27
  469. package/skills/email-campaign/src/index.ts +0 -339
  470. package/skills/email-campaign/tsconfig.json +0 -10
  471. package/skills/emoji/.env.example +0 -7
  472. package/skills/emoji/QUICKSTART.md +0 -52
  473. package/skills/emoji/README.md +0 -175
  474. package/skills/emoji/SKILL.md +0 -63
  475. package/skills/emoji/package.json +0 -31
  476. package/skills/emoji/src/image-processor.ts +0 -143
  477. package/skills/emoji/src/index.ts +0 -282
  478. package/skills/emoji/src/prompt-generator.ts +0 -181
  479. package/skills/emoji/src/providers/gemini.ts +0 -58
  480. package/skills/emoji/src/providers/openai.ts +0 -55
  481. package/skills/emoji/src/types.ts +0 -72
  482. package/skills/exam-readiness-check/CLAUDE.md +0 -19
  483. package/skills/exam-readiness-check/package.json +0 -27
  484. package/skills/exam-readiness-check/src/index.ts +0 -289
  485. package/skills/exam-readiness-check/tsconfig.json +0 -10
  486. package/skills/excel/CLAUDE.md +0 -19
  487. package/skills/excel/SKILL.md +0 -38
  488. package/skills/excel/package.json +0 -30
  489. package/skills/excel/src/index.ts +0 -644
  490. package/skills/excel/tsconfig.json +0 -10
  491. package/skills/extract/.env.example +0 -3
  492. package/skills/extract/LICENSE +0 -192
  493. package/skills/extract/README.md +0 -61
  494. package/skills/extract/SKILL.md +0 -91
  495. package/skills/extract/package.json +0 -35
  496. package/skills/extract/src/extractors/image.ts +0 -42
  497. package/skills/extract/src/extractors/pdf.ts +0 -96
  498. package/skills/extract/src/index-local.ts +0 -258
  499. package/skills/extract/src/index.ts +0 -4
  500. package/skills/extract/src/providers/openai.ts +0 -222
  501. package/skills/extract/src/types.ts +0 -61
  502. package/skills/extract/tsconfig.json +0 -19
  503. package/skills/extract-invoice/CLAUDE.md +0 -19
  504. package/skills/extract-invoice/package.json +0 -27
  505. package/skills/extract-invoice/src/cli.ts +0 -97
  506. package/skills/extract-invoice/src/extractor.ts +0 -170
  507. package/skills/extract-invoice/src/file-utils.ts +0 -46
  508. package/skills/extract-invoice/src/formatters.ts +0 -144
  509. package/skills/extract-invoice/src/index.ts +0 -129
  510. package/skills/extract-invoice/src/runtime.ts +0 -46
  511. package/skills/extract-invoice/src/types.ts +0 -88
  512. package/skills/extract-invoice/tsconfig.json +0 -10
  513. package/skills/family-activity-curator/CLAUDE.md +0 -19
  514. package/skills/family-activity-curator/package.json +0 -27
  515. package/skills/family-activity-curator/src/index.ts +0 -293
  516. package/skills/family-activity-curator/tsconfig.json +0 -10
  517. package/skills/faq-packager/CLAUDE.md +0 -19
  518. package/skills/faq-packager/package.json +0 -27
  519. package/skills/faq-packager/src/index.ts +0 -292
  520. package/skills/faq-packager/tsconfig.json +0 -10
  521. package/skills/feedback-survey-designer/CLAUDE.md +0 -19
  522. package/skills/feedback-survey-designer/package.json +0 -27
  523. package/skills/feedback-survey-designer/src/index.ts +0 -299
  524. package/skills/feedback-survey-designer/tsconfig.json +0 -10
  525. package/skills/field-trip-planner/CLAUDE.md +0 -19
  526. package/skills/field-trip-planner/package.json +0 -27
  527. package/skills/field-trip-planner/src/index.ts +0 -289
  528. package/skills/field-trip-planner/tsconfig.json +0 -10
  529. package/skills/forecast-scenario-lab/CLAUDE.md +0 -19
  530. package/skills/forecast-scenario-lab/package.json +0 -27
  531. package/skills/forecast-scenario-lab/src/index.ts +0 -314
  532. package/skills/forecast-scenario-lab/tsconfig.json +0 -10
  533. package/skills/generate-book-cover/CLAUDE.md +0 -19
  534. package/skills/generate-book-cover/package.json +0 -11
  535. package/skills/generate-book-cover/tsconfig.json +0 -10
  536. package/skills/generate-diagram/CLAUDE.md +0 -19
  537. package/skills/generate-diagram/package.json +0 -27
  538. package/skills/generate-diagram/src/index.ts +0 -514
  539. package/skills/generate-diagram/tsconfig.json +0 -10
  540. package/skills/generate-documentation/CLAUDE.md +0 -19
  541. package/skills/generate-documentation/package.json +0 -27
  542. package/skills/generate-documentation/src/ai.ts +0 -131
  543. package/skills/generate-documentation/src/cli.ts +0 -71
  544. package/skills/generate-documentation/src/code-parser.ts +0 -300
  545. package/skills/generate-documentation/src/file-processing.ts +0 -182
  546. package/skills/generate-documentation/src/index.ts +0 -65
  547. package/skills/generate-documentation/src/runtime.ts +0 -35
  548. package/skills/generate-documentation/src/types.ts +0 -30
  549. package/skills/generate-documentation/tsconfig.json +0 -10
  550. package/skills/generate-mock-data/CLAUDE.md +0 -19
  551. package/skills/generate-mock-data/package.json +0 -29
  552. package/skills/generate-mock-data/src/ai.ts +0 -102
  553. package/skills/generate-mock-data/src/formatters.ts +0 -84
  554. package/skills/generate-mock-data/src/generator.ts +0 -377
  555. package/skills/generate-mock-data/src/index.ts +0 -201
  556. package/skills/generate-mock-data/src/logger.ts +0 -37
  557. package/skills/generate-mock-data/src/presets.ts +0 -110
  558. package/skills/generate-mock-data/src/types.ts +0 -21
  559. package/skills/generate-mock-data/tsconfig.json +0 -10
  560. package/skills/generate-pr-description/CLAUDE.md +0 -19
  561. package/skills/generate-pr-description/package.json +0 -27
  562. package/skills/generate-pr-description/src/ai.ts +0 -144
  563. package/skills/generate-pr-description/src/cli.ts +0 -80
  564. package/skills/generate-pr-description/src/clipboard.ts +0 -30
  565. package/skills/generate-pr-description/src/formatters.ts +0 -231
  566. package/skills/generate-pr-description/src/git.ts +0 -153
  567. package/skills/generate-pr-description/src/index.ts +0 -114
  568. package/skills/generate-pr-description/src/types.ts +0 -49
  569. package/skills/generate-pr-description/tsconfig.json +0 -10
  570. package/skills/generate-presentation/CLAUDE.md +0 -19
  571. package/skills/generate-presentation/package.json +0 -27
  572. package/skills/generate-presentation/src/ai-clients.ts +0 -61
  573. package/skills/generate-presentation/src/cli.ts +0 -126
  574. package/skills/generate-presentation/src/index.ts +0 -44
  575. package/skills/generate-presentation/src/logger.ts +0 -67
  576. package/skills/generate-presentation/src/presentation-generator.ts +0 -425
  577. package/skills/generate-presentation/src/runtime.ts +0 -6
  578. package/skills/generate-presentation/src/security.ts +0 -12
  579. package/skills/generate-presentation/src/types.ts +0 -28
  580. package/skills/generate-presentation/tsconfig.json +0 -10
  581. package/skills/generate-regex/CLAUDE.md +0 -19
  582. package/skills/generate-regex/package.json +0 -29
  583. package/skills/generate-regex/src/index.ts +0 -669
  584. package/skills/generate-regex/tsconfig.json +0 -10
  585. package/skills/generate-social-posts/CLAUDE.md +0 -19
  586. package/skills/generate-social-posts/package.json +0 -27
  587. package/skills/generate-social-posts/src/ai.ts +0 -88
  588. package/skills/generate-social-posts/src/cli.ts +0 -118
  589. package/skills/generate-social-posts/src/exporters.ts +0 -126
  590. package/skills/generate-social-posts/src/generator.ts +0 -130
  591. package/skills/generate-social-posts/src/index.ts +0 -78
  592. package/skills/generate-social-posts/src/platforms.ts +0 -39
  593. package/skills/generate-social-posts/src/runtime.ts +0 -34
  594. package/skills/generate-social-posts/src/source.ts +0 -116
  595. package/skills/generate-social-posts/src/types.ts +0 -58
  596. package/skills/generate-social-posts/tsconfig.json +0 -10
  597. package/skills/generate-sql/CLAUDE.md +0 -19
  598. package/skills/generate-sql/package.json +0 -27
  599. package/skills/generate-sql/src/index.ts +0 -636
  600. package/skills/generate-sql/tsconfig.json +0 -10
  601. package/skills/github-manager/CLAUDE.md +0 -19
  602. package/skills/github-manager/package.json +0 -29
  603. package/skills/github-manager/src/index.ts +0 -101
  604. package/skills/github-manager/tsconfig.json +0 -10
  605. package/skills/gmail/CLAUDE.md +0 -19
  606. package/skills/gmail/package.json +0 -27
  607. package/skills/gmail/src/index.ts +0 -410
  608. package/skills/gmail/tsconfig.json +0 -10
  609. package/skills/goal-quarterly-roadmap/CLAUDE.md +0 -19
  610. package/skills/goal-quarterly-roadmap/package.json +0 -27
  611. package/skills/goal-quarterly-roadmap/src/index.ts +0 -305
  612. package/skills/goal-quarterly-roadmap/tsconfig.json +0 -10
  613. package/skills/grant-application-drafter/CLAUDE.md +0 -19
  614. package/skills/grant-application-drafter/package.json +0 -27
  615. package/skills/grant-application-drafter/src/index.ts +0 -309
  616. package/skills/grant-application-drafter/tsconfig.json +0 -10
  617. package/skills/grocery-basket-optimizer/CLAUDE.md +0 -19
  618. package/skills/grocery-basket-optimizer/package.json +0 -27
  619. package/skills/grocery-basket-optimizer/src/index.ts +0 -304
  620. package/skills/grocery-basket-optimizer/tsconfig.json +0 -10
  621. package/skills/guest-communication-suite/CLAUDE.md +0 -19
  622. package/skills/guest-communication-suite/package.json +0 -27
  623. package/skills/guest-communication-suite/src/index.ts +0 -312
  624. package/skills/guest-communication-suite/tsconfig.json +0 -10
  625. package/skills/habit-reflection-digest/CLAUDE.md +0 -19
  626. package/skills/habit-reflection-digest/package.json +0 -27
  627. package/skills/habit-reflection-digest/src/index.ts +0 -308
  628. package/skills/habit-reflection-digest/tsconfig.json +0 -10
  629. package/skills/highlight-reel-generator/CLAUDE.md +0 -19
  630. package/skills/highlight-reel-generator/package.json +0 -27
  631. package/skills/highlight-reel-generator/src/index.ts +0 -286
  632. package/skills/highlight-reel-generator/tsconfig.json +0 -10
  633. package/skills/homework-feedback-coach/CLAUDE.md +0 -19
  634. package/skills/homework-feedback-coach/package.json +0 -27
  635. package/skills/homework-feedback-coach/src/index.ts +0 -316
  636. package/skills/homework-feedback-coach/tsconfig.json +0 -10
  637. package/skills/household-maintenance-mgr/CLAUDE.md +0 -19
  638. package/skills/household-maintenance-mgr/package.json +0 -27
  639. package/skills/household-maintenance-mgr/src/index.ts +0 -293
  640. package/skills/household-maintenance-mgr/tsconfig.json +0 -10
  641. package/skills/icon-pack/README.md +0 -28
  642. package/skills/icon-pack/SKILL.md +0 -23
  643. package/skills/icon-pack/package.json +0 -11
  644. package/skills/icon-pack/tsconfig.json +0 -20
  645. package/skills/image/LICENSE +0 -192
  646. package/skills/image/README.md +0 -25
  647. package/skills/image/SKILL.md +0 -49
  648. package/skills/image/examples/aurora-examples.sh +0 -33
  649. package/skills/image/examples/google-examples.sh +0 -37
  650. package/skills/image/examples/openai-examples.sh +0 -35
  651. package/skills/image/package.json +0 -11
  652. package/skills/image/tsconfig.json +0 -19
  653. package/skills/implementation-agent/CLAUDE.md +0 -19
  654. package/skills/implementation-agent/package.json +0 -29
  655. package/skills/implementation-agent/src/ai-generation.ts +0 -225
  656. package/skills/implementation-agent/src/index.ts +0 -608
  657. package/skills/implementation-agent/src/minimist.d.ts +0 -15
  658. package/skills/implementation-agent/src/templates.ts +0 -686
  659. package/skills/implementation-agent/src/types.ts +0 -53
  660. package/skills/implementation-agent/tsconfig.json +0 -10
  661. package/skills/inbox-priority-planner/CLAUDE.md +0 -19
  662. package/skills/inbox-priority-planner/package.json +0 -27
  663. package/skills/inbox-priority-planner/src/index.ts +0 -309
  664. package/skills/inbox-priority-planner/tsconfig.json +0 -10
  665. package/skills/invoice-dispute-helper/CLAUDE.md +0 -19
  666. package/skills/invoice-dispute-helper/package.json +0 -27
  667. package/skills/invoice-dispute-helper/src/index.ts +0 -304
  668. package/skills/invoice-dispute-helper/tsconfig.json +0 -10
  669. package/skills/itinerary-architect/CLAUDE.md +0 -19
  670. package/skills/itinerary-architect/package.json +0 -27
  671. package/skills/itinerary-architect/src/index.ts +0 -313
  672. package/skills/itinerary-architect/tsconfig.json +0 -10
  673. package/skills/kpi-digest-generator/CLAUDE.md +0 -19
  674. package/skills/kpi-digest-generator/package.json +0 -27
  675. package/skills/kpi-digest-generator/src/index.ts +0 -318
  676. package/skills/kpi-digest-generator/tsconfig.json +0 -10
  677. package/skills/lab-notebook-formatter/CLAUDE.md +0 -19
  678. package/skills/lab-notebook-formatter/package.json +0 -27
  679. package/skills/lab-notebook-formatter/src/index.ts +0 -88
  680. package/skills/lab-notebook-formatter/tsconfig.json +0 -10
  681. package/skills/landing-page-copy/CLAUDE.md +0 -19
  682. package/skills/landing-page-copy/package.json +0 -27
  683. package/skills/landing-page-copy/src/index.ts +0 -400
  684. package/skills/landing-page-copy/tsconfig.json +0 -10
  685. package/skills/learning-style-profiler/CLAUDE.md +0 -19
  686. package/skills/learning-style-profiler/package.json +0 -27
  687. package/skills/learning-style-profiler/src/index.ts +0 -291
  688. package/skills/learning-style-profiler/tsconfig.json +0 -10
  689. package/skills/lesson-plan-customizer/CLAUDE.md +0 -19
  690. package/skills/lesson-plan-customizer/package.json +0 -27
  691. package/skills/lesson-plan-customizer/src/index.ts +0 -303
  692. package/skills/lesson-plan-customizer/tsconfig.json +0 -10
  693. package/skills/livestream-runofshow/CLAUDE.md +0 -19
  694. package/skills/livestream-runofshow/package.json +0 -27
  695. package/skills/livestream-runofshow/src/index.ts +0 -299
  696. package/skills/livestream-runofshow/tsconfig.json +0 -10
  697. package/skills/longform-structurer/CLAUDE.md +0 -19
  698. package/skills/longform-structurer/package.json +0 -27
  699. package/skills/longform-structurer/src/index.ts +0 -293
  700. package/skills/longform-structurer/tsconfig.json +0 -10
  701. package/skills/managehook/.env.example +0 -16
  702. package/skills/managehook/CLAUDE.md +0 -48
  703. package/skills/managehook/README.md +0 -210
  704. package/skills/managehook/package.json +0 -24
  705. package/skills/managehook/scripts/migrate.ts +0 -57
  706. package/skills/managehook/scripts/seed.ts +0 -58
  707. package/skills/managehook/src/db/index.ts +0 -37
  708. package/skills/managehook/src/index.ts +0 -3
  709. package/skills/managehook/src/lib/api-client.ts +0 -108
  710. package/skills/managehook/src/lib/config.ts +0 -34
  711. package/skills/managehook/src/lib/installer.ts +0 -140
  712. package/skills/managehook/src/lib/service-dir.ts +0 -119
  713. package/skills/managehook/tsconfig.json +0 -29
  714. package/skills/manageskill/.env.example +0 -16
  715. package/skills/manageskill/CLAUDE.md +0 -48
  716. package/skills/manageskill/README.md +0 -210
  717. package/skills/manageskill/package.json +0 -24
  718. package/skills/manageskill/scripts/migrate.ts +0 -57
  719. package/skills/manageskill/scripts/seed.ts +0 -58
  720. package/skills/manageskill/src/db/index.ts +0 -37
  721. package/skills/manageskill/src/index.ts +0 -3
  722. package/skills/manageskill/src/lib/api-client.ts +0 -108
  723. package/skills/manageskill/src/lib/config.ts +0 -34
  724. package/skills/manageskill/src/lib/installer.ts +0 -140
  725. package/skills/manageskill/src/lib/service-dir.ts +0 -119
  726. package/skills/manageskill/tsconfig.json +0 -29
  727. package/skills/mcp-builder/CLAUDE.md +0 -19
  728. package/skills/mcp-builder/package.json +0 -30
  729. package/skills/mcp-builder/src/ai-descriptions.ts +0 -37
  730. package/skills/mcp-builder/src/generators.ts +0 -513
  731. package/skills/mcp-builder/src/index.ts +0 -62
  732. package/skills/mcp-builder/src/minimist.d.ts +0 -15
  733. package/skills/mcp-builder/src/naming.ts +0 -12
  734. package/skills/mcp-builder/src/options.ts +0 -170
  735. package/skills/mcp-builder/src/templates.ts +0 -149
  736. package/skills/mcp-builder/src/types.ts +0 -42
  737. package/skills/mcp-builder/tsconfig.json +0 -10
  738. package/skills/meal-plan-designer/CLAUDE.md +0 -19
  739. package/skills/meal-plan-designer/package.json +0 -27
  740. package/skills/meal-plan-designer/src/index.ts +0 -301
  741. package/skills/meal-plan-designer/tsconfig.json +0 -10
  742. package/skills/meeting-insight-summarizer/CLAUDE.md +0 -19
  743. package/skills/meeting-insight-summarizer/package.json +0 -27
  744. package/skills/meeting-insight-summarizer/src/index.ts +0 -316
  745. package/skills/meeting-insight-summarizer/tsconfig.json +0 -10
  746. package/skills/microcopy-generator/CLAUDE.md +0 -19
  747. package/skills/microcopy-generator/package.json +0 -27
  748. package/skills/microcopy-generator/src/index.ts +0 -303
  749. package/skills/microcopy-generator/tsconfig.json +0 -10
  750. package/skills/mindfulness-prompt-cache/CLAUDE.md +0 -19
  751. package/skills/mindfulness-prompt-cache/package.json +0 -27
  752. package/skills/mindfulness-prompt-cache/src/index.ts +0 -290
  753. package/skills/mindfulness-prompt-cache/tsconfig.json +0 -10
  754. package/skills/music/SKILL.md +0 -33
  755. package/skills/music/package.json +0 -11
  756. package/skills/music-album/SKILL.md +0 -37
  757. package/skills/music-album/package.json +0 -11
  758. package/skills/notion-manager/CLAUDE.md +0 -19
  759. package/skills/notion-manager/package.json +0 -29
  760. package/skills/notion-manager/src/index.ts +0 -105
  761. package/skills/notion-manager/tsconfig.json +0 -10
  762. package/skills/npmpublish/CLAUDE.md +0 -30
  763. package/skills/npmpublish/README.md +0 -83
  764. package/skills/npmpublish/SKILL.md +0 -70
  765. package/skills/npmpublish/package.json +0 -41
  766. package/skills/npmpublish/src/index.ts +0 -192
  767. package/skills/npmpublish/tsconfig.json +0 -18
  768. package/skills/onboarding-sequence-builder/CLAUDE.md +0 -19
  769. package/skills/onboarding-sequence-builder/package.json +0 -27
  770. package/skills/onboarding-sequence-builder/src/index.ts +0 -321
  771. package/skills/onboarding-sequence-builder/tsconfig.json +0 -10
  772. package/skills/onsite-ops-checklist/CLAUDE.md +0 -19
  773. package/skills/onsite-ops-checklist/package.json +0 -27
  774. package/skills/onsite-ops-checklist/src/index.ts +0 -307
  775. package/skills/onsite-ops-checklist/tsconfig.json +0 -10
  776. package/skills/outreach-cadence-designer/CLAUDE.md +0 -19
  777. package/skills/outreach-cadence-designer/package.json +0 -27
  778. package/skills/outreach-cadence-designer/src/index.ts +0 -330
  779. package/skills/outreach-cadence-designer/tsconfig.json +0 -10
  780. package/skills/packaging-concept-studio/CLAUDE.md +0 -19
  781. package/skills/packaging-concept-studio/package.json +0 -27
  782. package/skills/packaging-concept-studio/src/index.ts +0 -296
  783. package/skills/packaging-concept-studio/tsconfig.json +0 -10
  784. package/skills/packing-plan-pro/CLAUDE.md +0 -19
  785. package/skills/packing-plan-pro/package.json +0 -27
  786. package/skills/packing-plan-pro/src/index.ts +0 -306
  787. package/skills/packing-plan-pro/tsconfig.json +0 -10
  788. package/skills/parent-teacher-brief/CLAUDE.md +0 -19
  789. package/skills/parent-teacher-brief/package.json +0 -27
  790. package/skills/parent-teacher-brief/src/index.ts +0 -290
  791. package/skills/parent-teacher-brief/tsconfig.json +0 -10
  792. package/skills/partner-kit-assembler/CLAUDE.md +0 -19
  793. package/skills/partner-kit-assembler/package.json +0 -27
  794. package/skills/partner-kit-assembler/src/index.ts +0 -313
  795. package/skills/partner-kit-assembler/tsconfig.json +0 -10
  796. package/skills/payroll-change-prepper/CLAUDE.md +0 -19
  797. package/skills/payroll-change-prepper/package.json +0 -27
  798. package/skills/payroll-change-prepper/src/index.ts +0 -304
  799. package/skills/payroll-change-prepper/tsconfig.json +0 -10
  800. package/skills/pdf-read/SKILL.md +0 -56
  801. package/skills/pdf-read/package.json +0 -11
  802. package/skills/pdf-read/tsconfig.json +0 -8
  803. package/skills/persona-based-adwriter/CLAUDE.md +0 -19
  804. package/skills/persona-based-adwriter/package.json +0 -27
  805. package/skills/persona-based-adwriter/src/index.ts +0 -285
  806. package/skills/persona-based-adwriter/tsconfig.json +0 -10
  807. package/skills/persona-generator/CLAUDE.md +0 -19
  808. package/skills/persona-generator/package.json +0 -27
  809. package/skills/persona-generator/src/index.ts +0 -443
  810. package/skills/persona-generator/tsconfig.json +0 -10
  811. package/skills/personal-daily-ops/CLAUDE.md +0 -19
  812. package/skills/personal-daily-ops/package.json +0 -27
  813. package/skills/personal-daily-ops/src/index.ts +0 -324
  814. package/skills/personal-daily-ops/tsconfig.json +0 -10
  815. package/skills/pet-care-scheduler/CLAUDE.md +0 -19
  816. package/skills/pet-care-scheduler/package.json +0 -27
  817. package/skills/pet-care-scheduler/src/index.ts +0 -298
  818. package/skills/pet-care-scheduler/tsconfig.json +0 -10
  819. package/skills/photo-album/SKILL.md +0 -29
  820. package/skills/photo-album/package.json +0 -11
  821. package/skills/photo-album/tsconfig.json +0 -4
  822. package/skills/playlist-maker/SKILL.md +0 -33
  823. package/skills/playlist-maker/package.json +0 -11
  824. package/skills/playlist-maker/tsconfig.json +0 -4
  825. package/skills/podcast-show-notes/CLAUDE.md +0 -19
  826. package/skills/podcast-show-notes/package.json +0 -27
  827. package/skills/podcast-show-notes/src/index.ts +0 -302
  828. package/skills/podcast-show-notes/tsconfig.json +0 -10
  829. package/skills/presentation-theme-maker/CLAUDE.md +0 -19
  830. package/skills/presentation-theme-maker/package.json +0 -27
  831. package/skills/presentation-theme-maker/src/index.ts +0 -292
  832. package/skills/presentation-theme-maker/tsconfig.json +0 -10
  833. package/skills/press-release-drafter/CLAUDE.md +0 -19
  834. package/skills/press-release-drafter/package.json +0 -27
  835. package/skills/press-release-drafter/src/index.ts +0 -291
  836. package/skills/press-release-drafter/tsconfig.json +0 -10
  837. package/skills/print-collateral-designer/CLAUDE.md +0 -19
  838. package/skills/print-collateral-designer/package.json +0 -27
  839. package/skills/print-collateral-designer/src/index.ts +0 -298
  840. package/skills/print-collateral-designer/tsconfig.json +0 -10
  841. package/skills/procurement-scorecard/CLAUDE.md +0 -19
  842. package/skills/procurement-scorecard/package.json +0 -27
  843. package/skills/procurement-scorecard/src/index.ts +0 -338
  844. package/skills/procurement-scorecard/tsconfig.json +0 -10
  845. package/skills/product-demo-script/CLAUDE.md +0 -19
  846. package/skills/product-demo-script/package.json +0 -27
  847. package/skills/product-demo-script/src/index.ts +0 -326
  848. package/skills/product-demo-script/tsconfig.json +0 -10
  849. package/skills/project-dashboard-reports/SKILL.md +0 -78
  850. package/skills/project-dashboard-reports/package.json +0 -25
  851. package/skills/project-dashboard-reports/src/index.ts +0 -67
  852. package/skills/project-retro-companion/CLAUDE.md +0 -19
  853. package/skills/project-retro-companion/package.json +0 -27
  854. package/skills/project-retro-companion/src/index.ts +0 -298
  855. package/skills/project-retro-companion/tsconfig.json +0 -10
  856. package/skills/proposal-redline-advisor/CLAUDE.md +0 -19
  857. package/skills/proposal-redline-advisor/package.json +0 -27
  858. package/skills/proposal-redline-advisor/src/index.ts +0 -320
  859. package/skills/proposal-redline-advisor/tsconfig.json +0 -10
  860. package/skills/read-image/SKILL.md +0 -47
  861. package/skills/read-image/package.json +0 -33
  862. package/skills/read-image/src/index.ts +0 -264
  863. package/skills/read-pdf/SKILL.md +0 -53
  864. package/skills/read-pdf/package.json +0 -11
  865. package/skills/remove-background/CLAUDE.md +0 -19
  866. package/skills/remove-background/package.json +0 -11
  867. package/skills/remove-background/tsconfig.json +0 -10
  868. package/skills/risk-disclosure-kit/CLAUDE.md +0 -19
  869. package/skills/risk-disclosure-kit/package.json +0 -27
  870. package/skills/risk-disclosure-kit/src/index.ts +0 -307
  871. package/skills/risk-disclosure-kit/tsconfig.json +0 -10
  872. package/skills/roi-comparison-tool/CLAUDE.md +0 -19
  873. package/skills/roi-comparison-tool/package.json +0 -27
  874. package/skills/roi-comparison-tool/src/index.ts +0 -322
  875. package/skills/roi-comparison-tool/tsconfig.json +0 -10
  876. package/skills/sales-call-recapper/CLAUDE.md +0 -19
  877. package/skills/sales-call-recapper/package.json +0 -27
  878. package/skills/sales-call-recapper/src/index.ts +0 -300
  879. package/skills/sales-call-recapper/tsconfig.json +0 -10
  880. package/skills/salescopy/.env.example +0 -2
  881. package/skills/salescopy/CLAUDE.md +0 -23
  882. package/skills/salescopy/LICENSE +0 -192
  883. package/skills/salescopy/README.md +0 -72
  884. package/skills/salescopy/package.json +0 -27
  885. package/skills/salescopy/src/commands/config.ts +0 -115
  886. package/skills/salescopy/src/commands/generate.ts +0 -179
  887. package/skills/salescopy/src/commands/sessions.ts +0 -169
  888. package/skills/salescopy/src/commands/templates.ts +0 -99
  889. package/skills/salescopy/src/index.ts +0 -3
  890. package/skills/salescopy/src/lib/generator.ts +0 -197
  891. package/skills/salescopy/src/lib/storage.ts +0 -191
  892. package/skills/salescopy/src/types/index.ts +0 -74
  893. package/skills/salescopy/src/utils/logger.ts +0 -33
  894. package/skills/salescopy/src/utils/paths.ts +0 -25
  895. package/skills/salescopy/tsconfig.json +0 -23
  896. package/skills/scaffold-project/CLAUDE.md +0 -19
  897. package/skills/scaffold-project/package.json +0 -29
  898. package/skills/scaffold-project/src/ai-detect.ts +0 -136
  899. package/skills/scaffold-project/src/file-generators.ts +0 -292
  900. package/skills/scaffold-project/src/index.ts +0 -240
  901. package/skills/scaffold-project/src/project-config.ts +0 -338
  902. package/skills/scaffold-project/src/templates.ts +0 -173
  903. package/skills/scaffold-project/src/types.ts +0 -58
  904. package/skills/scaffold-project/tsconfig.json +0 -10
  905. package/skills/scholarship-tracker/CLAUDE.md +0 -19
  906. package/skills/scholarship-tracker/package.json +0 -27
  907. package/skills/scholarship-tracker/src/index.ts +0 -298
  908. package/skills/scholarship-tracker/tsconfig.json +0 -10
  909. package/skills/sdk-generator/SKILL.md +0 -45
  910. package/skills/sdk-generator/package.json +0 -11
  911. package/skills/sdk-generator/tsconfig.json +0 -8
  912. package/skills/seating-chart-maker/CLAUDE.md +0 -19
  913. package/skills/seating-chart-maker/package.json +0 -27
  914. package/skills/seating-chart-maker/src/index.ts +0 -312
  915. package/skills/seating-chart-maker/tsconfig.json +0 -10
  916. package/skills/seo-brief-builder/CLAUDE.md +0 -19
  917. package/skills/seo-brief-builder/package.json +0 -27
  918. package/skills/seo-brief-builder/src/index.ts +0 -288
  919. package/skills/seo-brief-builder/tsconfig.json +0 -10
  920. package/skills/short-video-pack/SKILL.md +0 -30
  921. package/skills/short-video-pack/package.json +0 -11
  922. package/skills/slack-assistant/CLAUDE.md +0 -19
  923. package/skills/slack-assistant/package.json +0 -29
  924. package/skills/slack-assistant/src/index.ts +0 -79
  925. package/skills/slack-assistant/tsconfig.json +0 -10
  926. package/skills/sleep-routine-analyzer/CLAUDE.md +0 -19
  927. package/skills/sleep-routine-analyzer/package.json +0 -27
  928. package/skills/sleep-routine-analyzer/src/index.ts +0 -293
  929. package/skills/sleep-routine-analyzer/tsconfig.json +0 -10
  930. package/skills/sms/README.md +0 -33
  931. package/skills/sms/package.json +0 -35
  932. package/skills/sms/src/index.ts +0 -335
  933. package/skills/sms/tsconfig.json +0 -21
  934. package/skills/social-media-kit/CLAUDE.md +0 -19
  935. package/skills/social-media-kit/package.json +0 -27
  936. package/skills/social-media-kit/src/index.ts +0 -281
  937. package/skills/social-media-kit/tsconfig.json +0 -10
  938. package/skills/sponsorship-proposal-lab/CLAUDE.md +0 -19
  939. package/skills/sponsorship-proposal-lab/package.json +0 -27
  940. package/skills/sponsorship-proposal-lab/src/index.ts +0 -300
  941. package/skills/sponsorship-proposal-lab/tsconfig.json +0 -10
  942. package/skills/spreadsheet-cleanroom/CLAUDE.md +0 -19
  943. package/skills/spreadsheet-cleanroom/package.json +0 -27
  944. package/skills/spreadsheet-cleanroom/src/index.ts +0 -331
  945. package/skills/spreadsheet-cleanroom/tsconfig.json +0 -10
  946. package/skills/stress-relief-playbook/CLAUDE.md +0 -19
  947. package/skills/stress-relief-playbook/package.json +0 -27
  948. package/skills/stress-relief-playbook/src/index.ts +0 -298
  949. package/skills/stress-relief-playbook/tsconfig.json +0 -10
  950. package/skills/study-guide-builder/CLAUDE.md +0 -19
  951. package/skills/study-guide-builder/package.json +0 -27
  952. package/skills/study-guide-builder/src/index.ts +0 -298
  953. package/skills/study-guide-builder/tsconfig.json +0 -10
  954. package/skills/subscription-spend-watcher/CLAUDE.md +0 -19
  955. package/skills/subscription-spend-watcher/package.json +0 -27
  956. package/skills/subscription-spend-watcher/src/index.ts +0 -312
  957. package/skills/subscription-spend-watcher/tsconfig.json +0 -10
  958. package/skills/subtitle/.env.example +0 -2
  959. package/skills/subtitle/CLAUDE.md +0 -37
  960. package/skills/subtitle/LICENSE +0 -192
  961. package/skills/subtitle/README.md +0 -63
  962. package/skills/subtitle/package.json +0 -43
  963. package/skills/subtitle/src/commands/config.ts +0 -53
  964. package/skills/subtitle/src/commands/generate.ts +0 -61
  965. package/skills/subtitle/src/index.ts +0 -3
  966. package/skills/subtitle/src/lib/generator.ts +0 -216
  967. package/skills/subtitle/src/lib/storage.ts +0 -62
  968. package/skills/subtitle/src/types/index.ts +0 -68
  969. package/skills/subtitle/src/utils/logger.ts +0 -34
  970. package/skills/subtitle/src/utils/paths.ts +0 -51
  971. package/skills/subtitle/tsconfig.json +0 -21
  972. package/skills/survey-insight-extractor/CLAUDE.md +0 -19
  973. package/skills/survey-insight-extractor/package.json +0 -27
  974. package/skills/survey-insight-extractor/src/index.ts +0 -317
  975. package/skills/survey-insight-extractor/tsconfig.json +0 -10
  976. package/skills/terraform-generator/CLAUDE.md +0 -19
  977. package/skills/terraform-generator/package.json +0 -29
  978. package/skills/terraform-generator/src/index.ts +0 -99
  979. package/skills/terraform-generator/tsconfig.json +0 -10
  980. package/skills/testimonial-graphics/CLAUDE.md +0 -19
  981. package/skills/testimonial-graphics/package.json +0 -27
  982. package/skills/testimonial-graphics/src/index.ts +0 -303
  983. package/skills/testimonial-graphics/tsconfig.json +0 -10
  984. package/skills/timesheet/.env.example +0 -25
  985. package/skills/timesheet/README.md +0 -235
  986. package/skills/timesheet/package.json +0 -47
  987. package/skills/timesheet/scripts/publish.ts +0 -210
  988. package/skills/timesheet/src/commands/employee.ts +0 -96
  989. package/skills/timesheet/src/commands/export.ts +0 -29
  990. package/skills/timesheet/src/commands/generate.ts +0 -102
  991. package/skills/timesheet/src/commands/holiday.ts +0 -74
  992. package/skills/timesheet/src/commands/profile.ts +0 -133
  993. package/skills/timesheet/src/commands/setup.ts +0 -21
  994. package/skills/timesheet/src/commands/vacation.ts +0 -93
  995. package/skills/timesheet/src/index.ts +0 -3
  996. package/skills/timesheet/src/lib/employees.ts +0 -56
  997. package/skills/timesheet/src/lib/export.ts +0 -123
  998. package/skills/timesheet/src/lib/holidays.ts +0 -79
  999. package/skills/timesheet/src/lib/paths.ts +0 -59
  1000. package/skills/timesheet/src/lib/profiles.ts +0 -168
  1001. package/skills/timesheet/src/lib/storage.ts +0 -83
  1002. package/skills/timesheet/src/lib/timesheet.ts +0 -130
  1003. package/skills/timesheet/src/lib/vacations.ts +0 -70
  1004. package/skills/timesheet/src/types/index.ts +0 -96
  1005. package/skills/timesheet/tsconfig.json +0 -29
  1006. package/skills/transcript/LICENSE +0 -192
  1007. package/skills/transcript/README.md +0 -17
  1008. package/skills/transcript/SKILL.md +0 -80
  1009. package/skills/transcript/package.json +0 -11
  1010. package/skills/transcript/tsconfig.json +0 -18
  1011. package/skills/travel-budget-balancer/CLAUDE.md +0 -19
  1012. package/skills/travel-budget-balancer/package.json +0 -27
  1013. package/skills/travel-budget-balancer/src/index.ts +0 -297
  1014. package/skills/travel-budget-balancer/tsconfig.json +0 -10
  1015. package/skills/video/SKILL.md +0 -37
  1016. package/skills/video/package.json +0 -11
  1017. package/skills/video-cut-suggester/CLAUDE.md +0 -19
  1018. package/skills/video-cut-suggester/package.json +0 -27
  1019. package/skills/video-cut-suggester/src/index.ts +0 -304
  1020. package/skills/video-cut-suggester/tsconfig.json +0 -10
  1021. package/skills/video-thumbnail/CLAUDE.md +0 -19
  1022. package/skills/video-thumbnail/package.json +0 -27
  1023. package/skills/video-thumbnail/src/index.ts +0 -356
  1024. package/skills/video-thumbnail/tsconfig.json +0 -10
  1025. package/skills/voiceover-jingle-pack/SKILL.md +0 -28
  1026. package/skills/voiceover-jingle-pack/package.json +0 -11
  1027. package/skills/webcrawling/CLAUDE.md +0 -11
  1028. package/skills/webcrawling/LICENSE +0 -192
  1029. package/skills/webcrawling/README.md +0 -24
  1030. package/skills/webcrawling/package.json +0 -11
  1031. package/skills/webcrawling/tsconfig.json +0 -22
  1032. package/skills/webinar-script-coach/CLAUDE.md +0 -19
  1033. package/skills/webinar-script-coach/package.json +0 -27
  1034. package/skills/webinar-script-coach/src/index.ts +0 -296
  1035. package/skills/webinar-script-coach/tsconfig.json +0 -10
  1036. package/skills/wellness-progress-reporter/CLAUDE.md +0 -19
  1037. package/skills/wellness-progress-reporter/package.json +0 -27
  1038. package/skills/wellness-progress-reporter/src/index.ts +0 -298
  1039. package/skills/wellness-progress-reporter/tsconfig.json +0 -10
  1040. package/skills/workout-cycle-planner/CLAUDE.md +0 -19
  1041. package/skills/workout-cycle-planner/package.json +0 -27
  1042. package/skills/workout-cycle-planner/src/index.ts +0 -299
  1043. package/skills/workout-cycle-planner/tsconfig.json +0 -10
  1044. package/skills/write/.env.example +0 -9
  1045. package/skills/write/LICENSE +0 -192
  1046. package/skills/write/README.md +0 -17
  1047. package/skills/write/SKILL.md +0 -90
  1048. package/skills/write/package.json +0 -32
  1049. package/skills/write/src/agents/image-generator.ts +0 -186
  1050. package/skills/write/src/agents/researcher.ts +0 -61
  1051. package/skills/write/src/agents/writer.ts +0 -99
  1052. package/skills/write/src/index-local.ts +0 -248
  1053. package/skills/write/src/index.ts +0 -4
  1054. package/skills/write/src/orchestrator.ts +0 -171
  1055. package/skills/write/src/types.ts +0 -65
  1056. package/skills/write/tsconfig.json +0 -18
  1057. /package/migrations/{0001_open_skills_self_hosted.sql → postgres/0001_open_skills_self_hosted.sql} +0 -0
  1058. /package/skills/{read-image → api-docs-portal}/tsconfig.json +0 -0
  1059. /package/skills/{read-pdf → brand-assets}/tsconfig.json +0 -0
@@ -0,0 +1,407 @@
1
+ import { FONT_STACK, MONO_STACK, xmlEscape } from "./design.js";
2
+ import type { SceneInput, SceneOutput } from "./types.js";
3
+
4
+ export function round(value: number): number {
5
+ return Math.round(value * 100) / 100;
6
+ }
7
+
8
+ function rect(
9
+ x: number,
10
+ y: number,
11
+ width: number,
12
+ height: number,
13
+ fill: string,
14
+ radius = 0,
15
+ extra = "",
16
+ ): string {
17
+ return `<rect x="${round(x)}" y="${round(y)}" width="${round(width)}" height="${round(height)}" rx="${round(
18
+ radius,
19
+ )}" fill="${fill}"${extra ? ` ${extra}` : ""}/>`;
20
+ }
21
+
22
+ function text(
23
+ x: number,
24
+ y: number,
25
+ content: string,
26
+ fill: string,
27
+ size: number,
28
+ weight = 500,
29
+ anchor: "start" | "middle" | "end" = "start",
30
+ stack = FONT_STACK,
31
+ ): string {
32
+ return `<text x="${round(x)}" y="${round(y)}" font-family="${stack}" font-size="${size}" font-weight="${weight}" fill="${fill}" text-anchor="${anchor}" dominant-baseline="central">${xmlEscape(
33
+ content,
34
+ )}</text>`;
35
+ }
36
+
37
+ function placeholderLines(
38
+ x: number,
39
+ y: number,
40
+ width: number,
41
+ count: number,
42
+ fill: string,
43
+ rng: () => number,
44
+ lineHeight = 14,
45
+ gap = 10,
46
+ ): string {
47
+ const parts: string[] = [];
48
+ for (let i = 0; i < count; i += 1) {
49
+ const w = width * (0.55 + rng() * 0.45);
50
+ parts.push(rect(x, y + i * (lineHeight + gap), w, lineHeight, fill, lineHeight / 2, 'fill-opacity="0.55"'));
51
+ }
52
+ return parts.join("\n ");
53
+ }
54
+
55
+ function truncate(value: string, max: number): string {
56
+ return value.length <= max ? value : `${value.slice(0, Math.max(0, max - 1)).trimEnd()}…`;
57
+ }
58
+
59
+ /* ------------------------------------------------------------------ */
60
+ /* scene renderers */
61
+ /* ------------------------------------------------------------------ */
62
+
63
+ export function renderBrowser(input: SceneInput): SceneOutput {
64
+ const { tokens, rng } = input;
65
+ const width = 1280;
66
+ const height = 800;
67
+ const pad = 48;
68
+ const winX = pad;
69
+ const winY = pad;
70
+ const winW = width - pad * 2;
71
+ const winH = height - pad * 2;
72
+ const chromeH = 88;
73
+ const tabH = 38;
74
+ const r = tokens.radius + 4;
75
+
76
+ const tabs = ["Overview", truncate(input.product, 18), "Docs"];
77
+ let tabX = winX + 76;
78
+ const tabParts: string[] = [];
79
+ tabs.forEach((label, i) => {
80
+ const w = 34 + label.length * 8.2;
81
+ const active = i === 1;
82
+ tabParts.push(
83
+ rect(tabX, winY + 10, w, tabH, active ? tokens.surface : tokens.surfaceAlt, 8),
84
+ text(tabX + 16, winY + 10 + tabH / 2, label, active ? tokens.text : tokens.muted, 13, active ? 600 : 500),
85
+ );
86
+ tabX += w + 8;
87
+ });
88
+
89
+ const contentY = winY + chromeH;
90
+ const contentH = winH - chromeH;
91
+ const heroPad = 56;
92
+
93
+ const body = ` <rect id="canvas" width="${width}" height="${height}" fill="${tokens.background}"/>
94
+ <g id="window">
95
+ ${rect(winX, winY, winW, winH, tokens.surface, r)}
96
+ ${rect(winX, winY, winW, winH, "none", r, `stroke="${tokens.border}" stroke-width="1"`)}
97
+ </g>
98
+ <g id="chrome">
99
+ ${rect(winX, winY, winW, chromeH, tokens.surfaceAlt, r)}
100
+ ${rect(winX, winY + chromeH - r, winW, r, tokens.surfaceAlt, 0)}
101
+ <line x1="${winX}" y1="${contentY}" x2="${winX + winW}" y2="${contentY}" stroke="${tokens.border}" stroke-width="1"/>
102
+ <circle cx="${winX + 26}" cy="${winY + 28}" r="6" fill="#FF5F57"/>
103
+ <circle cx="${winX + 46}" cy="${winY + 28}" r="6" fill="#FEBC2E"/>
104
+ <circle cx="${winX + 66}" cy="${winY + 28}" r="6" fill="#28C840"/>
105
+ </g>
106
+ <g id="tab-bar">
107
+ ${tabParts.join("\n ")}
108
+ </g>
109
+ <g id="url-pill">
110
+ ${rect(winX + 24, winY + 56, winW - 168, 24, tokens.dark ? tokens.background : "#FFFFFF", 12, `stroke="${tokens.border}" stroke-width="1"`)}
111
+ <path d="M ${winX + 40} ${winY + 66} a 5 5 0 0 1 10 0 v 4 h -10 z" fill="none" stroke="${tokens.muted}" stroke-width="1.6"/>
112
+ ${text(winX + 58, winY + 68, input.url, tokens.muted, 12, 500, "start", MONO_STACK)}
113
+ ${rect(winX + winW - 128, winY + 58, 20, 20, tokens.border, 6)}
114
+ ${rect(winX + winW - 100, winY + 58, 20, 20, tokens.border, 6)}
115
+ <circle cx="${winX + winW - 46}" cy="${winY + 68}" r="11" fill="${tokens.accent}"/>
116
+ </g>
117
+ <g id="page-content">
118
+ ${rect(winX + heroPad, contentY + 56, 120, 26, tokens.accentSoft, 13)}
119
+ ${text(winX + heroPad + 60, contentY + 69, "NEW", tokens.accent, 12, 700, "middle")}
120
+ ${text(winX + heroPad, contentY + 120, truncate(input.title, 42), tokens.text, 44, 700)}
121
+ ${placeholderLines(winX + heroPad, contentY + 168, 520, 3, tokens.muted, rng)}
122
+ ${rect(winX + heroPad, contentY + 258, 168, 48, tokens.accent, tokens.radius)}
123
+ ${text(winX + heroPad + 84, contentY + 282, "Get started", tokens.dark ? "#0B0D12" : "#FFFFFF", 15, 600, "middle")}
124
+ ${rect(winX + heroPad + 188, contentY + 258, 148, 48, "none", tokens.radius, `stroke="${tokens.border}" stroke-width="1.5"`)}
125
+ ${text(winX + heroPad + 262, contentY + 282, "See a demo", tokens.text, 15, 600, "middle")}
126
+ ${rect(winX + winW - heroPad - 460, contentY + 56, 460, contentH - 112, tokens.surfaceAlt, tokens.radius + 4, `stroke="${tokens.border}" stroke-width="1"`)}
127
+ ${rect(winX + winW - heroPad - 424, contentY + 96, 388, 34, tokens.border, 8, 'fill-opacity="0.6"')}
128
+ ${[0, 1, 2]
129
+ .map((i) =>
130
+ rect(
131
+ winX + winW - heroPad - 424,
132
+ contentY + 154 + i * 78,
133
+ 388,
134
+ 62,
135
+ tokens.surface,
136
+ tokens.radius,
137
+ `stroke="${tokens.border}" stroke-width="1"`,
138
+ ),
139
+ )
140
+ .join("\n ")}
141
+ ${[0, 1, 2]
142
+ .map((i) => `<circle cx="${winX + winW - heroPad - 396}" cy="${contentY + 185 + i * 78}" r="14" fill="${tokens.accentSoft}"/>`)
143
+ .join("\n ")}
144
+ </g>`;
145
+
146
+ return {
147
+ width,
148
+ height,
149
+ body,
150
+ layers: ["canvas", "window", "chrome", "tab-bar", "url-pill", "page-content"],
151
+ notes: "Desktop browser frame at 1280x800 with traffic lights, a three-tab bar, a URL pill, and a two-column marketing page body.",
152
+ };
153
+ }
154
+
155
+ export function renderPhone(input: SceneInput): SceneOutput {
156
+ const { tokens, rng } = input;
157
+ const width = 720;
158
+ const height = 1000;
159
+ const bodyW = 360;
160
+ const bodyH = 740;
161
+ const bodyX = (width - bodyW) / 2;
162
+ const bodyY = (height - bodyH) / 2;
163
+ const bezel = 12;
164
+ const screenX = bodyX + bezel;
165
+ const screenY = bodyY + bezel;
166
+ const screenW = bodyW - bezel * 2;
167
+ const screenH = bodyH - bezel * 2;
168
+
169
+ const cards = [0, 1, 2].map((i) =>
170
+ [
171
+ rect(screenX + 20, screenY + 250 + i * 108, screenW - 40, 92, tokens.surfaceAlt, tokens.radius, `stroke="${tokens.border}" stroke-width="1"`),
172
+ `<circle cx="${screenX + 52}" cy="${screenY + 296 + i * 108}" r="18" fill="${tokens.accentSoft}"/>`,
173
+ rect(screenX + 84, screenY + 278 + i * 108, 140, 12, tokens.text, 6, 'fill-opacity="0.75"'),
174
+ rect(screenX + 84, screenY + 300 + i * 108, 96, 10, tokens.muted, 5, 'fill-opacity="0.6"'),
175
+ ].join("\n "),
176
+ );
177
+
178
+ const body = ` <rect id="canvas" width="${width}" height="${height}" fill="${tokens.background}"/>
179
+ <g id="device-body">
180
+ ${rect(bodyX, bodyY, bodyW, bodyH, tokens.dark ? "#15171C" : "#1B1D22", 46)}
181
+ ${rect(bodyX, bodyY, bodyW, bodyH, "none", 46, 'stroke="#000000" stroke-opacity="0.35" stroke-width="2"')}
182
+ ${rect(bodyX + bodyW, bodyY + 190, 3, 74, "#2A2D34", 2)}
183
+ ${rect(bodyX - 3, bodyY + 160, 3, 46, "#2A2D34", 2)}
184
+ </g>
185
+ <g id="screen">
186
+ ${rect(screenX, screenY, screenW, screenH, tokens.surface, 36)}
187
+ </g>
188
+ <g id="status-bar">
189
+ ${text(screenX + 26, screenY + 30, "9:41", tokens.text, 13, 700)}
190
+ ${rect(screenX + screenW - 74, screenY + 24, 18, 11, tokens.text, 2, 'fill-opacity="0.8"')}
191
+ ${rect(screenX + screenW - 50, screenY + 23, 26, 13, tokens.text, 4, 'fill-opacity="0.8"')}
192
+ ${rect(screenX + screenW / 2 - 46, screenY + 6, 92, 26, "#0B0B0F", 13)}
193
+ </g>
194
+ <g id="app-content">
195
+ ${text(screenX + 26, screenY + 92, truncate(input.title, 22), tokens.text, 26, 700)}
196
+ ${placeholderLines(screenX + 26, screenY + 124, screenW - 80, 2, tokens.muted, rng, 11, 9)}
197
+ ${rect(screenX + 26, screenY + 182, screenW - 52, 44, tokens.accent, tokens.radius)}
198
+ ${text(screenX + screenW / 2, screenY + 204, "Continue", tokens.dark ? "#0B0D12" : "#FFFFFF", 15, 600, "middle")}
199
+ ${cards.join("\n ")}
200
+ </g>
201
+ <g id="tab-bar">
202
+ ${rect(screenX, screenY + screenH - 76, screenW, 76, tokens.surfaceAlt, 0)}
203
+ <line x1="${screenX}" y1="${screenY + screenH - 76}" x2="${screenX + screenW}" y2="${screenY + screenH - 76}" stroke="${tokens.border}" stroke-width="1"/>
204
+ ${[0, 1, 2, 3]
205
+ .map((i) => {
206
+ const cx = screenX + screenW * (0.16 + i * 0.226);
207
+ const active = i === 0;
208
+ return `<circle cx="${round(cx)}" cy="${screenY + screenH - 46}" r="9" fill="${active ? tokens.accent : tokens.muted}" fill-opacity="${active ? 1 : 0.5}"/>`;
209
+ })
210
+ .join("\n ")}
211
+ ${rect(screenX + screenW / 2 - 62, screenY + screenH - 16, 124, 5, tokens.muted, 3)}
212
+ </g>`;
213
+
214
+ return {
215
+ width,
216
+ height,
217
+ body,
218
+ layers: ["canvas", "device-body", "screen", "status-bar", "app-content", "tab-bar"],
219
+ notes: "Phone bezel at 720x1000 with a rounded body, side buttons, notch, status bar, app content stack, and a four-item tab bar.",
220
+ };
221
+ }
222
+
223
+ export function renderLaptop(input: SceneInput): SceneOutput {
224
+ const { tokens, rng } = input;
225
+ const width = 1280;
226
+ const height = 840;
227
+ const lidW = 960;
228
+ const lidH = 600;
229
+ const lidX = (width - lidW) / 2;
230
+ const lidY = 60;
231
+ const bezel = 18;
232
+ const screenX = lidX + bezel;
233
+ const screenY = lidY + bezel + 10;
234
+ const screenW = lidW - bezel * 2;
235
+ const screenH = lidH - bezel * 2 - 10;
236
+
237
+ const body = ` <rect id="canvas" width="${width}" height="${height}" fill="${tokens.background}"/>
238
+ <g id="lid">
239
+ ${rect(lidX, lidY, lidW, lidH, tokens.dark ? "#15171C" : "#1B1D22", 18)}
240
+ <circle cx="${width / 2}" cy="${lidY + 14}" r="3" fill="#3A3D44"/>
241
+ </g>
242
+ <g id="screen">
243
+ ${rect(screenX, screenY, screenW, screenH, tokens.surface, 6)}
244
+ </g>
245
+ <g id="app-window">
246
+ ${rect(screenX, screenY, screenW, 44, tokens.surfaceAlt, 6)}
247
+ <line x1="${screenX}" y1="${screenY + 44}" x2="${screenX + screenW}" y2="${screenY + 44}" stroke="${tokens.border}" stroke-width="1"/>
248
+ <circle cx="${screenX + 22}" cy="${screenY + 22}" r="5" fill="#FF5F57"/>
249
+ <circle cx="${screenX + 40}" cy="${screenY + 22}" r="5" fill="#FEBC2E"/>
250
+ <circle cx="${screenX + 58}" cy="${screenY + 22}" r="5" fill="#28C840"/>
251
+ ${text(screenX + screenW / 2, screenY + 22, truncate(input.product, 46), tokens.muted, 13, 500, "middle")}
252
+ ${text(screenX + 48, screenY + 116, truncate(input.title, 40), tokens.text, 34, 700)}
253
+ ${placeholderLines(screenX + 48, screenY + 158, 420, 3, tokens.muted, rng)}
254
+ ${rect(screenX + 48, screenY + 244, 152, 42, tokens.accent, tokens.radius)}
255
+ ${text(screenX + 124, screenY + 265, "Start free", tokens.dark ? "#0B0D12" : "#FFFFFF", 14, 600, "middle")}
256
+ ${rect(screenX + screenW - 400, screenY + 88, 348, screenH - 152, tokens.surfaceAlt, tokens.radius, `stroke="${tokens.border}" stroke-width="1"`)}
257
+ ${[0, 1, 2, 3, 4, 5, 6]
258
+ .map((i) => {
259
+ const h = 30 + Math.floor(rng() * 130);
260
+ const x = screenX + screenW - 368 + i * 44;
261
+ const y = screenY + screenH - 120 - h;
262
+ return rect(x, y, 26, h, i % 2 === 0 ? tokens.accent : tokens.accentSoft, 6);
263
+ })
264
+ .join("\n ")}
265
+ </g>
266
+ <g id="base">
267
+ <path d="M ${lidX - 90} ${lidY + lidH} L ${lidX + lidW + 90} ${lidY + lidH} L ${lidX + lidW + 150} ${lidY + lidH + 34} L ${lidX - 150} ${lidY + lidH + 34} Z" fill="${tokens.dark ? "#1D2026" : "#25282E"}"/>
268
+ ${rect(width / 2 - 70, lidY + lidH + 4, 140, 6, "#33363D", 3)}
269
+ <path d="M ${lidX - 150} ${lidY + lidH + 34} L ${lidX + lidW + 150} ${lidY + lidH + 34} L ${lidX + lidW + 150} ${lidY + lidH + 42} L ${lidX - 150} ${lidY + lidH + 42} Z" fill="${tokens.dark ? "#101216" : "#15171B"}"/>
270
+ </g>`;
271
+
272
+ return {
273
+ width,
274
+ height,
275
+ body,
276
+ layers: ["canvas", "lid", "screen", "app-window", "base"],
277
+ notes: "Laptop mockup at 1280x840 with a bezelled lid, camera dot, in-screen app window, bar chart panel, and a tapered base.",
278
+ };
279
+ }
280
+
281
+ export function renderDashboard(input: SceneInput): SceneOutput {
282
+ const { tokens, rng } = input;
283
+ const width = 1440;
284
+ const height = 900;
285
+ const sidebarW = 240;
286
+ const headerH = 72;
287
+ const gutter = 28;
288
+ const contentX = sidebarW + gutter;
289
+ const contentW = width - sidebarW - gutter * 2;
290
+
291
+ const navItems = ["Overview", "Usage", "Customers", "Billing", "Reports", "Settings"];
292
+ const nav = navItems
293
+ .map((label, i) => {
294
+ const y = headerH + 34 + i * 46;
295
+ const active = i === 0;
296
+ return [
297
+ active ? rect(14, y - 4, sidebarW - 28, 38, tokens.accentSoft, tokens.radius) : "",
298
+ `<circle cx="38" cy="${y + 15}" r="7" fill="${active ? tokens.accent : tokens.muted}" fill-opacity="${active ? 1 : 0.55}"/>`,
299
+ text(58, y + 15, label, active ? tokens.text : tokens.muted, 14, active ? 600 : 500),
300
+ ]
301
+ .filter(Boolean)
302
+ .join("\n ");
303
+ })
304
+ .join("\n ");
305
+
306
+ const kpiSpecs: Array<{ label: string; value: () => string }> = [
307
+ { label: "MRR", value: () => `$${(Math.floor(rng() * 800) + 120).toLocaleString("en-US")}k` },
308
+ { label: "Active seats", value: () => `${(Math.floor(rng() * 9000) + 400).toLocaleString("en-US")}` },
309
+ { label: "Churn", value: () => `${(rng() * 3 + 0.4).toFixed(1)}%` },
310
+ { label: "NRR", value: () => `${Math.floor(rng() * 40) + 100}%` },
311
+ ];
312
+ const kpiW = (contentW - gutter * 3) / 4;
313
+ const kpis = kpiSpecs
314
+ .map(({ label, value: makeValue }, i) => {
315
+ const x = contentX + i * (kpiW + gutter);
316
+ const y = headerH + gutter;
317
+ const value = makeValue();
318
+ const delta = `${rng() > 0.35 ? "+" : "-"}${(rng() * 12).toFixed(1)}%`;
319
+ return [
320
+ rect(x, y, kpiW, 118, tokens.surface, tokens.radius, `stroke="${tokens.border}" stroke-width="1"`),
321
+ text(x + 20, y + 30, label, tokens.muted, 12, 600),
322
+ text(x + 20, y + 66, value, tokens.text, 30, 700),
323
+ rect(x + 20, y + 90, 64, 20, tokens.accentSoft, 10),
324
+ text(x + 52, y + 100, delta, tokens.accent, 11, 600, "middle"),
325
+ ].join("\n ");
326
+ })
327
+ .join("\n ");
328
+
329
+ const chartY = headerH + gutter + 118 + gutter;
330
+ const chartH = 300;
331
+ const chartW = contentW * 0.62;
332
+ const bars = Array.from({ length: 12 }, (_, i) => {
333
+ const h = 40 + Math.floor(rng() * (chartH - 130));
334
+ const barW = (chartW - 96) / 12 - 12;
335
+ const x = contentX + 48 + i * ((chartW - 96) / 12);
336
+ return rect(x, chartY + chartH - 48 - h, barW, h, i === 8 ? tokens.accent : tokens.accentSoft, 6);
337
+ }).join("\n ");
338
+
339
+ const linePoints = Array.from({ length: 12 }, (_, i) => {
340
+ const x = contentX + chartW + gutter + 40 + i * ((contentW - chartW - gutter - 80) / 11);
341
+ const y = chartY + 90 + Math.floor(rng() * 140);
342
+ return `${round(x)},${round(y)}`;
343
+ }).join(" ");
344
+
345
+ const tableY = chartY + chartH + gutter;
346
+ const rows = Array.from({ length: 4 }, (_, i) => {
347
+ const y = tableY + 66 + i * 44;
348
+ return [
349
+ `<circle cx="${contentX + 34}" cy="${y}" r="11" fill="${tokens.accentSoft}"/>`,
350
+ rect(contentX + 56, y - 6, 150 + Math.floor(rng() * 80), 12, tokens.text, 6, 'fill-opacity="0.72"'),
351
+ rect(contentX + contentW * 0.45, y - 6, 90, 12, tokens.muted, 6, 'fill-opacity="0.5"'),
352
+ rect(contentX + contentW * 0.66, y - 6, 70, 12, tokens.muted, 6, 'fill-opacity="0.5"'),
353
+ rect(contentX + contentW - 96, y - 12, 72, 24, tokens.accentSoft, 12),
354
+ ].join("\n ");
355
+ }).join("\n ");
356
+
357
+ const body = ` <rect id="canvas" width="${width}" height="${height}" fill="${tokens.background}"/>
358
+ <g id="sidebar">
359
+ ${rect(0, 0, sidebarW, height, tokens.surface, 0)}
360
+ <line x1="${sidebarW}" y1="0" x2="${sidebarW}" y2="${height}" stroke="${tokens.border}" stroke-width="1"/>
361
+ ${rect(20, 24, 26, 26, tokens.accent, 8)}
362
+ ${text(58, 37, truncate(input.product, 16), tokens.text, 15, 700)}
363
+ ${nav}
364
+ </g>
365
+ <g id="header">
366
+ ${rect(sidebarW, 0, width - sidebarW, headerH, tokens.surface, 0)}
367
+ <line x1="${sidebarW}" y1="${headerH}" x2="${width}" y2="${headerH}" stroke="${tokens.border}" stroke-width="1"/>
368
+ ${text(contentX, headerH / 2, truncate(input.title, 44), tokens.text, 20, 700)}
369
+ ${rect(width - 300, 20, 180, 32, tokens.surfaceAlt, 16, `stroke="${tokens.border}" stroke-width="1"`)}
370
+ ${text(width - 282, 36, "Search", tokens.muted, 12, 500)}
371
+ ${rect(width - 104, 20, 32, 32, tokens.accentSoft, 16)}
372
+ <circle cx="${width - 44}" cy="36" r="16" fill="${tokens.accent}"/>
373
+ </g>
374
+ <g id="kpi-row">
375
+ ${kpis}
376
+ </g>
377
+ <g id="chart-bar">
378
+ ${rect(contentX, chartY, chartW, chartH, tokens.surface, tokens.radius, `stroke="${tokens.border}" stroke-width="1"`)}
379
+ ${text(contentX + 24, chartY + 32, "Revenue by month", tokens.text, 14, 600)}
380
+ <line x1="${contentX + 32}" y1="${chartY + chartH - 48}" x2="${contentX + chartW - 32}" y2="${chartY + chartH - 48}" stroke="${tokens.border}" stroke-width="1"/>
381
+ ${bars}
382
+ </g>
383
+ <g id="chart-line">
384
+ ${rect(contentX + chartW + gutter, chartY, contentW - chartW - gutter, chartH, tokens.surface, tokens.radius, `stroke="${tokens.border}" stroke-width="1"`)}
385
+ ${text(contentX + chartW + gutter + 24, chartY + 32, "Activation trend", tokens.text, 14, 600)}
386
+ <polyline points="${linePoints}" fill="none" stroke="${tokens.accent}" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
387
+ </g>
388
+ <g id="table">
389
+ ${rect(contentX, tableY, contentW, height - tableY - gutter, tokens.surface, tokens.radius, `stroke="${tokens.border}" stroke-width="1"`)}
390
+ ${text(contentX + 24, tableY + 30, "Recent accounts", tokens.text, 14, 600)}
391
+ <line x1="${contentX}" y1="${tableY + 48}" x2="${contentX + contentW}" y2="${tableY + 48}" stroke="${tokens.border}" stroke-width="1"/>
392
+ ${rows}
393
+ </g>`;
394
+
395
+ return {
396
+ width,
397
+ height,
398
+ body,
399
+ layers: ["canvas", "sidebar", "header", "kpi-row", "chart-bar", "chart-line", "table"],
400
+ notes: "Analytics dashboard at 1440x900 with a six-item sidebar, header search, four KPI cards, a bar chart, a line chart, and a four-row table.",
401
+ };
402
+ }
403
+
404
+ /* ------------------------------------------------------------------ */
405
+ /* cli */
406
+ /* ------------------------------------------------------------------ */
407
+
@@ -0,0 +1,66 @@
1
+ export type Scene = "browser" | "device" | "dashboard";
2
+ export type DeviceKind = "auto" | "phone" | "laptop";
3
+
4
+ export interface CliOptions {
5
+ product?: string;
6
+ title?: string;
7
+ scene: Scene;
8
+ device: DeviceKind;
9
+ variants: number;
10
+ style: string;
11
+ audience: string;
12
+ accent?: string;
13
+ url: string;
14
+ output: string;
15
+ json: boolean;
16
+ }
17
+
18
+ export interface Tokens {
19
+ name: string;
20
+ background: string;
21
+ surface: string;
22
+ surfaceAlt: string;
23
+ border: string;
24
+ text: string;
25
+ muted: string;
26
+ accent: string;
27
+ accentSoft: string;
28
+ radius: number;
29
+ dark: boolean;
30
+ }
31
+
32
+ export interface VariantPlan {
33
+ id: string;
34
+ index: number;
35
+ seed: number;
36
+ scene: Scene;
37
+ device?: "phone" | "laptop";
38
+ width: number;
39
+ height: number;
40
+ file: string;
41
+ tokens: Tokens;
42
+ layers: string[];
43
+ notes: string;
44
+ }
45
+
46
+ /* ------------------------------------------------------------------ */
47
+ /* deterministic randomness */
48
+ /* ------------------------------------------------------------------ */
49
+
50
+ export interface SceneInput {
51
+ title: string;
52
+ product: string;
53
+ url: string;
54
+ tokens: Tokens;
55
+ rng: () => number;
56
+ index: number;
57
+ }
58
+
59
+ export interface SceneOutput {
60
+ width: number;
61
+ height: number;
62
+ body: string;
63
+ layers: string[];
64
+ notes: string;
65
+ }
66
+
@@ -1,8 +1,17 @@
1
1
  {
2
2
  "extends": "../tsconfig.base.json",
3
3
  "compilerOptions": {
4
+ "module": "ESNext",
4
5
  "outDir": "./dist",
5
- "rootDir": "./src"
6
+ "rootDir": "./src",
7
+ "resolveJsonModule": true,
8
+ "noEmit": true
6
9
  },
7
- "include": ["src/**/*"]
10
+ "include": [
11
+ "src/**/*"
12
+ ],
13
+ "exclude": [
14
+ "node_modules",
15
+ "dist"
16
+ ]
8
17
  }
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: proposal-pack
3
- description: Generate premium client proposal packages with proposal, SOW, pricing, timeline, assumptions, cover email, Markdown, and PDF artifacts.
3
+ description: Generate client proposal packages with proposal, SOW, pricing, timeline, assumptions, cover email, Markdown, and PDF artifacts.
4
+ kind: instruction
4
5
  ---
5
6
 
6
7
  # Proposal Pack
@@ -9,32 +10,28 @@ Generate a client-ready proposal package for agencies, consultants, SaaS service
9
10
 
10
11
  ## Requirements
11
12
 
12
- - Authenticate with `skills auth login`.
13
- - This premium skill runs through the hosted Skills runtime; local installs expose only metadata and instructions.
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.
14
15
 
15
16
  ## Usage
16
17
 
17
- ```bash
18
- skills run proposal-pack --client "Acme" --project "AI onboarding workflow" --budget "25k USD" --timeline "6 weeks"
19
- skills run proposal-pack "Revamp the customer onboarding portal" --services "Discovery,Design,Build,Training"
20
- ```
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.
21
20
 
22
- ## Options
21
+ ## Inputs
23
22
 
24
- | Option | Description | Default |
23
+ | Input | Description | Default |
25
24
  |--------|-------------|---------|
26
- | `--project <text>` | Project scope or proposal brief. Positional text also works. | required |
27
- | `--client <name>` | Client or account name. | Client |
28
- | `--budget <text>` | Budget range or fixed price. | To be confirmed |
29
- | `--timeline <text>` | Delivery timeline. | 4-6 weeks |
30
- | `--services <list>` | Comma-separated services or workstreams. | discovery, implementation, enablement |
31
- | `--tone <tone>` | `executive`, `friendly`, or `technical`. | executive |
32
- | `--output <dir>` | Output directory for direct local execution. Hosted runs use the run export directory. | run export dir |
25
+ | `project` | Project scope or proposal brief. Positional text also works. | required |
26
+ | `client` | Client or account name. | Client |
27
+ | `budget` | Budget range or fixed price. | To be confirmed |
28
+ | `timeline` | Delivery timeline. | 4-6 weeks |
29
+ | `services` | Comma-separated services or workstreams. | discovery, implementation, enablement |
30
+ | `tone` | `executive`, `friendly`, or `technical`. | executive |
33
31
 
34
- ## Outputs
32
+ ## Deliverables
35
33
 
36
34
  - `proposal.md`
37
- - `proposal.pdf`
38
35
  - `statement-of-work.md`
39
36
  - `pricing.csv`
40
37
  - `timeline.csv`
@@ -42,4 +39,15 @@ skills run proposal-pack "Revamp the customer onboarding portal" --services "Dis
42
39
  - `cover-email.md`
43
40
  - `manifest.json`
44
41
 
45
- After submitting a hosted run, poll with `skills runs status <run-id>` and download outputs with `skills exports download <run-id>`.
42
+ ## Method
43
+
44
+ 1. Open by restating the client's problem in their words. A proposal that starts
45
+ with your company loses before it is read.
46
+ 2. Scope by outcome, then by deliverable. Make the exclusions explicit — most
47
+ disputes come from what was never written down.
48
+ 3. Tie pricing to the scope structure so a scope change has an obvious price
49
+ consequence.
50
+ 4. Build the timeline with client-side dependencies named, since those are the
51
+ usual cause of slip.
52
+ 5. List assumptions plainly; each one is a risk you are asking the client to accept.
53
+ 6. Keep the cover email short: problem, approach, price range, next step.
@@ -2,10 +2,9 @@
2
2
  "name": "proposal-pack",
3
3
  "version": "0.1.0",
4
4
  "private": true,
5
- "description": "Generate client proposal packages through the hosted Skills runtime",
5
+ "description": "Generate client proposal packages",
6
6
  "type": "module",
7
7
  "skills": {
8
- "runtime": "hosted",
9
- "source": "remote"
8
+ "kind": "instruction"
10
9
  }
11
10
  }
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: repo-onboarding-report
3
- description: Generate premium repository onboarding reports with architecture maps, setup guides, first-week plans, code inventory, risk register, and manifest metadata.
3
+ description: Generate repository onboarding reports with architecture maps, setup guides, first-week plans, code inventory, risk register, and manifest metadata.
4
+ kind: instruction
4
5
  ---
5
6
 
6
7
  # Repo Onboarding Report
@@ -9,27 +10,24 @@ Generate a practical onboarding package for a software repository so a new engin
9
10
 
10
11
  ## Requirements
11
12
 
12
- - Authenticate with `skills auth login`.
13
- - This premium skill runs through the hosted Skills runtime; local installs expose only metadata and instructions.
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.
14
15
 
15
16
  ## Usage
16
17
 
17
- ```bash
18
- skills run repo-onboarding-report --target ./my-app --name "Acme Web App" --stack "Next.js SaaS"
19
- skills run repo-onboarding-report --target . --focus "architecture,setup,testing,risks"
20
- ```
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.
21
20
 
22
- ## Options
21
+ ## Inputs
23
22
 
24
- | Option | Description | Default |
23
+ | Input | Description | Default |
25
24
  |--------|-------------|---------|
26
- | `--target <path>` | Repository directory to inspect. | current directory |
27
- | `--name <text>` | Project name used in report titles. | package name or folder name |
28
- | `--stack <text>` | Stack or product context. | inferred from repository files |
29
- | `--focus <list>` | Comma-separated focus areas. | architecture,setup,testing,risks,first-week |
30
- | `--output <dir>` | Output directory for direct local execution. Hosted runs use the run export directory. | run export dir |
25
+ | `target` | Repository directory to inspect. | current directory |
26
+ | `name` | Project name used in report titles. | package name or folder name |
27
+ | `stack` | Stack or product context. | inferred from repository files |
28
+ | `focus` | Comma-separated focus areas. | architecture,setup,testing,risks,first-week |
31
29
 
32
- ## Outputs
30
+ ## Deliverables
33
31
 
34
32
  - `repo-onboarding-report.md`
35
33
  - `architecture-map.md`
@@ -39,4 +37,16 @@ skills run repo-onboarding-report --target . --focus "architecture,setup,testing
39
37
  - `risk-register.json`
40
38
  - `manifest.json`
41
39
 
42
- After submitting a hosted run, poll with `skills runs status <run-id>` and download outputs with `skills exports download <run-id>`.
40
+ ## Method
41
+
42
+ 1. Explore before you explain. Read the entry points, the build config, the test
43
+ setup, and the largest modules; do not summarize the README back to the user.
44
+ 2. Draw the architecture as the flow of a real request or command through the
45
+ system, naming the files it passes through.
46
+ 3. Write setup as a verified sequence — every command you list must be one you
47
+ found evidence for in the repo.
48
+ 4. Build the code inventory around responsibility ("where auth lives"), not
49
+ directory listing.
50
+ 5. Record risks concretely: untested paths, stale dependencies, undocumented
51
+ env vars, single points of knowledge.
52
+ 6. Make the first-week plan a series of increasingly non-trivial real tasks.
@@ -5,7 +5,6 @@
5
5
  "description": "Hosted premium repository onboarding report generator",
6
6
  "type": "module",
7
7
  "skills": {
8
- "runtime": "hosted",
9
- "source": "remote"
8
+ "kind": "instruction"
10
9
  }
11
10
  }
@@ -47,7 +47,7 @@ const outputArg = args.find(a => a.startsWith("output="))?.split("=")[1];
47
47
  // Simple regex patterns for demonstration
48
48
  const PATTERNS = [
49
49
  { name: "AWS Access Key", regex: /AKIA[0-9A-Z]{16}/, severity: "CRITICAL" },
50
- { name: "Private Key", regex: /-----BEGIN PRIVATE KEY-----/, severity: "CRITICAL" },
50
+ { name: "Private Key", regex: /-----BEGIN PRIVATE KEY-----/, severity: "CRITICAL" }, // hasna:allow-secret
51
51
  { name: "Generic API Key", regex: /api_key\s*[:=]\s*['"][a-zA-Z0-9]{20,}['"]/, severity: "HIGH" },
52
52
  { name: "Hardcoded Password", regex: /password\s*[:=]\s*['"][a-zA-Z0-9]{8,}['"]/, severity: "HIGH" },
53
53
  { name: "Eval Usage", regex: /eval\(/, severity: "MEDIUM" },