@iloom/cli 0.10.2 → 0.11.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 (262) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +4 -2
  3. package/dist/{BranchNamingService-4OP6LOH6.js → BranchNamingService-XBCO747L.js} +4 -4
  4. package/dist/ClaudeContextManager-SXDCWDJA.js +14 -0
  5. package/dist/ClaudeService-6E6MCGJE.js +13 -0
  6. package/dist/GitHubService-2R5GQG4K.js +12 -0
  7. package/dist/IssueTrackerFactory-XN6MQ4UN.js +14 -0
  8. package/dist/{LoomLauncher-FRECYMXS.js → LoomLauncher-5AZU2F5I.js} +15 -12
  9. package/dist/LoomLauncher-5AZU2F5I.js.map +1 -0
  10. package/dist/MetadataManager-CMQQTFLQ.js +10 -0
  11. package/dist/ProjectCapabilityDetector-IC6NAFGY.js +11 -0
  12. package/dist/{PromptTemplateManager-YOE2SIPG.js → PromptTemplateManager-T5VTLJP3.js} +3 -3
  13. package/dist/README.md +4 -2
  14. package/dist/{SettingsManager-FNKCOZMQ.js → SettingsManager-WQ5NSGAH.js} +3 -3
  15. package/dist/SettingsMigrationManager-S6J7OHUH.js +10 -0
  16. package/dist/agents/iloom-code-reviewer.md +50 -8
  17. package/dist/agents/iloom-issue-analyze-and-plan.md +10 -0
  18. package/dist/agents/iloom-issue-analyzer.md +13 -0
  19. package/dist/agents/iloom-issue-complexity-evaluator.md +8 -1
  20. package/dist/agents/iloom-issue-enhancer.md +8 -1
  21. package/dist/agents/iloom-issue-planner.md +5 -0
  22. package/dist/build-OLS6J5KZ.js +27 -0
  23. package/dist/{chunk-WWKOVDWC.js → chunk-3GTUXW26.js} +3 -3
  24. package/dist/{chunk-4FGEGQW4.js → chunk-3RXYOBME.js} +5 -5
  25. package/dist/{chunk-HEXKPKCK.js → chunk-5LTID2AF.js} +6 -6
  26. package/dist/{chunk-G5V75JD5.js → chunk-5PNZBH6V.js} +2 -2
  27. package/dist/{chunk-SKSYYBCU.js → chunk-5UFGO4ZT.js} +24 -3
  28. package/dist/{chunk-SKSYYBCU.js.map → chunk-5UFGO4ZT.js.map} +1 -1
  29. package/dist/{chunk-XE4BDRZD.js → chunk-6YVJVUR4.js} +3 -3
  30. package/dist/{chunk-RJ3VBUFK.js → chunk-7FIXNAUO.js} +36 -7
  31. package/dist/chunk-7FIXNAUO.js.map +1 -0
  32. package/dist/{chunk-QFTDZ5E3.js → chunk-7NFCGKZT.js} +3 -3
  33. package/dist/{chunk-433MOLAU.js → chunk-7OCGBJLR.js} +2 -2
  34. package/dist/{chunk-2VEWSM34.js → chunk-ABVMUNCD.js} +8 -8
  35. package/dist/{chunk-7JDMYTFZ.js → chunk-CV47VCMQ.js} +2 -2
  36. package/dist/{chunk-7VHJNVLF.js → chunk-ET6A2JR4.js} +8 -6
  37. package/dist/chunk-ET6A2JR4.js.map +1 -0
  38. package/dist/{chunk-MORRVYPT.js → chunk-G2MNSPA4.js} +2 -2
  39. package/dist/{chunk-RSYT7MVI.js → chunk-GMDSYLI6.js} +36 -3
  40. package/dist/chunk-GMDSYLI6.js.map +1 -0
  41. package/dist/{chunk-VT4PDUYT.js → chunk-H2SSF24U.js} +284 -209
  42. package/dist/chunk-H2SSF24U.js.map +1 -0
  43. package/dist/{chunk-LLHXQS3C.js → chunk-HLDY5S4C.js} +3 -3
  44. package/dist/{chunk-BYUMEDDD.js → chunk-IDCE26KD.js} +3 -3
  45. package/dist/{chunk-ZGM2FE2R.js → chunk-IR74O2F6.js} +221 -86
  46. package/dist/chunk-IR74O2F6.js.map +1 -0
  47. package/dist/{chunk-O7VL5N6S.js → chunk-K7R5QY6C.js} +2 -2
  48. package/dist/{chunk-BU53XIGY.js → chunk-KQFIGI37.js} +5 -5
  49. package/dist/{chunk-I5T677EA.js → chunk-LE2NOUTN.js} +3 -3
  50. package/dist/{chunk-KXDRI47U.js → chunk-LHDD4JHC.js} +6 -6
  51. package/dist/{chunk-2YZCWAVZ.js → chunk-LL6TOX3G.js} +9 -9
  52. package/dist/{chunk-YQ57ORTV.js → chunk-NCPZYQ4B.js} +2 -2
  53. package/dist/{chunk-EWJFUFPT.js → chunk-NDSGJZI2.js} +2 -2
  54. package/dist/{chunk-VG45TUYK.js → chunk-NH3QZYE5.js} +2 -2
  55. package/dist/{chunk-BFLMCE2U.js → chunk-NN5RYWXA.js} +7 -7
  56. package/dist/chunk-NOMQ5RFG.js +118 -0
  57. package/dist/chunk-NOMQ5RFG.js.map +1 -0
  58. package/dist/{chunk-KIK2ZFAL.js → chunk-QNHZM5ZV.js} +3 -3
  59. package/dist/{chunk-V3SVMFDQ.js → chunk-QR4FU53I.js} +8 -8
  60. package/dist/{chunk-FXDYIV3K.js → chunk-QVAA5KHK.js} +2 -2
  61. package/dist/{chunk-NGJZ4TOU.js → chunk-RBYTXYGD.js} +2 -2
  62. package/dist/{chunk-SWSJWA2S.js → chunk-RMLADZRY.js} +12 -9
  63. package/dist/chunk-RMLADZRY.js.map +1 -0
  64. package/dist/{chunk-CVCTIDDK.js → chunk-RVI6C2H5.js} +5 -5
  65. package/dist/{chunk-Q7POFB5Q.js → chunk-SQYHPBFP.js} +2 -2
  66. package/dist/{chunk-BFHDVFSK.js → chunk-TEJAGQX2.js} +64 -40
  67. package/dist/chunk-TEJAGQX2.js.map +1 -0
  68. package/dist/{chunk-QZWEJVWV.js → chunk-TZNNJLGT.js} +6 -6
  69. package/dist/{chunk-63QWFWH3.js → chunk-UDCI3QTS.js} +2 -2
  70. package/dist/{chunk-UKBAJ2QQ.js → chunk-UHIBKD73.js} +7 -7
  71. package/dist/{chunk-WXIM2WS7.js → chunk-V4STTBQD.js} +10 -10
  72. package/dist/{chunk-P4O6EH46.js → chunk-VMZG66UV.js} +5 -5
  73. package/dist/{chunk-C6HNNJIV.js → chunk-VNYWBHKR.js} +34 -4
  74. package/dist/chunk-VNYWBHKR.js.map +1 -0
  75. package/dist/{chunk-HYGUPUV5.js → chunk-VUUN3KE4.js} +10 -10
  76. package/dist/chunk-VUUN3KE4.js.map +1 -0
  77. package/dist/{chunk-UUEW5KWB.js → chunk-WG4MLJ6J.js} +15 -10
  78. package/dist/chunk-WG4MLJ6J.js.map +1 -0
  79. package/dist/{chunk-3F27M7ZD.js → chunk-XFQGI2E3.js} +66 -43
  80. package/dist/chunk-XFQGI2E3.js.map +1 -0
  81. package/dist/{chunk-LUKXJSRI.js → chunk-XXFSOVL3.js} +4 -4
  82. package/dist/{chunk-PZ5WSR5Z.js → chunk-Y3RX7LZT.js} +8 -5
  83. package/dist/chunk-Y3RX7LZT.js.map +1 -0
  84. package/dist/{chunk-KB64WNBZ.js → chunk-YRCEOQPX.js} +4 -2
  85. package/dist/chunk-YRCEOQPX.js.map +1 -0
  86. package/dist/{chunk-6MLEBAYZ.js → chunk-ZAXRQLK3.js} +2 -2
  87. package/dist/{claude-LN7OWVNI.js → claude-ONQTDWV3.js} +4 -4
  88. package/dist/{cleanup-4ZM2AJDC.js → cleanup-YOM6PQCN.js} +35 -34
  89. package/dist/{cleanup-4ZM2AJDC.js.map → cleanup-YOM6PQCN.js.map} +1 -1
  90. package/dist/cli.js +227 -152
  91. package/dist/cli.js.map +1 -1
  92. package/dist/{color-4TJ4P5EY.js → color-VQD52LOI.js} +3 -3
  93. package/dist/{commit-4CFLXRZ3.js → commit-DC2Q5CDY.js} +15 -15
  94. package/dist/{compile-7ALJHZ4N.js → compile-4NCQECKE.js} +11 -11
  95. package/dist/{contribute-5GKLK3BQ.js → contribute-M5UWXCAV.js} +12 -12
  96. package/dist/darwin-5BHWRJ7D.js +10 -0
  97. package/dist/{dev-server-7SMIB7OF.js → dev-server-CYRP6M73.js} +19 -19
  98. package/dist/{feedback-EZWF5CAL.js → feedback-BMAZGKRW.js} +16 -16
  99. package/dist/{git-GTLKAZRJ.js → git-BXUD6CL5.js} +6 -6
  100. package/dist/ignite-IO4LXVXJ.js +35 -0
  101. package/dist/index.d.ts +39 -65
  102. package/dist/index.js +634 -107
  103. package/dist/index.js.map +1 -1
  104. package/dist/{init-ZB2RITW6.js → init-CI43GJHV.js} +17 -17
  105. package/dist/{init-ZB2RITW6.js.map → init-CI43GJHV.js.map} +1 -1
  106. package/dist/{install-deps-RLSGSHH7.js → install-deps-SRTM5U7D.js} +11 -11
  107. package/dist/{installation-detector-MMFWLJYN.js → installation-detector-HF6QN7KP.js} +3 -3
  108. package/dist/{issues-4UUAQ5K6.js → issues-DMRQJH7E.js} +15 -15
  109. package/dist/lint-BSWRMGPZ.js +27 -0
  110. package/dist/linux-RYLOP2LY.js +103 -0
  111. package/dist/linux-RYLOP2LY.js.map +1 -0
  112. package/dist/mcp/chunk-PIIRD4LO.js +373 -0
  113. package/dist/mcp/chunk-PIIRD4LO.js.map +1 -0
  114. package/dist/mcp/darwin-3JFFE3W2.js +10 -0
  115. package/dist/mcp/issue-management-server.js +23 -127
  116. package/dist/mcp/issue-management-server.js.map +1 -1
  117. package/dist/mcp/linux-JBVS4R3A.js +103 -0
  118. package/dist/mcp/linux-JBVS4R3A.js.map +1 -0
  119. package/dist/mcp/tmux-RYBLEHUZ.js +156 -0
  120. package/dist/mcp/tmux-RYBLEHUZ.js.map +1 -0
  121. package/dist/mcp/wsl-4QZIQLLE.js +78 -0
  122. package/dist/mcp/wsl-4QZIQLLE.js.map +1 -0
  123. package/dist/neon-helpers-HWIYRKOW.js +11 -0
  124. package/dist/{open-FXWW3VI4.js → open-2Y7GSUTJ.js} +19 -19
  125. package/dist/{plan-D3KSN5MU.js → plan-SWFPLNJE.js} +47 -46
  126. package/dist/{plan-D3KSN5MU.js.map → plan-SWFPLNJE.js.map} +1 -1
  127. package/dist/{projects-2UOXFLNZ.js → projects-IUSUXD5D.js} +6 -6
  128. package/dist/{prompt-ONNPSNKM.js → prompt-7LZB4PAT.js} +3 -3
  129. package/dist/prompts/init-prompt.txt +56 -107
  130. package/dist/prompts/issue-prompt.txt +57 -11
  131. package/dist/prompts/pr-prompt.txt +154 -4
  132. package/dist/prompts/regular-prompt.txt +20 -3
  133. package/dist/prompts/swarm-orchestrator-prompt.txt +114 -8
  134. package/dist/{rebase-62FDLIH4.js → rebase-S6OHAOOF.js} +12 -12
  135. package/dist/{recap-OMBOKJST.js → recap-GGVCG5VH.js} +9 -9
  136. package/dist/{remote-IJAMOEAP.js → remote-MZTFHHTU.js} +3 -3
  137. package/dist/remote-MZTFHHTU.js.map +1 -0
  138. package/dist/{run-BBXLRIZB.js → run-ST3FR75O.js} +19 -19
  139. package/dist/schema/settings.schema.json +8 -49
  140. package/dist/{shell-RF7LTND5.js → shell-W4SBQPTE.js} +8 -8
  141. package/dist/{summary-YZI25KW4.js → summary-P2JCIIJO.js} +17 -17
  142. package/dist/test-6JH4FE2X.js +27 -0
  143. package/dist/{test-git-XM4TM65W.js → test-git-2KFFAQ6B.js} +6 -6
  144. package/dist/{test-jira-LDTOYFSD.js → test-jira-FKDKG6CD.js} +8 -8
  145. package/dist/{test-prefix-GBO37XCN.js → test-prefix-GP2DAX37.js} +11 -11
  146. package/dist/test-prefix-GP2DAX37.js.map +1 -0
  147. package/dist/{test-tabs-D3POYOJ5.js → test-tabs-YDWMWTVA.js} +3 -3
  148. package/dist/{test-webserver-NZ3JTVLL.js → test-webserver-QI3QQFZ3.js} +8 -8
  149. package/dist/tmux-7ZTA3BDI.js +156 -0
  150. package/dist/tmux-7ZTA3BDI.js.map +1 -0
  151. package/dist/{update-HJKDYA3F.js → update-XLW7R7FL.js} +4 -4
  152. package/dist/{update-notifier-LBAUOOLM.js → update-notifier-EYLAXZAA.js} +3 -3
  153. package/dist/update-notifier-EYLAXZAA.js.map +1 -0
  154. package/dist/{vscode-6XUGHJKL.js → vscode-TOGE5N67.js} +13 -13
  155. package/dist/{vscode-announcement-EQ2SKK3T.js → vscode-announcement-NIX7O2MG.js} +3 -3
  156. package/dist/wsl-Y4GUTOQ7.js +78 -0
  157. package/dist/wsl-Y4GUTOQ7.js.map +1 -0
  158. package/package.json +4 -2
  159. package/dist/ClaudeContextManager-ZKTUVQB2.js +0 -14
  160. package/dist/ClaudeService-TRWOYQ6O.js +0 -13
  161. package/dist/GitHubService-MEHKHUQP.js +0 -12
  162. package/dist/IssueTrackerFactory-NG53YX5S.js +0 -14
  163. package/dist/LoomLauncher-FRECYMXS.js.map +0 -1
  164. package/dist/MetadataManager-5QZSTKNN.js +0 -10
  165. package/dist/ProjectCapabilityDetector-5KSYUTBJ.js +0 -11
  166. package/dist/SettingsMigrationManager-LEBMJP3B.js +0 -10
  167. package/dist/build-VHGEMXBA.js +0 -27
  168. package/dist/chunk-3F27M7ZD.js.map +0 -1
  169. package/dist/chunk-7VHJNVLF.js.map +0 -1
  170. package/dist/chunk-BFHDVFSK.js.map +0 -1
  171. package/dist/chunk-C6HNNJIV.js.map +0 -1
  172. package/dist/chunk-HYGUPUV5.js.map +0 -1
  173. package/dist/chunk-KB64WNBZ.js.map +0 -1
  174. package/dist/chunk-PZ5WSR5Z.js.map +0 -1
  175. package/dist/chunk-RJ3VBUFK.js.map +0 -1
  176. package/dist/chunk-RSYT7MVI.js.map +0 -1
  177. package/dist/chunk-SWSJWA2S.js.map +0 -1
  178. package/dist/chunk-UUEW5KWB.js.map +0 -1
  179. package/dist/chunk-VT4PDUYT.js.map +0 -1
  180. package/dist/chunk-ZGM2FE2R.js.map +0 -1
  181. package/dist/ignite-MQETGFNA.js +0 -34
  182. package/dist/lint-AAN2NZWG.js +0 -27
  183. package/dist/neon-helpers-CQN2PB4S.js +0 -11
  184. package/dist/test-SGO6I5Z7.js +0 -27
  185. package/dist/test-prefix-GBO37XCN.js.map +0 -1
  186. /package/dist/{BranchNamingService-4OP6LOH6.js.map → BranchNamingService-XBCO747L.js.map} +0 -0
  187. /package/dist/{ClaudeContextManager-ZKTUVQB2.js.map → ClaudeContextManager-SXDCWDJA.js.map} +0 -0
  188. /package/dist/{ClaudeService-TRWOYQ6O.js.map → ClaudeService-6E6MCGJE.js.map} +0 -0
  189. /package/dist/{GitHubService-MEHKHUQP.js.map → GitHubService-2R5GQG4K.js.map} +0 -0
  190. /package/dist/{IssueTrackerFactory-NG53YX5S.js.map → IssueTrackerFactory-XN6MQ4UN.js.map} +0 -0
  191. /package/dist/{MetadataManager-5QZSTKNN.js.map → MetadataManager-CMQQTFLQ.js.map} +0 -0
  192. /package/dist/{ProjectCapabilityDetector-5KSYUTBJ.js.map → ProjectCapabilityDetector-IC6NAFGY.js.map} +0 -0
  193. /package/dist/{PromptTemplateManager-YOE2SIPG.js.map → PromptTemplateManager-T5VTLJP3.js.map} +0 -0
  194. /package/dist/{SettingsManager-FNKCOZMQ.js.map → SettingsManager-WQ5NSGAH.js.map} +0 -0
  195. /package/dist/{SettingsMigrationManager-LEBMJP3B.js.map → SettingsMigrationManager-S6J7OHUH.js.map} +0 -0
  196. /package/dist/{build-VHGEMXBA.js.map → build-OLS6J5KZ.js.map} +0 -0
  197. /package/dist/{chunk-WWKOVDWC.js.map → chunk-3GTUXW26.js.map} +0 -0
  198. /package/dist/{chunk-4FGEGQW4.js.map → chunk-3RXYOBME.js.map} +0 -0
  199. /package/dist/{chunk-HEXKPKCK.js.map → chunk-5LTID2AF.js.map} +0 -0
  200. /package/dist/{chunk-G5V75JD5.js.map → chunk-5PNZBH6V.js.map} +0 -0
  201. /package/dist/{chunk-XE4BDRZD.js.map → chunk-6YVJVUR4.js.map} +0 -0
  202. /package/dist/{chunk-QFTDZ5E3.js.map → chunk-7NFCGKZT.js.map} +0 -0
  203. /package/dist/{chunk-433MOLAU.js.map → chunk-7OCGBJLR.js.map} +0 -0
  204. /package/dist/{chunk-2VEWSM34.js.map → chunk-ABVMUNCD.js.map} +0 -0
  205. /package/dist/{chunk-7JDMYTFZ.js.map → chunk-CV47VCMQ.js.map} +0 -0
  206. /package/dist/{chunk-MORRVYPT.js.map → chunk-G2MNSPA4.js.map} +0 -0
  207. /package/dist/{chunk-LLHXQS3C.js.map → chunk-HLDY5S4C.js.map} +0 -0
  208. /package/dist/{chunk-BYUMEDDD.js.map → chunk-IDCE26KD.js.map} +0 -0
  209. /package/dist/{chunk-O7VL5N6S.js.map → chunk-K7R5QY6C.js.map} +0 -0
  210. /package/dist/{chunk-BU53XIGY.js.map → chunk-KQFIGI37.js.map} +0 -0
  211. /package/dist/{chunk-I5T677EA.js.map → chunk-LE2NOUTN.js.map} +0 -0
  212. /package/dist/{chunk-KXDRI47U.js.map → chunk-LHDD4JHC.js.map} +0 -0
  213. /package/dist/{chunk-2YZCWAVZ.js.map → chunk-LL6TOX3G.js.map} +0 -0
  214. /package/dist/{chunk-YQ57ORTV.js.map → chunk-NCPZYQ4B.js.map} +0 -0
  215. /package/dist/{chunk-EWJFUFPT.js.map → chunk-NDSGJZI2.js.map} +0 -0
  216. /package/dist/{chunk-VG45TUYK.js.map → chunk-NH3QZYE5.js.map} +0 -0
  217. /package/dist/{chunk-BFLMCE2U.js.map → chunk-NN5RYWXA.js.map} +0 -0
  218. /package/dist/{chunk-KIK2ZFAL.js.map → chunk-QNHZM5ZV.js.map} +0 -0
  219. /package/dist/{chunk-V3SVMFDQ.js.map → chunk-QR4FU53I.js.map} +0 -0
  220. /package/dist/{chunk-FXDYIV3K.js.map → chunk-QVAA5KHK.js.map} +0 -0
  221. /package/dist/{chunk-NGJZ4TOU.js.map → chunk-RBYTXYGD.js.map} +0 -0
  222. /package/dist/{chunk-CVCTIDDK.js.map → chunk-RVI6C2H5.js.map} +0 -0
  223. /package/dist/{chunk-Q7POFB5Q.js.map → chunk-SQYHPBFP.js.map} +0 -0
  224. /package/dist/{chunk-QZWEJVWV.js.map → chunk-TZNNJLGT.js.map} +0 -0
  225. /package/dist/{chunk-63QWFWH3.js.map → chunk-UDCI3QTS.js.map} +0 -0
  226. /package/dist/{chunk-UKBAJ2QQ.js.map → chunk-UHIBKD73.js.map} +0 -0
  227. /package/dist/{chunk-WXIM2WS7.js.map → chunk-V4STTBQD.js.map} +0 -0
  228. /package/dist/{chunk-P4O6EH46.js.map → chunk-VMZG66UV.js.map} +0 -0
  229. /package/dist/{chunk-LUKXJSRI.js.map → chunk-XXFSOVL3.js.map} +0 -0
  230. /package/dist/{chunk-6MLEBAYZ.js.map → chunk-ZAXRQLK3.js.map} +0 -0
  231. /package/dist/{claude-LN7OWVNI.js.map → claude-ONQTDWV3.js.map} +0 -0
  232. /package/dist/{color-4TJ4P5EY.js.map → color-VQD52LOI.js.map} +0 -0
  233. /package/dist/{commit-4CFLXRZ3.js.map → commit-DC2Q5CDY.js.map} +0 -0
  234. /package/dist/{compile-7ALJHZ4N.js.map → compile-4NCQECKE.js.map} +0 -0
  235. /package/dist/{contribute-5GKLK3BQ.js.map → contribute-M5UWXCAV.js.map} +0 -0
  236. /package/dist/{git-GTLKAZRJ.js.map → darwin-5BHWRJ7D.js.map} +0 -0
  237. /package/dist/{dev-server-7SMIB7OF.js.map → dev-server-CYRP6M73.js.map} +0 -0
  238. /package/dist/{feedback-EZWF5CAL.js.map → feedback-BMAZGKRW.js.map} +0 -0
  239. /package/dist/{ignite-MQETGFNA.js.map → git-BXUD6CL5.js.map} +0 -0
  240. /package/dist/{installation-detector-MMFWLJYN.js.map → ignite-IO4LXVXJ.js.map} +0 -0
  241. /package/dist/{install-deps-RLSGSHH7.js.map → install-deps-SRTM5U7D.js.map} +0 -0
  242. /package/dist/{neon-helpers-CQN2PB4S.js.map → installation-detector-HF6QN7KP.js.map} +0 -0
  243. /package/dist/{issues-4UUAQ5K6.js.map → issues-DMRQJH7E.js.map} +0 -0
  244. /package/dist/{lint-AAN2NZWG.js.map → lint-BSWRMGPZ.js.map} +0 -0
  245. /package/dist/{prompt-ONNPSNKM.js.map → mcp/darwin-3JFFE3W2.js.map} +0 -0
  246. /package/dist/{remote-IJAMOEAP.js.map → neon-helpers-HWIYRKOW.js.map} +0 -0
  247. /package/dist/{open-FXWW3VI4.js.map → open-2Y7GSUTJ.js.map} +0 -0
  248. /package/dist/{projects-2UOXFLNZ.js.map → projects-IUSUXD5D.js.map} +0 -0
  249. /package/dist/{update-notifier-LBAUOOLM.js.map → prompt-7LZB4PAT.js.map} +0 -0
  250. /package/dist/{rebase-62FDLIH4.js.map → rebase-S6OHAOOF.js.map} +0 -0
  251. /package/dist/{recap-OMBOKJST.js.map → recap-GGVCG5VH.js.map} +0 -0
  252. /package/dist/{run-BBXLRIZB.js.map → run-ST3FR75O.js.map} +0 -0
  253. /package/dist/{shell-RF7LTND5.js.map → shell-W4SBQPTE.js.map} +0 -0
  254. /package/dist/{summary-YZI25KW4.js.map → summary-P2JCIIJO.js.map} +0 -0
  255. /package/dist/{test-SGO6I5Z7.js.map → test-6JH4FE2X.js.map} +0 -0
  256. /package/dist/{test-git-XM4TM65W.js.map → test-git-2KFFAQ6B.js.map} +0 -0
  257. /package/dist/{test-jira-LDTOYFSD.js.map → test-jira-FKDKG6CD.js.map} +0 -0
  258. /package/dist/{test-tabs-D3POYOJ5.js.map → test-tabs-YDWMWTVA.js.map} +0 -0
  259. /package/dist/{test-webserver-NZ3JTVLL.js.map → test-webserver-QI3QQFZ3.js.map} +0 -0
  260. /package/dist/{update-HJKDYA3F.js.map → update-XLW7R7FL.js.map} +0 -0
  261. /package/dist/{vscode-6XUGHJKL.js.map → vscode-TOGE5N67.js.map} +0 -0
  262. /package/dist/{vscode-announcement-EQ2SKK3T.js.map → vscode-announcement-NIX7O2MG.js.map} +0 -0
