@iloom/cli 0.6.1 → 0.7.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 (177) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +35 -18
  3. package/dist/{BranchNamingService-B5PVRR7F.js → BranchNamingService-FLPUUFOB.js} +2 -2
  4. package/dist/ClaudeContextManager-KE5TBZVZ.js +14 -0
  5. package/dist/ClaudeService-CRSETT3A.js +13 -0
  6. package/dist/{GitHubService-S2OGUTDR.js → GitHubService-O7U4UQ7N.js} +3 -3
  7. package/dist/{LoomLauncher-5LFM4LXB.js → LoomLauncher-NL65LSKP.js} +6 -6
  8. package/dist/{MetadataManager-DFI73J3G.js → MetadataManager-XJ2YB762.js} +2 -2
  9. package/dist/PRManager-2ABCWXHW.js +16 -0
  10. package/dist/{ProjectCapabilityDetector-S5FLNCFI.js → ProjectCapabilityDetector-UZYW32SY.js} +3 -3
  11. package/dist/{PromptTemplateManager-C3DK6XZL.js → PromptTemplateManager-7L3HJQQU.js} +2 -2
  12. package/dist/README.md +35 -18
  13. package/dist/{SettingsManager-35F5RUJH.js → SettingsManager-YU4VYPTW.js} +2 -2
  14. package/dist/agents/iloom-issue-analyze-and-plan.md +42 -17
  15. package/dist/agents/iloom-issue-analyzer.md +14 -14
  16. package/dist/agents/iloom-issue-complexity-evaluator.md +38 -15
  17. package/dist/agents/iloom-issue-enhancer.md +15 -15
  18. package/dist/agents/iloom-issue-implementer.md +44 -15
  19. package/dist/agents/iloom-issue-planner.md +121 -17
  20. package/dist/agents/iloom-issue-reviewer.md +15 -15
  21. package/dist/{build-FJVYP7EV.js → build-O2EJHDEW.js} +9 -9
  22. package/dist/{chunk-ZPSTA5PR.js → chunk-3CDWFEGL.js} +2 -2
  23. package/dist/{chunk-VU3QMIP2.js → chunk-453NC377.js} +91 -15
  24. package/dist/chunk-453NC377.js.map +1 -0
  25. package/dist/{chunk-UQIXZ3BA.js → chunk-5V74K5ZA.js} +2 -2
  26. package/dist/{chunk-7WANFUIK.js → chunk-6TL3BYH6.js} +2 -2
  27. package/dist/{chunk-5TXLVEXT.js → chunk-C3AKFAIR.js} +2 -2
  28. package/dist/{chunk-K7SEEHKO.js → chunk-CNSTXBJ3.js} +7 -419
  29. package/dist/chunk-CNSTXBJ3.js.map +1 -0
  30. package/dist/{chunk-VDA5JMB4.js → chunk-EPPPDVHD.js} +21 -8
  31. package/dist/chunk-EPPPDVHD.js.map +1 -0
  32. package/dist/{chunk-LVBRMTE6.js → chunk-FEAJR6PN.js} +6 -6
  33. package/dist/{chunk-6YSFTPKW.js → chunk-FM4KBPVA.js} +18 -13
  34. package/dist/chunk-FM4KBPVA.js.map +1 -0
  35. package/dist/{chunk-AEIMYF4P.js → chunk-FP7G7DG3.js} +6 -2
  36. package/dist/chunk-FP7G7DG3.js.map +1 -0
  37. package/dist/{chunk-LT3SGBR7.js → chunk-GCPAZSGV.js} +36 -2
  38. package/dist/{chunk-LT3SGBR7.js.map → chunk-GCPAZSGV.js.map} +1 -1
  39. package/dist/chunk-GJMEKEI5.js +517 -0
  40. package/dist/chunk-GJMEKEI5.js.map +1 -0
  41. package/dist/{chunk-64O2UIWO.js → chunk-GV5X6XUE.js} +4 -4
  42. package/dist/{chunk-7Q66W4OH.js → chunk-HBJITKSZ.js} +37 -1
  43. package/dist/chunk-HBJITKSZ.js.map +1 -0
  44. package/dist/{chunk-7HIRPCKU.js → chunk-HVQNVRAF.js} +2 -2
  45. package/dist/{chunk-BXCPJJYM.js → chunk-ITN64ENQ.js} +1 -1
  46. package/dist/chunk-ITN64ENQ.js.map +1 -0
  47. package/dist/{chunk-6U6VI4SZ.js → chunk-KVS4XGBQ.js} +4 -4
  48. package/dist/{chunk-AXX3QIKK.js → chunk-LLWX3PCW.js} +2 -2
  49. package/dist/{chunk-2A7WQKBE.js → chunk-LQBLDI47.js} +96 -6
  50. package/dist/chunk-LQBLDI47.js.map +1 -0
  51. package/dist/{chunk-SN3Z6EZO.js → chunk-N7FVXZNI.js} +2 -2
  52. package/dist/chunk-NTIZLX42.js +822 -0
  53. package/dist/chunk-NTIZLX42.js.map +1 -0
  54. package/dist/{chunk-I75JMBNB.js → chunk-S7YMZQUD.js} +31 -43
  55. package/dist/chunk-S7YMZQUD.js.map +1 -0
  56. package/dist/chunk-TIYJEEVO.js +79 -0
  57. package/dist/chunk-TIYJEEVO.js.map +1 -0
  58. package/dist/{chunk-EK3XCAAS.js → chunk-UDRZY65Y.js} +2 -2
  59. package/dist/{chunk-3PT7RKL5.js → chunk-USJSNHGG.js} +2 -2
  60. package/dist/{chunk-CFUWQHCJ.js → chunk-VWGKGNJP.js} +114 -35
  61. package/dist/chunk-VWGKGNJP.js.map +1 -0
  62. package/dist/{chunk-F6WVM437.js → chunk-WFQ5CLTR.js} +6 -3
  63. package/dist/chunk-WFQ5CLTR.js.map +1 -0
  64. package/dist/{chunk-TRQ76ISK.js → chunk-Z6BO53V7.js} +9 -9
  65. package/dist/{chunk-GEXP5IOF.js → chunk-ZA575VLF.js} +21 -8
  66. package/dist/chunk-ZA575VLF.js.map +1 -0
  67. package/dist/{claude-H33OQMXO.js → claude-6H36IBHO.js} +4 -2
  68. package/dist/{cleanup-BRUAINKE.js → cleanup-ZPOMRSNN.js} +20 -16
  69. package/dist/cleanup-ZPOMRSNN.js.map +1 -0
  70. package/dist/cli.js +341 -954
  71. package/dist/cli.js.map +1 -1
  72. package/dist/commit-6S2RIA2K.js +237 -0
  73. package/dist/commit-6S2RIA2K.js.map +1 -0
  74. package/dist/{compile-ULNO5F7Q.js → compile-LRMAADUT.js} +9 -9
  75. package/dist/{contribute-Q6GX6AXK.js → contribute-GXKOIA42.js} +5 -5
  76. package/dist/{dev-server-4RCDJ5MU.js → dev-server-GREJUEKW.js} +22 -74
  77. package/dist/dev-server-GREJUEKW.js.map +1 -0
  78. package/dist/{feedback-O4Q55SVS.js → feedback-G7G5QCY4.js} +10 -10
  79. package/dist/{git-FVMGBHC2.js → git-ENLT2VNI.js} +6 -4
  80. package/dist/hooks/iloom-hook.js +30 -2
  81. package/dist/{ignite-VHV65WEZ.js → ignite-YUAOJ5PP.js} +20 -20
  82. package/dist/ignite-YUAOJ5PP.js.map +1 -0
  83. package/dist/index.d.ts +71 -27
  84. package/dist/index.js +196 -266
  85. package/dist/index.js.map +1 -1
  86. package/dist/init-XQQMFDM6.js +21 -0
  87. package/dist/{lint-5JMCWE4Y.js → lint-OFVN7FT6.js} +9 -9
  88. package/dist/mcp/issue-management-server.js +359 -13
  89. package/dist/mcp/issue-management-server.js.map +1 -1
  90. package/dist/mcp/recap-server.js +13 -4
  91. package/dist/mcp/recap-server.js.map +1 -1
  92. package/dist/{open-WHVUYGPY.js → open-MCWQAPSZ.js} +25 -76
  93. package/dist/open-MCWQAPSZ.js.map +1 -0
  94. package/dist/{projects-SA76I4TZ.js → projects-PQOTWUII.js} +11 -4
  95. package/dist/projects-PQOTWUII.js.map +1 -0
  96. package/dist/prompts/init-prompt.txt +62 -51
  97. package/dist/prompts/issue-prompt.txt +132 -63
  98. package/dist/prompts/pr-prompt.txt +3 -3
  99. package/dist/prompts/regular-prompt.txt +16 -18
  100. package/dist/prompts/session-summary-prompt.txt +13 -13
  101. package/dist/{rebase-Y4AS6LQW.js → rebase-RKQED567.js} +53 -8
  102. package/dist/rebase-RKQED567.js.map +1 -0
  103. package/dist/{recap-VOOUXOGP.js → recap-ZKGHZCX6.js} +6 -6
  104. package/dist/{run-NCRK5NPR.js → run-CCG24PBC.js} +25 -76
  105. package/dist/run-CCG24PBC.js.map +1 -0
  106. package/dist/schema/settings.schema.json +14 -3
  107. package/dist/{shell-SBLXVOVJ.js → shell-2NNSIU34.js} +6 -6
  108. package/dist/{summary-CVFAMDOJ.js → summary-G6L3VAKK.js} +11 -10
  109. package/dist/{summary-CVFAMDOJ.js.map → summary-G6L3VAKK.js.map} +1 -1
  110. package/dist/{test-3KIVXI6J.js → test-QZDOEUIO.js} +9 -9
  111. package/dist/{test-git-ZB6AGGRW.js → test-git-E2BLXR6M.js} +4 -4
  112. package/dist/{test-prefix-FBGXKMPA.js → test-prefix-A7JGGYAA.js} +4 -4
  113. package/dist/{test-webserver-YVQD42W6.js → test-webserver-NRMGT2HB.js} +29 -8
  114. package/dist/test-webserver-NRMGT2HB.js.map +1 -0
  115. package/package.json +3 -1
  116. package/dist/ClaudeContextManager-6J2EB4QU.js +0 -14
  117. package/dist/ClaudeService-O2PB22GX.js +0 -13
  118. package/dist/PRManager-GB3FOJ2W.js +0 -14
  119. package/dist/chunk-2A7WQKBE.js.map +0 -1
  120. package/dist/chunk-6YSFTPKW.js.map +0 -1
  121. package/dist/chunk-7Q66W4OH.js.map +0 -1
  122. package/dist/chunk-AEIMYF4P.js.map +0 -1
  123. package/dist/chunk-BXCPJJYM.js.map +0 -1
  124. package/dist/chunk-CFUWQHCJ.js.map +0 -1
  125. package/dist/chunk-F6WVM437.js.map +0 -1
  126. package/dist/chunk-GEXP5IOF.js.map +0 -1
  127. package/dist/chunk-I75JMBNB.js.map +0 -1
  128. package/dist/chunk-K7SEEHKO.js.map +0 -1
  129. package/dist/chunk-VDA5JMB4.js.map +0 -1
  130. package/dist/chunk-VU3QMIP2.js.map +0 -1
  131. package/dist/chunk-W6WVRHJ6.js +0 -251
  132. package/dist/chunk-W6WVRHJ6.js.map +0 -1
  133. package/dist/cleanup-BRUAINKE.js.map +0 -1
  134. package/dist/dev-server-4RCDJ5MU.js.map +0 -1
  135. package/dist/ignite-VHV65WEZ.js.map +0 -1
  136. package/dist/init-UTYRHNJJ.js +0 -21
  137. package/dist/open-WHVUYGPY.js.map +0 -1
  138. package/dist/projects-SA76I4TZ.js.map +0 -1
  139. package/dist/rebase-Y4AS6LQW.js.map +0 -1
  140. package/dist/run-NCRK5NPR.js.map +0 -1
  141. package/dist/test-webserver-YVQD42W6.js.map +0 -1
  142. /package/dist/{BranchNamingService-B5PVRR7F.js.map → BranchNamingService-FLPUUFOB.js.map} +0 -0
  143. /package/dist/{ClaudeContextManager-6J2EB4QU.js.map → ClaudeContextManager-KE5TBZVZ.js.map} +0 -0
  144. /package/dist/{ClaudeService-O2PB22GX.js.map → ClaudeService-CRSETT3A.js.map} +0 -0
  145. /package/dist/{GitHubService-S2OGUTDR.js.map → GitHubService-O7U4UQ7N.js.map} +0 -0
  146. /package/dist/{LoomLauncher-5LFM4LXB.js.map → LoomLauncher-NL65LSKP.js.map} +0 -0
  147. /package/dist/{MetadataManager-DFI73J3G.js.map → MetadataManager-XJ2YB762.js.map} +0 -0
  148. /package/dist/{PRManager-GB3FOJ2W.js.map → PRManager-2ABCWXHW.js.map} +0 -0
  149. /package/dist/{ProjectCapabilityDetector-S5FLNCFI.js.map → ProjectCapabilityDetector-UZYW32SY.js.map} +0 -0
  150. /package/dist/{PromptTemplateManager-C3DK6XZL.js.map → PromptTemplateManager-7L3HJQQU.js.map} +0 -0
  151. /package/dist/{SettingsManager-35F5RUJH.js.map → SettingsManager-YU4VYPTW.js.map} +0 -0
  152. /package/dist/{build-FJVYP7EV.js.map → build-O2EJHDEW.js.map} +0 -0
  153. /package/dist/{chunk-ZPSTA5PR.js.map → chunk-3CDWFEGL.js.map} +0 -0
  154. /package/dist/{chunk-UQIXZ3BA.js.map → chunk-5V74K5ZA.js.map} +0 -0
  155. /package/dist/{chunk-7WANFUIK.js.map → chunk-6TL3BYH6.js.map} +0 -0
  156. /package/dist/{chunk-5TXLVEXT.js.map → chunk-C3AKFAIR.js.map} +0 -0
  157. /package/dist/{chunk-LVBRMTE6.js.map → chunk-FEAJR6PN.js.map} +0 -0
  158. /package/dist/{chunk-64O2UIWO.js.map → chunk-GV5X6XUE.js.map} +0 -0
  159. /package/dist/{chunk-7HIRPCKU.js.map → chunk-HVQNVRAF.js.map} +0 -0
  160. /package/dist/{chunk-6U6VI4SZ.js.map → chunk-KVS4XGBQ.js.map} +0 -0
  161. /package/dist/{chunk-AXX3QIKK.js.map → chunk-LLWX3PCW.js.map} +0 -0
  162. /package/dist/{chunk-SN3Z6EZO.js.map → chunk-N7FVXZNI.js.map} +0 -0
  163. /package/dist/{chunk-EK3XCAAS.js.map → chunk-UDRZY65Y.js.map} +0 -0
  164. /package/dist/{chunk-3PT7RKL5.js.map → chunk-USJSNHGG.js.map} +0 -0
  165. /package/dist/{chunk-TRQ76ISK.js.map → chunk-Z6BO53V7.js.map} +0 -0
  166. /package/dist/{claude-H33OQMXO.js.map → claude-6H36IBHO.js.map} +0 -0
  167. /package/dist/{compile-ULNO5F7Q.js.map → compile-LRMAADUT.js.map} +0 -0
  168. /package/dist/{contribute-Q6GX6AXK.js.map → contribute-GXKOIA42.js.map} +0 -0
  169. /package/dist/{feedback-O4Q55SVS.js.map → feedback-G7G5QCY4.js.map} +0 -0
  170. /package/dist/{git-FVMGBHC2.js.map → git-ENLT2VNI.js.map} +0 -0
  171. /package/dist/{init-UTYRHNJJ.js.map → init-XQQMFDM6.js.map} +0 -0
  172. /package/dist/{lint-5JMCWE4Y.js.map → lint-OFVN7FT6.js.map} +0 -0
  173. /package/dist/{recap-VOOUXOGP.js.map → recap-ZKGHZCX6.js.map} +0 -0
  174. /package/dist/{shell-SBLXVOVJ.js.map → shell-2NNSIU34.js.map} +0 -0
  175. /package/dist/{test-3KIVXI6J.js.map → test-QZDOEUIO.js.map} +0 -0
  176. /package/dist/{test-git-ZB6AGGRW.js.map → test-git-E2BLXR6M.js.map} +0 -0
  177. /package/dist/{test-prefix-FBGXKMPA.js.map → test-prefix-A7JGGYAA.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: 2029-01-01
23
+ Change Date: 2030-01-15
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
@@ -16,7 +16,7 @@ iloom
16
16
 
17
17
  #### Links to key sections
18
18
 
19
- [How It Works](#how-it-works-the-multi-agent-workflow) • [Installation](#quick-start) • [Configuration](#configuration) • [Advanced Features](#advanced-features) • [Limitations](#system-requirements--limitations)
19
+ [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)
20
20
 
21
21
  ## Built For Modern Tools...
22
22
 
@@ -90,17 +90,21 @@ When you run il start, iloom orchestrates specialized AI agents. Each has a spec
90
90
 
91
91
  ### 1. The Agents
92
92
 
93
- Instead of a single generic prompt, iloom uses a pipeline of agents:
93
+ Instead of a single generic prompt, iloom uses a pipeline of specialized agents:
94
+
95
+ * **Enhancer:** Expands brief one-liners into detailed requirements with acceptance criteria.
96
+
97
+ * **Evaluator:** Assesses complexity and routes to the appropriate workflow:
94
98
 
95
- * **Enhancer (iloom-issue-enhancer):** Expands brief one-liners into detailed requirements.
96
-
97
- * **Evaluator (iloom-issue-complexity-evaluator):** Determines the workflow approach:
98
-
99
99
  * **Simple:** Combines analysis and planning into one step for efficiency.
100
-
101
- * **Complex:** Separates deep root-cause analysis from detailed implementation planning.
102
-
103
- * **Implementer:** Executes the plan using the context established in the previous steps.
100
+
101
+ * **Complex:** Separates deep analysis from detailed planning for thorough coverage.
102
+
103
+ * **Analyzer:** Explores the problem space before any code is written. This agent investigates the codebase to understand existing patterns, examines third-party library APIs and capabilities, and researches technical approaches. The result is a comprehensive analysis that informs the planning phase—leading to significantly better implementation plans than jumping straight to code.
104
+
105
+ * **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
+
107
+ * **Implementer:** Executes the plan using the context established in the previous steps. For complex tasks, multiple implementers can run in parallel on independent steps.
104
108
 
105
109
 
106
110
  ### 2. Interactive Control
@@ -137,9 +141,10 @@ Command Reference
137
141
  | **Command** | **Alias** | **Description** |
138
142
  | ------ | ----- | -----|
139
143
  | `il start` | `new` | Create loom, run analysis agents, and launch IDE. |
144
+ | `il commit` | `c` | Commit all files with issue reference (`Refs #N` or `Fixes #N`). |
140
145
  | `il finish` | `dn` | Validate tests/lint, commit, handle conflicts, and merge/PR. |
141
146
  | `il cleanup` | `remove` | Safely remove a loom and its database branch without merging. |
142
- | `il list` | | Show active looms and paths. |
147
+ | `il list` | | Show active looms for current project. `--finished` for archived, `--all` for active + archived, `--global` for looms across all projects. |
143
148
  | `il projects` | | List configured projects (JSON output). |
144
149
  | `il spin` | | Launch Claude inside the current loom with context auto-detected. |
145
150
  | `il open` | `run` | Open loom in browser (web) or run your CLI tool. |
@@ -149,6 +154,7 @@ Command Reference
149
154
  | `il test` | | Run the test script for a workspace. |
150
155
  | `il compile` | `typecheck` | Run the compile or typecheck script for a workspace. |
151
156
  | `il add-issue` | `a` | Create and AI-enhance a new issue without starting work yet. |
157
+ | `il contribute` | | Fork, clone, and set up a GitHub repo for contribution (defaults to iloom-cli). |
152
158
  | `il init` | `config` | Interactive configuration wizard. |
153
159
  | `il feedback` | `f` | Submit bug reports/feedback directly from the CLI. |
154
160
  | `il update` | | Update iloom CLI to the latest version. |
@@ -470,16 +476,23 @@ This is an early-stage product.
470
476
 
471
477
  See all [known limitations](https://github.com/iloom-ai/iloom-cli/issues?q=is:issue+is:open+label:known-limitation) on GitHub. If you're feeling left out - you're absolutely right! The best way to complain about something is to fix it. So...
472
478
 
473
- Contributing
474
- ------------
479
+ Contributing to iloom
480
+ ---------------------
475
481
 
476
- We (Claude and I) welcome contributions! We've made it easy to get started — iloom can even set up its own dev environment.
482
+ We (Claude and I) welcome contributions! iloom can set up its own dev environment:
477
483
 
478
484
  ```bash
479
- iloom contribute # Handles forking, cloning, and setting up the dev environment automatically.
485
+ iloom contribute # Handles forking, cloning, and dev setup automatically
480
486
  ```
481
487
 
482
- You can also use `iloom contribute` to set up any GitHub repository for contribution:
488
+ **PR Requirements:** All PRs should be created with iloom or include detailed context. If you're not using iloom, please provide equivalent detail explaining your approach and reasoning.
489
+
490
+ New contributors should start with issues labeled [starter-task](https://github.com/iloom-ai/iloom-cli/issues?q=is%3Aissue+is%3Aopen+label%3Astarter-task). For details, see our [Contributing Guide](CONTRIBUTING.md).
491
+
492
+ Contributing to Open Source
493
+ ---------------------------
494
+
495
+ iloom streamlines the fork → clone → setup → PR workflow for any GitHub repository:
483
496
 
484
497
  ```bash
485
498
  # Full URL format
@@ -492,9 +505,13 @@ iloom contribute "github.com/n8n-io/n8n"
492
505
  iloom contribute "n8n-io/n8n"
493
506
  ```
494
507
 
495
- **All PRs should be created with iloom or include detailed context.** When you run `iloom contribute`, it configures iloom to create a draft PR as soon as you start work. As you work, iloom posts the AI's analysis, implementation plan, and progress directly to that draft PR—giving reviewers full context before the code is even ready for review. If you're not using iloom, please provide equivalent detail in your PR.
508
+ This command:
509
+ 1. Forks the repository (if not already forked)
510
+ 2. Clones your fork locally
511
+ 3. Configures iloom for the project
512
+ 4. Sets merge behavior to `github-draft-pr` (creates a draft PR immediately when you start work)
496
513
 
497
- New contributors should start with issues labeled [starter-task](https://github.com/iloom-ai/iloom-cli/issues?q=is%3Aissue+is%3Aopen+label%3Astarter-task). For details, see our [Contributing Guide](CONTRIBUTING.md).
514
+ 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.
498
515
 
499
516
  License & Name
500
517
  --------------
@@ -3,7 +3,7 @@ import {
3
3
  ClaudeBranchNameStrategy,
4
4
  DefaultBranchNamingService,
5
5
  SimpleBranchNameStrategy
6
- } from "./chunk-5TXLVEXT.js";
6
+ } from "./chunk-C3AKFAIR.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-B5PVRR7F.js.map
14
+ //# sourceMappingURL=BranchNamingService-FLPUUFOB.js.map
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ ClaudeContextManager
4
+ } from "./chunk-6TL3BYH6.js";
5
+ import "./chunk-KVS4XGBQ.js";
6
+ import "./chunk-TIYJEEVO.js";
7
+ import "./chunk-WFQ5CLTR.js";
8
+ import "./chunk-FP7G7DG3.js";
9
+ import "./chunk-6MLEBAYZ.js";
10
+ import "./chunk-VT4PDUYT.js";
11
+ export {
12
+ ClaudeContextManager
13
+ };
14
+ //# sourceMappingURL=ClaudeContextManager-KE5TBZVZ.js.map
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ ClaudeService
4
+ } from "./chunk-KVS4XGBQ.js";
5
+ import "./chunk-TIYJEEVO.js";
6
+ import "./chunk-WFQ5CLTR.js";
7
+ import "./chunk-FP7G7DG3.js";
8
+ import "./chunk-6MLEBAYZ.js";
9
+ import "./chunk-VT4PDUYT.js";
10
+ export {
11
+ ClaudeService
12
+ };
13
+ //# sourceMappingURL=ClaudeService-CRSETT3A.js.map
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  GitHubService
4
- } from "./chunk-3PT7RKL5.js";
5
- import "./chunk-LT3SGBR7.js";
4
+ } from "./chunk-USJSNHGG.js";
5
+ import "./chunk-GCPAZSGV.js";
6
6
  import "./chunk-ZX3GTM7O.js";
