@specforge/mcp 2.0.9 → 2.1.0

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 (433) hide show
  1. package/README.md +324 -0
  2. package/bin/specforge-mcp +19 -1
  3. package/dist/cli/commands/blocked.d.ts +16 -0
  4. package/dist/cli/commands/blocked.d.ts.map +1 -0
  5. package/dist/cli/commands/blocked.js +214 -0
  6. package/dist/cli/commands/blocked.js.map +1 -0
  7. package/dist/cli/commands/configure.d.ts +16 -0
  8. package/dist/cli/commands/configure.d.ts.map +1 -0
  9. package/dist/cli/commands/configure.js +218 -0
  10. package/dist/cli/commands/configure.js.map +1 -0
  11. package/dist/cli/commands/configure.types.d.ts +110 -0
  12. package/dist/cli/commands/configure.types.d.ts.map +1 -0
  13. package/dist/cli/commands/configure.types.js +105 -0
  14. package/dist/cli/commands/configure.types.js.map +1 -0
  15. package/dist/cli/commands/debug/call.d.ts +14 -0
  16. package/dist/cli/commands/debug/call.d.ts.map +1 -0
  17. package/dist/cli/commands/debug/call.js +117 -0
  18. package/dist/cli/commands/debug/call.js.map +1 -0
  19. package/dist/cli/commands/debug/index.d.ts +12 -0
  20. package/dist/cli/commands/debug/index.d.ts.map +1 -0
  21. package/dist/cli/commands/debug/index.js +12 -0
  22. package/dist/cli/commands/debug/index.js.map +1 -0
  23. package/dist/cli/commands/debug/register.d.ts +11 -0
  24. package/dist/cli/commands/debug/register.d.ts.map +1 -0
  25. package/dist/cli/commands/debug/register.js +90 -0
  26. package/dist/cli/commands/debug/register.js.map +1 -0
  27. package/dist/cli/commands/debug/test.d.ts +13 -0
  28. package/dist/cli/commands/debug/test.d.ts.map +1 -0
  29. package/dist/cli/commands/debug/test.js +117 -0
  30. package/dist/cli/commands/debug/test.js.map +1 -0
  31. package/dist/cli/commands/debug/tools.d.ts +13 -0
  32. package/dist/cli/commands/debug/tools.d.ts.map +1 -0
  33. package/dist/cli/commands/debug/tools.js +117 -0
  34. package/dist/cli/commands/debug/tools.js.map +1 -0
  35. package/dist/cli/commands/debug/types.d.ts +117 -0
  36. package/dist/cli/commands/debug/types.d.ts.map +1 -0
  37. package/dist/cli/commands/debug/types.js +43 -0
  38. package/dist/cli/commands/debug/types.js.map +1 -0
  39. package/dist/cli/commands/debug/whoami.d.ts +13 -0
  40. package/dist/cli/commands/debug/whoami.d.ts.map +1 -0
  41. package/dist/cli/commands/debug/whoami.js +161 -0
  42. package/dist/cli/commands/debug/whoami.js.map +1 -0
  43. package/dist/cli/commands/docs/content/api.d.ts +7 -0
  44. package/dist/cli/commands/docs/content/api.d.ts.map +1 -0
  45. package/dist/cli/commands/docs/content/api.js +64 -0
  46. package/dist/cli/commands/docs/content/api.js.map +1 -0
  47. package/dist/cli/commands/docs/content/concepts.d.ts +7 -0
  48. package/dist/cli/commands/docs/content/concepts.d.ts.map +1 -0
  49. package/dist/cli/commands/docs/content/concepts.js +68 -0
  50. package/dist/cli/commands/docs/content/concepts.js.map +1 -0
  51. package/dist/cli/commands/docs/content/examples.d.ts +7 -0
  52. package/dist/cli/commands/docs/content/examples.d.ts.map +1 -0
  53. package/dist/cli/commands/docs/content/examples.js +84 -0
  54. package/dist/cli/commands/docs/content/examples.js.map +1 -0
  55. package/dist/cli/commands/docs/content/index.d.ts +10 -0
  56. package/dist/cli/commands/docs/content/index.d.ts.map +1 -0
  57. package/dist/cli/commands/docs/content/index.js +10 -0
  58. package/dist/cli/commands/docs/content/index.js.map +1 -0
  59. package/dist/cli/commands/docs/content/workflow.d.ts +7 -0
  60. package/dist/cli/commands/docs/content/workflow.d.ts.map +1 -0
  61. package/dist/cli/commands/docs/content/workflow.js +44 -0
  62. package/dist/cli/commands/docs/content/workflow.js.map +1 -0
  63. package/dist/cli/commands/docs/content.d.ts +23 -0
  64. package/dist/cli/commands/docs/content.d.ts.map +1 -0
  65. package/dist/cli/commands/docs/content.js +38 -0
  66. package/dist/cli/commands/docs/content.js.map +1 -0
  67. package/dist/cli/commands/docs/display.d.ts +26 -0
  68. package/dist/cli/commands/docs/display.d.ts.map +1 -0
  69. package/dist/cli/commands/docs/display.js +53 -0
  70. package/dist/cli/commands/docs/display.js.map +1 -0
  71. package/dist/cli/commands/docs/docs.d.ts +19 -0
  72. package/dist/cli/commands/docs/docs.d.ts.map +1 -0
  73. package/dist/cli/commands/docs/docs.js +124 -0
  74. package/dist/cli/commands/docs/docs.js.map +1 -0
  75. package/dist/cli/commands/docs/index.d.ts +13 -0
  76. package/dist/cli/commands/docs/index.d.ts.map +1 -0
  77. package/dist/cli/commands/docs/index.js +13 -0
  78. package/dist/cli/commands/docs/index.js.map +1 -0
  79. package/dist/cli/commands/docs/register.d.ts +23 -0
  80. package/dist/cli/commands/docs/register.d.ts.map +1 -0
  81. package/dist/cli/commands/docs/register.js +64 -0
  82. package/dist/cli/commands/docs/register.js.map +1 -0
  83. package/dist/cli/commands/docs/tool-docs.d.ts +44 -0
  84. package/dist/cli/commands/docs/tool-docs.d.ts.map +1 -0
  85. package/dist/cli/commands/docs/tool-docs.js +182 -0
  86. package/dist/cli/commands/docs/tool-docs.js.map +1 -0
  87. package/dist/cli/commands/docs/tool-examples.d.ts +14 -0
  88. package/dist/cli/commands/docs/tool-examples.d.ts.map +1 -0
  89. package/dist/cli/commands/docs/tool-examples.js +127 -0
  90. package/dist/cli/commands/docs/tool-examples.js.map +1 -0
  91. package/dist/cli/commands/docs/types.d.ts +108 -0
  92. package/dist/cli/commands/docs/types.d.ts.map +1 -0
  93. package/dist/cli/commands/docs/types.js +33 -0
  94. package/dist/cli/commands/docs/types.js.map +1 -0
  95. package/dist/cli/commands/doctor.d.ts +16 -0
  96. package/dist/cli/commands/doctor.d.ts.map +1 -0
  97. package/dist/cli/commands/doctor.js +322 -0
  98. package/dist/cli/commands/doctor.js.map +1 -0
  99. package/dist/cli/commands/doctor.types.d.ts +177 -0
  100. package/dist/cli/commands/doctor.types.d.ts.map +1 -0
  101. package/dist/cli/commands/doctor.types.js +172 -0
  102. package/dist/cli/commands/doctor.types.js.map +1 -0
  103. package/dist/cli/commands/index.d.ts +18 -0
  104. package/dist/cli/commands/index.d.ts.map +1 -0
  105. package/dist/cli/commands/index.js +18 -0
  106. package/dist/cli/commands/index.js.map +1 -0
  107. package/dist/cli/commands/init.d.ts +17 -0
  108. package/dist/cli/commands/init.d.ts.map +1 -0
  109. package/dist/cli/commands/init.js +326 -0
  110. package/dist/cli/commands/init.js.map +1 -0
  111. package/dist/cli/commands/init.types.d.ts +141 -0
  112. package/dist/cli/commands/init.types.d.ts.map +1 -0
  113. package/dist/cli/commands/init.types.js +24 -0
  114. package/dist/cli/commands/init.types.js.map +1 -0
  115. package/dist/cli/commands/login.d.ts +40 -0
  116. package/dist/cli/commands/login.d.ts.map +1 -0
  117. package/dist/cli/commands/login.js +174 -0
  118. package/dist/cli/commands/login.js.map +1 -0
  119. package/dist/cli/commands/next.d.ts +16 -0
  120. package/dist/cli/commands/next.d.ts.map +1 -0
  121. package/dist/cli/commands/next.js +279 -0
  122. package/dist/cli/commands/next.js.map +1 -0
  123. package/dist/cli/commands/next.types.d.ts +191 -0
  124. package/dist/cli/commands/next.types.d.ts.map +1 -0
  125. package/dist/cli/commands/next.types.js +129 -0
  126. package/dist/cli/commands/next.types.js.map +1 -0
  127. package/dist/cli/commands/projects.d.ts +16 -0
  128. package/dist/cli/commands/projects.d.ts.map +1 -0
  129. package/dist/cli/commands/projects.js +149 -0
  130. package/dist/cli/commands/projects.js.map +1 -0
  131. package/dist/cli/commands/projects.types.d.ts +81 -0
  132. package/dist/cli/commands/projects.types.d.ts.map +1 -0
  133. package/dist/cli/commands/projects.types.js +35 -0
  134. package/dist/cli/commands/projects.types.js.map +1 -0
  135. package/dist/cli/commands/review/display.d.ts +33 -0
  136. package/dist/cli/commands/review/display.d.ts.map +1 -0
  137. package/dist/cli/commands/review/display.js +159 -0
  138. package/dist/cli/commands/review/display.js.map +1 -0
  139. package/dist/cli/commands/review/epic-review.d.ts +13 -0
  140. package/dist/cli/commands/review/epic-review.d.ts.map +1 -0
  141. package/dist/cli/commands/review/epic-review.js +69 -0
  142. package/dist/cli/commands/review/epic-review.js.map +1 -0
  143. package/dist/cli/commands/review/index.d.ts +13 -0
  144. package/dist/cli/commands/review/index.d.ts.map +1 -0
  145. package/dist/cli/commands/review/index.js +17 -0
  146. package/dist/cli/commands/review/index.js.map +1 -0
  147. package/dist/cli/commands/review/report.d.ts +31 -0
  148. package/dist/cli/commands/review/report.d.ts.map +1 -0
  149. package/dist/cli/commands/review/report.js +146 -0
  150. package/dist/cli/commands/review/report.js.map +1 -0
  151. package/dist/cli/commands/review/review.d.ts +17 -0
  152. package/dist/cli/commands/review/review.d.ts.map +1 -0
  153. package/dist/cli/commands/review/review.js +129 -0
  154. package/dist/cli/commands/review/review.js.map +1 -0
  155. package/dist/cli/commands/review/spec-review.d.ts +13 -0
  156. package/dist/cli/commands/review/spec-review.d.ts.map +1 -0
  157. package/dist/cli/commands/review/spec-review.js +65 -0
  158. package/dist/cli/commands/review/spec-review.js.map +1 -0
  159. package/dist/cli/commands/review/ticket-review.d.ts +37 -0
  160. package/dist/cli/commands/review/ticket-review.d.ts.map +1 -0
  161. package/dist/cli/commands/review/ticket-review.js +194 -0
  162. package/dist/cli/commands/review/ticket-review.js.map +1 -0
  163. package/dist/cli/commands/review/types.d.ts +232 -0
  164. package/dist/cli/commands/review/types.d.ts.map +1 -0
  165. package/dist/cli/commands/review/types.js +85 -0
  166. package/dist/cli/commands/review/types.js.map +1 -0
  167. package/dist/cli/commands/scaffold/display.d.ts +27 -0
  168. package/dist/cli/commands/scaffold/display.d.ts.map +1 -0
  169. package/dist/cli/commands/scaffold/display.js +90 -0
  170. package/dist/cli/commands/scaffold/display.js.map +1 -0
  171. package/dist/cli/commands/scaffold/index.d.ts +12 -0
  172. package/dist/cli/commands/scaffold/index.d.ts.map +1 -0
  173. package/dist/cli/commands/scaffold/index.js +12 -0
  174. package/dist/cli/commands/scaffold/index.js.map +1 -0
  175. package/dist/cli/commands/scaffold/register.d.ts +11 -0
  176. package/dist/cli/commands/scaffold/register.d.ts.map +1 -0
  177. package/dist/cli/commands/scaffold/register.js +25 -0
  178. package/dist/cli/commands/scaffold/register.js.map +1 -0
  179. package/dist/cli/commands/scaffold/scaffold.d.ts +11 -0
  180. package/dist/cli/commands/scaffold/scaffold.d.ts.map +1 -0
  181. package/dist/cli/commands/scaffold/scaffold.js +111 -0
  182. package/dist/cli/commands/scaffold/scaffold.js.map +1 -0
  183. package/dist/cli/commands/scaffold/targets.d.ts +31 -0
  184. package/dist/cli/commands/scaffold/targets.d.ts.map +1 -0
  185. package/dist/cli/commands/scaffold/targets.js +84 -0
  186. package/dist/cli/commands/scaffold/targets.js.map +1 -0
  187. package/dist/cli/commands/scaffold/types.d.ts +88 -0
  188. package/dist/cli/commands/scaffold/types.d.ts.map +1 -0
  189. package/dist/cli/commands/scaffold/types.js +21 -0
  190. package/dist/cli/commands/scaffold/types.js.map +1 -0
  191. package/dist/cli/commands/scaffold/utils.d.ts +31 -0
  192. package/dist/cli/commands/scaffold/utils.d.ts.map +1 -0
  193. package/dist/cli/commands/scaffold/utils.js +71 -0
  194. package/dist/cli/commands/scaffold/utils.js.map +1 -0
  195. package/dist/cli/commands/session/display.d.ts +40 -0
  196. package/dist/cli/commands/session/display.d.ts.map +1 -0
  197. package/dist/cli/commands/session/display.js +114 -0
  198. package/dist/cli/commands/session/display.js.map +1 -0
  199. package/dist/cli/commands/session/end.d.ts +12 -0
  200. package/dist/cli/commands/session/end.d.ts.map +1 -0
  201. package/dist/cli/commands/session/end.js +165 -0
  202. package/dist/cli/commands/session/end.js.map +1 -0
  203. package/dist/cli/commands/session/index.d.ts +13 -0
  204. package/dist/cli/commands/session/index.d.ts.map +1 -0
  205. package/dist/cli/commands/session/index.js +13 -0
  206. package/dist/cli/commands/session/index.js.map +1 -0
  207. package/dist/cli/commands/session/register.d.ts +12 -0
  208. package/dist/cli/commands/session/register.d.ts.map +1 -0
  209. package/dist/cli/commands/session/register.js +87 -0
  210. package/dist/cli/commands/session/register.js.map +1 -0
  211. package/dist/cli/commands/session/start.d.ts +12 -0
  212. package/dist/cli/commands/session/start.d.ts.map +1 -0
  213. package/dist/cli/commands/session/start.js +189 -0
  214. package/dist/cli/commands/session/start.js.map +1 -0
  215. package/dist/cli/commands/session/status.d.ts +12 -0
  216. package/dist/cli/commands/session/status.d.ts.map +1 -0
  217. package/dist/cli/commands/session/status.js +93 -0
  218. package/dist/cli/commands/session/status.js.map +1 -0
  219. package/dist/cli/commands/session/types.d.ts +179 -0
  220. package/dist/cli/commands/session/types.d.ts.map +1 -0
  221. package/dist/cli/commands/session/types.js +8 -0
  222. package/dist/cli/commands/session/types.js.map +1 -0
  223. package/dist/cli/commands/session/utils.d.ts +24 -0
  224. package/dist/cli/commands/session/utils.d.ts.map +1 -0
  225. package/dist/cli/commands/session/utils.js +72 -0
  226. package/dist/cli/commands/session/utils.js.map +1 -0
  227. package/dist/cli/commands/specs.d.ts +16 -0
  228. package/dist/cli/commands/specs.d.ts.map +1 -0
  229. package/dist/cli/commands/specs.js +212 -0
  230. package/dist/cli/commands/specs.js.map +1 -0
  231. package/dist/cli/commands/specs.types.d.ts +120 -0
  232. package/dist/cli/commands/specs.types.d.ts.map +1 -0
  233. package/dist/cli/commands/specs.types.js +75 -0
  234. package/dist/cli/commands/specs.types.js.map +1 -0
  235. package/dist/cli/commands/status.d.ts +17 -0
  236. package/dist/cli/commands/status.d.ts.map +1 -0
  237. package/dist/cli/commands/status.js +271 -0
  238. package/dist/cli/commands/status.js.map +1 -0
  239. package/dist/cli/commands/status.types.d.ts +382 -0
  240. package/dist/cli/commands/status.types.d.ts.map +1 -0
  241. package/dist/cli/commands/status.types.js +166 -0
  242. package/dist/cli/commands/status.types.js.map +1 -0
  243. package/dist/cli/commands/switch.d.ts +18 -0
  244. package/dist/cli/commands/switch.d.ts.map +1 -0
  245. package/dist/cli/commands/switch.js +181 -0
  246. package/dist/cli/commands/switch.js.map +1 -0
  247. package/dist/cli/commands/switch.types.d.ts +123 -0
  248. package/dist/cli/commands/switch.types.d.ts.map +1 -0
  249. package/dist/cli/commands/switch.types.js +65 -0
  250. package/dist/cli/commands/switch.types.js.map +1 -0
  251. package/dist/cli/commands/ticket/command.d.ts +14 -0
  252. package/dist/cli/commands/ticket/command.d.ts.map +1 -0
  253. package/dist/cli/commands/ticket/command.js +141 -0
  254. package/dist/cli/commands/ticket/command.js.map +1 -0
  255. package/dist/cli/commands/ticket/display.d.ts +56 -0
  256. package/dist/cli/commands/ticket/display.d.ts.map +1 -0
  257. package/dist/cli/commands/ticket/display.js +205 -0
  258. package/dist/cli/commands/ticket/display.js.map +1 -0
  259. package/dist/cli/commands/ticket/index.d.ts +11 -0
  260. package/dist/cli/commands/ticket/index.d.ts.map +1 -0
  261. package/dist/cli/commands/ticket/index.js +11 -0
  262. package/dist/cli/commands/ticket/index.js.map +1 -0
  263. package/dist/cli/commands/ticket/register.d.ts +11 -0
  264. package/dist/cli/commands/ticket/register.d.ts.map +1 -0
  265. package/dist/cli/commands/ticket/register.js +39 -0
  266. package/dist/cli/commands/ticket/register.js.map +1 -0
  267. package/dist/cli/commands/ticket/resolver.d.ts +16 -0
  268. package/dist/cli/commands/ticket/resolver.d.ts.map +1 -0
  269. package/dist/cli/commands/ticket/resolver.js +35 -0
  270. package/dist/cli/commands/ticket/resolver.js.map +1 -0
  271. package/dist/cli/commands/ticket/types.d.ts +157 -0
  272. package/dist/cli/commands/ticket/types.d.ts.map +1 -0
  273. package/dist/cli/commands/ticket/types.js +8 -0
  274. package/dist/cli/commands/ticket/types.js.map +1 -0
  275. package/dist/cli/commands/tickets.d.ts +16 -0
  276. package/dist/cli/commands/tickets.d.ts.map +1 -0
  277. package/dist/cli/commands/tickets.js +271 -0
  278. package/dist/cli/commands/tickets.js.map +1 -0
  279. package/dist/cli/commands/tickets.types.d.ts +202 -0
  280. package/dist/cli/commands/tickets.types.d.ts.map +1 -0
  281. package/dist/cli/commands/tickets.types.js +138 -0
  282. package/dist/cli/commands/tickets.types.js.map +1 -0
  283. package/dist/cli/config/index.d.ts +11 -0
  284. package/dist/cli/config/index.d.ts.map +1 -0
  285. package/dist/cli/config/index.js +11 -0
  286. package/dist/cli/config/index.js.map +1 -0
  287. package/dist/cli/config/loader.d.ts +98 -0
  288. package/dist/cli/config/loader.d.ts.map +1 -0
  289. package/dist/cli/config/loader.js +237 -0
  290. package/dist/cli/config/loader.js.map +1 -0
  291. package/dist/cli/config/paths.d.ts +96 -0
  292. package/dist/cli/config/paths.d.ts.map +1 -0
  293. package/dist/cli/config/paths.js +140 -0
  294. package/dist/cli/config/paths.js.map +1 -0
  295. package/dist/cli/config/types.d.ts +148 -0
  296. package/dist/cli/config/types.d.ts.map +1 -0
  297. package/dist/cli/config/types.js +34 -0
  298. package/dist/cli/config/types.js.map +1 -0
  299. package/dist/cli/config/writer.d.ts +171 -0
  300. package/dist/cli/config/writer.d.ts.map +1 -0
  301. package/dist/cli/config/writer.js +312 -0
  302. package/dist/cli/config/writer.js.map +1 -0
  303. package/dist/cli/index.d.ts +30 -0
  304. package/dist/cli/index.d.ts.map +1 -0
  305. package/dist/cli/index.js +183 -0
  306. package/dist/cli/index.js.map +1 -0
  307. package/dist/cli/middleware/auth-guard.d.ts +107 -0
  308. package/dist/cli/middleware/auth-guard.d.ts.map +1 -0
  309. package/dist/cli/middleware/auth-guard.js +190 -0
  310. package/dist/cli/middleware/auth-guard.js.map +1 -0
  311. package/dist/cli/middleware/error-handler.d.ts +133 -0
  312. package/dist/cli/middleware/error-handler.d.ts.map +1 -0
  313. package/dist/cli/middleware/error-handler.js +209 -0
  314. package/dist/cli/middleware/error-handler.js.map +1 -0
  315. package/dist/cli/middleware/index.d.ts +6 -0
  316. package/dist/cli/middleware/index.d.ts.map +1 -0
  317. package/dist/cli/middleware/index.js +6 -0
  318. package/dist/cli/middleware/index.js.map +1 -0
  319. package/dist/cli/templates/commands.d.ts +20 -0
  320. package/dist/cli/templates/commands.d.ts.map +1 -0
  321. package/dist/cli/templates/commands.js +174 -0
  322. package/dist/cli/templates/commands.js.map +1 -0
  323. package/dist/cli/templates/content/sf-autonomous.d.ts +7 -0
  324. package/dist/cli/templates/content/sf-autonomous.d.ts.map +1 -0
  325. package/dist/cli/templates/content/sf-autonomous.js +78 -0
  326. package/dist/cli/templates/content/sf-autonomous.js.map +1 -0
  327. package/dist/cli/templates/content/sf-blockers.d.ts +7 -0
  328. package/dist/cli/templates/content/sf-blockers.d.ts.map +1 -0
  329. package/dist/cli/templates/content/sf-blockers.js +68 -0
  330. package/dist/cli/templates/content/sf-blockers.js.map +1 -0
  331. package/dist/cli/templates/content/sf-commit.d.ts +7 -0
  332. package/dist/cli/templates/content/sf-commit.d.ts.map +1 -0
  333. package/dist/cli/templates/content/sf-commit.js +78 -0
  334. package/dist/cli/templates/content/sf-commit.js.map +1 -0
  335. package/dist/cli/templates/content/sf-context.d.ts +7 -0
  336. package/dist/cli/templates/content/sf-context.d.ts.map +1 -0
  337. package/dist/cli/templates/content/sf-context.js +64 -0
  338. package/dist/cli/templates/content/sf-context.js.map +1 -0
  339. package/dist/cli/templates/content/sf-create-epics.d.ts +7 -0
  340. package/dist/cli/templates/content/sf-create-epics.d.ts.map +1 -0
  341. package/dist/cli/templates/content/sf-create-epics.js +70 -0
  342. package/dist/cli/templates/content/sf-create-epics.js.map +1 -0
  343. package/dist/cli/templates/content/sf-create-spec.d.ts +7 -0
  344. package/dist/cli/templates/content/sf-create-spec.d.ts.map +1 -0
  345. package/dist/cli/templates/content/sf-create-spec.js +67 -0
  346. package/dist/cli/templates/content/sf-create-spec.js.map +1 -0
  347. package/dist/cli/templates/content/sf-create-tickets.d.ts +7 -0
  348. package/dist/cli/templates/content/sf-create-tickets.d.ts.map +1 -0
  349. package/dist/cli/templates/content/sf-create-tickets.js +76 -0
  350. package/dist/cli/templates/content/sf-create-tickets.js.map +1 -0
  351. package/dist/cli/templates/content/sf-epic.d.ts +7 -0
  352. package/dist/cli/templates/content/sf-epic.d.ts.map +1 -0
  353. package/dist/cli/templates/content/sf-epic.js +69 -0
  354. package/dist/cli/templates/content/sf-epic.js.map +1 -0
  355. package/dist/cli/templates/content/sf-help.d.ts +7 -0
  356. package/dist/cli/templates/content/sf-help.d.ts.map +1 -0
  357. package/dist/cli/templates/content/sf-help.js +61 -0
  358. package/dist/cli/templates/content/sf-help.js.map +1 -0
  359. package/dist/cli/templates/content/sf-import.d.ts +7 -0
  360. package/dist/cli/templates/content/sf-import.d.ts.map +1 -0
  361. package/dist/cli/templates/content/sf-import.js +88 -0
  362. package/dist/cli/templates/content/sf-import.js.map +1 -0
  363. package/dist/cli/templates/content/sf-init.d.ts +7 -0
  364. package/dist/cli/templates/content/sf-init.d.ts.map +1 -0
  365. package/dist/cli/templates/content/sf-init.js +61 -0
  366. package/dist/cli/templates/content/sf-init.js.map +1 -0
  367. package/dist/cli/templates/content/sf-next.d.ts +7 -0
  368. package/dist/cli/templates/content/sf-next.d.ts.map +1 -0
  369. package/dist/cli/templates/content/sf-next.js +67 -0
  370. package/dist/cli/templates/content/sf-next.js.map +1 -0
  371. package/dist/cli/templates/content/sf-reset.d.ts +7 -0
  372. package/dist/cli/templates/content/sf-reset.d.ts.map +1 -0
  373. package/dist/cli/templates/content/sf-reset.js +78 -0
  374. package/dist/cli/templates/content/sf-reset.js.map +1 -0
  375. package/dist/cli/templates/content/sf-review.d.ts +7 -0
  376. package/dist/cli/templates/content/sf-review.d.ts.map +1 -0
  377. package/dist/cli/templates/content/sf-review.js +67 -0
  378. package/dist/cli/templates/content/sf-review.js.map +1 -0
  379. package/dist/cli/templates/content/sf-search.d.ts +7 -0
  380. package/dist/cli/templates/content/sf-search.d.ts.map +1 -0
  381. package/dist/cli/templates/content/sf-search.js +64 -0
  382. package/dist/cli/templates/content/sf-search.js.map +1 -0
  383. package/dist/cli/templates/content/sf-status.d.ts +7 -0
  384. package/dist/cli/templates/content/sf-status.d.ts.map +1 -0
  385. package/dist/cli/templates/content/sf-status.js +67 -0
  386. package/dist/cli/templates/content/sf-status.js.map +1 -0
  387. package/dist/cli/templates/content/sf-ticket.d.ts +7 -0
  388. package/dist/cli/templates/content/sf-ticket.d.ts.map +1 -0
  389. package/dist/cli/templates/content/sf-ticket.js +76 -0
  390. package/dist/cli/templates/content/sf-ticket.js.map +1 -0
  391. package/dist/cli/templates/content/sf-validate.d.ts +7 -0
  392. package/dist/cli/templates/content/sf-validate.d.ts.map +1 -0
  393. package/dist/cli/templates/content/sf-validate.js +78 -0
  394. package/dist/cli/templates/content/sf-validate.js.map +1 -0
  395. package/dist/cli/templates/index.d.ts +7 -0
  396. package/dist/cli/templates/index.d.ts.map +1 -0
  397. package/dist/cli/templates/index.js +7 -0
  398. package/dist/cli/templates/index.js.map +1 -0
  399. package/dist/cli/ui/colors.d.ts +76 -0
  400. package/dist/cli/ui/colors.d.ts.map +1 -0
  401. package/dist/cli/ui/colors.js +81 -0
  402. package/dist/cli/ui/colors.js.map +1 -0
  403. package/dist/cli/ui/dashboard.d.ts +54 -0
  404. package/dist/cli/ui/dashboard.d.ts.map +1 -0
  405. package/dist/cli/ui/dashboard.js +339 -0
  406. package/dist/cli/ui/dashboard.js.map +1 -0
  407. package/dist/cli/ui/index.d.ts +7 -0
  408. package/dist/cli/ui/index.d.ts.map +1 -0
  409. package/dist/cli/ui/index.js +7 -0
  410. package/dist/cli/ui/index.js.map +1 -0
  411. package/dist/cli/ui/output.d.ts +117 -0
  412. package/dist/cli/ui/output.d.ts.map +1 -0
  413. package/dist/cli/ui/output.js +172 -0
  414. package/dist/cli/ui/output.js.map +1 -0
  415. package/dist/cli/ui/spinner.d.ts +105 -0
  416. package/dist/cli/ui/spinner.d.ts.map +1 -0
  417. package/dist/cli/ui/spinner.js +148 -0
  418. package/dist/cli/ui/spinner.js.map +1 -0
  419. package/dist/cli/ui/time.d.ts +54 -0
  420. package/dist/cli/ui/time.d.ts.map +1 -0
  421. package/dist/cli/ui/time.js +173 -0
  422. package/dist/cli/ui/time.js.map +1 -0
  423. package/dist/lib/format.d.ts +4 -4
  424. package/dist/lib/format.js +5 -5
  425. package/dist/server.js +8 -8
  426. package/dist/server.js.map +1 -1
  427. package/dist/tools/core/session.js +6 -6
  428. package/dist/tools/core/session.js.map +1 -1
  429. package/dist/tools/index.js +9 -9
  430. package/dist/tools/index.js.map +1 -1
  431. package/dist/validation/index.js +1 -1
  432. package/dist/validation/index.js.map +1 -1
  433. package/package.json +9 -2