@@ -79,8 +79,9 @@ Use these Recap MCP tools:
79
79
  - Complexity classifications
80
80
  - Status updates ("implementation complete", "tests pass")
81
81
  - Anything about your own workflow process
82
+ - Meta-knowledge about the agent orchestration layer (iloom, MCP servers, worktree mechanics, prompt rendering, etc.) unless the tooling was a direct cause of a problem under investigation
82
83
 
83
- **Self-check before adding:** If your entry mentions "enhancement", "complexity evaluation", "SIMPLE/COMPLEX", "word count", "skipping", or "phase" - it's process noise. Don't add it.
84
+ **Self-check before adding:** If your entry mentions "enhancement", "complexity evaluation", "SIMPLE/COMPLEX", "word count", "skipping", or "phase" it's process noise. Don't add it. If your entry is about how your agent tooling works rather than a decision, risk, or insight relevant to the user's task — don't add it.
84
85
 
85
86
  {{#if SWARM_MODE}}
86
87
  **Swarm Mode Recap**: When calling recap tools directly (not via sub-agents), you MUST pass `worktreePath: "{{WORKTREE_PATH}}"` on every recap call (`add_entry`, `add_artifact`, `set_complexity`, `set_loom_state`, `get_recap`). Without it, entries default to the epic's recap file instead of this child's recap. Sub-agents spawned via `claude -p` with `--mcp-config` have their own MCP server and do NOT need worktreePath.
@@ -377,15 +378,26 @@ In swarm mode, phase agents are NOT invoked via @agent syntax (sub-agents cannot
377
378
  **MCP Config:** Read the file `.claude/iloom-swarm-mcp-config-path` in your worktree. This file contains the absolute path to your per-loom MCP config file. Use this path with `--mcp-config <path>` in all `claude -p` commands.
378
379
 
379
380
  **Command template:**
381
+
382
+ Each `claude -p` call redirects its stream-json output to a temp file, then the result is extracted from that file. This keeps the worker's context window lean -- it only sees the extracted result text, not the full agent narrative.
383
+
380
384
  ```bash
381
- env -u CLAUDECODE ENABLE_TOOL_SEARCH=auto:30 claude -p \
382
- --append-system-prompt-file {{EPIC_WORKTREE_PATH}}/.claude/agents/<agent-file>.md \
385
+ PHASE_OUTPUT_FILE=$(mktemp /tmp/iloom-phase-XXXXXX)
386
+ env -u CLAUDECODE \
387
+ ENABLE_TOOL_SEARCH=auto:30 \
388
+ CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING=1 \
389
+ CLAUDE_CODE_DISABLE_AUTO_MEMORY=1 \
390
+ CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 \
391
+ CLAUDE_CODE_EFFORT_LEVEL=medium \
392
+ claude -p \
393
+ --system-prompt-file {{EPIC_WORKTREE_PATH}}/.claude/agents/<agent-file>.md \
383
394
  --mcp-config <path-from-.claude/iloom-swarm-mcp-config-path> \
384
395
  --model <model-from-metadata> \
385
396
  --permission-mode bypassPermissions \
386
- --output-format text \
397
+ --output-format stream-json \
398
+ --verbose \
387
399
  --max-turns 50 \
388
- "<prompt for the phase>"
400
+ "<prompt for the phase>" > "$PHASE_OUTPUT_FILE" 2>"${PHASE_OUTPUT_FILE}.stderr"
389
401
  ```
390
402
 
391
403
  **Bash tool timeout:** When invoking the command above via the Bash tool, you MUST set the `timeout` parameter to `{{SWARM_SUB_AGENT_TIMEOUT_MS}}` (milliseconds). This prevents sub-agent invocations from hanging indefinitely.
@@ -403,8 +415,15 @@ For each agent, use:
403
415
  - `--allowedTools` from the `tools` array in the metadata above (comma-separated, only if the `tools` field exists)
404
416
  - The agent file is at `{{EPIC_WORKTREE_PATH}}/.claude/agents/<agent-key>.md` where `<agent-key>` matches the key in the JSON above
405
417
 
406
- **Output parsing:**
407
- The `--output-format text` produces plain text output. The Bash tool output IS the agent's response -- no JSON parsing is needed.
418
+ **Output parsing (stream-json temp file):**
419
+
420
+ The `--output-format stream-json` produces newline-delimited JSON (JSONL) in the temp file. Each line is a JSON object. The last line with `"type":"result"` contains the agent's final result in the `result` field. Read the temp file, extract the result text, and clean up:
421
+
422
+ ```bash
423
+ rm -f "$PHASE_OUTPUT_FILE" "${PHASE_OUTPUT_FILE}.stderr"
424
+ ```
425
+
426
+ You can also tail the temp file to check on the agent's progress while it's running. Do NOT read the full temp file into your context — only extract the final result text.
408
427
 
409
428
  **Working directory:**
410
429
  Each `claude -p` process inherits the current working directory. Ensure you are in the child worktree before invoking phase agents.
@@ -415,6 +434,7 @@ Each `claude -p` process inherits the current working directory. Ensure you are
415
434
  - The agent `.md` files are pre-rendered and available at the paths above
416
435
  - Always include `env -u CLAUDECODE` prefix -- this is mandatory
417
436
  - The `.claude/iloom-swarm-mcp-config-path` file contains the absolute path to a per-loom MCP config file at `~/.config/iloom-ai/mcp-configs/`
437
+ - Output is redirected to a temp file to keep your context window lean -- never pipe the full stream into your context
418
438
 
419
439
  **Todo List:**
420
440
  1. Initialize: cd to worktree, read `.claude/iloom-swarm-mcp-config-path` for MCP config path, set state to `in_progress` (pass `worktreePath: "<your-worktree-path>"` to target your own metadata, not the epic's), read issue
@@ -423,11 +443,16 @@ Each `claude -p` process inherits the current working directory. Ensure you are
423
443
  {{#if ARTIFACT_REVIEW_ENABLED}}{{#if ENHANCER_REVIEW_ENABLED}}
424
444
  3a. Run artifact review on enhancement output via headless claude -p process (artifact reviewer agent)
425
445
  {{/if}}{{/if}}
446
+ {{#if COMPLEXITY_OVERRIDE}}
447
+ 4. Complexity has been overridden to {{COMPLEXITY_OVERRIDE}}. Skip complexity evaluation and proceed directly to routing.
448
+ 5. Route to appropriate workflow based on overridden complexity: {{COMPLEXITY_OVERRIDE}}
449
+ {{else}}
426
450
  4. Run complexity evaluation via headless claude -p process (complexity evaluator agent). After completion, call `mcp__recap__add_artifact` with the complexity evaluation comment URL and `worktreePath: "<your-worktree-path>"`.
427
451
  {{#if ARTIFACT_REVIEW_ENABLED}}{{#if COMPLEXITY_REVIEW_ENABLED}}
428
452
  4a. Run artifact review on complexity evaluation output via headless claude -p process (artifact reviewer agent)
429
453
  {{/if}}{{/if}}
430
454
  5. Route based on complexity (TRIVIAL skips to implementation, SIMPLE uses combined analyze-and-plan, COMPLEX uses separate analysis then planning)
455
+ {{/if}}
431
456
  6. Run analysis/planning based on route via headless claude -p process (appropriate agent). After completion, call `mcp__recap__add_artifact` with each comment URL created by the agent and `worktreePath: "<your-worktree-path>"`.
432
457
  {{#if ARTIFACT_REVIEW_ENABLED}}{{#if ANALYZER_REVIEW_ENABLED}}
433
458
  6a. If COMPLEX: Run artifact review on analysis output via headless claude -p process (artifact reviewer agent)
@@ -444,7 +469,7 @@ Each `claude -p` process inherits the current working directory. Ensure you are
444
469
  {{/if}}{{/if}}
445
470
  8. Set state to `code_review` (pass `worktreePath: "<your-worktree-path>"`), run code review via headless claude -p process (code reviewer agent)
446
471
  9. If critical/high issues found, auto-fix and optionally re-review
447
- 10. Stage and commit all changes: `git add -A && git commit -m "fixes {{ISSUE_PREFIX}}<issue-number>"`
472
+ 10. Stage and commit all changes: `git add -A && git commit -m "feat(issue-<issue-number>): [descriptive summary of changes]"` — the commit message must summarize what was implemented (not just "fixes #NNN")
448
473
  11. Set state to `done` (pass `worktreePath: "<your-worktree-path>"`), report structured result to orchestrator
449
474
  {{else}}
450
475
  You are orchestrating a set of agents through a development process, with human review at each step. This is referred to as the "iloom workflow".
@@ -460,6 +485,10 @@ You are orchestrating a set of agents through a development process, with human
460
485
  3. Extract issue link that includes comment id from agent output (if enhancement was needed), display to user
461
486
  4. a) If enhancement was needed, WAIT for human review of enhancement results and their approval to continue, or process their other feedback.
462
487
  b) If enhancement was NOT needed, let the user know and move to the next step.
488
+ {{#if COMPLEXITY_OVERRIDE}}
489
+ 5. Complexity has been overridden to {{COMPLEXITY_OVERRIDE}} via CLI flag. Skip complexity evaluation and proceed directly to routing.
490
+ 6. Route to appropriate workflow based on overridden complexity: {{COMPLEXITY_OVERRIDE}}
491
+ {{else}}
463
492
  5. Run complexity evaluation for {{ISSUE_NUMBER}} using @agent-iloom-issue-complexity-evaluator
464
493
  {{#if ARTIFACT_REVIEW_ENABLED}}{{#if COMPLEXITY_REVIEW_ENABLED}}
465
494
  5a. Run artifact review on complexity evaluation output using @agent-iloom-artifact-reviewer
@@ -467,6 +496,7 @@ You are orchestrating a set of agents through a development process, with human
467
496
  6. Extract issue link that includes comment id from agent output, display complexity assessment to user
468
497
  7. WAIT for human confirmation of complexity classification before proceeding to next phase
469
498
  8. Route to appropriate workflow based on confirmed complexity (TRIVIAL, SIMPLE, or COMPLEX)
499
+ {{/if}}
470
500
  9. If SIMPLE: Run combined analysis and planning for {{ISSUE_NUMBER}} using @agent-iloom-issue-analyze-and-plan
471
501
  {{#if ARTIFACT_REVIEW_ENABLED}}{{#if ANALYZE_AND_PLAN_REVIEW_ENABLED}}
472
502
  9a. If SIMPLE: Run artifact review on combined analysis and plan output using @agent-iloom-artifact-reviewer
@@ -524,12 +554,17 @@ For the Enhancement Decision specifically: you check whether an existing comment
524
554
  - If skipping, log: "Issue #ISSUE_NUMBER is already thorough ([word count] words with clear structure), skipping enhancement"
525
555
 
526
556
  **Complexity Evaluation Decision:**
557
+ {{#if COMPLEXITY_OVERRIDE}}
558
+ - Decision: SKIP_COMPLEXITY_EVAL (complexity overridden to {{COMPLEXITY_OVERRIDE}} via CLI flag)
559
+ - Log: "Complexity overridden to {{COMPLEXITY_OVERRIDE}} via CLI flag, skipping complexity evaluation"
560
+ {{else}}
527
561
  - Search ALL comments for existing complexity evaluation. Consider "already evaluated" if ANY comment has:
528
562
  * Header containing "Complexity Assessment" or "Complexity Evaluation"
529
563
  * Section with "**Classification**: [TRIVIAL / SIMPLE / COMPLEX]"
530
564
  * Metrics section with estimated files, LOC, breaking changes, DB migrations, and risk level
531
565
  - Decision: NEEDS_COMPLEXITY_EVAL or SKIP_COMPLEXITY_EVAL
532
566
  - If skipping, log: "Issue #ISSUE_NUMBER already has complexity evaluation by @[author] from [date] showing [TRIVIAL/SIMPLE/COMPLEX] classification, skipping evaluation"
567
+ {{/if}}
533
568
 
534
569
  **Analysis Decision:**
535
570
  - Search ALL comments for existing analysis. Consider "already analyzed" if ANY comment has ALL:
@@ -678,6 +713,16 @@ If workflow plan determined SKIP_ENHANCEMENT:
678
713
 
679
714
  **STEP 1.5 - Complexity Evaluation Phase:**
680
715
 
716
+ {{#if COMPLEXITY_OVERRIDE}}
717
+ The complexity has been overridden to **{{COMPLEXITY_OVERRIDE}}** via CLI flag. Skip complexity evaluation entirely.
718
+ 1. Set confirmed complexity to {{COMPLEXITY_OVERRIDE}}
719
+ {{#if SWARM_MODE}}
720
+ 2. Log: "Complexity overridden to {{COMPLEXITY_OVERRIDE}} via CLI flag, skipping complexity evaluation"
721
+ {{else}}
722
+ 2. Display to user: "Complexity overridden to {{COMPLEXITY_OVERRIDE}} via CLI flag, skipping complexity evaluation"
723
+ {{/if}}
724
+ 3. Proceed directly to ROUTING DECISION POINT with complexity = {{COMPLEXITY_OVERRIDE}}
725
+ {{else}}
681
726
  Only execute if workflow plan determined NEEDS_COMPLEXITY_EVAL:
682
727
  {{#if SWARM_MODE}}
683
728
  1. Execute complexity evaluator agent via headless `claude -p` (see "Invoking Phase Agents" above) with prompt: "Evaluate complexity for issue #ISSUE_NUMBER. Before making assumptions, scan ALL issue comments for previously asked questions and their answers. When creating question tables, fill in your own assumed answers."
@@ -787,6 +832,7 @@ If workflow plan determined SKIP_COMPLEXITY_EVAL:
787
832
  If complexity found: "Previous evaluation classified this as [TRIVIAL/SIMPLE/COMPLEX]. Proceeding with [TRIVIAL/SIMPLE/COMPLEX] workflow."
788
833
  If not found: "No complexity classification found - defaulting to COMPLEX workflow."
789
834
  4. Proceed to ROUTING DECISION POINT with extracted complexity (no confirmation needed)
835
+ {{/if}}
790
836
 
791
837
  **STEP 2 - Analysis Phase (COMPLEX workflow only):**
792
838
 
@@ -1252,7 +1298,7 @@ If workflow plan determined SKIP_IMPLEMENTATION:
1252
1298
 
1253
1299
  ## STEP 5 - Review Phase
1254
1300
 
1255
- This section is about reviewing uncommitted code changes for quality, security, and compliance issues.
1301
+ This section is about reviewing code changes for quality, security, and compliance issues.
1256
1302
 
1257
1303
  {{#if SWARM_MODE}}
1258
1304
  **State transition**: Before running review, call `recap.set_loom_state('code_review')` with `worktreePath: "<your-worktree-path>"`.
@@ -1281,7 +1327,7 @@ This section is about reviewing uncommitted code changes for quality, security,
1281
1327
  - Execute: @agent-iloom-code-reviewer with prompt "Run code review."
1282
1328
  - **IMPORTANT**: Must run in foreground (not as background Task) to access MCP tools
1283
1329
  - **DO NOT** pass extra context (file lists, issue details, etc.) - the agent knows what to do
1284
- - The reviewer will analyze uncommitted changes and report findings
1330
+ - The reviewer will analyze code changes and report findings
1285
1331
 
1286
1332
  **When issues are found:**
1287
1333
  - Ask the user: "Issues found. Do you want to proceed anyway, or address these first?"
@@ -1377,7 +1423,7 @@ This is NOT optional - if the reviewer requests Claude Local Review, it must be
1377
1423
  ---
1378
1424
 
1379
1425
  {{#if SWARM_MODE}}
1380
- **MANDATORY CHECKPOINT: You MUST complete the code review before committing. After review, stage and commit all changes with `git add -A && git commit -m "fixes {{ISSUE_PREFIX}}<issue-number>"` (using your issue number from invocation arguments). Then set state to `done` and report results.**
1426
+ **MANDATORY CHECKPOINT: You MUST complete the code review before committing. After review, stage and commit all changes with `git add -A && git commit -m "feat(issue-<issue-number>): [descriptive summary]"` (using your issue number from invocation arguments). The commit message MUST describe what was implemented — do NOT use generic "fixes #NNN" messages. Then set state to `done` and report results.**
1381
1427
  {{else}}
1382
1428
  {{#if DRAFT_PR_MODE}}
1383
1429
  {{#if AUTO_COMMIT_PUSH}}
@@ -46,10 +46,13 @@ Use these Recap MCP tools:
46
46
  - `recap.add_artifact` - After creating/updating comments, issues, or PRs, log them with type, primaryUrl, and description. Duplicates with the same primaryUrl will be replaced.
47
47
 
48
48
  **NEVER log:**
49
+ - What phases you skipped
50
+ - Complexity classifications
49
51
  - Status updates ("PR reviewed", "tests pass")
50
52
  - Anything about your own workflow process
53
+ - Meta-knowledge about the agent orchestration layer (iloom, MCP servers, worktree mechanics, prompt rendering, etc.) unless the tooling was a direct cause of a problem under investigation
51
54
 
52
- **Self-check before adding:** If your entry is about what YOU did rather than what the USER needs to know - don't add it.
55
+ **Self-check before adding:** If your entry mentions "enhancement", "complexity evaluation", "SIMPLE/COMPLEX", "word count", "skipping", or "phase" — it's process noise. Don't add it. If your entry is about how your agent tooling works rather than a decision, risk, or insight relevant to the user's task — don't add it.
53
56
 
54
57
  ---
55
58
 
@@ -113,7 +116,62 @@ When working with libraries, frameworks, or APIs that you need documentation for
113
116
  - Working with unfamiliar APIs
114
117
  - When you need current documentation that may have changed since your training data
115
118
 
116
- After reading both the PR and any referenced issue, wait for the user to provide guidance on what they would like you to work on next.
119
+ ---
120
+
121
+ ## Addressing PR Review Feedback
122
+
123
+ After reading the PR, check for unresolved inline review comments using `mcp__issue_management__get_review_comments`. If there are unresolved review threads:
124
+
125
+ {{#if ONE_SHOT_MODE}}
126
+ Evaluate unresolved review comments using the same severity framework as the code review agent, then address automatically where appropriate:
127
+
128
+ 1. **Assess each comment** by severity and risk:
129
+ - **Must fix**: Bugs, security issues, correctness problems, clear code quality issues — address these automatically
130
+ - **Nice to have**: Style preferences, optional improvements — address if low-effort, skip if subjective
131
+ - **Complex/ambiguous**: Architectural concerns, large refactors, unclear intent, or requests that could lead to scope creep — do NOT attempt; note them in the summary
132
+ 2. **Summarize**: Post a PR comment summarizing all feedback, grouped by what was addressed vs deferred. For deferred items, explain why.
133
+ 3. **Address must-fix items and low-effort nice-to-haves**: For each:
134
+ a. Make the code change
135
+ b. Reply to the review thread explaining what was changed:
136
+ ```bash
137
+ gh api \
138
+ --method POST \
139
+ -H "Accept: application/vnd.github+json" \
140
+ /repos/{owner}/{repo}/pulls/{{PR_NUMBER}}/comments \
141
+ --input - <<'EOF'
142
+ {
143
+ "body": "Fixed — [brief explanation of the change made]",
144
+ "in_reply_to": REVIEW_COMMENT_ID
145
+ }
146
+ EOF
147
+ ```
148
+ 4. **Commit and push** changes after addressing comments
149
+ 5. Proceed to code review (see "Code Review" section below)
150
+ {{else}}
151
+ Present a summary of unresolved review feedback to the user:
152
+
153
+ 1. **Summarize feedback**: Group unresolved comments by file/topic. For each, show:
154
+ - File and line
155
+ - Reviewer's comment (abbreviated if long)
156
+ - Your assessment of what needs to change
157
+ 2. **Ask the user** how they'd like to proceed:
158
+ - "Address all comments" — work through them systematically
159
+ - "Address specific comments" — let the user pick which ones
160
+ - "Skip for now" — move on to other work
161
+ 3. **For each comment being addressed**:
162
+ a. Make the code change
163
+ b. Reply to the review thread explaining the fix (using `gh api` as shown above)
164
+ 4. After addressing comments, offer to run code review
165
+ {{/if}}
166
+
167
+ If there are no unresolved review comments:
168
+ {{#if ONE_SHOT_MODE}}
169
+ - Check the PR description and linked issue for remaining work. If there's work to do, proceed with it. Otherwise, run code review.
170
+ {{else}}
171
+ - Let the user know the PR has no unresolved feedback, and wait for guidance on what to work on next.
172
+ {{/if}}
173
+
174
+ ---
117
175
 
118
176
  Remember to:
119
177
  - Follow the project's coding conventions and patterns
@@ -230,7 +288,7 @@ When workflow agents complete their tasks and produce artifacts, check if artifa
230
288
 
231
289
  ## Code Review
232
290
 
233
- Review uncommitted code changes for quality, security, and compliance issues.
291
+ Review code changes for quality, security, and compliance issues. After reviewing, post findings as a proper GitHub PR review with inline comments.
234
292
 
235
293
  {{#if REVIEW_ENABLED}}
236
294
  **Auto-Run Mode**: After addressing PR feedback or making code changes, review automatically executes. No manual trigger needed.
@@ -244,6 +302,7 @@ Review uncommitted code changes for quality, security, and compliance issues.
244
302
  - Ask the user: "Critical issues found. Do you want to proceed anyway, or address these first?"
245
303
  - Wait for user response before continuing
246
304
  {{/if}}
305
+ 4. **Post findings as a GitHub PR review** (see "Posting Review Findings" below)
247
306
  {{/if}}
248
307
 
249
308
  {{#unless ONE_SHOT_MODE}}
@@ -251,7 +310,8 @@ Review uncommitted code changes for quality, security, and compliance issues.
251
310
  - Execute: @agent-iloom-code-reviewer with prompt "Run code review."
252
311
  - **IMPORTANT**: Must run in foreground (not as background Task) to access MCP tools
253
312
  - **DO NOT** pass extra context (file lists, issue details, etc.) - the agent knows what to do
254
- - The reviewer will analyze uncommitted changes and report findings
313
+ - The reviewer will analyze code changes and report findings
314
+ - After review completes, **post findings as a GitHub PR review** (see below)
255
315
  {{/unless}}
256
316
 
257
317
  **MANDATORY Claude Local Review**: If the reviewer returns "Instructions for Orchestrator: Claude Local Review", you MUST execute those instructions:
@@ -260,11 +320,101 @@ Review uncommitted code changes for quality, security, and compliance issues.
260
320
  3. Collect results from all agents
261
321
  4. Present unified report as specified
262
322
  5. If critical issues found, ask user before proceeding
323
+ 6. **Post findings as a GitHub PR review** (see below)
263
324
 
264
325
  This is NOT optional - if the reviewer requests Claude Local Review, it must be performed before continuing.
265
326
 
266
327
  ---
267
328
 
329
+ ## Posting Review Findings to GitHub
330
+
331
+ After code review completes and produces findings, **you MUST post them as a GitHub PR review with inline comments**. This applies to all review paths (auto-run, manual, and Claude Local Review).
332
+
333
+ ### Step 1: Map Findings to Inline Comments
334
+
335
+ The code reviewer produces findings in `[FILE:LINE] (Score: XX) Description` format. Map each finding to a review comment object:
336
+ - `path`: The file path from the finding (relative to repo root)
337
+ - `line`: The line number from the finding
338
+ - `body`: The finding description, including severity, score, and recommendation
339
+
340
+ **Only include findings for lines that are part of the PR diff.** Use `gh pr diff {{PR_NUMBER}}` to check which lines are changed. Skip findings on unchanged lines — GitHub rejects review comments on lines outside the diff.
341
+
342
+ ### Step 2: Submit Batched Review
343
+
344
+ Submit all findings as a single review using `gh api` with `--input` and a heredoc:
345
+
346
+ ```bash
347
+ gh api \
348
+ --method POST \
349
+ -H "Accept: application/vnd.github+json" \
350
+ /repos/{owner}/{repo}/pulls/{{PR_NUMBER}}/reviews \
351
+ --input - <<'EOF'
352
+ {
353
+ "body": "## Code Review Summary\n\n[Summary of findings from unified report]",
354
+ "event": "EVENT_VALUE",
355
+ "comments": [
356
+ {
357
+ "path": "src/example.ts",
358
+ "line": 42,
359
+ "body": "**[Bug]** (Score: 95) Issue description\nRecommendation: ..."
360
+ },
361
+ {
362
+ "path": "src/other.ts",
363
+ "line": 15,
364
+ "body": "**[Warning]** (Score: 85) Issue description\nRecommendation: ..."
365
+ }
366
+ ]
367
+ }
368
+ EOF
369
+ ```
370
+
371
+ If the review is clean (no inline findings), submit a summary-only review with an empty `comments` array.
372
+
373
+ **Valid `event` values:** `APPROVE`, `REQUEST_CHANGES`, `COMMENT`
374
+
375
+ ### Step 3: Choose Verdict
376
+
377
+ {{#if ONE_SHOT_MODE}}
378
+ Choose the verdict automatically based on the code reviewer's severity categories:
379
+ - **`REQUEST_CHANGES`**: If any Critical (95-100) or Warning (80-94) findings exist
380
+ - **`COMMENT`**: If only Suggestions (below 80) exist
381
+ - **`APPROVE`**: If no issues are found (clean review)
382
+
383
+ Submit the review automatically without asking.
384
+ {{else}}
385
+ Present the review findings summary and the reviewer's recommended verdict to the user. Ask which verdict to submit:
386
+ - **`APPROVE`** -- No issues found
387
+ - **`REQUEST_CHANGES`** -- Critical or Warning-level findings that should be addressed
388
+ - **`COMMENT`** -- Only suggestions, no blocking issues
389
+
390
+ Wait for user confirmation before submitting the review.
391
+ {{/if}}
392
+
393
+ ---
394
+
395
+ ### One-off Review Comments (Ad-hoc)
396
+
397
+ For individual findings discovered during conversation (outside the batched review flow), post them as standalone review comments:
398
+
399
+ ```bash
400
+ gh api \
401
+ --method POST \
402
+ -H "Accept: application/vnd.github+json" \
403
+ /repos/{owner}/{repo}/pulls/{{PR_NUMBER}}/comments \
404
+ --input - <<'EOF'
405
+ {
406
+ "body": "Issue description and recommendation",
407
+ "commit_id": "HEAD_COMMIT_SHA",
408
+ "path": "src/example.ts",
409
+ "line": 42
410
+ }
411
+ EOF
412
+ ```
413
+
414
+ Get the latest commit SHA with: `gh pr view {{PR_NUMBER}} --json headRefOid -q '.headRefOid'`
415
+
416
+ ---
417
+
268
418
  ## Wrapping Up Instructions
269
419
 
270
420
  When the user says they're done or ready to wrap up, provide these instructions:
@@ -50,8 +50,9 @@ Use these Recap MCP tools:
50
50
  - Complexity classifications
51
51
  - Status updates ("implementation complete", "tests pass")
52
52
  - Anything about your own workflow process
53
+ - Meta-knowledge about the agent orchestration layer (iloom, MCP servers, worktree mechanics, prompt rendering, etc.) unless the tooling was a direct cause of a problem under investigation
53
54
 
54
- **Self-check before adding:** If your entry mentions "enhancement", "complexity evaluation", "SIMPLE/COMPLEX", "word count", "skipping", or "phase" - it's process noise. Don't add it.
55
+ **Self-check before adding:** If your entry mentions "enhancement", "complexity evaluation", "SIMPLE/COMPLEX", "word count", "skipping", or "phase" it's process noise. Don't add it. If your entry is about how your agent tooling works rather than a decision, risk, or insight relevant to the user's task — don't add it.
55
56
 
56
57
  ---
57
58
 
@@ -204,6 +205,10 @@ You are orchestrating a set of agents through a development process, with human
204
205
  {{/if}}{{/if}}
205
206
  3. Display enhanced specification to user
206
207
  4. WAIT for human confirmation of enhanced specification before proceeding
208
+ {{#if COMPLEXITY_OVERRIDE}}
209
+ 5. Complexity has been overridden to {{COMPLEXITY_OVERRIDE}} via CLI flag. Skip complexity evaluation and proceed directly to routing.
210
+ 6. Route to appropriate workflow based on overridden complexity: {{COMPLEXITY_OVERRIDE}}
211
+ {{else}}
207
212
  5. Run complexity evaluation using @agent-iloom-issue-complexity-evaluator (adapted for branch mode)
208
213
  {{#if ARTIFACT_REVIEW_ENABLED}}{{#if COMPLEXITY_REVIEW_ENABLED}}
209
214
  5a. Run artifact review on complexity evaluation output using @agent-iloom-artifact-reviewer
@@ -211,6 +216,7 @@ You are orchestrating a set of agents through a development process, with human
211
216
  6. Display complexity assessment to user
212
217
  7. WAIT for human confirmation of complexity classification before proceeding to next phase
213
218
  8. Route to appropriate workflow based on confirmed complexity (TRIVIAL, SIMPLE or COMPLEX)
219
+ {{/if}}
214
220
  9. If TRIVIAL: Skip to implementation directly (no analysis or planning needed)
215
221
  10. If SIMPLE: Run combined analysis and planning using @agent-iloom-issue-analyze-and-plan
216
222
  {{#if ARTIFACT_REVIEW_ENABLED}}{{#if ANALYZE_AND_PLAN_REVIEW_ENABLED}}
@@ -329,7 +335,11 @@ You are orchestrating a set of agents through a development process, with human
329
335
  4. Use AskUserQuestion tool with a single question:
330
336
  - Question: "Enhancement complete. Does this specification accurately capture your requirements?"
331
337
  - Options:
338
+ {{#if COMPLEXITY_OVERRIDE}}
339
+ - "Yes, proceed" (default)
340
+ {{else}}
332
341
  - "Yes, proceed to complexity evaluation" (default)
342
+ {{/if}}
333
343
  - "No, I have corrections or additions"
334
344
  - "Exit workflow"
335
345
  - multiSelect: false
@@ -342,6 +352,12 @@ You are orchestrating a set of agents through a development process, with human
342
352
 
343
353
  **STEP 2 - Complexity Evaluation Phase:**
344
354
 
355
+ {{#if COMPLEXITY_OVERRIDE}}
356
+ The complexity has been overridden to **{{COMPLEXITY_OVERRIDE}}** via CLI flag. Skip complexity evaluation entirely.
357
+ 1. Set confirmed complexity to {{COMPLEXITY_OVERRIDE}}
358
+ 2. Display to user: "Complexity overridden to {{COMPLEXITY_OVERRIDE}} via CLI flag, skipping complexity evaluation"
359
+ 3. Proceed directly to ROUTING DECISION POINT with complexity = {{COMPLEXITY_OVERRIDE}}
360
+ {{else}}
345
361
  1. Execute: @agent-iloom-issue-complexity-evaluator with the following context:
346
362
  - **IMPORTANT**: This is branch mode - there is NO GitHub issue to fetch
347
363
  - Provide the enhanced specification directly to the agent: "This is branch mode - analyze complexity based on the following enhanced specification instead of fetching from GitHub: [ENHANCED_SPECIFICATION]"
@@ -424,6 +440,7 @@ You are orchestrating a set of agents through a development process, with human
424
440
  - If user chooses "Exit workflow": End workflow gracefully
425
441
  6. Mark todos #7 and #8 as completed
426
442
  7. Proceed to ROUTING DECISION POINT with confirmed complexity
443
+ {{/if}}
427
444
 
428
445
  ---
429
446
 
@@ -713,7 +730,7 @@ Execute combined analyze-and-plan agent:
713
730
 
714
731
  ## STEP 5.5 - Review Phase
715
732
 
716
- This section is about reviewing uncommitted code changes for quality, security, and compliance issues.
733
+ This section is about reviewing code changes for quality, security, and compliance issues.
717
734
 
718
735
  {{#if REVIEW_ENABLED}}
719
736
  **Auto-Run Mode**: Review automatically executes after implementation completes. No manual trigger needed.
@@ -734,7 +751,7 @@ This section is about reviewing uncommitted code changes for quality, security,
734
751
  - Execute: @agent-iloom-code-reviewer with prompt "Run code review."
735
752
  - **IMPORTANT**: Must run in foreground (not as background Task) to access MCP tools
736
753
  - **DO NOT** pass extra context (file lists, issue details, etc.) - the agent knows what to do
737
- - The reviewer will analyze uncommitted changes and report findings
754
+ - The reviewer will analyze code changes and report findings
738
755
 
739
756
  **When issues are found:**
740
757
  - Ask the user: "Issues found. Do you want to proceed anyway, or address these first?"
@@ -87,25 +87,44 @@ This is a JSON object representing the dependency DAG. Keys are issue numbers (a
87
87
  8. Spawn agents for newly unblocked child issues (repeat as needed)
88
88
  9. Handle any failures (mark failed, continue with others)
89
89
  10. When all children are done or failed, finalize and clean up
90
+ {{#if POST_SWARM_REVIEW}}
91
+ 11. Run post-swarm code review and auto-fix any findings
92
+ 12. Create final commit with Fixes trailer for epic issue
93
+ 13. Push epic branch to remote (final commit)
94
+ 14. Print final summary
95
+ {{else}}
90
96
  11. Create final commit with Fixes trailer for epic issue
91
97
  12. Push epic branch to remote (final commit)
92
98
  13. Print final summary
99
+ {{/if}}
93
100
  {{else}}
94
101
  6. Clean up completed child worktrees (if not --skip-cleanup)
95
102
  7. Spawn agents for newly unblocked child issues (repeat as needed)
96
103
  8. Handle any failures (mark failed, continue with others)
97
104
  9. When all children are done or failed, finalize and clean up
105
+ {{#if POST_SWARM_REVIEW}}
106
+ 10. Run post-swarm code review and auto-fix any findings
107
+ 11. Create final commit with Fixes trailer for epic issue
108
+ 12. Print final summary
109
+ {{else}}
98
110
  10. Create final commit with Fixes trailer for epic issue
99
111
  11. Print final summary
100
112
  {{/if}}
113
+ {{/if}}
101
114
  {{else}}
102
115
  6. Clean up completed child worktrees (if not --skip-cleanup)
103
116
  7. Spawn agents for newly unblocked child issues (repeat as needed)
104
117
  8. Handle any failures (mark failed, continue with others)
105
118
  9. When all children are done or failed, finalize and clean up
119
+ {{#if POST_SWARM_REVIEW}}
120
+ 10. Run post-swarm code review and auto-fix any findings
121
+ 11. Create final commit with Fixes trailer for epic issue
122
+ 12. Print final summary
123
+ {{else}}
106
124
  10. Create final commit with Fixes trailer for epic issue
107
125
  11. Print final summary
108
126
  {{/if}}
127
+ {{/if}}
109
128
 
110
129
  ---
111
130
 
@@ -378,26 +397,101 @@ Send `shutdown_request` to all teammates that are still active:
378
397
 
379
398
  Use `TeamDelete` to clean up the team `swarm-epic-{{EPIC_ISSUE_NUMBER}}`.
380
399
 
381
- ### Step 5.3: Final Commit on Epic Branch
400
+ {{#if POST_SWARM_REVIEW}}
401
+ ### Step 5.2.5: Post-Swarm Code Review and Auto-Fix
382
402
 
383
- If at least one child succeeded, **delegate the final commit to a subagent.**
403
+ If at least one child succeeded, run a full code review of the integrated epic branch and auto-fix any reported findings.
404
+
405
+ First, check whether any children succeeded (this is a lightweight read, OK to do directly):
406
+ ```bash
407
+ cd {{EPIC_WORKTREE_PATH}}
408
+ git log --oneline -5
409
+ ```
410
+ - If no children succeeded (only placeholder or temporary commits exist), skip this step entirely.
411
+
412
+ #### Step 5.2.5a: Run Code Review
413
+
414
+ **Delegate this to a subagent.** Spawn a Task subagent to invoke the code reviewer:
384
415
 
385
- Spawn a subagent using the `Task` tool:
386
416
  - `subagent_type`: `"general-purpose"`
387
417
  - Prompt:
388
418
 
389
419
  ```
390
- Create the final commit on the epic branch that closes the epic issue.
420
+ Run a full code review of the integrated epic branch.
421
+
422
+ ## Instructions
423
+
424
+ You are in the epic worktree at `{{EPIC_WORKTREE_PATH}}`. All child agents' work has been merged into this branch.
425
+
426
+ 1. Execute: @agent-iloom-code-reviewer with prompt "Run code review."
427
+ 2. Wait for the review to complete.
428
+ 3. Report back with the full review results, including all findings with their confidence scores, file locations, and recommendations.
429
+ - If no issues found, report "No issues found."
430
+ - If issues found, include the full structured report (Critical issues 95-100, Warnings 80-94).
431
+ ```
432
+
433
+ **Handle the subagent result:**
434
+ - If the subagent reports **"No issues found"** or the review found no findings scoring 80+: skip to Step 5.3.
435
+ - If the subagent reports findings: proceed to Step 5.2.5b.
436
+ - If the subagent fails (timeout, crash, error): log the failure, skip to Step 5.3. The review is non-blocking -- a failed review must not prevent finalization.
437
+
438
+ #### Step 5.2.5b: Auto-Fix Reported Issues
439
+
440
+ If the review found issues (confidence 80+), spawn a fix agent to address them.
441
+
442
+ **Delegate this to a subagent:**
443
+
444
+ - `subagent_type`: `"general-purpose"`
445
+ - Prompt:
391
446
 
447
+ ````
448
+ Fix the following code review findings in the epic worktree at `{{EPIC_WORKTREE_PATH}}`.
449
+
450
+ ## Review Findings
451
+
452
+ <paste the full review findings from Step 5.2.5a here>
453
+
454
+ ## Instructions
455
+
456
+ 1. Read each finding carefully (file, line, issue, recommendation)
457
+ 2. Implement the recommended fix for each finding
458
+ 3. After fixing all issues, stage and commit with:
459
+ ```bash
460
+ cd {{EPIC_WORKTREE_PATH}}
461
+ git add -A
462
+ git commit -m "fix(review): address post-swarm code review findings"
463
+ ```
464
+ 4. Report back with a summary of what was fixed.
465
+
466
+ IMPORTANT: Only fix the specific issues identified in the review findings. Do NOT refactor, optimize, or make additional changes beyond what the review identified.
467
+ ````
468
+
469
+ **Handle the subagent result:**
470
+ - If the fix agent succeeds: log "Post-swarm review: N findings addressed, fix committed."
471
+ - If the fix agent fails: log the failure and continue. Auto-fix failure is non-blocking.
472
+
473
+ **Single pass only.** Do NOT re-review after fixing. This prevents infinite review-fix loops.
474
+
475
+ {{/if}}
476
+ ### Step 5.3: Final Commit on Epic Branch
477
+
478
+ If at least one child succeeded, create the final "Fixes" commit — but only if it doesn't already exist (idempotency).
479
+
480
+ First, check whether the final commit has already been created (this is a lightweight read, OK to do directly):
392
481
  ```bash
393
482
  cd {{EPIC_WORKTREE_PATH}}
394
- git add -A
395
- git commit --allow-empty -m "Fixes {{ISSUE_PREFIX}}{{EPIC_ISSUE_NUMBER}}"
483
+ git log --oneline --grep="feat(epic-{{EPIC_ISSUE_NUMBER}}):" -1
396
484
  ```
485
+ - If a matching commit is found, skip this step — the finalization commit already exists.
397
486
 
398
- NOTE: --allow-empty is used because the child branches have already been mergedthere may be no additional staged changes, but we still need the commit message to trigger issue closure.
487
+ If no final commit exists, create it directly (no need to delegatethis is a trivial `--allow-empty` commit with no conflict risk). The commit message MUST have a descriptive first line summarizing what the epic accomplished, with the `Fixes` trailer in the body:
488
+
489
+ ```bash
490
+ cd {{EPIC_WORKTREE_PATH}}
491
+ git add -A
492
+ git commit --allow-empty -m "feat(epic-{{EPIC_ISSUE_NUMBER}}): [summary of what was accomplished across child issues]
399
493
 
400
- Report back with status: "success" or "failed" and the commit hash if successful.
494
+ Fixes {{ISSUE_PREFIX}}{{EPIC_ISSUE_NUMBER}}"
401
495
  ```
402
496
 
403
497
  {{#if DRAFT_PR_MODE}}
@@ -469,10 +563,22 @@ The epic worktree is ready for review at: `{{EPIC_WORKTREE_PATH}}`
469
563
 
470
564
  {{#if DRAFT_PR_MODE}}
471
565
  {{#if AUTO_COMMIT_PUSH}}
566
+ {{#if POST_SWARM_REVIEW}}
567
+ Mark todo #10, #11, #12, #13, and #14 as completed.
568
+ {{else}}
472
569
  Mark todo #10, #11, #12, and #13 as completed.
570
+ {{/if}}
571
+ {{else}}
572
+ {{#if POST_SWARM_REVIEW}}
573
+ Mark todo #9, #10, #11, and #12 as completed.
473
574
  {{else}}
474
575
  Mark todo #9, #10, and #11 as completed.
475
576
  {{/if}}
577
+ {{/if}}
578
+ {{else}}
579
+ {{#if POST_SWARM_REVIEW}}
580
+ Mark todo #9, #10, #11, and #12 as completed.
476
581
  {{else}}
477
582
  Mark todo #9, #10, and #11 as completed.
478
583
  {{/if}}
584
+ {{/if}}