7
7
  import "./chunk-6MLEBAYZ.js";
8
8
  import "./chunk-VT4PDUYT.js";
9
9
  export {
10
10
  GitHubService
11
11
  };
12
- //# sourceMappingURL=GitHubService-S2OGUTDR.js.map
12
+ //# sourceMappingURL=GitHubService-O7U4UQ7N.js.map
@@ -4,18 +4,18 @@ import {
4
4
  } from "./chunk-O7VL5N6S.js";
5
5
  import {
6
6
  ClaudeContextManager
7
- } from "./chunk-7WANFUIK.js";
8
- import "./chunk-6U6VI4SZ.js";
9
- import "./chunk-W6WVRHJ6.js";
7
+ } from "./chunk-6TL3BYH6.js";
8
+ import "./chunk-KVS4XGBQ.js";
9
+ import "./chunk-TIYJEEVO.js";
10
10
  import {
11
11
  getExecutablePath
12
12
  } from "./chunk-GYCR2LOU.js";
13
- import "./chunk-F6WVM437.js";
13
+ import "./chunk-WFQ5CLTR.js";
14
14
  import {
15
15
  generateColorFromBranchName,
16
16
  hexToRgb
17
17
  } from "./chunk-433MOLAU.js";
18
- import "./chunk-AEIMYF4P.js";
18
+ import "./chunk-FP7G7DG3.js";
19
19
  import {
20
20
  getLogger
21
21
  } from "./chunk-6MLEBAYZ.js";
