@iloom/cli 0.9.2 → 0.10.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 (220) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +159 -40
  3. package/dist/{BranchNamingService-K6XNWQ6C.js → BranchNamingService-ECJHBB67.js} +2 -2
  4. package/dist/ClaudeContextManager-QXX6ZFST.js +14 -0
  5. package/dist/ClaudeService-NJNK2SUH.js +13 -0
  6. package/dist/{GitHubService-TGWJN4V4.js → GitHubService-MEHKHUQP.js} +4 -4
  7. package/dist/IssueTrackerFactory-NG53YX5S.js +14 -0
  8. package/dist/{LoomLauncher-73NXL2CL.js → LoomLauncher-L64HHS3T.js} +9 -9
  9. package/dist/{MetadataManager-W3C54UYT.js → MetadataManager-5QZSTKNN.js} +2 -2
  10. package/dist/{ProjectCapabilityDetector-N5L7T4IY.js → ProjectCapabilityDetector-5KSYUTBJ.js} +3 -3
  11. package/dist/{PromptTemplateManager-36YLQRHP.js → PromptTemplateManager-DULSVRRE.js} +2 -2
  12. package/dist/README.md +159 -40
  13. package/dist/{SettingsManager-AW3JTJHD.js → SettingsManager-BQDQA3FK.js} +4 -2
  14. package/dist/agents/iloom-artifact-reviewer.md +11 -0
  15. package/dist/agents/iloom-code-reviewer.md +14 -0
  16. package/dist/agents/iloom-issue-analyze-and-plan.md +55 -12
  17. package/dist/agents/iloom-issue-analyzer.md +49 -6
  18. package/dist/agents/iloom-issue-complexity-evaluator.md +47 -6
  19. package/dist/agents/iloom-issue-enhancer.md +86 -7
  20. package/dist/agents/iloom-issue-implementer.md +48 -7
  21. package/dist/agents/iloom-issue-planner.md +115 -62
  22. package/dist/{build-THZI572G.js → build-5GO3XW26.js} +9 -9
  23. package/dist/{chunk-NUACL52E.js → chunk-3D7WQM7I.js} +2 -2
  24. package/dist/chunk-4232AHNQ.js +35 -0
  25. package/dist/chunk-4232AHNQ.js.map +1 -0
  26. package/dist/{chunk-QN47QVBX.js → chunk-4WJNIR5O.js} +1 -1
  27. package/dist/chunk-4WJNIR5O.js.map +1 -0
  28. package/dist/{chunk-A7NJF73J.js → chunk-5MWV33NN.js} +4 -4
  29. package/dist/{chunk-3I4ONZRT.js → chunk-6EU6TCF6.js} +10 -10
  30. package/dist/chunk-6EU6TCF6.js.map +1 -0
  31. package/dist/{chunk-CWRI4JC3.js → chunk-FB47TIJG.js} +29 -11
  32. package/dist/chunk-FB47TIJG.js.map +1 -0
  33. package/dist/chunk-HEXKPKCK.js +1396 -0
  34. package/dist/chunk-HEXKPKCK.js.map +1 -0
  35. package/dist/{chunk-KAYXR544.js → chunk-J5S7DFYC.js} +2 -2
  36. package/dist/{chunk-ULSWCPQG.js → chunk-JO2LZ6EQ.js} +476 -5
  37. package/dist/chunk-JO2LZ6EQ.js.map +1 -0
  38. package/dist/{chunk-KBEIQP4G.js → chunk-KB64WNBZ.js} +43 -3
  39. package/dist/chunk-KB64WNBZ.js.map +1 -0
  40. package/dist/{chunk-OFDN5NKS.js → chunk-KXDRI47U.js} +69 -12
  41. package/dist/chunk-KXDRI47U.js.map +1 -0
  42. package/dist/{chunk-R4YWBGY6.js → chunk-LXLMMXXY.js} +54 -14
  43. package/dist/chunk-LXLMMXXY.js.map +1 -0
  44. package/dist/{chunk-AR5QKYNE.js → chunk-MNHZB4Z2.js} +4 -4
  45. package/dist/{chunk-TL72BGP6.js → chunk-MORRVYPT.js} +2 -2
  46. package/dist/{chunk-KJTVU3HZ.js → chunk-NRSWLOAZ.js} +8 -8
  47. package/dist/chunk-NRSWLOAZ.js.map +1 -0
  48. package/dist/{chunk-FO5GGFOV.js → chunk-ONQYPICO.js} +13 -5
  49. package/dist/chunk-ONQYPICO.js.map +1 -0
  50. package/dist/{chunk-7ZEHSSUP.js → chunk-P4O6EH46.js} +4 -4
  51. package/dist/chunk-QZWEJVWV.js +207 -0
  52. package/dist/chunk-QZWEJVWV.js.map +1 -0
  53. package/dist/chunk-RSYT7MVI.js +202 -0
  54. package/dist/chunk-RSYT7MVI.js.map +1 -0
  55. package/dist/{chunk-Z2TWEXR7.js → chunk-RYWFS37M.js} +6 -6
  56. package/dist/chunk-RYWFS37M.js.map +1 -0
  57. package/dist/{chunk-B7U6OKUR.js → chunk-SF2P22EE.js} +11 -3
  58. package/dist/chunk-SF2P22EE.js.map +1 -0
  59. package/dist/{chunk-6IIL5M2L.js → chunk-SN3SQCFK.js} +10 -8
  60. package/dist/{chunk-6IIL5M2L.js.map → chunk-SN3SQCFK.js.map} +1 -1
  61. package/dist/{chunk-SOSQILHO.js → chunk-UD3WJDIV.js} +92 -82
  62. package/dist/chunk-UD3WJDIV.js.map +1 -0
  63. package/dist/{chunk-KXGQYLFZ.js → chunk-UKBAJ2QQ.js} +61 -7
  64. package/dist/chunk-UKBAJ2QQ.js.map +1 -0
  65. package/dist/{chunk-W6DP5RVR.js → chunk-UVD4CZKS.js} +3 -3
  66. package/dist/chunk-UWGVCXRF.js +207 -0
  67. package/dist/chunk-UWGVCXRF.js.map +1 -0
  68. package/dist/{chunk-NWMORW3U.js → chunk-VECNX6VX.js} +2 -2
  69. package/dist/{chunk-4CO6KG5S.js → chunk-VG45TUYK.js} +53 -7
  70. package/dist/{chunk-4CO6KG5S.js.map → chunk-VG45TUYK.js.map} +1 -1
  71. package/dist/{chunk-TC7APDKU.js → chunk-VGGST52X.js} +2 -2
  72. package/dist/{chunk-4LKGCFGG.js → chunk-WWKOVDWC.js} +2 -2
  73. package/dist/{chunk-YKFCCV6S.js → chunk-WY4QBK43.js} +7 -7
  74. package/dist/chunk-WY4QBK43.js.map +1 -0
  75. package/dist/chunk-Y4YZTHZE.js +73 -0
  76. package/dist/chunk-Y4YZTHZE.js.map +1 -0
  77. package/dist/{chunk-VOGGLPG5.js → chunk-YQ57ORTV.js} +14 -1
  78. package/dist/chunk-YQ57ORTV.js.map +1 -0
  79. package/dist/{chunk-RI2YL6TK.js → chunk-YYAKPQBT.js} +65 -18
  80. package/dist/chunk-YYAKPQBT.js.map +1 -0
  81. package/dist/{chunk-IZIYLYPK.js → chunk-ZEWU5PZK.js} +2 -2
  82. package/dist/{chunk-VPTAX5TR.js → chunk-ZHPNZC75.js} +12 -12
  83. package/dist/chunk-ZHPNZC75.js.map +1 -0
  84. package/dist/{chunk-DGG2VY7B.js → chunk-ZW2LKWWE.js} +9 -9
  85. package/dist/chunk-ZW2LKWWE.js.map +1 -0
  86. package/dist/{claude-TP2QO3BU.js → claude-P3NQR6IJ.js} +2 -2
  87. package/dist/{cleanup-PJRIFFU4.js → cleanup-6UCPVMFG.js} +81 -32
  88. package/dist/cleanup-6UCPVMFG.js.map +1 -0
  89. package/dist/cli.js +638 -349
  90. package/dist/cli.js.map +1 -1
  91. package/dist/{commit-IVP3M4HG.js → commit-L3EPY5QG.js} +21 -20
  92. package/dist/commit-L3EPY5QG.js.map +1 -0
  93. package/dist/{compile-R2J65HBQ.js → compile-ZS4HYRX5.js} +9 -9
  94. package/dist/{contribute-VDZXHK5Y.js → contribute-ORDDQGSL.js} +14 -6
  95. package/dist/contribute-ORDDQGSL.js.map +1 -0
  96. package/dist/{dev-server-7F622OEO.js → dev-server-FYZ2AQIH.js} +29 -15
  97. package/dist/dev-server-FYZ2AQIH.js.map +1 -0
  98. package/dist/{feedback-E7VET7CL.js → feedback-TMBXSCM5.js} +15 -15
  99. package/dist/{git-2QDQ2X2S.js → git-ET64COO3.js} +4 -4
  100. package/dist/hooks/iloom-hook.js +15 -0
  101. package/dist/ignite-CGOV3TD4.js +1393 -0
  102. package/dist/ignite-CGOV3TD4.js.map +1 -0
  103. package/dist/index.d.ts +382 -53
  104. package/dist/index.js +1167 -36
  105. package/dist/index.js.map +1 -1
  106. package/dist/{init-676DHF6R.js → init-GFQ5W7GK.js} +57 -21
  107. package/dist/init-GFQ5W7GK.js.map +1 -0
  108. package/dist/{issues-PJSOLOBJ.js → issues-T4ZZSPEG.js} +61 -20
  109. package/dist/issues-T4ZZSPEG.js.map +1 -0
  110. package/dist/{lint-CJM7BAIM.js → lint-6TQXDZ3T.js} +9 -9
  111. package/dist/mcp/issue-management-server.js +2471 -256
  112. package/dist/mcp/issue-management-server.js.map +1 -1
  113. package/dist/mcp/recap-server.js +144 -21
  114. package/dist/mcp/recap-server.js.map +1 -1
  115. package/dist/{neon-helpers-VVFFTLXE.js → neon-helpers-CQN2PB4S.js} +3 -3
  116. package/dist/neon-helpers-CQN2PB4S.js.map +1 -0
  117. package/dist/{open-544H7JF5.js → open-5QZGXQRF.js} +15 -15
  118. package/dist/open-5QZGXQRF.js.map +1 -0
  119. package/dist/{plan-Q7ELXDLC.js → plan-U7ZQWLFY.js} +41 -25
  120. package/dist/plan-U7ZQWLFY.js.map +1 -0
  121. package/dist/{projects-LH362JZQ.js → projects-2UOXFLNZ.js} +4 -4
  122. package/dist/prompts/CLAUDE.md +62 -0
  123. package/dist/prompts/init-prompt.txt +347 -26
  124. package/dist/prompts/issue-prompt.txt +427 -54
  125. package/dist/prompts/plan-prompt.txt +97 -16
  126. package/dist/prompts/pr-prompt.txt +44 -1
  127. package/dist/prompts/regular-prompt.txt +42 -1
  128. package/dist/prompts/session-summary-prompt.txt +14 -0
  129. package/dist/prompts/swarm-orchestrator-prompt.txt +437 -0
  130. package/dist/{rebase-YND35CIE.js → rebase-DWIB77KV.js} +10 -10
  131. package/dist/{recap-3W7COH7D.js → recap-MX63HAKV.js} +47 -19
  132. package/dist/recap-MX63HAKV.js.map +1 -0
  133. package/dist/{run-QUXJKDQQ.js → run-O3TFNQFC.js} +15 -15
  134. package/dist/run-O3TFNQFC.js.map +1 -0
  135. package/dist/schema/package-iloom.schema.json +58 -0
  136. package/dist/schema/settings.schema.json +115 -15
  137. package/dist/{shell-QGECBLST.js → shell-G6VC2CYR.js} +14 -7
  138. package/dist/shell-G6VC2CYR.js.map +1 -0
  139. package/dist/{summary-G2T4452H.js → summary-FWHAX55O.js} +27 -25
  140. package/dist/summary-FWHAX55O.js.map +1 -0
  141. package/dist/{test-EA5NQFDC.js → test-F7JNJZYP.js} +9 -9
  142. package/dist/{test-git-M7LSLEFL.js → test-git-BTAOIUE2.js} +4 -4
  143. package/dist/test-jira-CHYNV33F.js +96 -0
  144. package/dist/test-jira-CHYNV33F.js.map +1 -0
  145. package/dist/{test-prefix-64NAAUON.js → test-prefix-Q6TFSU6F.js} +4 -4
  146. package/dist/{test-webserver-OK6Z5FJM.js → test-webserver-EONCG7E7.js} +6 -6
  147. package/dist/{vscode-AR5NNXXI.js → vscode-VA5X4P25.js} +7 -7
  148. package/package.json +5 -1
  149. package/dist/ClaudeContextManager-HR5JQKAI.js +0 -14
  150. package/dist/ClaudeService-TK7FMC2X.js +0 -13
  151. package/dist/chunk-3I4ONZRT.js.map +0 -1
  152. package/dist/chunk-B7U6OKUR.js.map +0 -1
  153. package/dist/chunk-CWRI4JC3.js.map +0 -1
  154. package/dist/chunk-DGG2VY7B.js.map +0 -1
  155. package/dist/chunk-FJDRTVJX.js +0 -520
  156. package/dist/chunk-FJDRTVJX.js.map +0 -1
  157. package/dist/chunk-FO5GGFOV.js.map +0 -1
  158. package/dist/chunk-KBEIQP4G.js.map +0 -1
  159. package/dist/chunk-KJTVU3HZ.js.map +0 -1
  160. package/dist/chunk-KXGQYLFZ.js.map +0 -1
  161. package/dist/chunk-OFDN5NKS.js.map +0 -1
  162. package/dist/chunk-QN47QVBX.js.map +0 -1
  163. package/dist/chunk-R4YWBGY6.js.map +0 -1
  164. package/dist/chunk-RI2YL6TK.js.map +0 -1
  165. package/dist/chunk-SOSQILHO.js.map +0 -1
  166. package/dist/chunk-ULSWCPQG.js.map +0 -1
  167. package/dist/chunk-VOGGLPG5.js.map +0 -1
  168. package/dist/chunk-VPTAX5TR.js.map +0 -1
  169. package/dist/chunk-WHI5KEOX.js +0 -121
  170. package/dist/chunk-WHI5KEOX.js.map +0 -1
  171. package/dist/chunk-YKFCCV6S.js.map +0 -1
  172. package/dist/chunk-Z2TWEXR7.js.map +0 -1
  173. package/dist/cleanup-PJRIFFU4.js.map +0 -1
  174. package/dist/commit-IVP3M4HG.js.map +0 -1
  175. package/dist/contribute-VDZXHK5Y.js.map +0 -1
  176. package/dist/dev-server-7F622OEO.js.map +0 -1
  177. package/dist/ignite-IW35CDBD.js +0 -784
  178. package/dist/ignite-IW35CDBD.js.map +0 -1
  179. package/dist/init-676DHF6R.js.map +0 -1
  180. package/dist/issues-PJSOLOBJ.js.map +0 -1
  181. package/dist/open-544H7JF5.js.map +0 -1
  182. package/dist/plan-Q7ELXDLC.js.map +0 -1
  183. package/dist/recap-3W7COH7D.js.map +0 -1
  184. package/dist/run-QUXJKDQQ.js.map +0 -1
  185. package/dist/shell-QGECBLST.js.map +0 -1
  186. package/dist/summary-G2T4452H.js.map +0 -1
  187. /package/dist/{BranchNamingService-K6XNWQ6C.js.map → BranchNamingService-ECJHBB67.js.map} +0 -0
  188. /package/dist/{ClaudeContextManager-HR5JQKAI.js.map → ClaudeContextManager-QXX6ZFST.js.map} +0 -0
  189. /package/dist/{ClaudeService-TK7FMC2X.js.map → ClaudeService-NJNK2SUH.js.map} +0 -0
  190. /package/dist/{GitHubService-TGWJN4V4.js.map → GitHubService-MEHKHUQP.js.map} +0 -0
  191. /package/dist/{MetadataManager-W3C54UYT.js.map → IssueTrackerFactory-NG53YX5S.js.map} +0 -0
  192. /package/dist/{LoomLauncher-73NXL2CL.js.map → LoomLauncher-L64HHS3T.js.map} +0 -0
  193. /package/dist/{ProjectCapabilityDetector-N5L7T4IY.js.map → MetadataManager-5QZSTKNN.js.map} +0 -0
  194. /package/dist/{PromptTemplateManager-36YLQRHP.js.map → ProjectCapabilityDetector-5KSYUTBJ.js.map} +0 -0
  195. /package/dist/{SettingsManager-AW3JTJHD.js.map → PromptTemplateManager-DULSVRRE.js.map} +0 -0
  196. /package/dist/{claude-TP2QO3BU.js.map → SettingsManager-BQDQA3FK.js.map} +0 -0
  197. /package/dist/{build-THZI572G.js.map → build-5GO3XW26.js.map} +0 -0
  198. /package/dist/{chunk-NUACL52E.js.map → chunk-3D7WQM7I.js.map} +0 -0
  199. /package/dist/{chunk-A7NJF73J.js.map → chunk-5MWV33NN.js.map} +0 -0
  200. /package/dist/{chunk-KAYXR544.js.map → chunk-J5S7DFYC.js.map} +0 -0
  201. /package/dist/{chunk-AR5QKYNE.js.map → chunk-MNHZB4Z2.js.map} +0 -0
  202. /package/dist/{chunk-TL72BGP6.js.map → chunk-MORRVYPT.js.map} +0 -0
  203. /package/dist/{chunk-7ZEHSSUP.js.map → chunk-P4O6EH46.js.map} +0 -0
  204. /package/dist/{chunk-W6DP5RVR.js.map → chunk-UVD4CZKS.js.map} +0 -0
  205. /package/dist/{chunk-NWMORW3U.js.map → chunk-VECNX6VX.js.map} +0 -0
  206. /package/dist/{chunk-TC7APDKU.js.map → chunk-VGGST52X.js.map} +0 -0
  207. /package/dist/{chunk-4LKGCFGG.js.map → chunk-WWKOVDWC.js.map} +0 -0
  208. /package/dist/{chunk-IZIYLYPK.js.map → chunk-ZEWU5PZK.js.map} +0 -0
  209. /package/dist/{git-2QDQ2X2S.js.map → claude-P3NQR6IJ.js.map} +0 -0
  210. /package/dist/{compile-R2J65HBQ.js.map → compile-ZS4HYRX5.js.map} +0 -0
  211. /package/dist/{feedback-E7VET7CL.js.map → feedback-TMBXSCM5.js.map} +0 -0
  212. /package/dist/{neon-helpers-VVFFTLXE.js.map → git-ET64COO3.js.map} +0 -0
  213. /package/dist/{lint-CJM7BAIM.js.map → lint-6TQXDZ3T.js.map} +0 -0
  214. /package/dist/{projects-LH362JZQ.js.map → projects-2UOXFLNZ.js.map} +0 -0
  215. /package/dist/{rebase-YND35CIE.js.map → rebase-DWIB77KV.js.map} +0 -0
  216. /package/dist/{test-EA5NQFDC.js.map → test-F7JNJZYP.js.map} +0 -0
  217. /package/dist/{test-git-M7LSLEFL.js.map → test-git-BTAOIUE2.js.map} +0 -0
  218. /package/dist/{test-prefix-64NAAUON.js.map → test-prefix-Q6TFSU6F.js.map} +0 -0
  219. /package/dist/{test-webserver-OK6Z5FJM.js.map → test-webserver-EONCG7E7.js.map} +0 -0
  220. /package/dist/{vscode-AR5NNXXI.js.map → vscode-VA5X4P25.js.map} +0 -0
