@hasna/skills 0.0.2 → 0.0.3

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 (387) hide show
  1. package/bin/index.js +253 -715
  2. package/bin/mcp.js +221 -683
  3. package/package.json +1 -1
  4. package/src/cli/cli.test.ts +14 -14
  5. package/src/cli/index.tsx +1 -1
  6. package/src/lib/installer.test.ts +41 -41
  7. package/src/lib/registry.test.ts +10 -10
  8. package/src/lib/registry.ts +10 -472
  9. package/src/lib/skillinfo.test.ts +12 -12
  10. package/src/mcp/index.ts +1 -1
  11. package/skills/skill-architecture-docs/CLAUDE.md +0 -19
  12. package/skills/skill-architecture-docs/package.json +0 -32
  13. package/skills/skill-architecture-docs/src/index.ts +0 -543
  14. package/skills/skill-auto-format/CLAUDE.md +0 -19
  15. package/skills/skill-auto-format/package.json +0 -32
  16. package/skills/skill-auto-format/src/index.ts +0 -103
  17. package/skills/skill-auto-format/tsconfig.json +0 -14
  18. package/skills/skill-brainstorm/README.md +0 -17
  19. package/skills/skill-brainstorm/install.sh +0 -112
  20. package/skills/skill-brainstorm/src/auth.ts +0 -49
  21. package/skills/skill-brainstorm/src/installer.ts +0 -324
  22. package/skills/skill-brainstorm/src/skill-install.ts +0 -205
  23. package/skills/skill-browser-agent/CLAUDE.md +0 -19
  24. package/skills/skill-browser-agent/package.json +0 -32
  25. package/skills/skill-browser-agent/src/index.ts +0 -626
  26. package/skills/skill-browser-agent/tsconfig.json +0 -14
  27. package/skills/skill-browseruse/LICENSE +0 -21
  28. package/skills/skill-browseruse/README.md +0 -27
  29. package/skills/skill-browseruse/SKILL.md +0 -113
  30. package/skills/skill-browseruse/install.sh +0 -112
  31. package/skills/skill-browseruse/package.json +0 -31
  32. package/skills/skill-browseruse/src/auth.ts +0 -49
  33. package/skills/skill-browseruse/src/installer.ts +0 -324
  34. package/skills/skill-browseruse/src/skill-install.ts +0 -174
  35. package/skills/skill-calculate/LICENSE +0 -21
  36. package/skills/skill-calculate/README.md +0 -17
  37. package/skills/skill-calculate/install.sh +0 -112
  38. package/skills/skill-calculate/package.json +0 -31
  39. package/skills/skill-calculate/src/auth.ts +0 -49
  40. package/skills/skill-calculate/src/installer.ts +0 -324
  41. package/skills/skill-calculate/src/skill-install.ts +0 -205
  42. package/skills/skill-chromedevtools/LICENSE +0 -21
  43. package/skills/skill-chromedevtools/README.md +0 -27
  44. package/skills/skill-chromedevtools/SKILL.md +0 -110
  45. package/skills/skill-chromedevtools/install.sh +0 -112
  46. package/skills/skill-chromedevtools/package.json +0 -31
  47. package/skills/skill-chromedevtools/src/auth.ts +0 -49
  48. package/skills/skill-chromedevtools/src/installer.ts +0 -324
  49. package/skills/skill-chromedevtools/src/skill-install.ts +0 -174
  50. package/skills/skill-companyguide/LICENSE +0 -21
  51. package/skills/skill-companyguide/README.md +0 -17
  52. package/skills/skill-companyguide/install.sh +0 -112
  53. package/skills/skill-companyguide/package.json +0 -31
  54. package/skills/skill-companyguide/src/auth.ts +0 -49
  55. package/skills/skill-companyguide/src/installer.ts +0 -324
  56. package/skills/skill-companyguide/src/skill-install.ts +0 -205
  57. package/skills/skill-compose-gmail/tsconfig.json +0 -14
  58. package/skills/skill-context7/LICENSE +0 -21
  59. package/skills/skill-context7/README.md +0 -27
  60. package/skills/skill-context7/SKILL.md +0 -103
  61. package/skills/skill-context7/install.sh +0 -112
  62. package/skills/skill-context7/package.json +0 -31
  63. package/skills/skill-context7/src/auth.ts +0 -49
  64. package/skills/skill-context7/src/installer.ts +0 -324
  65. package/skills/skill-context7/src/skill-install.ts +0 -174
  66. package/skills/skill-crawl/LICENSE +0 -21
  67. package/skills/skill-crawl/README.md +0 -17
  68. package/skills/skill-crawl/install.sh +0 -112
  69. package/skills/skill-crawl/package.json +0 -31
  70. package/skills/skill-crawl/src/auth.ts +0 -49
  71. package/skills/skill-crawl/src/installer.ts +0 -324
  72. package/skills/skill-crawl/src/skill-install.ts +0 -205
  73. package/skills/skill-csv-transformer/CLAUDE.md +0 -19
  74. package/skills/skill-csv-transformer/package.json +0 -32
  75. package/skills/skill-csv-transformer/src/index.ts +0 -81
  76. package/skills/skill-csv-transformer/tsconfig.json +0 -14
  77. package/skills/skill-debug/LICENSE +0 -21
  78. package/skills/skill-debug/README.md +0 -17
  79. package/skills/skill-debug/install.sh +0 -112
  80. package/skills/skill-debug/package.json +0 -31
  81. package/skills/skill-debug/src/auth.ts +0 -49
  82. package/skills/skill-debug/src/installer.ts +0 -324
  83. package/skills/skill-debug/src/skill-install.ts +0 -205
  84. package/skills/skill-deep-research/CLAUDE.md +0 -19
  85. package/skills/skill-deep-research/package.json +0 -32
  86. package/skills/skill-deep-research/src/index.ts +0 -1149
  87. package/skills/skill-deep-research/tsconfig.json +0 -14
  88. package/skills/skill-dns-manager/CLAUDE.md +0 -19
  89. package/skills/skill-dns-manager/package.json +0 -32
  90. package/skills/skill-dns-manager/src/index.ts +0 -92
  91. package/skills/skill-dns-manager/tsconfig.json +0 -14
  92. package/skills/skill-download/LICENSE +0 -21
  93. package/skills/skill-download/README.md +0 -17
  94. package/skills/skill-download/install.sh +0 -112
  95. package/skills/skill-download/package.json +0 -31
  96. package/skills/skill-download/src/auth.ts +0 -49
  97. package/skills/skill-download/src/installer.ts +0 -324
  98. package/skills/skill-download/src/skill-install.ts +0 -205
  99. package/skills/skill-exa/LICENSE +0 -21
  100. package/skills/skill-exa/README.md +0 -26
  101. package/skills/skill-exa/SKILL.md +0 -92
  102. package/skills/skill-exa/install.sh +0 -112
  103. package/skills/skill-exa/package.json +0 -31
  104. package/skills/skill-exa/src/auth.ts +0 -49
  105. package/skills/skill-exa/src/installer.ts +0 -324
  106. package/skills/skill-exa/src/skill-install.ts +0 -174
  107. package/skills/skill-filesearch/LICENSE +0 -21
  108. package/skills/skill-filesearch/README.md +0 -17
  109. package/skills/skill-filesearch/install.sh +0 -112
  110. package/skills/skill-filesearch/package.json +0 -31
  111. package/skills/skill-filesearch/src/auth.ts +0 -49
  112. package/skills/skill-filesearch/src/installer.ts +0 -324
  113. package/skills/skill-filesearch/src/skill-install.ts +0 -205
  114. package/skills/skill-fill/LICENSE +0 -21
  115. package/skills/skill-fill/README.md +0 -17
  116. package/skills/skill-fill/install.sh +0 -112
  117. package/skills/skill-fill/package.json +0 -31
  118. package/skills/skill-fill/src/auth.ts +0 -49
  119. package/skills/skill-fill/src/installer.ts +0 -324
  120. package/skills/skill-fill/src/skill-install.ts +0 -205
  121. package/skills/skill-generate-audio/CLAUDE.md +0 -3
  122. package/skills/skill-generate-audio/SKILL.md +0 -53
  123. package/skills/skill-generate-audio/package.json +0 -30
  124. package/skills/skill-generate-audio/src/index.ts +0 -656
  125. package/skills/skill-generate-audio/tsconfig.json +0 -18
  126. package/skills/skill-generate-readme/CLAUDE.md +0 -19
  127. package/skills/skill-generate-readme/package.json +0 -32
  128. package/skills/skill-generate-readme/src/index.ts +0 -867
  129. package/skills/skill-generate-readme/tsconfig.json +0 -14
  130. package/skills/skill-generate-slides/CLAUDE.md +0 -19
  131. package/skills/skill-generate-slides/package.json +0 -32
  132. package/skills/skill-generate-slides/src/ai.ts +0 -140
  133. package/skills/skill-generate-slides/src/cli.ts +0 -161
  134. package/skills/skill-generate-slides/src/export.ts +0 -65
  135. package/skills/skill-generate-slides/src/index.ts +0 -1417
  136. package/skills/skill-generate-slides/src/layout.ts +0 -31
  137. package/skills/skill-generate-slides/src/parse.ts +0 -282
  138. package/skills/skill-generate-slides/src/render.ts +0 -711
  139. package/skills/skill-generate-slides/tsconfig.json +0 -14
  140. package/skills/skill-get-api-docs/CLAUDE.md +0 -19
  141. package/skills/skill-get-api-docs/package.json +0 -32
  142. package/skills/skill-get-api-docs/src/index.ts +0 -1176
  143. package/skills/skill-get-api-docs/tsconfig.json +0 -14
  144. package/skills/skill-googledrive/LICENSE +0 -21
  145. package/skills/skill-googledrive/README.md +0 -27
  146. package/skills/skill-googledrive/SKILL.md +0 -140
  147. package/skills/skill-googledrive/install.sh +0 -112
  148. package/skills/skill-googledrive/package.json +0 -31
  149. package/skills/skill-googledrive/src/auth.ts +0 -49
  150. package/skills/skill-googledrive/src/installer.ts +0 -324
  151. package/skills/skill-googledrive/src/skill-install.ts +0 -174
  152. package/skills/skill-grant-compliance-scanner/CLAUDE.md +0 -19
  153. package/skills/skill-grant-compliance-scanner/package.json +0 -32
  154. package/skills/skill-grant-compliance-scanner/src/index.ts +0 -94
  155. package/skills/skill-grant-compliance-scanner/tsconfig.json +0 -14
  156. package/skills/skill-hubsearch/LICENSE +0 -21
  157. package/skills/skill-hubsearch/README.md +0 -17
  158. package/skills/skill-hubsearch/install.sh +0 -112
  159. package/skills/skill-hubsearch/package.json +0 -31
  160. package/skills/skill-hubsearch/src/auth.ts +0 -49
  161. package/skills/skill-hubsearch/src/installer.ts +0 -324
  162. package/skills/skill-hubsearch/src/skill-install.ts +0 -205
  163. package/skills/skill-implementation-architecture/CLAUDE.md +0 -19
  164. package/skills/skill-implementation-architecture/package.json +0 -32
  165. package/skills/skill-implementation-architecture/src/index.ts +0 -460
  166. package/skills/skill-implementation-architecture/tsconfig.json +0 -14
  167. package/skills/skill-implementation-audit/CLAUDE.md +0 -19
  168. package/skills/skill-implementation-audit/package.json +0 -32
  169. package/skills/skill-implementation-audit/src/index.ts +0 -502
  170. package/skills/skill-implementation-audit/tsconfig.json +0 -14
  171. package/skills/skill-implementation-cost/CLAUDE.md +0 -19
  172. package/skills/skill-implementation-cost/package.json +0 -32
  173. package/skills/skill-implementation-cost/src/index.ts +0 -873
  174. package/skills/skill-implementation-cost/tsconfig.json +0 -14
  175. package/skills/skill-implementation-dispatch/CLAUDE.md +0 -19
  176. package/skills/skill-implementation-dispatch/package.json +0 -32
  177. package/skills/skill-implementation-dispatch/src/index.ts +0 -390
  178. package/skills/skill-implementation-dispatch/tsconfig.json +0 -14
  179. package/skills/skill-implementation-hook/CLAUDE.md +0 -19
  180. package/skills/skill-implementation-hook/package.json +0 -32
  181. package/skills/skill-implementation-hook/src/index.ts +0 -787
  182. package/skills/skill-implementation-hook/tsconfig.json +0 -14
  183. package/skills/skill-implementation-index/CLAUDE.md +0 -19
  184. package/skills/skill-implementation-index/package.json +0 -32
  185. package/skills/skill-implementation-index/src/index.ts +0 -767
  186. package/skills/skill-implementation-index/tsconfig.json +0 -14
  187. package/skills/skill-implementation-init/CLAUDE.md +0 -19
  188. package/skills/skill-implementation-init/package.json +0 -32
  189. package/skills/skill-implementation-init/src/index.ts +0 -378
  190. package/skills/skill-implementation-init/tsconfig.json +0 -14
  191. package/skills/skill-implementation-memento/CLAUDE.md +0 -19
  192. package/skills/skill-implementation-memento/package.json +0 -32
  193. package/skills/skill-implementation-memento/src/index.ts +0 -442
  194. package/skills/skill-implementation-memento/tsconfig.json +0 -14
  195. package/skills/skill-linear/LICENSE +0 -21
  196. package/skills/skill-linear/README.md +0 -28
  197. package/skills/skill-linear/SKILL.md +0 -94
  198. package/skills/skill-linear/install.sh +0 -112
  199. package/skills/skill-linear/package.json +0 -31
  200. package/skills/skill-linear/src/auth.ts +0 -49
  201. package/skills/skill-linear/src/installer.ts +0 -324
  202. package/skills/skill-linear/src/skill-install.ts +0 -174
  203. package/skills/skill-mail/LICENSE +0 -21
  204. package/skills/skill-mail/README.md +0 -17
  205. package/skills/skill-mail/install.sh +0 -112
  206. package/skills/skill-mail/package.json +0 -31
  207. package/skills/skill-mail/src/auth.ts +0 -49
  208. package/skills/skill-mail/src/installer.ts +0 -324
  209. package/skills/skill-mail/src/skill-install.ts +0 -205
  210. package/skills/skill-manage-gmail/CLAUDE.md +0 -19
  211. package/skills/skill-manage-gmail/package.json +0 -32
  212. package/skills/skill-manage-gmail/src/index.ts +0 -504
  213. package/skills/skill-manage-gmail/tsconfig.json +0 -14
  214. package/skills/skill-merch-mockup-factory/CLAUDE.md +0 -19
  215. package/skills/skill-merch-mockup-factory/package.json +0 -32
  216. package/skills/skill-merch-mockup-factory/src/index.ts +0 -296
  217. package/skills/skill-merch-mockup-factory/tsconfig.json +0 -14
  218. package/skills/skill-message/LICENSE +0 -21
  219. package/skills/skill-message/README.md +0 -17
  220. package/skills/skill-message/install.sh +0 -112
  221. package/skills/skill-message/package.json +0 -31
  222. package/skills/skill-message/src/auth.ts +0 -49
  223. package/skills/skill-message/src/installer.ts +0 -324
  224. package/skills/skill-message/src/skill-install.ts +0 -205
  225. package/skills/skill-newsletter-campaign-planner/CLAUDE.md +0 -19
  226. package/skills/skill-newsletter-campaign-planner/package.json +0 -32
  227. package/skills/skill-newsletter-campaign-planner/src/index.ts +0 -252
  228. package/skills/skill-newsletter-campaign-planner/tsconfig.json +0 -14
  229. package/skills/skill-notify/LICENSE +0 -21
  230. package/skills/skill-notify/README.md +0 -17
  231. package/skills/skill-notify/install.sh +0 -112
  232. package/skills/skill-notify/package.json +0 -31
  233. package/skills/skill-notify/src/auth.ts +0 -49
  234. package/skills/skill-notify/src/installer.ts +0 -324
  235. package/skills/skill-notify/src/skill-install.ts +0 -205
  236. package/skills/skill-notion/LICENSE +0 -21
  237. package/skills/skill-notion/README.md +0 -27
  238. package/skills/skill-notion/SKILL.md +0 -115
  239. package/skills/skill-notion/install.sh +0 -112
  240. package/skills/skill-notion/package.json +0 -31
  241. package/skills/skill-notion/src/auth.ts +0 -49
  242. package/skills/skill-notion/src/installer.ts +0 -324
  243. package/skills/skill-notion/src/skill-install.ts +0 -174
  244. package/skills/skill-parse-pdf/CLAUDE.md +0 -19
  245. package/skills/skill-parse-pdf/package.json +0 -32
  246. package/skills/skill-parse-pdf/src/index.ts +0 -581
  247. package/skills/skill-parse-pdf/tsconfig.json +0 -14
  248. package/skills/skill-playwright/LICENSE +0 -21
  249. package/skills/skill-playwright/README.md +0 -27
  250. package/skills/skill-playwright/SKILL.md +0 -116
  251. package/skills/skill-playwright/install.sh +0 -112
  252. package/skills/skill-playwright/package.json +0 -31
  253. package/skills/skill-playwright/src/auth.ts +0 -49
  254. package/skills/skill-playwright/src/installer.ts +0 -324
  255. package/skills/skill-playwright/src/skill-install.ts +0 -174
  256. package/skills/skill-projectbuild/LICENSE +0 -21
  257. package/skills/skill-projectbuild/README.md +0 -17
  258. package/skills/skill-projectbuild/install.sh +0 -112
  259. package/skills/skill-projectbuild/package.json +0 -31
  260. package/skills/skill-projectbuild/src/auth.ts +0 -49
  261. package/skills/skill-projectbuild/src/installer.ts +0 -324
  262. package/skills/skill-projectbuild/src/skill-install.ts +0 -205
  263. package/skills/skill-read-gmail/CLAUDE.md +0 -19
  264. package/skills/skill-read-gmail/package.json +0 -32
  265. package/skills/skill-read-gmail/src/index.ts +0 -343
  266. package/skills/skill-read-gmail/tsconfig.json +0 -14
  267. package/skills/skill-remember/LICENSE +0 -21
  268. package/skills/skill-remember/README.md +0 -17
  269. package/skills/skill-remember/install.sh +0 -112
  270. package/skills/skill-remember/package.json +0 -31
  271. package/skills/skill-remember/src/auth.ts +0 -49
  272. package/skills/skill-remember/src/installer.ts +0 -324
  273. package/skills/skill-remember/src/skill-install.ts +0 -205
  274. package/skills/skill-schedule/README.md +0 -17
  275. package/skills/skill-schedule/install.sh +0 -112
  276. package/skills/skill-schedule/src/auth.ts +0 -49
  277. package/skills/skill-schedule/src/installer.ts +0 -324
  278. package/skills/skill-schedule/src/skill-install.ts +0 -205
  279. package/skills/skill-search/LICENSE +0 -21
  280. package/skills/skill-search/README.md +0 -17
  281. package/skills/skill-search/install.sh +0 -112
  282. package/skills/skill-search/package.json +0 -31
  283. package/skills/skill-search/src/auth.ts +0 -49
  284. package/skills/skill-search/src/installer.ts +0 -324
  285. package/skills/skill-search/src/skill-install.ts +0 -205
  286. package/skills/skill-shadcn/LICENSE +0 -21
  287. package/skills/skill-shadcn/README.md +0 -27
  288. package/skills/skill-shadcn/SKILL.md +0 -113
  289. package/skills/skill-shadcn/install.sh +0 -112
  290. package/skills/skill-shadcn/package.json +0 -31
  291. package/skills/skill-shadcn/src/auth.ts +0 -49
  292. package/skills/skill-shadcn/src/installer.ts +0 -324
  293. package/skills/skill-shadcn/src/skill-install.ts +0 -174
  294. package/skills/skill-shadcn-theme/CLAUDE.md +0 -19
  295. package/skills/skill-shadcn-theme/package.json +0 -32
  296. package/skills/skill-shadcn-theme/src/index.ts +0 -16
  297. package/skills/skill-shadcn-theme/tsconfig.json +0 -14
  298. package/skills/skill-social-template-kit/CLAUDE.md +0 -19
  299. package/skills/skill-social-template-kit/package.json +0 -32
  300. package/skills/skill-social-template-kit/src/index.ts +0 -303
  301. package/skills/skill-social-template-kit/tsconfig.json +0 -14
  302. package/skills/skill-summarize/LICENSE +0 -21
  303. package/skills/skill-summarize/README.md +0 -17
  304. package/skills/skill-summarize/install.sh +0 -112
  305. package/skills/skill-summarize/package.json +0 -31
  306. package/skills/skill-summarize/src/auth.ts +0 -49
  307. package/skills/skill-summarize/src/installer.ts +0 -324
  308. package/skills/skill-summarize/src/skill-install.ts +0 -205
  309. package/skills/skill-sync/LICENSE +0 -21
  310. package/skills/skill-sync/README.md +0 -17
  311. package/skills/skill-sync/install.sh +0 -112
  312. package/skills/skill-sync/package.json +0 -31
  313. package/skills/skill-sync/src/auth.ts +0 -49
  314. package/skills/skill-sync/src/installer.ts +0 -324
  315. package/skills/skill-sync/src/skill-install.ts +0 -205
  316. package/skills/skill-time-blocking-orchestrator/CLAUDE.md +0 -19
  317. package/skills/skill-time-blocking-orchestrator/package.json +0 -32
  318. package/skills/skill-time-blocking-orchestrator/src/index.ts +0 -328
  319. package/skills/skill-time-blocking-orchestrator/tsconfig.json +0 -14
  320. package/skills/skill-transform/.env.example +0 -2
  321. package/skills/skill-transform/LICENSE +0 -21
  322. package/skills/skill-transform/README.md +0 -17
  323. package/skills/skill-transform/SKILL.md +0 -127
  324. package/skills/skill-transform/install.sh +0 -112
  325. package/skills/skill-transform/package.json +0 -37
  326. package/skills/skill-transform/src/auth.ts +0 -49
  327. package/skills/skill-transform/src/http-client.ts +0 -128
  328. package/skills/skill-transform/src/index-http.ts +0 -111
  329. package/skills/skill-transform/src/index-local.ts +0 -368
  330. package/skills/skill-transform/src/index.ts +0 -111
  331. package/skills/skill-transform/src/installer.ts +0 -324
  332. package/skills/skill-transform/src/skill-install.ts +0 -205
  333. package/skills/skill-transform/src/transformers/ai-transformer.ts +0 -202
  334. package/skills/skill-transform/src/transformers/format-detector.ts +0 -147
  335. package/skills/skill-transform/src/types.ts +0 -95
  336. package/skills/skill-transform/tsconfig.json +0 -18
  337. package/skills/skill-translate/LICENSE +0 -21
  338. package/skills/skill-translate/README.md +0 -17
  339. package/skills/skill-translate/install.sh +0 -112
  340. package/skills/skill-translate/package.json +0 -31
  341. package/skills/skill-translate/src/auth.ts +0 -49
  342. package/skills/skill-translate/src/installer.ts +0 -324
  343. package/skills/skill-translate/src/skill-install.ts +0 -205
  344. package/skills/skill-vendor-comparison-coach/CLAUDE.md +0 -19
  345. package/skills/skill-vendor-comparison-coach/package.json +0 -32
  346. package/skills/skill-vendor-comparison-coach/src/index.ts +0 -337
  347. package/skills/skill-vendor-comparison-coach/tsconfig.json +0 -14
  348. package/skills/skill-videodownload/.env.example +0 -5
  349. package/skills/skill-videodownload/CLAUDE.md +0 -64
  350. package/skills/skill-videodownload/LICENSE +0 -21
  351. package/skills/skill-videodownload/README.md +0 -166
  352. package/skills/skill-videodownload/package.json +0 -49
  353. package/skills/skill-videodownload/src/commands/config.ts +0 -89
  354. package/skills/skill-videodownload/src/commands/download.ts +0 -61
  355. package/skills/skill-videodownload/src/commands/info.ts +0 -83
  356. package/skills/skill-videodownload/src/commands/list.ts +0 -84
  357. package/skills/skill-videodownload/src/lib/downloader.ts +0 -270
  358. package/skills/skill-videodownload/src/lib/storage.ts +0 -167
  359. package/skills/skill-videodownload/src/types/index.ts +0 -64
  360. package/skills/skill-videodownload/src/utils/logger.ts +0 -49
  361. package/skills/skill-videodownload/src/utils/paths.ts +0 -94
  362. package/skills/skill-videodownload/tsconfig.json +0 -17
  363. package/skills/skill-voiceover/.env.example +0 -5
  364. package/skills/skill-voiceover/CLAUDE.md +0 -40
  365. package/skills/skill-voiceover/LICENSE +0 -21
  366. package/skills/skill-voiceover/README.md +0 -64
  367. package/skills/skill-voiceover/package.json +0 -43
  368. package/skills/skill-voiceover/src/commands/config.ts +0 -38
  369. package/skills/skill-voiceover/src/commands/generate.ts +0 -37
  370. package/skills/skill-voiceover/src/commands/voices.ts +0 -33
  371. package/skills/skill-voiceover/src/lib/generator.ts +0 -159
  372. package/skills/skill-voiceover/src/lib/storage.ts +0 -55
  373. package/skills/skill-voiceover/src/types/index.ts +0 -55
  374. package/skills/skill-voiceover/src/utils/logger.ts +0 -30
  375. package/skills/skill-voiceover/src/utils/paths.ts +0 -22
  376. package/skills/skill-voiceover/tsconfig.json +0 -17
  377. package/skills/skill-websearch/LICENSE +0 -21
  378. package/skills/skill-websearch/README.md +0 -17
  379. package/skills/skill-websearch/install.sh +0 -112
  380. package/skills/skill-websearch/package.json +0 -31
  381. package/skills/skill-websearch/src/auth.ts +0 -49
  382. package/skills/skill-websearch/src/installer.ts +0 -324
  383. package/skills/skill-websearch/src/skill-install.ts +0 -205
  384. /package/skills/{skill-compose-gmail → skill-gmail}/CLAUDE.md +0 -0
  385. /package/skills/{skill-compose-gmail → skill-gmail}/package.json +0 -0
  386. /package/skills/{skill-compose-gmail → skill-gmail}/src/index.ts +0 -0
  387. /package/skills/{skill-architecture-docs → skill-gmail}/tsconfig.json +0 -0
