@g3nomaly/skills 1.0.0 → 1.0.1

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 (384) hide show
  1. package/dist/cli/adapter.d.ts +19 -16
  2. package/dist/cli/adapter.d.ts.map +1 -1
  3. package/dist/cli/adapter.js +39 -63
  4. package/dist/cli/adapter.js.map +1 -1
  5. package/dist/cli/commands/add.d.ts +7 -10
  6. package/dist/cli/commands/add.d.ts.map +1 -1
  7. package/dist/cli/commands/add.js +12 -98
  8. package/dist/cli/commands/add.js.map +1 -1
  9. package/dist/cli/commands/ls.d.ts +9 -2
  10. package/dist/cli/commands/ls.d.ts.map +1 -1
  11. package/dist/cli/commands/ls.js +21 -5
  12. package/dist/cli/commands/ls.js.map +1 -1
  13. package/dist/cli/commands/remove.d.ts +7 -7
  14. package/dist/cli/commands/remove.d.ts.map +1 -1
  15. package/dist/cli/commands/remove.js +11 -56
  16. package/dist/cli/commands/remove.js.map +1 -1
  17. package/dist/cli/commands/source.d.ts +29 -0
  18. package/dist/cli/commands/source.d.ts.map +1 -0
  19. package/dist/cli/commands/source.js +31 -0
  20. package/dist/cli/commands/source.js.map +1 -0
  21. package/dist/cli/commands/update.d.ts +6 -6
  22. package/dist/cli/commands/update.d.ts.map +1 -1
  23. package/dist/cli/commands/update.js +9 -43
  24. package/dist/cli/commands/update.js.map +1 -1
  25. package/dist/cli/index.js +79 -58
  26. package/dist/cli/index.js.map +1 -1
  27. package/dist/index.d.ts +2 -8
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +2 -8
  30. package/dist/index.js.map +1 -1
  31. package/dist/packages/index.d.ts +3 -0
  32. package/dist/packages/index.d.ts.map +1 -0
  33. package/dist/packages/index.js +3 -0
  34. package/dist/packages/index.js.map +1 -0
  35. package/dist/packages/install.d.ts +24 -0
  36. package/dist/packages/install.d.ts.map +1 -0
  37. package/dist/packages/install.js +47 -0
  38. package/dist/packages/install.js.map +1 -0
  39. package/dist/registry/index.d.ts +4 -2
  40. package/dist/registry/index.d.ts.map +1 -1
  41. package/dist/registry/index.js +3 -2
  42. package/dist/registry/index.js.map +1 -1
  43. package/dist/registry/locate.d.ts +22 -0
  44. package/dist/registry/locate.d.ts.map +1 -0
  45. package/dist/registry/locate.js +81 -0
  46. package/dist/registry/locate.js.map +1 -0
  47. package/dist/registry/manifest.d.ts +9 -0
  48. package/dist/registry/manifest.d.ts.map +1 -0
  49. package/dist/registry/manifest.js +14 -0
  50. package/dist/registry/manifest.js.map +1 -0
  51. package/dist/registry/readSkillDir.d.ts +8 -6
  52. package/dist/registry/readSkillDir.d.ts.map +1 -1
  53. package/dist/registry/readSkillDir.js +19 -24
  54. package/dist/registry/readSkillDir.js.map +1 -1
  55. package/dist/registry/readSource.d.ts +9 -0
  56. package/dist/registry/readSource.d.ts.map +1 -0
  57. package/dist/registry/readSource.js +30 -0
  58. package/dist/registry/readSource.js.map +1 -0
  59. package/dist/registry/types.d.ts +16 -16
  60. package/dist/registry/types.d.ts.map +1 -1
  61. package/dist/registry/types.js +13 -23
  62. package/dist/registry/types.js.map +1 -1
  63. package/dist/sources/builtins.d.ts +4 -0
  64. package/dist/sources/builtins.d.ts.map +1 -0
  65. package/dist/sources/builtins.js +5 -0
  66. package/dist/sources/builtins.js.map +1 -0
  67. package/dist/sources/index.d.ts +2 -0
  68. package/dist/sources/index.d.ts.map +1 -0
  69. package/dist/sources/index.js +3 -0
  70. package/dist/sources/index.js.map +1 -0
  71. package/dist/utils/frontmatter.d.ts +7 -0
  72. package/dist/utils/frontmatter.d.ts.map +1 -0
  73. package/dist/utils/frontmatter.js +20 -0
  74. package/dist/utils/frontmatter.js.map +1 -0
  75. package/dist/utils/index.d.ts +2 -0
  76. package/dist/utils/index.d.ts.map +1 -0
  77. package/dist/utils/index.js +3 -0
  78. package/dist/utils/index.js.map +1 -0
  79. package/package.json +8 -32
  80. package/dist/cli/commands/hook.d.ts +0 -6
  81. package/dist/cli/commands/hook.d.ts.map +0 -1
  82. package/dist/cli/commands/hook.js +0 -18
  83. package/dist/cli/commands/hook.js.map +0 -1
  84. package/dist/decisions/index.d.ts +0 -6
  85. package/dist/decisions/index.d.ts.map +0 -1
  86. package/dist/decisions/index.js +0 -5
  87. package/dist/decisions/index.js.map +0 -1
  88. package/dist/decisions/paths.d.ts +0 -4
  89. package/dist/decisions/paths.d.ts.map +0 -1
  90. package/dist/decisions/paths.js +0 -12
  91. package/dist/decisions/paths.js.map +0 -1
  92. package/dist/decisions/read.d.ts +0 -18
  93. package/dist/decisions/read.d.ts.map +0 -1
  94. package/dist/decisions/read.js +0 -45
  95. package/dist/decisions/read.js.map +0 -1
  96. package/dist/decisions/write.d.ts +0 -20
  97. package/dist/decisions/write.d.ts.map +0 -1
  98. package/dist/decisions/write.js +0 -48
  99. package/dist/decisions/write.js.map +0 -1
  100. package/dist/filetree/ensure.d.ts +0 -7
  101. package/dist/filetree/ensure.d.ts.map +0 -1
  102. package/dist/filetree/ensure.js +0 -36
  103. package/dist/filetree/ensure.js.map +0 -1
  104. package/dist/filetree/entries.d.ts +0 -9
  105. package/dist/filetree/entries.d.ts.map +0 -1
  106. package/dist/filetree/entries.js +0 -49
  107. package/dist/filetree/entries.js.map +0 -1
  108. package/dist/filetree/frontmatter.d.ts +0 -16
  109. package/dist/filetree/frontmatter.d.ts.map +0 -1
  110. package/dist/filetree/frontmatter.js +0 -43
  111. package/dist/filetree/frontmatter.js.map +0 -1
  112. package/dist/filetree/generate.d.ts +0 -16
  113. package/dist/filetree/generate.d.ts.map +0 -1
  114. package/dist/filetree/generate.js +0 -62
  115. package/dist/filetree/generate.js.map +0 -1
  116. package/dist/filetree/index.d.ts +0 -17
  117. package/dist/filetree/index.d.ts.map +0 -1
  118. package/dist/filetree/index.js +0 -13
  119. package/dist/filetree/index.js.map +0 -1
  120. package/dist/filetree/levels.d.ts +0 -25
  121. package/dist/filetree/levels.d.ts.map +0 -1
  122. package/dist/filetree/levels.js +0 -45
  123. package/dist/filetree/levels.js.map +0 -1
  124. package/dist/filetree/locate.d.ts +0 -44
  125. package/dist/filetree/locate.d.ts.map +0 -1
  126. package/dist/filetree/locate.js +0 -76
  127. package/dist/filetree/locate.js.map +0 -1
  128. package/dist/filetree/paths.d.ts +0 -15
  129. package/dist/filetree/paths.d.ts.map +0 -1
  130. package/dist/filetree/paths.js +0 -38
  131. package/dist/filetree/paths.js.map +0 -1
  132. package/dist/filetree/read.d.ts +0 -23
  133. package/dist/filetree/read.d.ts.map +0 -1
  134. package/dist/filetree/read.js +0 -36
  135. package/dist/filetree/read.js.map +0 -1
  136. package/dist/filetree/remove.d.ts +0 -9
  137. package/dist/filetree/remove.d.ts.map +0 -1
  138. package/dist/filetree/remove.js +0 -17
  139. package/dist/filetree/remove.js.map +0 -1
  140. package/dist/filetree/root.d.ts +0 -9
  141. package/dist/filetree/root.d.ts.map +0 -1
  142. package/dist/filetree/root.js +0 -15
  143. package/dist/filetree/root.js.map +0 -1
  144. package/dist/filetree/status.d.ts +0 -21
  145. package/dist/filetree/status.d.ts.map +0 -1
  146. package/dist/filetree/status.js +0 -55
  147. package/dist/filetree/status.js.map +0 -1
  148. package/dist/hooks/cli.d.ts +0 -29
  149. package/dist/hooks/cli.d.ts.map +0 -1
  150. package/dist/hooks/cli.js +0 -65
  151. package/dist/hooks/cli.js.map +0 -1
  152. package/dist/hooks/index.d.ts +0 -3
  153. package/dist/hooks/index.d.ts.map +0 -1
  154. package/dist/hooks/index.js +0 -3
  155. package/dist/hooks/index.js.map +0 -1
  156. package/dist/plugins/grilling/.claude-plugin/plugin.json +0 -7
  157. package/dist/plugins/grilling/skills/domain-modeling/ADR-FORMAT.md +0 -47
  158. package/dist/plugins/grilling/skills/domain-modeling/CONTEXT-FORMAT.md +0 -60
  159. package/dist/plugins/grilling/skills/domain-modeling/SKILL.md +0 -74
  160. package/dist/plugins/grilling/skills/domain-modeling/agents/openai.yaml +0 -3
  161. package/dist/plugins/grilling/skills/grill-me/SKILL.md +0 -7
  162. package/dist/plugins/grilling/skills/grill-me/agents/openai.yaml +0 -5
  163. package/dist/plugins/grilling/skills/grill-with-docs/SKILL.md +0 -7
  164. package/dist/plugins/grilling/skills/grill-with-docs/agents/openai.yaml +0 -5
  165. package/dist/plugins/grilling/skills/grilling/SKILL.md +0 -12
  166. package/dist/plugins/grilling/skills/grilling/agents/openai.yaml +0 -3
  167. package/dist/plugins/speech/.claude-plugin/plugin.json +0 -7
  168. package/dist/plugins/speech/skills/emphasise/SKILL.md +0 -49
  169. package/dist/plugins/speech/skills/emphasise/agents/openai.yaml +0 -5
  170. package/dist/plugins/speech/skills/unslop/SKILL.md +0 -80
  171. package/dist/plugins/task-manager/.claude-plugin/plugin.json +0 -11
  172. package/dist/plugins/task-manager/hooks/hooks.json +0 -19
  173. package/dist/plugins/task-manager/skills/decisions/SKILL.md +0 -39
  174. package/dist/plugins/task-manager/skills/decisions/agents/openai.yaml +0 -5
  175. package/dist/plugins/task-manager/skills/decisions/references/usage.md +0 -26
  176. package/dist/plugins/task-manager/skills/task-manager/SKILL.md +0 -99
  177. package/dist/plugins/task-manager/skills/vocabulary/SKILL.md +0 -42
  178. package/dist/plugins/task-manager/skills/vocabulary/agents/openai.yaml +0 -5
  179. package/dist/plugins/task-manager/skills/vocabulary/references/usage.md +0 -26
  180. package/dist/plugins/using-hooks/.claude-plugin/plugin.json +0 -7
  181. package/dist/plugins/using-hooks/skills/hook-post-tool-use/SKILL.md +0 -79
  182. package/dist/plugins/using-hooks/skills/hook-post-tool-use/agents/openai.yaml +0 -5
  183. package/dist/plugins/using-hooks/skills/hook-pre-tool-use/SKILL.md +0 -84
  184. package/dist/plugins/using-hooks/skills/hook-pre-tool-use/agents/openai.yaml +0 -5
  185. package/dist/plugins/using-hooks/skills/hook-stop/SKILL.md +0 -69
  186. package/dist/plugins/using-hooks/skills/hook-stop/agents/openai.yaml +0 -5
  187. package/dist/plugins/using-hooks/skills/hook-user-prompt-submit/SKILL.md +0 -64
  188. package/dist/plugins/using-hooks/skills/hook-user-prompt-submit/agents/openai.yaml +0 -5
  189. package/dist/plugins/workflow/.claude-plugin/plugin.json +0 -16
  190. package/dist/plugins/workflow/agents/reviewer.md +0 -9
  191. package/dist/plugins/workflow/skills/execute/SKILL.md +0 -21
  192. package/dist/plugins/workflow/skills/execute/agents/openai.yaml +0 -5
  193. package/dist/plugins/workflow/skills/orchestrator/SKILL.md +0 -27
  194. package/dist/plugins/workflow/skills/orchestrator/agents/openai.yaml +0 -5
  195. package/dist/plugins/workflow/skills/plan/SKILL.md +0 -18
  196. package/dist/plugins/workflow/skills/plan/agents/openai.yaml +0 -5
  197. package/dist/plugins/workflow/skills/plan/references/task-frontmatter.md +0 -33
  198. package/dist/plugins/workflow/skills/review/SKILL.md +0 -25
  199. package/dist/plugins/workflow/skills/review/agents/openai.yaml +0 -5
  200. package/dist/plugins/workflow/skills/run/SKILL.md +0 -33
  201. package/dist/plugins/workflow/skills/run/agents/openai.yaml +0 -5
  202. package/dist/plugins/workflow/skills/run/references/sub-agents.md +0 -46
  203. package/dist/plugins/workflow/skills/sync/SKILL.md +0 -18
  204. package/dist/plugins/workflow/skills/sync/agents/openai.yaml +0 -5
  205. package/dist/plugins/workflow/skills/worktree/SKILL.md +0 -38
  206. package/dist/plugins/workflow/skills/worktree/agents/openai.yaml +0 -5
  207. package/dist/plugins/workflow/skills/worktree/references/git-commands.md +0 -27
  208. package/dist/plugins/writing/.claude-plugin/plugin.json +0 -7
  209. package/dist/plugins/writing/skills/writing-great-hooks/SKILL.md +0 -192
  210. package/dist/plugins/writing/skills/writing-great-hooks/agents/openai.yaml +0 -5
  211. package/dist/plugins/writing/skills/writing-great-skills/GLOSSARY.md +0 -201
  212. package/dist/plugins/writing/skills/writing-great-skills/SKILL.md +0 -92
  213. package/dist/plugins/writing/skills/writing-great-skills/agents/openai.yaml +0 -5
  214. package/dist/plugins/writing/skills/writing-great-tasks/SKILL.md +0 -136
  215. package/dist/plugins/writing/skills/writing-great-tasks/agents/openai.yaml +0 -5
  216. package/dist/plugins/writing/skills/writing-great-tasks/templates/template_task.md +0 -108
  217. package/dist/registry/loadPackageRegistry.d.ts +0 -14
  218. package/dist/registry/loadPackageRegistry.d.ts.map +0 -1
  219. package/dist/registry/loadPackageRegistry.js +0 -59
  220. package/dist/registry/loadPackageRegistry.js.map +0 -1
  221. package/dist/registry/userManifest.d.ts +0 -7
  222. package/dist/registry/userManifest.d.ts.map +0 -1
  223. package/dist/registry/userManifest.js +0 -21
  224. package/dist/registry/userManifest.js.map +0 -1
  225. package/dist/remote/fetch.d.ts +0 -16
  226. package/dist/remote/fetch.d.ts.map +0 -1
  227. package/dist/remote/fetch.js +0 -41
  228. package/dist/remote/fetch.js.map +0 -1
  229. package/dist/remote/index.d.ts +0 -7
  230. package/dist/remote/index.d.ts.map +0 -1
  231. package/dist/remote/index.js +0 -5
  232. package/dist/remote/index.js.map +0 -1
  233. package/dist/remote/manifest.d.ts +0 -23
  234. package/dist/remote/manifest.d.ts.map +0 -1
  235. package/dist/remote/manifest.js +0 -116
  236. package/dist/remote/manifest.js.map +0 -1
  237. package/dist/remote/registry.d.ts +0 -18
  238. package/dist/remote/registry.d.ts.map +0 -1
  239. package/dist/remote/registry.js +0 -58
  240. package/dist/remote/registry.js.map +0 -1
  241. package/dist/schemas/config.d.ts +0 -3
  242. package/dist/schemas/config.d.ts.map +0 -1
  243. package/dist/schemas/config.js +0 -3
  244. package/dist/schemas/config.js.map +0 -1
  245. package/dist/schemas/decision.d.ts +0 -43
  246. package/dist/schemas/decision.d.ts.map +0 -1
  247. package/dist/schemas/decision.js +0 -24
  248. package/dist/schemas/decision.js.map +0 -1
  249. package/dist/schemas/index.d.ts +0 -17
  250. package/dist/schemas/index.d.ts.map +0 -1
  251. package/dist/schemas/index.js +0 -10
  252. package/dist/schemas/index.js.map +0 -1
  253. package/dist/schemas/phase.d.ts +0 -46
  254. package/dist/schemas/phase.d.ts.map +0 -1
  255. package/dist/schemas/phase.js +0 -16
  256. package/dist/schemas/phase.js.map +0 -1
  257. package/dist/schemas/plan.d.ts +0 -44
  258. package/dist/schemas/plan.d.ts.map +0 -1
  259. package/dist/schemas/plan.js +0 -15
  260. package/dist/schemas/plan.js.map +0 -1
  261. package/dist/schemas/primitives.d.ts +0 -38
  262. package/dist/schemas/primitives.d.ts.map +0 -1
  263. package/dist/schemas/primitives.js +0 -33
  264. package/dist/schemas/primitives.js.map +0 -1
  265. package/dist/schemas/task.d.ts +0 -70
  266. package/dist/schemas/task.d.ts.map +0 -1
  267. package/dist/schemas/task.js +0 -19
  268. package/dist/schemas/task.js.map +0 -1
  269. package/dist/schemas/term.d.ts +0 -17
  270. package/dist/schemas/term.d.ts.map +0 -1
  271. package/dist/schemas/term.js +0 -22
  272. package/dist/schemas/term.js.map +0 -1
  273. package/dist/schemas/validation.d.ts +0 -24
  274. package/dist/schemas/validation.d.ts.map +0 -1
  275. package/dist/schemas/validation.js +0 -39
  276. package/dist/schemas/validation.js.map +0 -1
  277. package/dist/task-manager/hooks/add-decision.d.ts +0 -2
  278. package/dist/task-manager/hooks/add-decision.d.ts.map +0 -1
  279. package/dist/task-manager/hooks/add-decision.js +0 -19
  280. package/dist/task-manager/hooks/add-decision.js.map +0 -1
  281. package/dist/task-manager/hooks/cleanup.d.ts +0 -2
  282. package/dist/task-manager/hooks/cleanup.d.ts.map +0 -1
  283. package/dist/task-manager/hooks/cleanup.js +0 -27
  284. package/dist/task-manager/hooks/cleanup.js.map +0 -1
  285. package/dist/task-manager/hooks/get-decision.d.ts +0 -2
  286. package/dist/task-manager/hooks/get-decision.d.ts.map +0 -1
  287. package/dist/task-manager/hooks/get-decision.js +0 -11
  288. package/dist/task-manager/hooks/get-decision.js.map +0 -1
  289. package/dist/task-manager/hooks/get-entry.d.ts +0 -2
  290. package/dist/task-manager/hooks/get-entry.d.ts.map +0 -1
  291. package/dist/task-manager/hooks/get-entry.js +0 -20
  292. package/dist/task-manager/hooks/get-entry.js.map +0 -1
  293. package/dist/task-manager/hooks/get-term.d.ts +0 -2
  294. package/dist/task-manager/hooks/get-term.d.ts.map +0 -1
  295. package/dist/task-manager/hooks/get-term.js +0 -13
  296. package/dist/task-manager/hooks/get-term.js.map +0 -1
  297. package/dist/task-manager/hooks/guard-tree.d.ts +0 -2
  298. package/dist/task-manager/hooks/guard-tree.d.ts.map +0 -1
  299. package/dist/task-manager/hooks/guard-tree.js +0 -63
  300. package/dist/task-manager/hooks/guard-tree.js.map +0 -1
  301. package/dist/task-manager/hooks/index.d.ts +0 -4
  302. package/dist/task-manager/hooks/index.d.ts.map +0 -1
  303. package/dist/task-manager/hooks/index.js +0 -32
  304. package/dist/task-manager/hooks/index.js.map +0 -1
  305. package/dist/task-manager/hooks/list-decisions.d.ts +0 -2
  306. package/dist/task-manager/hooks/list-decisions.d.ts.map +0 -1
  307. package/dist/task-manager/hooks/list-decisions.js +0 -20
  308. package/dist/task-manager/hooks/list-decisions.js.map +0 -1
  309. package/dist/task-manager/hooks/list-entries.d.ts +0 -2
  310. package/dist/task-manager/hooks/list-entries.d.ts.map +0 -1
  311. package/dist/task-manager/hooks/list-entries.js +0 -19
  312. package/dist/task-manager/hooks/list-entries.js.map +0 -1
  313. package/dist/task-manager/hooks/list-terms.d.ts +0 -2
  314. package/dist/task-manager/hooks/list-terms.d.ts.map +0 -1
  315. package/dist/task-manager/hooks/list-terms.js +0 -8
  316. package/dist/task-manager/hooks/list-terms.js.map +0 -1
  317. package/dist/task-manager/hooks/next-entry.d.ts +0 -2
  318. package/dist/task-manager/hooks/next-entry.d.ts.map +0 -1
  319. package/dist/task-manager/hooks/next-entry.js +0 -23
  320. package/dist/task-manager/hooks/next-entry.js.map +0 -1
  321. package/dist/task-manager/hooks/remove-term.d.ts +0 -2
  322. package/dist/task-manager/hooks/remove-term.d.ts.map +0 -1
  323. package/dist/task-manager/hooks/remove-term.js +0 -15
  324. package/dist/task-manager/hooks/remove-term.js.map +0 -1
  325. package/dist/task-manager/hooks/set-state.d.ts +0 -2
  326. package/dist/task-manager/hooks/set-state.d.ts.map +0 -1
  327. package/dist/task-manager/hooks/set-state.js +0 -15
  328. package/dist/task-manager/hooks/set-state.js.map +0 -1
  329. package/dist/task-manager/hooks/set-term.d.ts +0 -2
  330. package/dist/task-manager/hooks/set-term.d.ts.map +0 -1
  331. package/dist/task-manager/hooks/set-term.js +0 -27
  332. package/dist/task-manager/hooks/set-term.js.map +0 -1
  333. package/dist/task-manager/hooks/sync-tree.d.ts +0 -2
  334. package/dist/task-manager/hooks/sync-tree.d.ts.map +0 -1
  335. package/dist/task-manager/hooks/sync-tree.js +0 -28
  336. package/dist/task-manager/hooks/sync-tree.js.map +0 -1
  337. package/dist/task-manager/index.d.ts +0 -2
  338. package/dist/task-manager/index.d.ts.map +0 -1
  339. package/dist/task-manager/index.js +0 -3
  340. package/dist/task-manager/index.js.map +0 -1
  341. package/dist/vocabulary/file.d.ts +0 -15
  342. package/dist/vocabulary/file.d.ts.map +0 -1
  343. package/dist/vocabulary/file.js +0 -80
  344. package/dist/vocabulary/file.js.map +0 -1
  345. package/dist/vocabulary/index.d.ts +0 -4
  346. package/dist/vocabulary/index.d.ts.map +0 -1
  347. package/dist/vocabulary/index.js +0 -4
  348. package/dist/vocabulary/index.js.map +0 -1
  349. package/dist/vocabulary/match.d.ts +0 -22
  350. package/dist/vocabulary/match.d.ts.map +0 -1
  351. package/dist/vocabulary/match.js +0 -31
  352. package/dist/vocabulary/match.js.map +0 -1
  353. package/dist/workflow/gates.d.ts +0 -24
  354. package/dist/workflow/gates.d.ts.map +0 -1
  355. package/dist/workflow/gates.js +0 -34
  356. package/dist/workflow/gates.js.map +0 -1
  357. package/dist/workflow/hooks/advance-step.d.ts +0 -2
  358. package/dist/workflow/hooks/advance-step.d.ts.map +0 -1
  359. package/dist/workflow/hooks/advance-step.js +0 -51
  360. package/dist/workflow/hooks/advance-step.js.map +0 -1
  361. package/dist/workflow/hooks/current-step.d.ts +0 -2
  362. package/dist/workflow/hooks/current-step.d.ts.map +0 -1
  363. package/dist/workflow/hooks/current-step.js +0 -24
  364. package/dist/workflow/hooks/current-step.js.map +0 -1
  365. package/dist/workflow/hooks/index.d.ts +0 -4
  366. package/dist/workflow/hooks/index.d.ts.map +0 -1
  367. package/dist/workflow/hooks/index.js +0 -10
  368. package/dist/workflow/hooks/index.js.map +0 -1
  369. package/dist/workflow/hooks/ready-phases.d.ts +0 -2
  370. package/dist/workflow/hooks/ready-phases.d.ts.map +0 -1
  371. package/dist/workflow/hooks/ready-phases.js +0 -15
  372. package/dist/workflow/hooks/ready-phases.js.map +0 -1
  373. package/dist/workflow/index.d.ts +0 -8
  374. package/dist/workflow/index.d.ts.map +0 -1
  375. package/dist/workflow/index.js +0 -6
  376. package/dist/workflow/index.js.map +0 -1
  377. package/dist/workflow/phase.d.ts +0 -16
  378. package/dist/workflow/phase.d.ts.map +0 -1
  379. package/dist/workflow/phase.js +0 -22
  380. package/dist/workflow/phase.js.map +0 -1
  381. package/dist/workflow/steps.d.ts +0 -15
  382. package/dist/workflow/steps.d.ts.map +0 -1
  383. package/dist/workflow/steps.js +0 -32
  384. package/dist/workflow/steps.js.map +0 -1