@@ -252,4 +252,4 @@ var LoomLauncher = class {
252
252
  export {
253
253
  LoomLauncher
254
254
  };
255
- //# sourceMappingURL=LoomLauncher-5LFM4LXB.js.map
255
+ //# sourceMappingURL=LoomLauncher-NL65LSKP.js.map
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  MetadataManager
4
- } from "./chunk-CFUWQHCJ.js";
4
+ } from "./chunk-VWGKGNJP.js";
5
5
  import "./chunk-6MLEBAYZ.js";
6
6
  import "./chunk-VT4PDUYT.js";
7
7
  export {
8
8
  MetadataManager
9
9
  };
10
- //# sourceMappingURL=MetadataManager-DFI73J3G.js.map
10
+ //# sourceMappingURL=MetadataManager-XJ2YB762.js.map
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ PRManager
4
+ } from "./chunk-EPPPDVHD.js";
5
+ import "./chunk-YETJNRQM.js";
6
+ import "./chunk-GJMEKEI5.js";
7
+ import "./chunk-HBJITKSZ.js";
8
+ import "./chunk-FXDYIV3K.js";
9
+ import "./chunk-GCPAZSGV.js";
10
+ import "./chunk-FP7G7DG3.js";
11
+ import "./chunk-6MLEBAYZ.js";
12
+ import "./chunk-VT4PDUYT.js";
13
+ export {
14
+ PRManager
15
+ };
16
+ //# sourceMappingURL=PRManager-2ABCWXHW.js.map
@@ -1,11 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  ProjectCapabilityDetector
4
- } from "./chunk-ZPSTA5PR.js";
5
- import "./chunk-BXCPJJYM.js";
4
+ } from "./chunk-3CDWFEGL.js";
5
+ import "./chunk-ITN64ENQ.js";
6
6
  import "./chunk-6MLEBAYZ.js";