package/LICENSE CHANGED
@@ -20,7 +20,7 @@ it within your organization. What is prohibited is redistributing or offering
20
20
  access to this software (in original or modified form) as part of something
21
21
  you sell or provide to others.
22
22
 
23
- Change Date: 2030-02-16
23
+ Change Date: 2030-02-23
24
24
  Change License: Apache License 2.0
25
25
 
26
26
  For clarity, on or after the Change Date, the Licensed Work will
package/README.md CHANGED
@@ -18,46 +18,17 @@ iloom
18
18
 
19
19
  #### Links to key sections
20
20
 
21
- [How It Works](#how-it-works-the-multi-agent-workflow) • [Installation](#quick-start) • [Configuration](#configuration) • [Advanced Features](#advanced-features) • [Limitations](#system-requirements--limitations) • [Contributing](#contributing-to-iloom)
21
+ [How It Works](#how-it-works-the-multi-agent-workflow) • [Installation](#quick-start) • [Configuration](#configuration) • [Advanced Features](#advanced-features) • [Swarm Mode](#swarm-mode-epic-orchestration) • [Telemetry](#telemetry) • [Limitations](#system-requirements--limitations) • [Contributing](#contributing-to-iloom)
22
22
 
23
- ## Built For Modern Tools...
23
+ ## How can your team trust the code your AI wrote, when you don't?
24
24
 
25
- [![Node.js](https://img.shields.io/badge/Node.js-339933?style=for-the-badge&logo=nodedotjs&logoColor=white)](https://nodejs.org/)
26
- [![TypeScript](https://img.shields.io/badge/TypeScript-3178C6?style=for-the-badge&logo=typescript&logoColor=white)](https://www.typescriptlang.org/)
27
- [![Next.js](https://img.shields.io/badge/Next.js-000000?style=for-the-badge&logo=nextdotjs&logoColor=white)](https://nextjs.org/)
28
- [![Neon](https://img.shields.io/badge/Neon-00E699?style=for-the-badge)](https://neon.tech/)
29
- [![Claude Code](https://img.shields.io/badge/Claude%20Code-8A6FFF?style=for-the-badge)](https://claude.ai/)
25
+ Your agent just shipped a 2,000-line PR. Why did it restructure that module? What assumptions did it make about the auth flow? Nobody knows. The reasoning evaporated when the chat session ended, and now your teammate is staring at a diff with zero context. Good luck getting that reviewed.
30
26
 
31
- ...To Solve A Very Modern Problem
32
- ---------------------------------
33
-
34
- The promise of AI-assisted development is profound: write more code, ship features faster. But there is a hidden cost. **AI agents write code quickly, but they struggle to stay in sync with their humans.**
35
-
36
- The hard part isn't generating code, it's maintaining the shared mental model of _why_ that code exists. When you rely on ephemeral chat windows, friction piles up:
37
-
38
- * You constantly re-brief the AI on the same context.
39
-
40
- * Hidden assumptions creep in (e.g., "Why did it use Axios instead of fetch?").
41
-
42
- * You spend more time reviewing and "babysitting" the AI than building.
43
-
44
-
45
- **The bottleneck isn't output velocity. It's maintaining alignment between human and AI at scale.**
46
-
47
- ### The iloom Approach: Context as Infrastructure
27
+ iloom persists the AI's analysis, plans, decisions, and risks as comments in your issue tracker. Not chat logs you'll never reopen. Not markdown files littering the repo. Your actual tracker, where your team can see what happened and why. That mountain of code you're sending for review? Now it comes with the reasoning behind it.
48
28
 
49
- iloom stops the "Context Window Tetris." It treats context as a first-class concern, persisting your AI's reasoning in **issue comments** rather than temporary chats.
29
+ This matters because to get the most out of agents, you need to be multitasking across several of them. iloom gives every task its own isolated environment (git worktree, DB branch, unique port), and because all the reasoning is persisted, you can context-switch between tasks without losing the thread. The [VS Code extension](https://marketplace.visualstudio.com/items?itemName=iloom-ai.iloom-vscode) lets you catch up with any agent in seconds. Your teammates can pick up where you left off without a briefing.
50
30
 
51
- * **Stop Babysitting, Start Collaborating:** Instead of arguing with Claude in a chat, you review structured analysis plans in your issue tracker _before_ a single line of code is written.
52
-
53
- * **Scale Understanding:** Because every loom holds its own isolated environment (Git worktree, DB branch, local server), you can switch between 5 complex features without losing your place or your AI's context.
54
-
55
- * **Visible Reasoning:** The AI's decisions are documented publicly. Your team sees the plan, and "future you" knows exactly why a decision was made.
56
-
57
- * **Automatic Session Summaries:** When you finish a loom, iloom captures key insights, decisions, and lessons learned from your Claude session and posts them to the issue. These summaries become institutional knowledge that informs future tasks.
58
-
59
-
60
- _iloom is not just a tool for managing git worktrees - it's a control plane for maintaining alignment between you and your AI assistant._
31
+ When a task outgrows one agent, `il plan` decomposes it into child issues with dependencies, and swarm mode launches parallel agents to execute them, each in its own worktree, running the full iloom workflow. You can one-shot entire features, entire products, and stay aligned. The VS Code extension gives you a Kanban board and dependency graph so you can see what's running, what's blocked, and what's done. The only real limit is your imagination. And maybe your Claude subscription.
61
32
 
62
33
  Quick Start
63
34
  -----------
@@ -105,6 +76,8 @@ Instead of a single generic prompt, iloom uses a pipeline of specialized agents:
105
76
  * **Planner:** Creates an execution plan with parallelization analysis—identifying which steps can run concurrently vs. sequentially. Plans reference specific files and line numbers, making them actionable and precise.
106
77
 
107
78
  * **Implementer:** Executes the plan using the context established in the previous steps. For complex tasks, multiple implementers can run in parallel on independent steps.
79
+
80
+ * **Swarm Orchestrator:** For epics with child issues, iloom enters [swarm mode](#swarm-mode-epic-orchestration)—launching parallel agent teams that implement each child issue autonomously in its own worktree, respecting dependency order.
108
81
 
109
82
 
110
83
  ### 2. Interactive Control
@@ -128,6 +101,15 @@ Each loom is a fully isolated container for your work:
128
101
 
129
102
  * **Environment Variables:** Each loom has its own environment files (`.env`, `.env.local`, `.env.development`, `.env.development.local`). Uses `development` by default, override with `DOTENV_FLOW_NODE_ENV`. See [Secret Storage Limitations](#multi-language-project-support) for frameworks with encrypted credentials.
130
103
 
104
+ When inside a loom shell (`il shell`), the following environment variables are automatically set:
105
+
106
+ | Variable | Description | Example |
107
+ |----------|-------------|---------|
108
+ | `ILOOM_LOOM` | Loom identifier for PS1 customization | `issue-87` |
109
+ | `ILOOM_COLOR_HEX` | Hex color assigned to this loom (if available) | `#dcebff` |
110
+
111
+ `ILOOM_COLOR_HEX` is useful for downstream tools that want to visually distinguish looms. For example, a Vite app can read it via `import.meta.env.VITE_ILOOM_COLOR_HEX` to tint the UI. See [Vite Integration Guide](docs/vite-iloom-color.md) for details.
112
+
131
113
  * **Unique Runtime:**
132
114
 
133
115
  * **Web Apps:** Runs on a deterministic port (e.g., base port 3000 + issue #25 = 3025).
@@ -142,13 +124,13 @@ Command Reference
142
124
 
143
125
  | **Command** | **Alias** | **Description** |
144
126
  | ------ | ----- | -----|
145
- | `il start` | `new` | Create loom, run analysis agents, and launch IDE. |
127
+ | `il start` | `new` | Create loom, run analysis agents, and launch IDE. Auto-detects epics with child issues for [swarm mode](#swarm-mode-epic-orchestration). |
146
128
  | `il commit` | `c` | Commit all files with issue reference (`Refs #N` or `Fixes #N`). |
147
129
  | `il finish` | `dn` | Validate tests/lint, commit, handle conflicts, and merge/PR. |
148
130
  | `il cleanup` | `remove` | Safely remove a loom and its database branch without merging. |
149
- | `il list` | | Show active looms for current project. `--finished` for archived, `--all` for active + archived, `--global` for looms across all projects. |
131
+ | `il list` | | Show active looms for current project. `--finished` for archived, `--all` for active + archived, `--global` for looms across all projects. JSON output includes `swarmIssues` and `dependencyMap` for epic looms. |
150
132
  | `il projects` | | List configured projects (JSON output). |
151
- | `il spin` | | Launch Claude inside the current loom with context auto-detected. |
133
+ | `il spin` | | Launch Claude inside the current loom with context auto-detected. In epic looms, enters [swarm mode](#swarm-mode-epic-orchestration) with parallel agent orchestration. |
152
134
  | `il open` | `run` | Open loom in browser (web) or run your CLI tool. |
153
135
  | `il vscode` | | Install iloom VS Code extension and open workspace in VS Code. |
154
136
  | `il dev-server` | `dev` | Start dev server in foreground for a workspace. |
@@ -162,6 +144,7 @@ Command Reference
162
144
  | `il init` | `config` | Interactive configuration wizard. |
163
145
  | `il feedback` | `f` | Submit bug reports/feedback directly from the CLI. |
164
146
  | `il update` | | Update iloom CLI to the latest version. |
147
+ | `il telemetry` | | Manage anonymous usage telemetry (`on`, `off`, `status`). |
165
148
 
166
149
  For detailed documentation including all command options, flags, and examples, see the [Complete Command Reference](docs/iloom-commands.md).
167
150
 
@@ -439,12 +422,61 @@ Integrations
439
422
 
440
423
  ### Issue Trackers
441
424
 
442
- iloom supports the tools you already use. Unless you use JIRA.
425
+ iloom supports multiple issue tracking providers to fit your team's workflow.
443
426
 
444
427
  | **Provider** | **Setup** | **Notes** |
445
428
  |--------------|-----------|-----------|
446
429
  | **GitHub** | `gh auth login` | Default. Supports Issues and Pull Requests automatically. |
447
430
  | **Linear** | `il init` | Requires API token. Supports full read/write on Linear issues. |
431
+ | **Jira** | Configure in `.iloom/settings.json` | Atlassian Cloud. Requires API token. See [Jira Setup](#jira-setup) below. |
432
+
433
+ ### Jira Setup
434
+
435
+ To use Jira as your issue tracker, add this configuration:
436
+
437
+ **.iloom/settings.json (Committed)**
438
+ ```json
439
+ {
440
+ "issueManagement": {
441
+ "provider": "jira",
442
+ "jira": {
443
+ "host": "https://yourcompany.atlassian.net",
444
+ "username": "your.email@company.com",
445
+ "projectKey": "PROJ",
446
+ "boardId": "123",
447
+ "doneStatuses": ["Done", "Closed"],
448
+ "transitionMappings": {
449
+ "In Review": "Start Review"
450
+ }
451
+ }
452
+ }
453
+ }
454
+ ```
455
+
456
+ **.iloom/settings.local.json (Gitignored - Never commit this file)**
457
+ ```json
458
+ {
459
+ "issueManagement": {
460
+ "jira": {
461
+ "apiToken": "your-jira-api-token-here"
462
+ }
463
+ }
464
+ }
465
+ ```
466
+
467
+ **Generate a Jira API Token:**
468
+ 1. Visit https://id.atlassian.com/manage-profile/security/api-tokens
469
+ 2. Click "Create API token"
470
+ 3. Copy the token to `.iloom/settings.local.json`
471
+
472
+ **Configuration Options:**
473
+ - `host`: Your Jira Cloud instance URL
474
+ - `username`: Your Jira email address
475
+ - `apiToken`: API token (store in settings.local.json only!)
476
+ - `projectKey`: Jira project key (e.g., "PROJ", "ENG")
477
+ - `boardId`: (Optional) Board ID for sprint/workflow operations
478
+ - `doneStatuses`: (Optional) Status names to exclude from `il issues` lists (default: `["Done"]`). Set to match your Jira workflow, e.g., `["Done", "Closed", "Verified"]`
479
+ - `transitionMappings`: (Optional) Map iloom states to your Jira workflow transition names
448
480
 
449
481
 
450
482
  ### IDE Support
@@ -547,6 +579,88 @@ il plan --yolo "Add GitLab integration"
547
579
 
548
580
  See the [Complete Command Reference](docs/iloom-commands.md#il-plan) for all options including `--model`, `--planner`, and `--reviewer` flags.
549
581
 
582
+ ### Swarm Mode (Epic Orchestration)
583
+
584
+ Swarm mode enables automatic, parallel execution of an entire epic by coordinating a team of AI agents. Each child issue gets its own worktree and agent, all working simultaneously while respecting dependency order.
585
+
586
+ **Prerequisite:** Decompose your epic into child issues with dependencies first, using `il plan` or manually creating child issues and setting up blocking relationships.
587
+
588
+ **How to trigger:**
589
+
590
+ ```bash
591
+ # Auto-detect: iloom checks for child issues and prompts
592
+ il start 100
593
+
594
+ # Force epic mode (skip prompt)
595
+ il start 100 --epic
596
+
597
+ # Force normal loom even if children exist
598
+ il start 100 --no-epic
599
+ ```
600
+
601
+ When you run `il spin` inside the epic loom, swarm mode activates:
602
+
603
+ 1. **Child worktrees** are created for each child issue, branched off the epic branch
604
+ 2. **Swarm agents and skill files** are rendered into the epic loom's `.claude/` directory
605
+ 3. **Dependency DAG** is fetched from your issue tracker (blocking relationships between children)
606
+ 4. **Orchestrator launches** with Claude's experimental agent teams, using `bypassPermissions` mode
607
+ 5. **Parallel agents** are spawned for all unblocked child issues simultaneously
608
+ 6. As agents complete, their work is **rebased and fast-forward merged** into the epic branch
609
+ 7. **Newly unblocked issues** are spawned automatically as their dependencies finish
610
+ 8. **Failed children** are isolated — they don't block unrelated issues
611
+
612
+ **Example workflow:**
613
+
614
+ ```bash
615
+ # 1. Plan and decompose your epic
616
+ il plan 100
617
+
618
+ # 2. Start the epic loom (auto-detects children)
619
+ il start 100 --epic
620
+
621
+ # 3. Launch swarm mode
622
+ il spin
623
+ # The orchestrator takes over — parallel agents implement each child issue,
624
+ # merge completed work, and handle failures autonomously.
625
+ ```
626
+
627
+ Each child issue tracks its lifecycle state: `pending` -> `in_progress` -> `done` / `failed`. Use `il list --json` to see `swarmIssues` with per-child states and the `dependencyMap` for epic looms.
628
+
629
+ For detailed reference on swarm mode behavior, see the [Complete Command Reference](docs/iloom-commands.md#swarm-mode-epic-orchestration).
630
+
631
+ Telemetry
632
+ ---------
633
+
634
+ iloom collects anonymous usage data to help improve the product. This data helps us understand which features are used, identify common errors, and prioritize development efforts.
635
+
636
+ **What IS collected:**
637
+ - Anonymous event data: command usage, feature adoption, and error types
638
+ - An anonymous identifier (not linked to your identity)
639
+
640
+ **What is NOT collected:**
641
+ - GitHub/Linear/Jira usernames or emails
642
+ - Repository names or URLs
643
+ - Issue titles, descriptions, or content
644
+ - File paths or code content
645
+ - Branch names
646
+ - AI analysis or plan content
647
+ - Anything that could identify a specific project or person
648
+
649
+ **Opt out at any time:**
650
+
651
+ ```bash
652
+ # Disable telemetry
653
+ il telemetry off
654
+
655
+ # Check current status
656
+ il telemetry status
657
+
658
+ # Re-enable telemetry
659
+ il telemetry on
660
+ ```
661
+
662
+ On first run, iloom displays a disclosure message informing you that telemetry is enabled and how to opt out.
663
+
550
664
  System Requirements & Limitations
551
665
  ---------------------------------
552
666
 
@@ -608,6 +722,11 @@ This command:
608
722
 
609
723
  The draft PR workflow is ideal for open source: as you work, iloom posts the AI's analysis, implementation plan, and progress directly to that draft PR—giving maintainers full context before the code is even ready for review.
610
724
 
725
+ Acknowledgments
726
+ ----------------
727
+
728
+ - [@NoahCardoza](https://github.com/NoahCardoza) — Jira Cloud integration (PR [#588](https://github.com/iloom-ai/iloom-cli/pull/588)): JiraApiClient, JiraIssueTracker, ADF/Markdown conversion, MCP provider, sprint/mine filtering, and `il issues` Jira support.
729
+
611
730
  License & Name
612
731
  --------------
613
732
 
@@ -619,7 +738,7 @@ License & Name
619
738
 
620
739
  * ❌ You cannot resell iloom itself as a product or SaaS.
621
740
 
622
- * Converts to Apache 2.0 on 2030-02-16.
741
+ * Converts to Apache 2.0 on 2030-02-23.
623
742
 
624
743
 
625
744
  See [LICENSE](https://raw.githubusercontent.com/iloom-ai/iloom-cli/main/LICENSE) for complete terms.
@@ -3,7 +3,7 @@ import {
3
3
  ClaudeBranchNameStrategy,
4
4
  DefaultBranchNamingService,
5
5
  SimpleBranchNameStrategy
6
- } from "./chunk-KAYXR544.js";
6
+ } from "./chunk-J5S7DFYC.js";
7
7
  import "./chunk-6MLEBAYZ.js";
8
8
  import "./chunk-VT4PDUYT.js";
9
9
  export {
@@ -11,4 +11,4 @@ export {
11
11
  DefaultBranchNamingService,
12
12
  SimpleBranchNameStrategy
13
13
  };
14
- //# sourceMappingURL=BranchNamingService-K6XNWQ6C.js.map
14
+ //# sourceMappingURL=BranchNamingService-ECJHBB67.js.map
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ ClaudeContextManager
4
+ } from "./chunk-RYWFS37M.js";
5
+ import "./chunk-SN3SQCFK.js";
6
+ import "./chunk-ONQYPICO.js";
7
+ import "./chunk-4WJNIR5O.js";
8
+ import "./chunk-YYAKPQBT.js";
9
+ import "./chunk-6MLEBAYZ.js";
10
+ import "./chunk-VT4PDUYT.js";
11
+ export {
12
+ ClaudeContextManager
13
+ };
14
+ //# sourceMappingURL=ClaudeContextManager-QXX6ZFST.js.map
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ ClaudeService
4
+ } from "./chunk-SN3SQCFK.js";
5
+ import "./chunk-ONQYPICO.js";
6
+ import "./chunk-4WJNIR5O.js";
7
+ import "./chunk-YYAKPQBT.js";
8
+ import "./chunk-6MLEBAYZ.js";
9
+ import "./chunk-VT4PDUYT.js";
10
+ export {
11
+ ClaudeService
12
+ };
13
+ //# sourceMappingURL=ClaudeService-NJNK2SUH.js.map
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  GitHubService
4
- } from "./chunk-OFDN5NKS.js";
5
- import "./chunk-4CO6KG5S.js";
6
- import "./chunk-7JDMYTFZ.js";
4
+ } from "./chunk-KXDRI47U.js";
5
+ import "./chunk-VG45TUYK.js";
7
6
  import "./chunk-6MLEBAYZ.js";
7
+ import "./chunk-7JDMYTFZ.js";
8
8
  import "./chunk-VT4PDUYT.js";
9
9
  export {
10
10
  GitHubService
11
11
  };
12
- //# sourceMappingURL=GitHubService-TGWJN4V4.js.map
12
+ //# sourceMappingURL=GitHubService-MEHKHUQP.js.map
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ IssueTrackerFactory
4
+ } from "./chunk-UKBAJ2QQ.js";
5
+ import "./chunk-HEXKPKCK.js";
6
+ import "./chunk-KXDRI47U.js";
7
+ import "./chunk-VG45TUYK.js";
8
+ import "./chunk-6MLEBAYZ.js";
9
+ import "./chunk-7JDMYTFZ.js";
10
+ import "./chunk-VT4PDUYT.js";
11
+ export {
12
+ IssueTrackerFactory
13
+ };
14
+ //# sourceMappingURL=IssueTrackerFactory-NG53YX5S.js.map
@@ -4,21 +4,21 @@ import {
4
4
  } from "./chunk-O7VL5N6S.js";
5
5
  import {
6
6
  ClaudeContextManager
7
- } from "./chunk-Z2TWEXR7.js";
8
- import "./chunk-6IIL5M2L.js";
9
- import "./chunk-QN47QVBX.js";
7
+ } from "./chunk-RYWFS37M.js";
8
+ import "./chunk-SN3SQCFK.js";
9
+ import "./chunk-ONQYPICO.js";
10
+ import "./chunk-4WJNIR5O.js";
10
11
  import {
11
12
  getExecutablePath
12
13
  } from "./chunk-GYCR2LOU.js";
13
- import "./chunk-RI2YL6TK.js";
14
+ import "./chunk-YYAKPQBT.js";
15
+ import {
16
+ getLogger
17
+ } from "./chunk-6MLEBAYZ.js";
14
18
  import {
15
19
  generateColorFromBranchName,
16
20
  hexToRgb
17
21
  } from "./chunk-433MOLAU.js";
18
- import "./chunk-FO5GGFOV.js";
19
- import {
20
- getLogger
21
- } from "./chunk-6MLEBAYZ.js";
22
22
  import {
23
23
  getDotenvFlowFiles,
24
24
  openMultipleTerminalWindows,
@@ -252,4 +252,4 @@ var LoomLauncher = class {
252
252
  export {
253
253
  LoomLauncher
254
254
  };
255
- //# sourceMappingURL=LoomLauncher-73NXL2CL.js.map
255
+ //# sourceMappingURL=LoomLauncher-L64HHS3T.js.map
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  MetadataManager
4
- } from "./chunk-KBEIQP4G.js";
4
+ } from "./chunk-KB64WNBZ.js";
5
5
  import "./chunk-6MLEBAYZ.js";
6
6
  import "./chunk-VT4PDUYT.js";
7
7
  export {
8
8
  MetadataManager
9
9
  };
10
- //# sourceMappingURL=MetadataManager-W3C54UYT.js.map
10
+ //# sourceMappingURL=MetadataManager-5QZSTKNN.js.map
@@ -1,11 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  ProjectCapabilityDetector
4
- } from "./chunk-TL72BGP6.js";
5
- import "./chunk-VOGGLPG5.js";
4
+ } from "./chunk-MORRVYPT.js";
5
+ import "./chunk-YQ57ORTV.js";
6
6
  import "./chunk-6MLEBAYZ.js";
7
7
  import "./chunk-VT4PDUYT.js";
8
8
  export {
9
9
  ProjectCapabilityDetector
10
10
  };
11
- //# sourceMappingURL=ProjectCapabilityDetector-N5L7T4IY.js.map
11
+ //# sourceMappingURL=ProjectCapabilityDetector-5KSYUTBJ.js.map
@@ -2,10 +2,10 @@
2
2
  import {
3
3
  PromptTemplateManager,
4
4
  buildReviewTemplateVariables
5
- } from "./chunk-QN47QVBX.js";
5
+ } from "./chunk-4WJNIR5O.js";
6
6
  import "./chunk-VT4PDUYT.js";
7
7
  export {
8
8
  PromptTemplateManager,
9
9
  buildReviewTemplateVariables
10
10
  };
11
- //# sourceMappingURL=PromptTemplateManager-36YLQRHP.js.map
11
+ //# sourceMappingURL=PromptTemplateManager-DULSVRRE.js.map