@@ -1,205 +0,0 @@
1
- /**
2
- * Skill Installation Handler
3
- *
4
- * Add this code to your skill's index.ts to enable:
5
- * skill-[name] install claude
6
- * skill-[name] install codex
7
- * skill-[name] uninstall claude
8
- */
9
-
10
- import { writeFileSync, mkdirSync, existsSync } from 'fs';
11
- import { join } from 'path';
12
- import { homedir } from 'os';
13
-
14
- interface SkillMeta {
15
- name: string;
16
- description: string;
17
- version: string;
18
- commands: string; // Help text or command list
19
- requiredEnvVars?: string[];
20
- }
21
-
22
- export async function handleInstallCommand(meta: SkillMeta, args: string[]): Promise<boolean> {
23
- const command = args[0];
24
- const assistant = args[1];
25
-
26
- if (command !== 'install' && command !== 'uninstall') {
27
- return false; // Not an install command
28
- }
29
-
30
- if (!assistant || !['claude', 'codex', 'windsurf', 'cursor'].includes(assistant)) {
31
- console.error('❌ Error: Please specify an assistant');
32
- console.error('');
33
- console.error('Usage:');
34
- console.error(` ${meta.name} install [claude|codex|windsurf|cursor]`);
35
- console.error(` ${meta.name} uninstall [claude|codex|windsurf|cursor]`);
36
- console.error('');
37
- console.error('Examples:');
38
- console.error(` ${meta.name} install claude`);
39
- console.error(` ${meta.name} install codex`);
40
- process.exit(1);
41
- }
42
-
43
- if (command === 'install') {
44
- await installSkill(meta, assistant);
45
- } else {
46
- await uninstallSkill(meta, assistant);
47
- }
48
-
49
- return true;
50
- }
51
-
52
- async function installSkill(meta: SkillMeta, assistant: string): Promise<void> {
53
- console.log(`📦 Installing ${meta.name} for ${assistant}...`);
54
- console.log('');
55
-
56
- const assistantPaths: Record<string, string> = {
57
- claude: '.claude/skills',
58
- codex: '.codex/skills',
59
- windsurf: '.windsurf/skills',
60
- cursor: '.cursor/skills',
61
- };
62
-
63
- const skillDir = join(homedir(), assistantPaths[assistant], meta.name);
64
- mkdirSync(skillDir, { recursive: true });
65
- console.log(`✓ Created: ${skillDir}`);
66
-
67
- // Generate SKILL.md
68
- const skillMd = generateSkillMd(meta);
69
- writeFileSync(join(skillDir, 'SKILL.md'), skillMd);
70
- console.log(`✓ Created: SKILL.md`);
71
-
72
- // Generate README.md
73
- const readme = generateReadme(meta);
74
- writeFileSync(join(skillDir, 'README.md'), readme);
75
- console.log(`✓ Created: README.md`);
76
-
77
- // Create log file
78
- const logFile = join(skillDir, `${meta.name}.log`);
79
- if (!existsSync(logFile)) {
80
- writeFileSync(logFile, `# ${meta.name} execution log\n# Created: ${new Date().toISOString()}\n\n`);
81
- console.log(`✓ Created: ${meta.name}.log`);
82
- }
83
-
84
- console.log('');
85
- console.log(`✅ ${meta.name} installed successfully!`);
86
- console.log('');
87
- console.log('Location:', skillDir);
88
- console.log('');
89
- console.log('Files created:');
90
- console.log(' - SKILL.md (documentation)');
91
- console.log(' - README.md (quick reference)');
92
- console.log(` - ${meta.name}.log (execution logs)`);
93
- }
94
-
95
- async function uninstallSkill(meta: SkillMeta, assistant: string): Promise<void> {
96
- console.log(`🗑️ Uninstalling ${meta.name} from ${assistant}...`);
97
- console.log('');
98
-
99
- const assistantPaths: Record<string, string> = {
100
- claude: '.claude/skills',
101
- codex: '.codex/skills',
102
- windsurf: '.windsurf/skills',
103
- cursor: '.cursor/skills',
104
- };
105
-
106
- const skillDir = join(homedir(), assistantPaths[assistant], meta.name);
107
-
108
- if (existsSync(skillDir)) {
109
- console.log(`⚠️ Directory preserved: ${skillDir}`);
110
- console.log(' (contains logs and configuration)');
111
- console.log(' Delete manually if needed:');
112
- console.log(` rm -rf ${skillDir}`);
113
- } else {
114
- console.log(`✓ ${meta.name} is not installed for ${assistant}`);
115
- }
116
- }
117
-
118
- function generateSkillMd(meta: SkillMeta): string {
119
- // Extract skill type from name (e.g., "skill-audio" -> "audio")
120
- const skillType = meta.name.replace('skill-', '');
121
-
122
- // Create gerund form for description trigger (e.g., "audio" -> "generating audio")
123
- const gerundForms: Record<string, string> = {
124
- audio: 'generating audio',
125
- image: 'generating images',
126
- video: 'generating videos',
127
- browse: 'browsing websites',
128
- codefix: 'fixing code',
129
- convert: 'converting files',
130
- deploy: 'deploying applications',
131
- emoji: 'generating emojis',
132
- extract: 'extracting data',
133
- transcript: 'transcribing audio',
134
- transform: 'transforming data',
135
- write: 'writing content',
136
- };
137
-
138
- const gerund = gerundForms[skillType] || `using ${skillType}`;
139
-
140
- // Enhanced description with usage triggers
141
- const enhancedDesc = `${meta.description}. Use when ${gerund} or when the user mentions ${skillType}.`;
142
-
143
- const envSection = meta.requiredEnvVars?.length ? `
144
-
145
- ## Environment Variables
146
-
147
- ${meta.requiredEnvVars.map(v => `- \`${v}\``).join('\n')}
148
-
149
- Add to your \`~/.zshrc\` or \`~/.bashrc\`:
150
- \`\`\`bash
151
- ${meta.requiredEnvVars.map(v => `export ${v}=your_key_here`).join('\n')}
152
- \`\`\`
153
- ` : '';
154
-
155
- return `---
156
- name: ${meta.name}
157
- description: ${enhancedDesc}
158
- ---
159
-
160
- # ${meta.name.split('-').map(w => w.charAt(0).toUpperCase() + w.slice(1)).join(' ')}
161
-
162
- ${meta.description}
163
-
164
- ## Quick Start
165
-
166
- \`\`\`bash
167
- ${meta.commands}
168
- \`\`\`
169
-
170
- ## Version
171
-
172
- ${meta.version}${envSection}
173
-
174
- ## Installation
175
-
176
- Installed at: \`~/.claude/skills/${meta.name}/\`
177
-
178
- ## Logs
179
-
180
- Execution logs: \`~/.claude/skills/${meta.name}/${meta.name}.log\`
181
-
182
- ## Support
183
-
184
- For issues, visit: https://github.com/hasnaxyz/${meta.name}/issues
185
- `;
186
- }
187
-
188
- function generateReadme(meta: SkillMeta): string {
189
- return `# ${meta.name}
190
-
191
- ${meta.description}
192
-
193
- **Version:** ${meta.version}
194
-
195
- ## Documentation
196
-
197
- See [SKILL.md](./SKILL.md) for complete documentation.
198
-
199
- ## Quick Reference
200
-
201
- \`\`\`bash
202
- ${meta.name} --help
203
- \`\`\`
204
- `;
205
- }
@@ -1,19 +0,0 @@
1
- # skill-implementation-architecture
2
-
3
- Implementation Architecture skill.
4
-
5
- ## Tech Stack
6
-
7
- - Runtime: Bun
8
- - Language: TypeScript
9
- - CLI: Commander.js
10
-
11
- ## CLI
12
-
13
- ```bash
14
- skill-implementation-architecture run
15
- ```
16
-
17
- ## Data Directory
18
-
19
- ~/.skill/skill-implementation-architecture/
@@ -1,32 +0,0 @@
1
- {
2
- "name": "@hasnaxyz/skill-implementation-architecture",
3
- "version": "0.1.0",
4
- "description": "Implementation Architecture skill",
5
- "type": "module",
6
- "bin": {
7
- "skill-implementation-architecture": "./bin/cli.ts"
8
- },
9
- "scripts": {
10
- "dev": "bun run bin/cli.ts",
11
- "build": "bun build bin/cli.ts --outdir dist --target node",
12
- "typecheck": "tsc --noEmit"
13
- },
14
- "dependencies": {
15
- "commander": "^13.0.0"
16
- },
17
- "devDependencies": {
18
- "@types/bun": "latest",
19
- "typescript": "^5.7.0"
20
- },
21
- "publishConfig": {
22
- "access": "restricted",
23
- "registry": "https://registry.npmjs.org/"
24
- },
25
- "files": ["bin", "src", "tsconfig.json"],
26
- "repository": {
27
- "type": "git",
28
- "url": "https://github.com/hasnaxyz/skill-implementation-architecture.git"
29
- },
30
- "author": "Hasna",
31
- "license": "MIT"
32
- }
@@ -1,460 +0,0 @@
1
- #!/usr/bin/env bun
2
-
3
- import * as fs from "fs";
4
- import * as path from "path";
5
- import minimist from "minimist";
6
-
7
- // Types
8
- interface TechStack {
9
- runtime?: string;
10
- framework?: string;
11
- language?: string;
12
- styling?: string;
13
- database?: string;
14
- orm?: string;
15
- auth?: string;
16
- hosting?: string;
17
- ci?: string;
18
- testing?: string;
19
- other?: string[];
20
- }
21
-
22
- interface DatabaseSchema {
23
- tables?: Array<{
24
- name: string;
25
- description?: string;
26
- columns?: Array<{
27
- name: string;
28
- type: string;
29
- nullable?: boolean;
30
- default?: string;
31
- description?: string;
32
- }>;
33
- relations?: string[];
34
- }>;
35
- enums?: Array<{
36
- name: string;
37
- values: string[];
38
- }>;
39
- }
40
-
41
- interface ProjectStructure {
42
- description?: string;
43
- folders?: Array<{
44
- path: string;
45
- description: string;
46
- }>;
47
- keyFiles?: Array<{
48
- path: string;
49
- description: string;
50
- }>;
51
- conventions?: string[];
52
- }
53
-
54
- interface ApiEndpoint {
55
- method: string;
56
- path: string;
57
- description?: string;
58
- auth?: boolean;
59
- params?: Array<{
60
- name: string;
61
- type: string;
62
- required?: boolean;
63
- description?: string;
64
- }>;
65
- response?: string;
66
- }
67
-
68
- interface ApiDocs {
69
- baseUrl?: string;
70
- auth?: string;
71
- endpoints?: ApiEndpoint[];
72
- errors?: Array<{
73
- code: number;
74
- message: string;
75
- }>;
76
- }
77
-
78
- interface ArchitectureData {
79
- tech?: TechStack;
80
- database?: DatabaseSchema;
81
- structure?: ProjectStructure;
82
- api?: ApiDocs;
83
- }
84
-
85
- // Parse command line arguments
86
- const args = minimist(process.argv.slice(2), {
87
- string: ["type", "data"],
88
- boolean: ["force", "help"],
89
- default: {
90
- force: false,
91
- },
92
- alias: {
93
- t: "type",
94
- d: "data",
95
- f: "force",
96
- h: "help",
97
- },
98
- });
99
-
100
- // Show help
101
- if (args.help) {
102
- console.log(`
103
- Implementation Architecture - Create architecture documentation files
104
-
105
- Usage:
106
- skills run implementation-architecture -- [options]
107
-
108
- Options:
109
- -t, --type <type> Create specific doc: tech, database, structure, api, all (default: all)
110
- -d, --data <json> JSON data for the architecture documentation
111
- -f, --force Overwrite existing files
112
- -h, --help Show this help
113
-
114
- Examples:
115
- skills run implementation-architecture -- --type tech --data '{"runtime":"Bun","framework":"Next.js"}'
116
- skills run implementation-architecture -- --type database --data '{"tables":[{"name":"users","columns":[{"name":"id","type":"uuid"}]}]}'
117
- skills run implementation-architecture -- --type api --data '{"endpoints":[{"method":"GET","path":"/api/users"}]}'
118
- skills run implementation-architecture -- --type all --data '{"tech":{"runtime":"Bun"},"database":{"tables":[]}}'
119
- `);
120
- process.exit(0);
121
- }
122
-
123
- // Find .implementation directory
124
- function findImplementationDir(): string | null {
125
- let currentDir = process.env.SKILLS_CWD || process.cwd();
126
-
127
- while (currentDir !== path.dirname(currentDir)) {
128
- const implDir = path.join(currentDir, ".implementation");
129
- if (fs.existsSync(implDir)) {
130
- return implDir;
131
- }
132
- currentDir = path.dirname(currentDir);
133
- }
134
-
135
- return null;
136
- }
137
-
138
- const implDir = findImplementationDir();
139
-
140
- if (!implDir) {
141
- console.error("Error: .implementation directory not found");
142
- console.error("Run 'skills run implementation-init' first to create the folder structure");
143
- process.exit(1);
144
- }
145
-
146
- const archDir = path.join(implDir, "data", "architecture");
147
- const timestamp = new Date().toISOString().split("T")[0];
148
- const projectName = path.basename(path.dirname(implDir));
149
-
150
- // Parse JSON data
151
- let data: ArchitectureData = {};
152
- if (args.data) {
153
- try {
154
- data = JSON.parse(args.data);
155
- } catch (e) {
156
- console.error("Error: Invalid JSON data");
157
- process.exit(1);
158
- }
159
- }
160
-
161
- // Generate tech.md
162
- function generateTechMd(tech: TechStack): string {
163
- let content = `# Technology Stack
164
-
165
- **Project:** ${projectName}
166
- **Updated:** ${timestamp}
167
-
168
- ## Overview
169
-
170
- This document describes the technology stack used in this project.
171
-
172
- ## Stack
173
-
174
- | Layer | Technology |
175
- |-------|------------|
176
- `;
177
-
178
- if (tech.runtime) content += `| Runtime | ${tech.runtime} |\n`;
179
- if (tech.language) content += `| Language | ${tech.language} |\n`;
180
- if (tech.framework) content += `| Framework | ${tech.framework} |\n`;
181
- if (tech.styling) content += `| Styling | ${tech.styling} |\n`;
182
- if (tech.database) content += `| Database | ${tech.database} |\n`;
183
- if (tech.orm) content += `| ORM | ${tech.orm} |\n`;
184
- if (tech.auth) content += `| Auth | ${tech.auth} |\n`;
185
- if (tech.hosting) content += `| Hosting | ${tech.hosting} |\n`;
186
- if (tech.ci) content += `| CI/CD | ${tech.ci} |\n`;
187
- if (tech.testing) content += `| Testing | ${tech.testing} |\n`;
188
-
189
- if (tech.other && tech.other.length > 0) {
190
- content += `\n## Other Technologies\n\n`;
191
- for (const item of tech.other) {
192
- content += `- ${item}\n`;
193
- }
194
- }
195
-
196
- content += `\n## Notes\n\n<!-- Add notes about technology choices -->\n`;
197
-
198
- return content;
199
- }
200
-
201
- // Generate database.md
202
- function generateDatabaseMd(db: DatabaseSchema): string {
203
- let content = `# Database Schema
204
-
205
- **Project:** ${projectName}
206
- **Updated:** ${timestamp}
207
-
208
- ## Overview
209
-
210
- This document describes the database schema.
211
-
212
- `;
213
-
214
- if (db.enums && db.enums.length > 0) {
215
- content += `## Enums\n\n`;
216
- for (const e of db.enums) {
217
- content += `### ${e.name}\n\n`;
218
- content += `\`\`\`\n${e.values.join(" | ")}\n\`\`\`\n\n`;
219
- }
220
- }
221
-
222
- if (db.tables && db.tables.length > 0) {
223
- content += `## Tables\n\n`;
224
- for (const table of db.tables) {
225
- content += `### ${table.name}\n\n`;
226
- if (table.description) {
227
- content += `${table.description}\n\n`;
228
- }
229
-
230
- if (table.columns && table.columns.length > 0) {
231
- content += `| Column | Type | Nullable | Default | Description |\n`;
232
- content += `|--------|------|----------|---------|-------------|\n`;
233
- for (const col of table.columns) {
234
- content += `| ${col.name} | ${col.type} | ${col.nullable ? "Yes" : "No"} | ${col.default || "-"} | ${col.description || "-"} |\n`;
235
- }
236
- content += `\n`;
237
- }
238
-
239
- if (table.relations && table.relations.length > 0) {
240
- content += `**Relations:**\n`;
241
- for (const rel of table.relations) {
242
- content += `- ${rel}\n`;
243
- }
244
- content += `\n`;
245
- }
246
- }
247
- } else {
248
- content += `## Tables\n\n<!-- Add table definitions -->\n\n`;
249
- }
250
-
251
- content += `## Notes\n\n<!-- Add notes about database design -->\n`;
252
-
253
- return content;
254
- }
255
-
256
- // Generate structure.md
257
- function generateStructureMd(structure: ProjectStructure): string {
258
- let content = `# Project Structure
259
-
260
- **Project:** ${projectName}
261
- **Updated:** ${timestamp}
262
-
263
- ## Overview
264
-
265
- `;
266
-
267
- if (structure.description) {
268
- content += `${structure.description}\n\n`;
269
- } else {
270
- content += `This document describes the project folder structure.\n\n`;
271
- }
272
-
273
- if (structure.folders && structure.folders.length > 0) {
274
- content += `## Folders\n\n`;
275
- content += `| Path | Description |\n`;
276
- content += `|------|-------------|\n`;
277
- for (const folder of structure.folders) {
278
- content += `| \`${folder.path}\` | ${folder.description} |\n`;
279
- }
280
- content += `\n`;
281
- } else {
282
- content += `## Folders\n\n<!-- Add folder descriptions -->\n\n`;
283
- }
284
-
285
- if (structure.keyFiles && structure.keyFiles.length > 0) {
286
- content += `## Key Files\n\n`;
287
- content += `| File | Description |\n`;
288
- content += `|------|-------------|\n`;
289
- for (const file of structure.keyFiles) {
290
- content += `| \`${file.path}\` | ${file.description} |\n`;
291
- }
292
- content += `\n`;
293
- }
294
-
295
- if (structure.conventions && structure.conventions.length > 0) {
296
- content += `## Conventions\n\n`;
297
- for (const convention of structure.conventions) {
298
- content += `- ${convention}\n`;
299
- }
300
- content += `\n`;
301
- }
302
-
303
- content += `## Notes\n\n<!-- Add notes about project structure -->\n`;
304
-
305
- return content;
306
- }
307
-
308
- // Generate api.md
309
- function generateApiMd(api: ApiDocs): string {
310
- let content = `# API Documentation
311
-
312
- **Project:** ${projectName}
313
- **Updated:** ${timestamp}
314
-
315
- ## Overview
316
-
317
- `;
318
-
319
- if (api.baseUrl) {
320
- content += `**Base URL:** \`${api.baseUrl}\`\n\n`;
321
- }
322
-
323
- if (api.auth) {
324
- content += `**Authentication:** ${api.auth}\n\n`;
325
- }
326
-
327
- if (api.endpoints && api.endpoints.length > 0) {
328
- content += `## Endpoints\n\n`;
329
- for (const endpoint of api.endpoints) {
330
- content += `### \`${endpoint.method}\` ${endpoint.path}\n\n`;
331
- if (endpoint.description) {
332
- content += `${endpoint.description}\n\n`;
333
- }
334
- if (endpoint.auth !== undefined) {
335
- content += `**Auth required:** ${endpoint.auth ? "Yes" : "No"}\n\n`;
336
- }
337
-
338
- if (endpoint.params && endpoint.params.length > 0) {
339
- content += `**Parameters:**\n\n`;
340
- content += `| Name | Type | Required | Description |\n`;
341
- content += `|------|------|----------|-------------|\n`;
342
- for (const param of endpoint.params) {
343
- content += `| ${param.name} | ${param.type} | ${param.required ? "Yes" : "No"} | ${param.description || "-"} |\n`;
344
- }
345
- content += `\n`;
346
- }
347
-
348
- if (endpoint.response) {
349
- content += `**Response:**\n\n\`\`\`json\n${endpoint.response}\n\`\`\`\n\n`;
350
- }
351
-
352
- content += `---\n\n`;
353
- }
354
- } else {
355
- content += `## Endpoints\n\n<!-- Add API endpoint definitions -->\n\n`;
356
- }
357
-
358
- if (api.errors && api.errors.length > 0) {
359
- content += `## Error Codes\n\n`;
360
- content += `| Code | Message |\n`;
361
- content += `|------|----------|\n`;
362
- for (const error of api.errors) {
363
- content += `| ${error.code} | ${error.message} |\n`;
364
- }
365
- content += `\n`;
366
- }
367
-
368
- content += `## Notes\n\n<!-- Add notes about API -->\n`;
369
-
370
- return content;
371
- }
372
-
373
- // Main execution
374
- async function main(): Promise<void> {
375
- console.log(`\nImplementation Architecture`);
376
- console.log(`===========================\n`);
377
- console.log(`Project: ${projectName}`);
378
- console.log(`Output: ${archDir}\n`);
379
-
380
- // Ensure directory exists
381
- if (!fs.existsSync(archDir)) {
382
- fs.mkdirSync(archDir, { recursive: true });
383
- }
384
-
385
- const type = (args.type as string) || "all";
386
- const created: string[] = [];
387
- const skipped: string[] = [];
388
-
389
- // Generate tech.md
390
- if (type === "all" || type === "tech") {
391
- const filePath = path.join(archDir, "tech.md");
392
- if (fs.existsSync(filePath) && !args.force) {
393
- skipped.push("tech.md");
394
- } else {
395
- const content = generateTechMd(data.tech || {});
396
- fs.writeFileSync(filePath, content);
397
- created.push("tech.md");
398
- }
399
- }
400
-
401
- // Generate database.md
402
- if (type === "all" || type === "database") {
403
- const filePath = path.join(archDir, "database.md");
404
- if (fs.existsSync(filePath) && !args.force) {
405
- skipped.push("database.md");
406
- } else {
407
- const content = generateDatabaseMd(data.database || {});
408
- fs.writeFileSync(filePath, content);
409
- created.push("database.md");
410
- }
411
- }
412
-
413
- // Generate structure.md
414
- if (type === "all" || type === "structure") {
415
- const filePath = path.join(archDir, "structure.md");
416
- if (fs.existsSync(filePath) && !args.force) {
417
- skipped.push("structure.md");
418
- } else {
419
- const content = generateStructureMd(data.structure || {});
420
- fs.writeFileSync(filePath, content);
421
- created.push("structure.md");
422
- }
423
- }
424
-
425
- // Generate api.md
426
- if (type === "all" || type === "api") {
427
- const filePath = path.join(archDir, "api.md");
428
- if (fs.existsSync(filePath) && !args.force) {
429
- skipped.push("api.md");
430
- } else {
431
- const content = generateApiMd(data.api || {});
432
- fs.writeFileSync(filePath, content);
433
- created.push("api.md");
434
- }
435
- }
436
-
437
- // Summary
438
- console.log(`${"=".repeat(40)}\n`);
439
-
440
- if (created.length > 0) {
441
- console.log(`Created:`);
442
- for (const file of created) {
443
- console.log(` - ${file}`);
444
- }
445
- }
446
-
447
- if (skipped.length > 0) {
448
- console.log(`\nSkipped (already exist, use --force to overwrite):`);
449
- for (const file of skipped) {
450
- console.log(` - ${file}`);
451
- }
452
- }
453
-
454
- console.log(`\nFiles are in: .implementation/data/architecture/`);
455
- }
456
-
457
- main().catch((error) => {
458
- console.error(`Error: ${error.message}`);
459
- process.exit(1);
460
- });