7
7
  import "./chunk-VT4PDUYT.js";
8
8
  export {
9
9
  ProjectCapabilityDetector
10
10
  };
11
- //# sourceMappingURL=ProjectCapabilityDetector-S5FLNCFI.js.map
11
+ //# sourceMappingURL=ProjectCapabilityDetector-UZYW32SY.js.map
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  PromptTemplateManager
4
- } from "./chunk-W6WVRHJ6.js";
4
+ } from "./chunk-TIYJEEVO.js";
5
5
  import "./chunk-VT4PDUYT.js";
6
6
  export {
7
7
  PromptTemplateManager
8
8
  };
9
- //# sourceMappingURL=PromptTemplateManager-C3DK6XZL.js.map
9
+ //# sourceMappingURL=PromptTemplateManager-7L3HJQQU.js.map
package/dist/README.md CHANGED
@@ -16,7 +16,7 @@ iloom
16
16
 
17
17
  #### Links to key sections
18
18
 
19
- [How It Works](#how-it-works-the-multi-agent-workflow) • [Installation](#quick-start) • [Configuration](#configuration) • [Advanced Features](#advanced-features) • [Limitations](#system-requirements--limitations)
19
+ [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)
20
20
 
21
21
  ## Built For Modern Tools...
22
22
 
@@ -90,17 +90,21 @@ When you run il start, iloom orchestrates specialized AI agents. Each has a spec
90
90
 
91
91
  ### 1. The Agents
92
92
 
93
- Instead of a single generic prompt, iloom uses a pipeline of agents:
93
+ Instead of a single generic prompt, iloom uses a pipeline of specialized agents:
94
+
95
+ * **Enhancer:** Expands brief one-liners into detailed requirements with acceptance criteria.
96
+
97
+ * **Evaluator:** Assesses complexity and routes to the appropriate workflow:
94
98
 
95
- * **Enhancer (iloom-issue-enhancer):** Expands brief one-liners into detailed requirements.
96
-
97
- * **Evaluator (iloom-issue-complexity-evaluator):** Determines the workflow approach:
98
-
99
99
  * **Simple:** Combines analysis and planning into one step for efficiency.
100
-
101
- * **Complex:** Separates deep root-cause analysis from detailed implementation planning.
102
-
103
- * **Implementer:** Executes the plan using the context established in the previous steps.
100
+
101
+ * **Complex:** Separates deep analysis from detailed planning for thorough coverage.
102
+
103
+ * **Analyzer:** Explores the problem space before any code is written. This agent investigates the codebase to understand existing patterns, examines third-party library APIs and capabilities, and researches technical approaches. The result is a comprehensive analysis that informs the planning phase—leading to significantly better implementation plans than jumping straight to code.
104
+
105
+ * **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
+
107
+ * **Implementer:** Executes the plan using the context established in the previous steps. For complex tasks, multiple implementers can run in parallel on independent steps.
104
108
 
105
109
 
106
110
  ### 2. Interactive Control
@@ -137,9 +141,10 @@ Command Reference
137
141
  | **Command** | **Alias** | **Description** |
138
142
  | ------ | ----- | -----|
139
143
  | `il start` | `new` | Create loom, run analysis agents, and launch IDE. |
144
+ | `il commit` | `c` | Commit all files with issue reference (`Refs #N` or `Fixes #N`). |
140
145
  | `il finish` | `dn` | Validate tests/lint, commit, handle conflicts, and merge/PR. |
141
146
  | `il cleanup` | `remove` | Safely remove a loom and its database branch without merging. |
142
- | `il list` | | Show active looms and paths. |
147
+ | `il list` | | Show active looms for current project. `--finished` for archived, `--all` for active + archived, `--global` for looms across all projects. |
143
148
  | `il projects` | | List configured projects (JSON output). |
144
149
  | `il spin` | | Launch Claude inside the current loom with context auto-detected. |
145
150
  | `il open` | `run` | Open loom in browser (web) or run your CLI tool. |
@@ -149,6 +154,7 @@ Command Reference
149
154
  | `il test` | | Run the test script for a workspace. |
150
155
  | `il compile` | `typecheck` | Run the compile or typecheck script for a workspace. |
151
156
  | `il add-issue` | `a` | Create and AI-enhance a new issue without starting work yet. |
157
+ | `il contribute` | | Fork, clone, and set up a GitHub repo for contribution (defaults to iloom-cli). |
152
158
  | `il init` | `config` | Interactive configuration wizard. |
153
159
  | `il feedback` | `f` | Submit bug reports/feedback directly from the CLI. |
154
160
  | `il update` | | Update iloom CLI to the latest version. |
@@ -470,16 +476,23 @@ This is an early-stage product.
470
476
 
471
477
  See all [known limitations](https://github.com/iloom-ai/iloom-cli/issues?q=is:issue+is:open+label:known-limitation) on GitHub. If you're feeling left out - you're absolutely right! The best way to complain about something is to fix it. So...
472
478
 
473
- Contributing
474
- ------------
479
+ Contributing to iloom
480
+ ---------------------
475
481
 
476
- We (Claude and I) welcome contributions! We've made it easy to get started — iloom can even set up its own dev environment.
482
+ We (Claude and I) welcome contributions! iloom can set up its own dev environment:
477
483
 
478
484
  ```bash
479
- iloom contribute # Handles forking, cloning, and setting up the dev environment automatically.
485
+ iloom contribute # Handles forking, cloning, and dev setup automatically
480
486
  ```
481
487
 
482
- You can also use `iloom contribute` to set up any GitHub repository for contribution:
488
+ **PR Requirements:** All PRs should be created with iloom or include detailed context. If you're not using iloom, please provide equivalent detail explaining your approach and reasoning.
489
+
490
+ New contributors should start with issues labeled [starter-task](https://github.com/iloom-ai/iloom-cli/issues?q=is%3Aissue+is%3Aopen+label%3Astarter-task). For details, see our [Contributing Guide](CONTRIBUTING.md).
491
+
492
+ Contributing to Open Source
493
+ ---------------------------
494
+
495
+ iloom streamlines the fork → clone → setup → PR workflow for any GitHub repository:
483
496
 
484
497
  ```bash
485
498
  # Full URL format
@@ -492,9 +505,13 @@ iloom contribute "github.com/n8n-io/n8n"
492
505
  iloom contribute "n8n-io/n8n"
493
506
  ```
494
507
 
495
- **All PRs should be created with iloom or include detailed context.** When you run `iloom contribute`, it configures iloom to create a draft PR as soon as you start work. As you work, iloom posts the AI's analysis, implementation plan, and progress directly to that draft PR—giving reviewers full context before the code is even ready for review. If you're not using iloom, please provide equivalent detail in your PR.
508
+ This command:
509
+ 1. Forks the repository (if not already forked)
510
+ 2. Clones your fork locally
511
+ 3. Configures iloom for the project
512
+ 4. Sets merge behavior to `github-draft-pr` (creates a draft PR immediately when you start work)
496
513
 
497
- New contributors should start with issues labeled [starter-task](https://github.com/iloom-ai/iloom-cli/issues?q=is%3Aissue+is%3Aopen+label%3Astarter-task). For details, see our [Contributing Guide](CONTRIBUTING.md).
514
+ 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.
498
515
 
499
516
  License & Name
500
517
  --------------
@@ -14,7 +14,7 @@ import {
14
14
  WorkflowPermissionSchemaNoDefaults,
15
15
  WorkflowsSettingsSchema,
16
16
  WorkflowsSettingsSchemaNoDefaults
17
- } from "./chunk-F6WVM437.js";
17
+ } from "./chunk-WFQ5CLTR.js";
18
18
  import "./chunk-VT4PDUYT.js";
19
19
  export {
20
20
  AgentSettingsSchema,
@@ -32,4 +32,4 @@ export {
32
32
  WorkflowsSettingsSchema,
33
33
  WorkflowsSettingsSchemaNoDefaults
34
34
  };
35
- //# sourceMappingURL=SettingsManager-35F5RUJH.js.map
35
+ //# sourceMappingURL=SettingsManager-YU4VYPTW.js.map
@@ -35,7 +35,7 @@ The recap panel helps users stay oriented without reading all your output. Captu
35
35
 
36
36
  ### Step 1: Fetch the Issue
37
37
 
38
- Read the issue thoroughly using the MCP tool `mcp__issue_management__get_issue` with `{ number: ISSUE_NUMBER, includeComments: true }`. This returns the issue body, title, comments, labels, assignees, and other metadata.
38
+ Read the issue thoroughly using the MCP tool `mcp__issue_management__get_issue` with `{ number: {{ISSUE_NUMBER}}, includeComments: true }`. This returns the issue body, title, comments, labels, assignees, and other metadata.
39
39
 
40
40
  Extract:
41
41
  - The complete issue body for context
@@ -225,9 +225,9 @@ Available Tools:
225
225
  Parameters: { commentId: string, number: string }
226
226
  Returns: { id, body, author, created_at, ... }
227
227
 
228
- {{#IF DRAFT_PR_MODE}}- mcp__issue_management__create_comment: Create a new comment on PR DRAFT_PR_NUMBER
229
- Parameters: { number: string, body: "markdown content", type: "pr" }{{/IF DRAFT_PR_MODE}}{{#IF STANDARD_ISSUE_MODE}}- mcp__issue_management__create_comment: Create a new comment on issue ISSUE_NUMBER
230
- Parameters: { number: string, body: "markdown content", type: "issue" }{{/IF STANDARD_ISSUE_MODE}}
228
+ {{#if DRAFT_PR_MODE}}- mcp__issue_management__create_comment: Create a new comment on PR {{DRAFT_PR_NUMBER}}
229
+ Parameters: { number: string, body: "markdown content", type: "pr" }{{/if}}{{#if STANDARD_ISSUE_MODE}}- mcp__issue_management__create_comment: Create a new comment on issue {{ISSUE_NUMBER}}
230
+ Parameters: { number: string, body: "markdown content", type: "issue" }{{/if}}
231
231
  Returns: { id: string, url: string, created_at: string }
232
232
 
233
233
  - mcp__issue_management__update_comment: Update an existing comment
@@ -250,15 +250,15 @@ Workflow Comment Strategy:
250
250
  Example Usage:
251
251
  ```
252
252
  // Start
253
- {{#IF DRAFT_PR_MODE}}const comment = await mcp__issue_management__create_comment({
254
- number: DRAFT_PR_NUMBER,
253
+ {{#if DRAFT_PR_MODE}}const comment = await mcp__issue_management__create_comment({
254
+ number: {{DRAFT_PR_NUMBER}},
255
255
  body: "# Combined Analysis and Planning\n\n- [ ] Perform lightweight analysis\n- [ ] Create implementation plan",
256
256
  type: "pr"
257
- }){{/IF DRAFT_PR_MODE}}{{#IF STANDARD_ISSUE_MODE}}const comment = await mcp__issue_management__create_comment({
258
- number: ISSUE_NUMBER,
257
+ }){{/if}}{{#if STANDARD_ISSUE_MODE}}const comment = await mcp__issue_management__create_comment({
258
+ number: {{ISSUE_NUMBER}},
259
259
  body: "# Combined Analysis and Planning\n\n- [ ] Perform lightweight analysis\n- [ ] Create implementation plan",
260
260
  type: "issue"
261
- }){{/IF STANDARD_ISSUE_MODE}}
261
+ }){{/if}}
262
262
 
263
263
  // Log the comment as an artifact
264
264
  await mcp__recap__add_artifact({
@@ -268,15 +268,15 @@ await mcp__recap__add_artifact({
268
268
  })
269
269
 
270
270
  // Update as you progress
271
- {{#IF DRAFT_PR_MODE}}await mcp__issue_management__update_comment({
271
+ {{#if DRAFT_PR_MODE}}await mcp__issue_management__update_comment({
272
272
  commentId: comment.id,
273
- number: DRAFT_PR_NUMBER,
273
+ number: {{DRAFT_PR_NUMBER}},
274
274
  body: "# Combined Analysis and Planning\n\n- [x] Perform lightweight analysis\n- [ ] Create implementation plan"
275
- }){{/IF DRAFT_PR_MODE}}{{#IF STANDARD_ISSUE_MODE}}await mcp__issue_management__update_comment({
275
+ }){{/if}}{{#if STANDARD_ISSUE_MODE}}await mcp__issue_management__update_comment({
276
276
  commentId: comment.id,
277
- number: ISSUE_NUMBER,
277
+ number: {{ISSUE_NUMBER}},
278
278
  body: "# Combined Analysis and Planning\n\n- [x] Perform lightweight analysis\n- [ ] Create implementation plan"
279
- }){{/IF STANDARD_ISSUE_MODE}}
279
+ }){{/if}}
280
280
  ```
281
281
  </comment_tool_info>
282
282
 
@@ -449,9 +449,15 @@ If structure is >5 lines:
449
449
 
450
450
  ### Detailed Execution Order
451
451
 
452
- #### Phase 1: [Phase Name]
453
- 1. [Action with file:line reference] → Verify: [Expected outcome]
454
- 2. [Next action] → Verify: [Expected outcome]
452
+ **NOTE:** These steps are executed in a SINGLE implementation run. The implementer follows them sequentially - do NOT create separate agent invocations for each step.
453
+
454
+ 1. **[Step Name]**
455
+ - Files: `/path/to/file1.ts`, `/path/to/file2.ts`
456
+ - [Action with file:line reference] → Verify: [Expected outcome]
457
+
458
+ 2. **[Step Name]**
459
+ - Files: `/path/to/file3.ts`
460
+ - [Action with file:line reference] → Verify: [Expected outcome]
455
461
 
456
462
  [Continue - keep brief, one line per step...]
457
463
 
@@ -692,3 +698,22 @@ Your success is measured by:
692
698
  Remember: You are handling a SIMPLE task that has been carefully classified. Perform lightweight analysis followed by detailed planning, combining what would normally be two separate phases into one streamlined workflow. Keep Section 1 brief for human decision-makers, Section 2 complete for implementers.
693
699
 
694
700
  **HOWEVER**: If you discover cross-cutting complexity during analysis (parameters flowing through 3+ layers), immediately escalate to COMPLEX workflow rather than attempting to complete the planning. Your early detection prevents implementation failures.
701
+
702
+ ## Returning the Plan to the Caller
703
+
704
+ After posting the planning comment to the issue, you MUST return the plan details to the caller in your final response.
705
+
706
+ **Required format for your final response:**
707
+
708
+ ```
709
+ ## Plan for Caller
710
+
711
+ Comment ID: [COMMENT_ID]
712
+ Comment URL: [FULL_URL_WITH_COMMENT_ID]
713
+
714
+ ## Execution Plan
715
+
716
+ 1. Run implementation
717
+ ```
718
+
719
+ The orchestrator will use the Comment ID to tell the implementer where to find the plan, and parse the Execution Plan to determine execution (for SIMPLE tasks, this is always a single step).
@@ -26,7 +26,7 @@ The recap panel helps users stay oriented without reading all your output. Captu
26
26
  ## Core Workflow
27
27
 
28
28
  ### Step 1: Fetch the Issue
29
- Please read the referenced issue and comments using the MCP tool `mcp__issue_management__get_issue` with `{ number: ISSUE_NUMBER, includeComments: true }`
29
+ Please read the referenced issue and comments using the MCP tool `mcp__issue_management__get_issue` with `{ number: {{ISSUE_NUMBER}}, includeComments: true }`
30
30
 
31
31
  ### Step 2: Perform Comprehensive Research
32
32
 
@@ -298,9 +298,9 @@ Available Tools:
298
298
  Parameters: { commentId: string, number: string }
299
299
  Returns: { id, body, author, created_at, ... }
300
300
 
301
- {{#IF DRAFT_PR_MODE}}- mcp__issue_management__create_comment: Create a new comment on PR DRAFT_PR_NUMBER
302
- Parameters: { number: string, body: "markdown content", type: "pr" }{{/IF DRAFT_PR_MODE}}{{#IF STANDARD_ISSUE_MODE}}- mcp__issue_management__create_comment: Create a new comment on issue ISSUE_NUMBER
303
- Parameters: { number: string, body: "markdown content", type: "issue" }{{/IF STANDARD_ISSUE_MODE}}
301
+ {{#if DRAFT_PR_MODE}}- mcp__issue_management__create_comment: Create a new comment on PR {{DRAFT_PR_NUMBER}}
302
+ Parameters: { number: string, body: "markdown content", type: "pr" }{{/if}}{{#if STANDARD_ISSUE_MODE}}- mcp__issue_management__create_comment: Create a new comment on issue {{ISSUE_NUMBER}}
303
+ Parameters: { number: string, body: "markdown content", type: "issue" }{{/if}}
304
304
  Returns: { id: string, url: string, created_at: string }
305
305
 
306
306
  - mcp__issue_management__update_comment: Update an existing comment
@@ -323,15 +323,15 @@ Workflow Comment Strategy:
323
323
  Example Usage:
324
324
  ```
325
325
  // Start
326
- {{#IF DRAFT_PR_MODE}}const comment = await mcp__issue_management__create_comment({
327
- number: DRAFT_PR_NUMBER,
326
+ {{#if DRAFT_PR_MODE}}const comment = await mcp__issue_management__create_comment({
327
+ number: {{DRAFT_PR_NUMBER}},
328
328
  body: "# Analysis Phase\n\n- [ ] Fetch issue details\n- [ ] Analyze requirements",
329
329
  type: "pr"
330
- }){{/IF DRAFT_PR_MODE}}{{#IF STANDARD_ISSUE_MODE}}const comment = await mcp__issue_management__create_comment({
331
- number: ISSUE_NUMBER,
330
+ }){{/if}}{{#if STANDARD_ISSUE_MODE}}const comment = await mcp__issue_management__create_comment({
331
+ number: {{ISSUE_NUMBER}},
332
332
  body: "# Analysis Phase\n\n- [ ] Fetch issue details\n- [ ] Analyze requirements",
333
333
  type: "issue"
334
- }){{/IF STANDARD_ISSUE_MODE}}
334
+ }){{/if}}
335
335
 
336
336
  // Log the comment as an artifact
337
337
  await mcp__recap__add_artifact({
@@ -341,15 +341,15 @@ await mcp__recap__add_artifact({
341
341
  })
342
342
 
343
343
  // Update as you progress
344
- {{#IF DRAFT_PR_MODE}}await mcp__issue_management__update_comment({
344
+ {{#if DRAFT_PR_MODE}}await mcp__issue_management__update_comment({
345
345
  commentId: comment.id,
346
- number: DRAFT_PR_NUMBER,
346
+ number: {{DRAFT_PR_NUMBER}},
347
347
  body: "# Analysis Phase\n\n- [x] Fetch issue details\n- [ ] Analyze requirements"
348
- }){{/IF DRAFT_PR_MODE}}{{#IF STANDARD_ISSUE_MODE}}await mcp__issue_management__update_comment({
348
+ }){{/if}}{{#if STANDARD_ISSUE_MODE}}await mcp__issue_management__update_comment({
349
349
  commentId: comment.id,
350
- number: ISSUE_NUMBER,
350
+ number: {{ISSUE_NUMBER}},
351
351
  body: "# Analysis Phase\n\n- [x] Fetch issue details\n- [ ] Analyze requirements"
352
- }){{/IF STANDARD_ISSUE_MODE}}
352
+ }){{/if}}
353
353
  ```
354
354
  </comment_tool_info>
355
355