@@ -0,0 +1,174 @@
1
+ /**
2
+ * Command Templates Module
3
+ *
4
+ * Defines all SpecForge slash commands with their full markdown content
5
+ * for scaffolding to AI CLI tools.
6
+ */
7
+ // Import all command content
8
+ import { SF_INIT_CONTENT } from './content/sf-init.js';
9
+ import { SF_STATUS_CONTENT } from './content/sf-status.js';
10
+ import { SF_NEXT_CONTENT } from './content/sf-next.js';
11
+ import { SF_TICKET_IMPLEMENTATION_CONTENT } from './content/sf-ticket.js';
12
+ import { SF_RUN_AUTONOMOUS_CONTENT } from './content/sf-autonomous.js';
13
+ import { SF_REVIEW_CONTENT } from './content/sf-review.js';
14
+ import { SF_VALIDATE_CONTENT } from './content/sf-validate.js';
15
+ import { SF_RESET_CONTENT } from './content/sf-reset.js';
16
+ import { SF_ANALYZE_BLOCKERS_CONTENT } from './content/sf-blockers.js';
17
+ import { SF_IMPORT_PLAN_CONTENT } from './content/sf-import.js';
18
+ import { SF_CREATE_SPEC_CONTENT } from './content/sf-create-spec.js';
19
+ import { SF_CREATE_EPICS_CONTENT } from './content/sf-create-epics.js';
20
+ import { SF_CREATE_TICKETS_CONTENT } from './content/sf-create-tickets.js';
21
+ import { SF_CONTEXT_CONTENT } from './content/sf-context.js';
22
+ import { SF_SEARCH_CONTENT } from './content/sf-search.js';
23
+ import { SF_EPIC_CONTENT } from './content/sf-epic.js';
24
+ import { SF_COMMIT_CONTENT } from './content/sf-commit.js';
25
+ import { SF_HELP_CONTENT } from './content/sf-help.js';
26
+ /**
27
+ * Get all command templates
28
+ */
29
+ export function getCommandTemplates() {
30
+ return [
31
+ // Setup
32
+ {
33
+ name: 'sf-init',
34
+ description: 'Initialize ticket system for a specification',
35
+ argumentHint: '[specification-id]',
36
+ content: SF_INIT_CONTENT,
37
+ category: 'Setup',
38
+ },
39
+ {
40
+ name: 'sf-context',
41
+ description: 'View or switch working context',
42
+ argumentHint: '[project-or-spec-id]',
43
+ content: SF_CONTEXT_CONTENT,
44
+ category: 'Setup',
45
+ },
46
+ // Status
47
+ {
48
+ name: 'sf-status',
49
+ description: 'Display implementation status with consolidated tools',
50
+ argumentHint: '[specification-id]',
51
+ content: SF_STATUS_CONTENT,
52
+ category: 'Status',
53
+ },
54
+ {
55
+ name: 'sf-validate',
56
+ description: 'Validate ticket system health',
57
+ argumentHint: '[specification-id]',
58
+ content: SF_VALIDATE_CONTENT,
59
+ category: 'Status',
60
+ },
61
+ {
62
+ name: 'sf-analyze-blockers',
63
+ description: 'Analyze blockers and dependency bottlenecks',
64
+ content: SF_ANALYZE_BLOCKERS_CONTENT,
65
+ category: 'Status',
66
+ },
67
+ // Implementation
68
+ {
69
+ name: 'sf-next',
70
+ description: 'Quick start the next ready ticket',
71
+ content: SF_NEXT_CONTENT,
72
+ category: 'Implementation',
73
+ },
74
+ {
75
+ name: 'sf-ticket-implementation',
76
+ description: 'Implement a ticket with streamlined workflow',
77
+ argumentHint: '[ticket-id]',
78
+ content: SF_TICKET_IMPLEMENTATION_CONTENT,
79
+ category: 'Implementation',
80
+ },
81
+ {
82
+ name: 'sf-run-autonomous',
83
+ description: 'Run autonomous implementation for multiple tickets',
84
+ argumentHint: '[max-tickets]',
85
+ content: SF_RUN_AUTONOMOUS_CONTENT,
86
+ category: 'Implementation',
87
+ },
88
+ // Planning
89
+ {
90
+ name: 'sf-import-plan',
91
+ description: 'Transform a plan into a complete SpecForge specification',
92
+ argumentHint: '<plan-file-path>',
93
+ content: SF_IMPORT_PLAN_CONTENT,
94
+ category: 'Planning',
95
+ },
96
+ {
97
+ name: 'sf-create-spec',
98
+ description: 'Create a SpecForge specification with patterns',
99
+ argumentHint: '<plan-file-path>',
100
+ content: SF_CREATE_SPEC_CONTENT,
101
+ category: 'Planning',
102
+ },
103
+ {
104
+ name: 'sf-create-epics',
105
+ description: 'Create epics with epic-level patterns',
106
+ argumentHint: '<specification-id>',
107
+ content: SF_CREATE_EPICS_CONTENT,
108
+ category: 'Planning',
109
+ },
110
+ {
111
+ name: 'sf-create-tickets',
112
+ description: 'Create detailed tickets with full implementation context',
113
+ argumentHint: '<epic-id>',
114
+ content: SF_CREATE_TICKETS_CONTENT,
115
+ category: 'Planning',
116
+ },
117
+ // Review
118
+ {
119
+ name: 'sf-review',
120
+ description: 'Review accomplishments and progress analysis',
121
+ argumentHint: '[specification-id]',
122
+ content: SF_REVIEW_CONTENT,
123
+ category: 'Review',
124
+ },
125
+ {
126
+ name: 'sf-search',
127
+ description: 'Search tickets by text, tags, or filters',
128
+ argumentHint: '<query>',
129
+ content: SF_SEARCH_CONTENT,
130
+ category: 'Review',
131
+ },
132
+ {
133
+ name: 'sf-epic',
134
+ description: 'View epic details and progress',
135
+ argumentHint: '<epic-id>',
136
+ content: SF_EPIC_CONTENT,
137
+ category: 'Review',
138
+ },
139
+ // Utilities
140
+ {
141
+ name: 'sf-reset',
142
+ description: 'Reset ticket statuses with dependency awareness',
143
+ argumentHint: '[specification-id]',
144
+ content: SF_RESET_CONTENT,
145
+ category: 'Utilities',
146
+ },
147
+ {
148
+ name: 'sf-commit',
149
+ description: 'Commit changes with SpecForge ticket metadata',
150
+ argumentHint: '[ticket-id]',
151
+ content: SF_COMMIT_CONTENT,
152
+ category: 'Utilities',
153
+ },
154
+ {
155
+ name: 'sf-help',
156
+ description: 'Quick reference for all SpecForge commands',
157
+ content: SF_HELP_CONTENT,
158
+ category: 'Utilities',
159
+ },
160
+ ];
161
+ }
162
+ /**
163
+ * Get a specific command template by name
164
+ */
165
+ export function getCommandTemplate(name) {
166
+ return getCommandTemplates().find(t => t.name === name);
167
+ }
168
+ /**
169
+ * Get command templates by category
170
+ */
171
+ export function getCommandsByCategory(category) {
172
+ return getCommandTemplates().filter(t => t.category === category);
173
+ }
174
+ //# sourceMappingURL=commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../src/cli/templates/commands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * SF-Run-Autonomous Command Template
3
+ *
4
+ * Template for running autonomous implementation for multiple tickets.
5
+ */
6
+ export declare const SF_RUN_AUTONOMOUS_CONTENT = "# Run Autonomous Implementation (SpecForge)\n\nExecute autonomous batch implementation of ready tickets.\n\n## Arguments\n- `$ARGUMENTS` - Optional: Maximum number of tickets to implement (default: 5)\n\n## Task\n\n### 1. Get Ready Tickets\n\n**MCP Calls:**\n```typescript\nget_working_context()\nlist_tickets({\n specificationId,\n status: 'ready',\n sortBy: 'priority'\n})\n```\n\n### 2. For Each Ticket (up to max)\n\n**MCP Calls:**\n```typescript\n// Set context\nset_working_context({ ticketId: ticket.id })\n\n// Update status\nupdate_ticket({\n ticketId: ticket.id,\n status: 'in_progress'\n})\n\n// Get full details\nget_ticket(ticket.id)\n\n// Implement ticket\n// ... implementation logic ...\n\n// Mark complete\nupdate_ticket({\n ticketId: ticket.id,\n status: 'done'\n})\n```\n\n### 3. Display Summary\n\n**Output:**\n```\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\nAUTONOMOUS IMPLEMENTATION COMPLETE\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\nCompleted: {completedCount}/{attemptedCount}\nDuration: {duration}\n\nCOMPLETED TICKETS\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\u2713 E{n}-T{m} \u2502 {title}\n\nFAILED TICKETS\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\u2717 E{n}-T{m} \u2502 {title} \u2502 {reason}\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n```\n\n## Notes\n- Implements tickets in priority order\n- Stops on errors or when max reached\n- Use /sf-review to see detailed results\n";
7
+ //# sourceMappingURL=sf-autonomous.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sf-autonomous.d.ts","sourceRoot":"","sources":["../../../../src/cli/templates/content/sf-autonomous.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,yBAAyB,s1FAuErC,CAAC"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * SF-Run-Autonomous Command Template
3
+ *
4
+ * Template for running autonomous implementation for multiple tickets.
5
+ */
6
+ export const SF_RUN_AUTONOMOUS_CONTENT = `# Run Autonomous Implementation (SpecForge)
7
+
8
+ Execute autonomous batch implementation of ready tickets.
9
+
10
+ ## Arguments
11
+ - \`$ARGUMENTS\` - Optional: Maximum number of tickets to implement (default: 5)
12
+
13
+ ## Task
14
+
15
+ ### 1. Get Ready Tickets
16
+
17
+ **MCP Calls:**
18
+ \`\`\`typescript
19
+ get_working_context()
20
+ list_tickets({
21
+ specificationId,
22
+ status: 'ready',
23
+ sortBy: 'priority'
24
+ })
25
+ \`\`\`
26
+
27
+ ### 2. For Each Ticket (up to max)
28
+
29
+ **MCP Calls:**
30
+ \`\`\`typescript
31
+ // Set context
32
+ set_working_context({ ticketId: ticket.id })
33
+
34
+ // Update status
35
+ update_ticket({
36
+ ticketId: ticket.id,
37
+ status: 'in_progress'
38
+ })
39
+
40
+ // Get full details
41
+ get_ticket(ticket.id)
42
+
43
+ // Implement ticket
44
+ // ... implementation logic ...
45
+
46
+ // Mark complete
47
+ update_ticket({
48
+ ticketId: ticket.id,
49
+ status: 'done'
50
+ })
51
+ \`\`\`
52
+
53
+ ### 3. Display Summary
54
+
55
+ **Output:**
56
+ \`\`\`
57
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
58
+ AUTONOMOUS IMPLEMENTATION COMPLETE
59
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
60
+ Completed: {completedCount}/{attemptedCount}
61
+ Duration: {duration}
62
+
63
+ COMPLETED TICKETS
64
+ ─────────────────────────────────────────────────────────────────
65
+ ✓ E{n}-T{m} │ {title}
66
+
67
+ FAILED TICKETS
68
+ ─────────────────────────────────────────────────────────────────
69
+ ✗ E{n}-T{m} │ {title} │ {reason}
70
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
71
+ \`\`\`
72
+
73
+ ## Notes
74
+ - Implements tickets in priority order
75
+ - Stops on errors or when max reached
76
+ - Use /sf-review to see detailed results
77
+ `;
78
+ //# sourceMappingURL=sf-autonomous.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sf-autonomous.js","sourceRoot":"","sources":["../../../../src/cli/templates/content/sf-autonomous.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuExC,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * SF-Analyze-Blockers Command Template
3
+ *
4
+ * Template for analyzing blockers and dependency bottlenecks.
5
+ */
6
+ export declare const SF_ANALYZE_BLOCKERS_CONTENT = "# Analyze Blockers (SpecForge)\n\nAnalyze dependency bottlenecks and identify critical path tickets.\n\n## Task\n\n### 1. Get Implementation Data\n\n**MCP Calls:**\n```typescript\nget_working_context()\nget_specification(specificationId)\nlist_epics({ specificationId })\nlist_tickets({ specificationId })\n```\n\n### 2. Analyze Dependencies\n\n**Logic:**\n- Build dependency graph\n- Calculate blocking relationships\n- Identify critical path\n- Find bottleneck tickets\n\n### 3. Display Analysis Results\n\n**Output:**\n```\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\nBLOCKER ANALYSIS\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\nSpecification: {title}\n\nCRITICAL PATH\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nLength: {pathLength} tickets\nImpact: {blockedCount} tickets blocked\n\nE{n}-T{m} \u2192 E{n}-T{m} \u2192 E{n}-T{m} \u2192 ...\n\nHIGH-IMPACT BLOCKERS\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nE{n}-T{m} \u2502 {title} \u2502 Blocking {count} tickets\n \u21B3 E{n}-T{m}, E{n}-T{m}, E{n}-T{m}\n\nBLOCKED TICKETS\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nE{n}-T{m} \u2502 {title}\n \u26A0 Waiting on: E{n}-T{m} ({status})\n\nRECOMMENDATIONS\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\u2022 Prioritize E{n}-T{m} to unblock {count} tickets\n\u2022 Review dependency chain for E{n}-T{m}\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n```\n\n## Notes\n- Identifies tickets blocking the most work\n- Shows critical path through implementation\n- Provides actionable recommendations\n";
7
+ //# sourceMappingURL=sf-blockers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sf-blockers.d.ts","sourceRoot":"","sources":["../../../../src/cli/templates/content/sf-blockers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,2BAA2B,ylHA6DvC,CAAC"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * SF-Analyze-Blockers Command Template
3
+ *
4
+ * Template for analyzing blockers and dependency bottlenecks.
5
+ */
6
+ export const SF_ANALYZE_BLOCKERS_CONTENT = `# Analyze Blockers (SpecForge)
7
+
8
+ Analyze dependency bottlenecks and identify critical path tickets.
9
+
10
+ ## Task
11
+
12
+ ### 1. Get Implementation Data
13
+
14
+ **MCP Calls:**
15
+ \`\`\`typescript
16
+ get_working_context()
17
+ get_specification(specificationId)
18
+ list_epics({ specificationId })
19
+ list_tickets({ specificationId })
20
+ \`\`\`
21
+
22
+ ### 2. Analyze Dependencies
23
+
24
+ **Logic:**
25
+ - Build dependency graph
26
+ - Calculate blocking relationships
27
+ - Identify critical path
28
+ - Find bottleneck tickets
29
+
30
+ ### 3. Display Analysis Results
31
+
32
+ **Output:**
33
+ \`\`\`
34
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
35
+ BLOCKER ANALYSIS
36
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
37
+ Specification: {title}
38
+
39
+ CRITICAL PATH
40
+ ─────────────────────────────────────────────────────────────────
41
+ Length: {pathLength} tickets
42
+ Impact: {blockedCount} tickets blocked
43
+
44
+ E{n}-T{m} → E{n}-T{m} → E{n}-T{m} → ...
45
+
46
+ HIGH-IMPACT BLOCKERS
47
+ ─────────────────────────────────────────────────────────────────
48
+ E{n}-T{m} │ {title} │ Blocking {count} tickets
49
+ ↳ E{n}-T{m}, E{n}-T{m}, E{n}-T{m}
50
+
51
+ BLOCKED TICKETS
52
+ ─────────────────────────────────────────────────────────────────
53
+ E{n}-T{m} │ {title}
54
+ ⚠ Waiting on: E{n}-T{m} ({status})
55
+
56
+ RECOMMENDATIONS
57
+ ─────────────────────────────────────────────────────────────────
58
+ • Prioritize E{n}-T{m} to unblock {count} tickets
59
+ • Review dependency chain for E{n}-T{m}
60
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
61
+ \`\`\`
62
+
63
+ ## Notes
64
+ - Identifies tickets blocking the most work
65
+ - Shows critical path through implementation
66
+ - Provides actionable recommendations
67
+ `;
68
+ //# sourceMappingURL=sf-blockers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sf-blockers.js","sourceRoot":"","sources":["../../../../src/cli/templates/content/sf-blockers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,2BAA2B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6D1C,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * SF-Commit Command Template
3
+ *
4
+ * Template for committing changes with SpecForge ticket metadata.
5
+ */
6
+ export declare const SF_COMMIT_CONTENT = "# Commit Changes (SpecForge)\n\nCreate a git commit with SpecForge ticket metadata.\n\n## Arguments\n- `$ARGUMENTS` - Optional: Ticket ID (uses context if not provided)\n\n## Task\n\n### 1. Get Ticket Context\n\n**MCP Calls:**\n```typescript\nif ($ARGUMENTS) {\n get_ticket($ARGUMENTS)\n} else {\n get_working_context()\n get_ticket(context.ticketId)\n}\n```\n\n### 2. Generate Commit Message\n\n**Logic:**\n- Format: `feat(scope): description (TICKET-ID)`\n- Extract scope from epic\n- Use ticket title as description\n- Add ticket ID reference\n\n### 3. Create Commit\n\n**Shell:**\n```bash\ngit add .\ngit commit -m \"{type}({scope}): {description} ({ticketId})\"\n```\n\n### 4. Update Ticket Status\n\n**MCP Calls:**\n```typescript\nupdate_ticket({\n ticketId: ticket.id,\n status: 'done',\n completedAt: new Date().toISOString()\n})\n```\n\n### 5. Display Commit Result\n\n**Output:**\n```\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\nCOMMIT CREATED\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\nTicket: E{n}-T{m}\nMessage: {commitMessage}\nHash: {commitHash}\n\nTICKET COMPLETED\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\u2713 E{n}-T{m} marked as done\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n\nNext: Run /sf-next for the next ticket\n```\n\n## Notes\n- Automatically marks ticket as done\n- Uses conventional commit format\n- Includes ticket ID for traceability\n";
7
+ //# sourceMappingURL=sf-commit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sf-commit.d.ts","sourceRoot":"","sources":["../../../../src/cli/templates/content/sf-commit.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,iBAAiB,k9EAuE7B,CAAC"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * SF-Commit Command Template
3
+ *
4
+ * Template for committing changes with SpecForge ticket metadata.
5
+ */
6
+ export const SF_COMMIT_CONTENT = `# Commit Changes (SpecForge)
7
+
8
+ Create a git commit with SpecForge ticket metadata.
9
+
10
+ ## Arguments
11
+ - \`$ARGUMENTS\` - Optional: Ticket ID (uses context if not provided)
12
+
13
+ ## Task
14
+
15
+ ### 1. Get Ticket Context
16
+
17
+ **MCP Calls:**
18
+ \`\`\`typescript
19
+ if ($ARGUMENTS) {
20
+ get_ticket($ARGUMENTS)
21
+ } else {
22
+ get_working_context()
23
+ get_ticket(context.ticketId)
24
+ }
25
+ \`\`\`
26
+
27
+ ### 2. Generate Commit Message
28
+
29
+ **Logic:**
30
+ - Format: \`feat(scope): description (TICKET-ID)\`
31
+ - Extract scope from epic
32
+ - Use ticket title as description
33
+ - Add ticket ID reference
34
+
35
+ ### 3. Create Commit
36
+
37
+ **Shell:**
38
+ \`\`\`bash
39
+ git add .
40
+ git commit -m "{type}({scope}): {description} ({ticketId})"
41
+ \`\`\`
42
+
43
+ ### 4. Update Ticket Status
44
+
45
+ **MCP Calls:**
46
+ \`\`\`typescript
47
+ update_ticket({
48
+ ticketId: ticket.id,
49
+ status: 'done',
50
+ completedAt: new Date().toISOString()
51
+ })
52
+ \`\`\`
53
+
54
+ ### 5. Display Commit Result
55
+
56
+ **Output:**
57
+ \`\`\`
58
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
59
+ COMMIT CREATED
60
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
61
+ Ticket: E{n}-T{m}
62
+ Message: {commitMessage}
63
+ Hash: {commitHash}
64
+
65
+ TICKET COMPLETED
66
+ ─────────────────────────────────────────────────────────────────
67
+ ✓ E{n}-T{m} marked as done
68
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
69
+
70
+ Next: Run /sf-next for the next ticket
71
+ \`\`\`
72
+
73
+ ## Notes
74
+ - Automatically marks ticket as done
75
+ - Uses conventional commit format
76
+ - Includes ticket ID for traceability
77
+ `;
78
+ //# sourceMappingURL=sf-commit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sf-commit.js","sourceRoot":"","sources":["../../../../src/cli/templates/content/sf-commit.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuEhC,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * SF-Context Command Template
3
+ *
4
+ * Template for viewing or switching working context.
5
+ */
6
+ export declare const SF_CONTEXT_CONTENT = "# Working Context (SpecForge)\n\nQuickly view or switch the current working context.\n\n## Arguments\n- `$ARGUMENTS` - Optional: Project or Specification ID to switch to\n\n## Task\n\n### 1. If No Arguments - Show Current Context\n\n**MCP Calls:**\n```typescript\nget_working_context()\n```\n\n**Output:**\n```\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\nWORKING CONTEXT\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\nProject: {project.name}\nSpecification: {spec.title}\nEpic: {epic.title} (if set)\nTicket: E{n}-T{m} {title} (if set)\n\nSession: {active/none}\nProgress: {done}/{total} ({pct}%)\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n```\n\n### 2. If Arguments - Switch Context\n\n**MCP Calls:**\n```typescript\n// Try as specification first\nget_specification($ARGUMENTS)\n\n// If not found, try as project\nget_project($ARGUMENTS)\n\n// Set context\nset_working_context({\n projectId: project.id,\n specificationId: spec?.id\n})\n```\n\n**Output:**\n```\n\u2713 Switched to: {name}\n```\n\n## Notes\n- No argument = show current context\n- With argument = switch context\n- Auto-detects if ID is project or specification\n";
7
+ //# sourceMappingURL=sf-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sf-context.d.ts","sourceRoot":"","sources":["../../../../src/cli/templates/content/sf-context.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,kBAAkB,y5DAyD9B,CAAC"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * SF-Context Command Template
3
+ *
4
+ * Template for viewing or switching working context.
5
+ */
6
+ export const SF_CONTEXT_CONTENT = `# Working Context (SpecForge)
7
+
8
+ Quickly view or switch the current working context.
9
+
10
+ ## Arguments
11
+ - \`$ARGUMENTS\` - Optional: Project or Specification ID to switch to
12
+
13
+ ## Task
14
+
15
+ ### 1. If No Arguments - Show Current Context
16
+
17
+ **MCP Calls:**
18
+ \`\`\`typescript
19
+ get_working_context()
20
+ \`\`\`
21
+
22
+ **Output:**
23
+ \`\`\`
24
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
25
+ WORKING CONTEXT
26
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
27
+ Project: {project.name}
28
+ Specification: {spec.title}
29
+ Epic: {epic.title} (if set)
30
+ Ticket: E{n}-T{m} {title} (if set)
31
+
32
+ Session: {active/none}
33
+ Progress: {done}/{total} ({pct}%)
34
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
35
+ \`\`\`
36
+
37
+ ### 2. If Arguments - Switch Context
38
+
39
+ **MCP Calls:**
40
+ \`\`\`typescript
41
+ // Try as specification first
42
+ get_specification($ARGUMENTS)
43
+
44
+ // If not found, try as project
45
+ get_project($ARGUMENTS)
46
+
47
+ // Set context
48
+ set_working_context({
49
+ projectId: project.id,
50
+ specificationId: spec?.id
51
+ })
52
+ \`\`\`
53
+
54
+ **Output:**
55
+ \`\`\`
56
+ ✓ Switched to: {name}
57
+ \`\`\`
58
+
59
+ ## Notes
60
+ - No argument = show current context
61
+ - With argument = switch context
62
+ - Auto-detects if ID is project or specification
63
+ `;
64
+ //# sourceMappingURL=sf-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sf-context.js","sourceRoot":"","sources":["../../../../src/cli/templates/content/sf-context.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDjC,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * SF-Create-Epics Command Template
3
+ *
4
+ * Template for creating epics with epic-level patterns from plan phases.
5
+ */
6
+ export declare const SF_CREATE_EPICS_CONTENT = "# Create Epics (SpecForge)\n\nCreate epics for a specification with patterns extracted from plan phases.\n\n## Arguments\n- `$ARGUMENTS` - Required: Specification ID\n\n## Task\n\n### 1. Get Specification\n\n**MCP Calls:**\n```typescript\nget_specification($ARGUMENTS)\n```\n\n### 2. Read Original Plan\n\n**Logic:**\n- Locate original plan file from specification metadata\n- Parse plan phases/sections\n- Extract epic-level descriptions\n- Identify patterns per epic\n\n### 3. Create Epics\n\n**MCP Calls:**\n```typescript\n// For each phase/section in plan\nfor (const phase of phases) {\n await create_epic({\n specificationId: $ARGUMENTS,\n title: phase.title,\n description: phase.description,\n patterns: phase.patterns,\n order: phase.order\n })\n}\n```\n\n### 4. Display Creation Results\n\n**Output:**\n```\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\nEPICS CREATED\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\nSpecification: {title}\n\nCREATED EPICS\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nE1 \u2502 {title} \u2502 {description}\nE2 \u2502 {title} \u2502 {description}\nE3 \u2502 {title} \u2502 {description}\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n\nNext: Run /sf-create-tickets <epic-id> for each epic\n```\n\n## Notes\n- Creates epic structure from plan phases\n- Preserves patterns for ticket creation\n- Use /sf-create-tickets for each epic\n";
7
+ //# sourceMappingURL=sf-create-epics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sf-create-epics.d.ts","sourceRoot":"","sources":["../../../../src/cli/templates/content/sf-create-epics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,uBAAuB,m9EA+DnC,CAAC"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * SF-Create-Epics Command Template
3
+ *
4
+ * Template for creating epics with epic-level patterns from plan phases.
5
+ */
6
+ export const SF_CREATE_EPICS_CONTENT = `# Create Epics (SpecForge)
7
+
8
+ Create epics for a specification with patterns extracted from plan phases.
9
+
10
+ ## Arguments
11
+ - \`$ARGUMENTS\` - Required: Specification ID
12
+
13
+ ## Task
14
+
15
+ ### 1. Get Specification
16
+
17
+ **MCP Calls:**
18
+ \`\`\`typescript
19
+ get_specification($ARGUMENTS)
20
+ \`\`\`
21
+
22
+ ### 2. Read Original Plan
23
+
24
+ **Logic:**
25
+ - Locate original plan file from specification metadata
26
+ - Parse plan phases/sections
27
+ - Extract epic-level descriptions
28
+ - Identify patterns per epic
29
+
30
+ ### 3. Create Epics
31
+
32
+ **MCP Calls:**
33
+ \`\`\`typescript
34
+ // For each phase/section in plan
35
+ for (const phase of phases) {
36
+ await create_epic({
37
+ specificationId: $ARGUMENTS,
38
+ title: phase.title,
39
+ description: phase.description,
40
+ patterns: phase.patterns,
41
+ order: phase.order
42
+ })
43
+ }
44
+ \`\`\`
45
+
46
+ ### 4. Display Creation Results
47
+
48
+ **Output:**
49
+ \`\`\`
50
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
51
+ EPICS CREATED
52
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
53
+ Specification: {title}
54
+
55
+ CREATED EPICS
56
+ ─────────────────────────────────────────────────────────────────
57
+ E1 │ {title} │ {description}
58
+ E2 │ {title} │ {description}
59
+ E3 │ {title} │ {description}
60
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
61
+
62
+ Next: Run /sf-create-tickets <epic-id> for each epic
63
+ \`\`\`
64
+
65
+ ## Notes
66
+ - Creates epic structure from plan phases
67
+ - Preserves patterns for ticket creation
68
+ - Use /sf-create-tickets for each epic
69
+ `;
70
+ //# sourceMappingURL=sf-create-epics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sf-create-epics.js","sourceRoot":"","sources":["../../../../src/cli/templates/content/sf-create-epics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+DtC,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * SF-Create-Spec Command Template
3
+ *
4
+ * Template for creating a SpecForge specification with patterns from a plan.
5
+ */
6
+ export declare const SF_CREATE_SPEC_CONTENT = "# Create Specification (SpecForge)\n\nCreate a SpecForge specification structure with patterns extracted from a plan document.\n\n## Arguments\n- `$ARGUMENTS` - Required: Path to plan markdown file\n\n## Task\n\n### 1. Read and Analyze Plan\n\n**Logic:**\n- Read file at $ARGUMENTS\n- Extract specification metadata\n- Identify patterns and guardrails\n- Parse high-level structure\n- Extract success criteria\n\n### 2. Create Specification\n\n**MCP Calls:**\n```typescript\ncreate_specification({\n title: extractedTitle,\n description: extractedDescription,\n patterns: extractedPatterns,\n guardrails: extractedGuardrails,\n successCriteria: extractedCriteria\n})\n```\n\n### 3. Display Creation Results\n\n**Output:**\n```\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\nSPECIFICATION CREATED\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\nTitle: {title}\nID: {specificationId}\n\nEXTRACTED PATTERNS\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\u2022 {pattern1}\n\u2022 {pattern2}\n\u2022 {pattern3}\n\nGUARDRAILS\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\u2022 {guardrail1}\n\u2022 {guardrail2}\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n\nNext: Run /sf-create-epics {specificationId} to create epics\n```\n\n## Notes\n- Creates specification structure only\n- Extracts patterns for epic/ticket creation\n- Use /sf-create-epics to add epics\n";
7
+ //# sourceMappingURL=sf-create-spec.d.ts.map