@@ -1,136 +0,0 @@
1
- ---
2
- name: writing-great-tasks
3
- description: How to write a task file — frontmatter, the goals/non-goals split, the deliverable scaffold naming every file the task ships, the requirements checklist, and the amendment flag. Use when creating or rewriting a TASK-###.md, when a task's scope reads as open-ended or leaves the executor guessing, when another skill needs the task format, or when the user asks what belongs in a task.
4
- registryDependencies: [emphasise, domain-modeling]
5
- disable-model-invocation: false
6
- ---
7
-
8
- A task file is a **brief**: one agent reads it, works alone, and stops when the boxes are ticked. Anything the executor has to _infer_ is a defect in the brief, not a judgement call handed to them.
9
-
10
- Write with the `/emphasise` conventions. Start from `templates/template_task.md`.
11
-
12
- ## Frontmatter
13
-
14
- ```yaml
15
- ---
16
- name: Dependency Graph
17
- description: >
18
- Pure graph logic over depends_on edges — topological sort, the
19
- dispatchable ready set, and cycle detection.
20
- id: TASK-008
21
- user-amended: false
22
- ---
23
- ```
24
-
25
- | Key | Rule |
26
- |---|---|
27
- | `name` | The task's title, mirrored exactly by the `# <id> — <name>` heading |
28
- | `description` | One to three sentences: what is different once this is done |
29
- | `id` | Zero-padded, sequential, never reused |
30
- | `user-amended` | `false` at creation — see **Amendments** |
31
-
32
- Scheduling metadata — `priority`, `package`, `area`, `skills`, `complexity`, `depends_on`, `worktree` — lives in the **index**, never in the task file. The index is the single source of truth for everything a query answers.
33
-
34
- ## Sections
35
-
36
- Fixed order, every section present at creation even when empty.
37
-
38
- ### Description
39
-
40
- Prose, no lists: the problem, the outcome, and the context needed to start. This is the only section that argues; the rest assert. Less is more.
41
-
42
- ### Goals / Non-Goals
43
-
44
- Both are `- [ ]` items, and both get ticked at the end.
45
-
46
- - **Goal** — an outcome the task is judged on. Ticking it claims the outcome exists.
47
- - **Non-Goal** — an outcome a reasonable agent would otherwise pursue from this Description. Ticking it claims the work stayed out.
48
-
49
- Non-goals carry the boundary. That what must not be done.
50
-
51
- ### Deliverables
52
-
53
- Every file the task ships, one `- [ ]` per file: the path in backticks, whether it is **new** or **edited**, and a one-line contract of what it must contain.
54
-
55
- ```md
56
- - [ ] **new** `packages/skills/src/graph.ts` — builds the edge set from
57
- `depends_on`, exports `topoSort`, `ready` and `blockedBy`
58
- - [ ] **edit** `packages/skills/src/index.ts` — re-exports the graph surface
59
- ```
60
-
61
- A path that does not exist yet is exactly the point: the scaffold is the _minimum viable product_, and an extension gets reported in **Findings**. Extending it is preferred over creating _god classes_. Splitting logic into multiple files is encouraged.
62
-
63
- ### Package Dependencies
64
-
65
- The packages this task _can_ be built on, each with the reason it is reached for.
66
-
67
- ```md
68
- - [ ] **zod** schema definition and boundary validation, types inferred
69
- from the schemas rather than declared beside them
70
- ```
71
-
72
- ### Contracts
73
-
74
- _Optional._ The exact shape a deliverable must implement, when that shape is already settled and small enough to write out — a schema, a type, an interface, a function signature.
75
-
76
- ```ts
77
- type Finding = { issue: string; severity: string; location: string }
78
- ```
79
-
80
- Small is the whole condition. A shape too large to state here is not a contract — working it out _is_ the task, and it belongs in **Deliverables** as the file that will hold it.
81
-
82
- ### Requirements
83
-
84
- Constraints on _how_ the deliverables are built, each one checkable by reading the diff: what must be used, what must hold, what must be absent.
85
-
86
- ```md
87
- - [ ] `worktree_type` is required whenever `worktree` is true
88
- - [ ] Status stays the folder segment — no `status` key in frontmatter
89
- - [ ] Config loading goes through `@g3nomaly/core`
90
- ```
91
-
92
- State the target directly. A requirement phrased as a prohibition names the thing it bans and makes it more available, so keep that phrasing for hard guardrails only, and pair it with the behaviour that replaces it.
93
-
94
- ### Findings
95
-
96
- Empty at creation. The executor appends discoveries here as they surface, including any file added to the scaffold and why.
97
-
98
- ### Blockers
99
-
100
- Empty until the task stalls. Filled in the same edit that moves the task to `blocked/`, and cleared when the block lifts — this section is what the folder points at, so a task sitting in `blocked/` with nothing here is a task nobody can pick up.
101
-
102
- ### Decisions
103
-
104
- Link lines only — one path per decision, no reasoning:
105
-
106
- ```md
107
- - `docs/adr/0007-status-is-the-folder.md`
108
- ```
109
-
110
- A decision recorded inside a task is a decision nobody finds again once the task closes. The record itself follows the `/domain-modeling` skill's ADR format. A task that made no hard-to-reverse choice leaves this section empty.
111
-
112
- ### References
113
-
114
- Files, skills and task IDs to read before starting, each with the reason it earns a read.
115
-
116
- ### Amendments
117
-
118
- The **amendment flag** exists because a task edited after it was written invalidates work derived from it: later tasks were written against the old wording, and so was the plan.
119
-
120
- Whoever edits a task after creation, in the same edit:
121
-
122
- 1. Sets `user-amended: true` in the frontmatter.
123
- 2. Logs what changed under this section.
124
- 3. Names what is now suspect — the later task IDs and plan sections that were derived from the old wording.
125
-
126
- The next agent to pick up the plan reads the flag, re-checks what the log names, and records the outcome in the same section.
127
-
128
- ## Failure modes
129
-
130
- - _Scope guessing._ The executor has to work out which files the task touches. The brief failed at its one job; fill the **deliverable scaffold**.
131
- - _Prose deliverable._ "Update the CLI" where a path belongs. Two agents produce two different diffs from it.
132
- - _Missing non-goals._ Every neighbouring change looks in scope, and the diff grows until review is impossible.
133
- - _Decision prose in the task._ Reasoning written into the task body instead of an ADR path, where it dies with the task.
134
- - _Silent amendment._ The task changes, `user-amended` stays `false`, and the drift into every downstream task goes unnoticed until something contradicts.
135
- - _Do not repeat yourself._ If a goal or non-goal is already in the task, do not restate it as a requirement.
136
- - _Goal/requirement blur._ A goal states an outcome, a requirement is a constraint. `create a schema` is a goal; `no filesystem access` is a requirement.
@@ -1,5 +0,0 @@
1
- interface:
2
- display_name: "Writing Great Tasks"
3
- short_description: "The task-file format — frontmatter, goals/non-goals, the deliverable scaffold, requirements, and the amendment flag"
4
- policy:
5
- allow_implicit_invocation: false
@@ -1,108 +0,0 @@
1
- ---
2
- name: <Task title — mirrored exactly by the heading below>
3
- description: >
4
- One to three sentences: what is different once this is done.
5
- id: TASK-XXX
6
- user-amended: false
7
- ---
8
-
9
- # TASK-XXX — <Task title>
10
-
11
- ## Description
12
-
13
- The problem, the expected outcome, and the context needed to start. Prose, no
14
- lists.
15
-
16
- ---
17
-
18
- ## Goals
19
-
20
- - [ ]
21
- - [ ]
22
-
23
- ## Non-Goals
24
-
25
- - [ ]
26
- - [ ]
27
-
28
- ---
29
-
30
- ## Deliverables
31
-
32
- Every file this task ships: path, **new** or **edit**, and what it must contain if not directly clear.
33
- Extend the list while working and record the addition under Findings.
34
-
35
- - [ ] **new** `path/to/file.ts`
36
- - [ ] **edit** `path/to/other.ts`
37
-
38
- ---
39
-
40
- ## Package Dependencies
41
-
42
- The packages we consider using for this task and their reason. example `zod`.
43
-
44
- - [ ] **package name** reason for usage.
45
-
46
- ---
47
-
48
- ## Contracts
49
-
50
- Optional. The exact shape a deliverable must implement, when it is already
51
- settled and small — a schema, type, interface or signature. Working out a shape
52
- too large to state here is the task itself; drop this section when that is the
53
- case.
54
-
55
- ```
56
- ```
57
-
58
- ---
59
-
60
- ## Requirements
61
-
62
- Constraints on how the deliverables are built, each checkable by reading the diff.
63
-
64
- - [ ]
65
- - [ ]
66
-
67
- ---
68
-
69
- ## Findings
70
-
71
- Discoveries made while working, appended as they surface.
72
-
73
- -
74
-
75
- ---
76
-
77
- ## Blockers
78
-
79
- Why the work stalled. Filled when moving to `blocked/`, cleared when unblocked.
80
-
81
- -
82
-
83
- ---
84
-
85
- ## Decisions
86
-
87
- Link lines only — the record lives in `docs/adr/`, per the `/domain-modeling`
88
- skill's ADR format.
89
-
90
- -
91
-
92
- ---
93
-
94
- ## References
95
-
96
- Files, skills and task IDs to read first, each with the reason it earns a read.
97
-
98
- -
99
-
100
- ---
101
-
102
- ## Amendments
103
-
104
- Set `user-amended: true` above when this task is edited after creation, log the
105
- change here, and name the later tasks and plan sections that were derived from
106
- the old wording.
107
-
108
- -
@@ -1,14 +0,0 @@
1
- import type { RegistryStore } from "@g3nomaly/core/registry";
2
- import type { SkillMeta } from "./types";
3
- /** `plugins/` directory shipped beside this module, from `src/` and `dist/` alike. */
4
- export declare function resolvePluginsRoot(): string;
5
- /** Group plugin roots: every direct child of `plugins/` holding a `plugin.json`. */
6
- export declare function listGroups(pluginsRoot?: string): string[];
7
- /**
8
- * Scans every group plugin root under `plugins/` and hydrates a store keyed by
9
- * skill directory name. Run fresh on each CLI invocation; no build step.
10
- */
11
- export declare function loadPackageRegistry(pluginsRoot?: string): Promise<RegistryStore<SkillMeta>>;
12
- /** Absolute source path of a registry file; `filePath` is `<skill>/...`, sources live under `<group>/skills/`. */
13
- export declare function resolveSkillSourcePath(group: string, filePath: string, pluginsRoot?: string): string;
14
- //# sourceMappingURL=loadPackageRegistry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"loadPackageRegistry.d.ts","sourceRoot":"","sources":["../../src/registry/loadPackageRegistry.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAOzC,sFAAsF;AACtF,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAQD,oFAAoF;AACpF,wBAAgB,UAAU,CAAC,WAAW,GAAE,MAA6B,GAAG,MAAM,EAAE,CAK/E;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,WAAW,GAAE,MAA6B,GAAG,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CA4BvH;AAED,kHAAkH;AAClH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,GAAE,MAA6B,GAAG,MAAM,CAE1H"}
@@ -1,59 +0,0 @@
1
- // packages/skills/src/registry/loadPackageRegistry.ts
2
- import fs from "node:fs";
3
- import path from "node:path";
4
- import { z } from "zod";
5
- import { createRegistryStore, register } from "@g3nomaly/core/registry";
6
- import { readSkillDir } from "./readSkillDir";
7
- const PLUGIN_MANIFEST = path.join(".claude-plugin", "plugin.json");
8
- /** Folder inside every group that holds its skill directories. */
9
- const SKILLS_DIR = "skills";
10
- /** `plugins/` directory shipped beside this module, from `src/` and `dist/` alike. */
11
- export function resolvePluginsRoot() {
12
- return path.join(import.meta.dir, "..", "plugins");
13
- }
14
- const PluginManifestSchema = z.object({
15
- name: z.string().min(1),
16
- version: z.string().optional(),
17
- skills: z.array(z.string().min(1)).default([]),
18
- });
19
- /** Group plugin roots: every direct child of `plugins/` holding a `plugin.json`. */
20
- export function listGroups(pluginsRoot = resolvePluginsRoot()) {
21
- return fs.readdirSync(pluginsRoot, { withFileTypes: true })
22
- .filter((d) => d.isDirectory() && fs.existsSync(path.join(pluginsRoot, d.name, PLUGIN_MANIFEST)))
23
- .map((d) => d.name)
24
- .sort();
25
- }
26
- /**
27
- * Scans every group plugin root under `plugins/` and hydrates a store keyed by
28
- * skill directory name. Run fresh on each CLI invocation; no build step.
29
- */
30
- export async function loadPackageRegistry(pluginsRoot = resolvePluginsRoot()) {
31
- const store = createRegistryStore();
32
- for (const group of listGroups(pluginsRoot)) {
33
- const groupDir = path.join(pluginsRoot, group);
34
- const manifest = PluginManifestSchema.parse(JSON.parse(fs.readFileSync(path.join(groupDir, PLUGIN_MANIFEST), "utf8")));
35
- for (const skillRel of manifest.skills) {
36
- if (path.dirname(path.normalize(skillRel)) !== SKILLS_DIR) {
37
- throw new Error(`group "${group}" lists skill "${skillRel}", which is not directly under ${SKILLS_DIR}/`);
38
- }
39
- const [key, meta] = await readSkillDir(path.join(groupDir, skillRel), group, manifest.version);
40
- if (store.store.state[key]) {
41
- throw new Error(`skill "${key}" is defined by more than one group (${store.store.state[key].group}, ${group})`);
42
- }
43
- register(store, key, meta);
44
- }
45
- }
46
- for (const [key, meta] of Object.entries(store.store.state)) {
47
- for (const dep of meta.registryDependencies ?? []) {
48
- if (!store.store.state[dep]) {
49
- throw new Error(`skill "${key}" depends on "${dep}", which no group defines`);
50
- }
51
- }
52
- }
53
- return store;
54
- }
55
- /** Absolute source path of a registry file; `filePath` is `<skill>/...`, sources live under `<group>/skills/`. */
56
- export function resolveSkillSourcePath(group, filePath, pluginsRoot = resolvePluginsRoot()) {
57
- return path.join(pluginsRoot, group, SKILLS_DIR, filePath);
58
- }
59
- //# sourceMappingURL=loadPackageRegistry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"loadPackageRegistry.js","sourceRoot":"","sources":["../../src/registry/loadPackageRegistry.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;AAEnE,kEAAkE;AAClE,MAAM,UAAU,GAAG,QAAQ,CAAC;AAE5B,sFAAsF;AACtF,MAAM,UAAU,kBAAkB;IAChC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,IAAI,EAAK,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,MAAM,EAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAChD,CAAC,CAAC;AAEH,oFAAoF;AACpF,MAAM,UAAU,UAAU,CAAC,WAAW,GAAW,kBAAkB,EAAE;IACnE,OAAO,EAAE,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;SACxD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC;SAChG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAClB,IAAI,EAAE,CAAC;AACZ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,WAAW,GAAW,kBAAkB,EAAE;IAClF,MAAM,KAAK,GAAG,mBAAmB,EAAa,CAAC;IAE/C,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAG,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QAEvH,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YACvC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,KAAK,UAAU,EAAE,CAAC;gBAC1D,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,kBAAkB,QAAQ,kCAAkC,UAAU,GAAG,CAAC,CAAC;YAC5G,CAAC;YACD,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC/F,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,wCAAwC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,GAAG,CAAC,CAAC;YAClH,CAAC;YACD,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5D,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,oBAAoB,IAAI,EAAE,EAAE,CAAC;YAClD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,iBAAiB,GAAG,2BAA2B,CAAC,CAAC;YAChF,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,kHAAkH;AAClH,MAAM,UAAU,sBAAsB,CAAC,KAAa,EAAE,QAAgB,EAAE,WAAW,GAAW,kBAAkB,EAAE;IAChH,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;AAC7D,CAAC"}
@@ -1,7 +0,0 @@
1
- import type { RegistryStore } from "@g3nomaly/core/registry";
2
- /** `skills.json` sits beside the install directory: `.claude/skills` → `.claude/skills.json`. */
3
- export declare function manifestPath(projectRoot: string, installDir: string): string;
4
- /** Store bound to one target's `skills.json`, hydrated when the file exists. */
5
- export declare function loadUserManifest(projectRoot: string, installDir: string): Promise<RegistryStore>;
6
- export declare function saveUserManifest(store: RegistryStore): void;
7
- //# sourceMappingURL=userManifest.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"userManifest.d.ts","sourceRoot":"","sources":["../../src/registry/userManifest.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAI7D,iGAAiG;AACjG,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAE5E;AAED,gFAAgF;AAChF,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAItG;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAG3D"}
@@ -1,21 +0,0 @@
1
- // packages/skills/src/registry/userManifest.ts
2
- import fs from "node:fs";
3
- import path from "node:path";
4
- import { createRegistryStore, load, flush, jsonHandler } from "@g3nomaly/core/registry";
5
- const MANIFEST_FILE = "skills.json";
6
- /** `skills.json` sits beside the install directory: `.claude/skills` → `.claude/skills.json`. */
7
- export function manifestPath(projectRoot, installDir) {
8
- return path.join(projectRoot, path.dirname(installDir), MANIFEST_FILE);
9
- }
10
- /** Store bound to one target's `skills.json`, hydrated when the file exists. */
11
- export async function loadUserManifest(projectRoot, installDir) {
12
- const store = createRegistryStore({ filePath: manifestPath(projectRoot, installDir), handler: jsonHandler });
13
- await load(store);
14
- return store;
15
- }
16
- export function saveUserManifest(store) {
17
- if (store.filePath !== undefined)
18
- fs.mkdirSync(path.dirname(store.filePath), { recursive: true });
19
- flush(store);
20
- }
21
- //# sourceMappingURL=userManifest.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"userManifest.js","sourceRoot":"","sources":["../../src/registry/userManifest.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGxF,MAAM,aAAa,GAAG,aAAa,CAAC;AAEpC,iGAAiG;AACjG,MAAM,UAAU,YAAY,CAAC,WAAmB,EAAE,UAAkB;IAClE,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC,CAAC;AACzE,CAAC;AAED,gFAAgF;AAChF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,WAAmB,EAAE,UAAkB;IAC5E,MAAM,KAAK,GAAG,mBAAmB,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;IAC7G,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAoB;IACnD,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS;QAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClG,KAAK,CAAC,KAAK,CAAC,CAAC;AACf,CAAC"}
@@ -1,16 +0,0 @@
1
- /** One shallow clone of a remote repository, removed on `removeCheckout` and at process exit. */
2
- export interface RemoteCheckout {
3
- url: string;
4
- /** Absolute checkout root */
5
- dir: string;
6
- commit: string;
7
- }
8
- /**
9
- * Shallow-clones `url` into a temporary directory and resolves its HEAD commit.
10
- * The directory is removed at process exit even when a command bails out early.
11
- *
12
- * @throws when the URL is not a git remote or the clone fails
13
- */
14
- export declare function cloneRemote(url: string): Promise<RemoteCheckout>;
15
- export declare function removeCheckout(checkout: RemoteCheckout): void;
16
- //# sourceMappingURL=fetch.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/remote/fetch.ts"],"names":[],"mappings":"AAKA,iGAAiG;AACjG,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAK,MAAM,CAAC;IACf,6BAA6B;IAC7B,GAAG,EAAK,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAoBD;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAWtE;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAE7D"}
@@ -1,41 +0,0 @@
1
- // packages/skills/src/remote/fetch.ts
2
- import fs from "node:fs";
3
- import os from "node:os";
4
- import path from "node:path";
5
- const REMOTE_URL = /^(https?:\/\/|ssh:\/\/|git:\/\/|git@)\S+$/;
6
- async function git(args, cwd) {
7
- const proc = Bun.spawn(["git", ...args], {
8
- cwd,
9
- stdout: "pipe",
10
- stderr: "pipe",
11
- env: { ...process.env, GIT_TERMINAL_PROMPT: "0" },
12
- });
13
- const [stdout, stderr, exitCode] = await Promise.all([
14
- new Response(proc.stdout).text(),
15
- new Response(proc.stderr).text(),
16
- proc.exited,
17
- ]);
18
- if (exitCode !== 0)
19
- throw new Error(stderr.trim() !== "" ? stderr.trim() : `git ${args[0]} failed`);
20
- return stdout.trim();
21
- }
22
- /**
23
- * Shallow-clones `url` into a temporary directory and resolves its HEAD commit.
24
- * The directory is removed at process exit even when a command bails out early.
25
- *
26
- * @throws when the URL is not a git remote or the clone fails
27
- */
28
- export async function cloneRemote(url) {
29
- if (!REMOTE_URL.test(url)) {
30
- throw new Error(`"${url}" is not a git URL (expected https://, ssh://, git:// or git@)`);
31
- }
32
- const dir = fs.mkdtempSync(path.join(os.tmpdir(), "g3n-skills-remote-"));
33
- process.once("exit", () => fs.rmSync(dir, { recursive: true, force: true }));
34
- await git(["clone", "--depth", "1", "--quiet", "--", url, dir]);
35
- const commit = await git(["rev-parse", "HEAD"], dir);
36
- return { url, dir, commit };
37
- }
38
- export function removeCheckout(checkout) {
39
- fs.rmSync(checkout.dir, { recursive: true, force: true });
40
- }
41
- //# sourceMappingURL=fetch.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../src/remote/fetch.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAU7B,MAAM,UAAU,GAAG,2CAA2C,CAAC;AAE/D,KAAK,UAAU,GAAG,CAAC,IAAc,EAAE,GAAY;IAC7C,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,EAAE;QACvC,GAAG;QACH,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,mBAAmB,EAAE,GAAG,EAAE;KAClD,CAAC,CAAC;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACnD,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE;QAChC,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE;QAChC,IAAI,CAAC,MAAM;KACZ,CAAC,CAAC;IACH,IAAI,QAAQ,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACpG,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;AACvB,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAAW;IAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,IAAI,GAAG,gEAAgE,CAAC,CAAC;IAC3F,CAAC;IAED,MAAM,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,oBAAoB,CAAC,CAAC,CAAC;IACzE,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAE7E,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;IACrD,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAwB;IACrD,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5D,CAAC"}
@@ -1,7 +0,0 @@
1
- export { cloneRemote, removeCheckout } from "./fetch";
2
- export type { RemoteCheckout } from "./fetch";
3
- export { locateRemotePlugins } from "./manifest";
4
- export type { RemotePlugin, RemotePluginScan } from "./manifest";
5
- export { loadRemoteRegistry, remoteSkillSource } from "./registry";
6
- export type { RemoteRegistry } from "./registry";
7
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/remote/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACtD,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACnE,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC"}
@@ -1,5 +0,0 @@
1
- // packages/skills/src/remote/index.ts
2
- export { cloneRemote, removeCheckout } from "./fetch";
3
- export { locateRemotePlugins } from "./manifest";
4
- export { loadRemoteRegistry, remoteSkillSource } from "./registry";
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/remote/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC"}
@@ -1,23 +0,0 @@
1
- /** One plugin found in a checked-out repository. */
2
- export interface RemotePlugin {
3
- name: string;
4
- version?: string;
5
- /** Absolute plugin root inside the checkout */
6
- dir: string;
7
- /** Absolute skill directories, each holding a SKILL.md */
8
- skillDirs: string[];
9
- }
10
- export interface RemotePluginScan {
11
- plugins: RemotePlugin[];
12
- warnings: string[];
13
- }
14
- /**
15
- * Plugin roots and their skills declared by a repository's manifests. A root
16
- * `marketplace.json` enumerates plugin directories; a root `plugin.json` makes
17
- * the repository itself a plugin. Both `.claude-plugin` and `.cursor-plugin`
18
- * layouts are read.
19
- *
20
- * @throws when the repository has neither manifest — plain skill folders are rejected
21
- */
22
- export declare function locateRemotePlugins(repoRoot: string): RemotePluginScan;
23
- //# sourceMappingURL=manifest.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/remote/manifest.ts"],"names":[],"mappings":"AA2BA,oDAAoD;AACpD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAM,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,GAAG,EAAO,MAAM,CAAC;IACjB,0DAA0D;IAC1D,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAG,YAAY,EAAE,CAAC;IACzB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAoDD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAyCtE"}
@@ -1,116 +0,0 @@
1
- // packages/skills/src/remote/manifest.ts
2
- import fs from "node:fs";
3
- import path from "node:path";
4
- import { z } from "zod";
5
- import { SKILL_FILE } from "../registry/readSkillDir";
6
- const MANIFEST_DIRS = [".claude-plugin", ".cursor-plugin"];
7
- const MARKETPLACE_FILE = "marketplace.json";
8
- const PLUGIN_FILE = "plugin.json";
9
- const DEFAULT_SKILLS_DIR = "skills";
10
- const MarketplaceSchema = z.object({
11
- plugins: z.array(z.object({
12
- name: z.string().min(1),
13
- source: z.unknown(),
14
- })).default([]),
15
- });
16
- const RemotePluginManifestSchema = z.object({
17
- name: z.string().min(1).optional(),
18
- version: z.string().optional(),
19
- /** A list of skill directories, or one directory to scan for them */
20
- skills: z.union([z.string().min(1), z.array(z.string().min(1))]).optional(),
21
- });
22
- /** First existing `.claude-plugin`/`.cursor-plugin` file of the given name under `dir`. */
23
- function manifestFile(dir, file) {
24
- for (const manifestDir of MANIFEST_DIRS) {
25
- const candidate = path.join(dir, manifestDir, file);
26
- if (fs.existsSync(candidate))
27
- return candidate;
28
- }
29
- return null;
30
- }
31
- function readJson(file) {
32
- return JSON.parse(fs.readFileSync(file, "utf8"));
33
- }
34
- /** Resolves `rel` against `base`, rejecting paths that escape the checkout at `root`. */
35
- function resolveInside(root, base, rel) {
36
- const resolved = path.resolve(base, rel);
37
- if (resolved !== root && !resolved.startsWith(root + path.sep)) {
38
- throw new Error(`manifest path "${rel}" points outside the repository`);
39
- }
40
- return resolved;
41
- }
42
- /** Directories under `dir` holding a SKILL.md; a match is not descended into further. */
43
- function scanSkillDirs(dir) {
44
- if (!fs.existsSync(dir))
45
- return [];
46
- const found = [];
47
- const visit = (current) => {
48
- if (fs.existsSync(path.join(current, SKILL_FILE))) {
49
- found.push(current);
50
- return;
51
- }
52
- for (const d of fs.readdirSync(current, { withFileTypes: true })) {
53
- if (d.isDirectory() && !d.name.startsWith(".") && d.name !== "node_modules")
54
- visit(path.join(current, d.name));
55
- }
56
- };
57
- visit(dir);
58
- return found.sort();
59
- }
60
- /** A plugin's skill directories: the listed ones, or a scan of its skills directory. */
61
- function pluginSkillDirs(pluginDir, repoRoot, manifest) {
62
- if (Array.isArray(manifest.skills)) {
63
- return manifest.skills.map((rel) => resolveInside(repoRoot, pluginDir, rel));
64
- }
65
- if (typeof manifest.skills === "string") {
66
- return scanSkillDirs(resolveInside(repoRoot, pluginDir, manifest.skills));
67
- }
68
- return scanSkillDirs(path.join(pluginDir, DEFAULT_SKILLS_DIR));
69
- }
70
- /**
71
- * Plugin roots and their skills declared by a repository's manifests. A root
72
- * `marketplace.json` enumerates plugin directories; a root `plugin.json` makes
73
- * the repository itself a plugin. Both `.claude-plugin` and `.cursor-plugin`
74
- * layouts are read.
75
- *
76
- * @throws when the repository has neither manifest — plain skill folders are rejected
77
- */
78
- export function locateRemotePlugins(repoRoot) {
79
- const warnings = [];
80
- const pluginDirs = new Map();
81
- const marketplacePath = manifestFile(repoRoot, MARKETPLACE_FILE);
82
- if (marketplacePath !== null) {
83
- const marketplace = MarketplaceSchema.parse(readJson(marketplacePath));
84
- for (const plugin of marketplace.plugins) {
85
- if (typeof plugin.source !== "string") {
86
- warnings.push(`${plugin.name} — marketplace source is not a local path, skipped`);
87
- continue;
88
- }
89
- pluginDirs.set(resolveInside(repoRoot, repoRoot, plugin.source), plugin.name);
90
- }
91
- }
92
- if (manifestFile(repoRoot, PLUGIN_FILE) !== null && !pluginDirs.has(path.resolve(repoRoot))) {
93
- pluginDirs.set(path.resolve(repoRoot), undefined);
94
- }
95
- if (pluginDirs.size === 0) {
96
- throw new Error("no .claude-plugin or .cursor-plugin manifest found — the repository is not a plugin or marketplace");
97
- }
98
- const plugins = [];
99
- const withoutSkills = [];
100
- for (const [dir, marketplaceName] of pluginDirs) {
101
- const manifestPath = manifestFile(dir, PLUGIN_FILE);
102
- const manifest = manifestPath === null ? {} : RemotePluginManifestSchema.parse(readJson(manifestPath));
103
- const name = manifest.name ?? marketplaceName ?? path.basename(dir);
104
- const skillDirs = pluginSkillDirs(dir, repoRoot, manifest);
105
- if (skillDirs.length === 0) {
106
- withoutSkills.push(name);
107
- continue;
108
- }
109
- plugins.push({ name, version: manifest.version, dir, skillDirs });
110
- }
111
- if (withoutSkills.length > 0) {
112
- warnings.push(`${withoutSkills.length} plugin(s) without skills skipped: ${withoutSkills.join(", ")}`);
113
- }
114
- return { plugins, warnings };
115
- }
116
- //# sourceMappingURL=manifest.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/remote/manifest.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- import type { EntrySource } from "@g3nomaly/core/cli";
2
- import type { SkillRegistry } from "../registry/types";
3
- import type { RemoteCheckout } from "./fetch";
4
- export interface RemoteRegistry {
5
- registry: SkillRegistry;
6
- warnings: string[];
7
- }
8
- /**
9
- * Hydrates a registry from a checkout's plugin manifests, keyed by skill
10
- * directory name with the plugin name as group. Each entry records its
11
- * `source` so the install can resolve files inside the checkout and the user
12
- * manifest keeps the provenance. `registryDependencies` are dropped with a
13
- * warning — a remote repository cannot resolve against the package registry.
14
- */
15
- export declare function loadRemoteRegistry(checkout: RemoteCheckout): Promise<RemoteRegistry>;
16
- /** Resolves a remote entry's files inside its checkout via the `source` recorded on it. */
17
- export declare function remoteSkillSource(checkout: RemoteCheckout): EntrySource;
18
- //# sourceMappingURL=registry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/remote/registry.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,aAAa,CAAC;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAmC1F;AAED,2FAA2F;AAC3F,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,cAAc,GAAG,WAAW,CAMvE"}