@iloom/cli 0.6.0 → 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 (179) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +58 -16
  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 +58 -16
  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-5IWU3HXE.js → chunk-EPPPDVHD.js} +23 -11
  31. package/dist/chunk-EPPPDVHD.js.map +1 -0
  32. package/dist/{chunk-UB4TFAXJ.js → chunk-FEAJR6PN.js} +9 -55
  33. package/dist/chunk-FEAJR6PN.js.map +1 -0
  34. package/dist/{chunk-6YSFTPKW.js → chunk-FM4KBPVA.js} +18 -13
  35. package/dist/chunk-FM4KBPVA.js.map +1 -0
  36. package/dist/{chunk-AEIMYF4P.js → chunk-FP7G7DG3.js} +6 -2
  37. package/dist/chunk-FP7G7DG3.js.map +1 -0
  38. package/dist/{chunk-LT3SGBR7.js → chunk-GCPAZSGV.js} +36 -2
  39. package/dist/{chunk-LT3SGBR7.js.map → chunk-GCPAZSGV.js.map} +1 -1
  40. package/dist/chunk-GJMEKEI5.js +517 -0
  41. package/dist/chunk-GJMEKEI5.js.map +1 -0
  42. package/dist/{chunk-64O2UIWO.js → chunk-GV5X6XUE.js} +4 -4
  43. package/dist/{chunk-7Q66W4OH.js → chunk-HBJITKSZ.js} +37 -1
  44. package/dist/chunk-HBJITKSZ.js.map +1 -0
  45. package/dist/{chunk-7HIRPCKU.js → chunk-HVQNVRAF.js} +2 -2
  46. package/dist/{chunk-BXCPJJYM.js → chunk-ITN64ENQ.js} +1 -1
  47. package/dist/chunk-ITN64ENQ.js.map +1 -0
  48. package/dist/{chunk-6U6VI4SZ.js → chunk-KVS4XGBQ.js} +4 -4
  49. package/dist/{chunk-AXX3QIKK.js → chunk-LLWX3PCW.js} +2 -2
  50. package/dist/{chunk-WIJWIKAN.js → chunk-LQBLDI47.js} +105 -7
  51. package/dist/chunk-LQBLDI47.js.map +1 -0
  52. package/dist/{chunk-SN3Z6EZO.js → chunk-N7FVXZNI.js} +2 -2
  53. package/dist/chunk-NTIZLX42.js +822 -0
  54. package/dist/chunk-NTIZLX42.js.map +1 -0
  55. package/dist/{chunk-PMVWQBWS.js → chunk-S7YMZQUD.js} +31 -45
  56. package/dist/chunk-S7YMZQUD.js.map +1 -0
  57. package/dist/chunk-TIYJEEVO.js +79 -0
  58. package/dist/chunk-TIYJEEVO.js.map +1 -0
  59. package/dist/{chunk-EK3XCAAS.js → chunk-UDRZY65Y.js} +2 -2
  60. package/dist/{chunk-3PT7RKL5.js → chunk-USJSNHGG.js} +2 -2
  61. package/dist/{chunk-CFUWQHCJ.js → chunk-VWGKGNJP.js} +114 -35
  62. package/dist/chunk-VWGKGNJP.js.map +1 -0
  63. package/dist/{chunk-F6WVM437.js → chunk-WFQ5CLTR.js} +6 -3
  64. package/dist/chunk-WFQ5CLTR.js.map +1 -0
  65. package/dist/{chunk-TRQ76ISK.js → chunk-Z6BO53V7.js} +9 -9
  66. package/dist/{chunk-GEXP5IOF.js → chunk-ZA575VLF.js} +21 -8
  67. package/dist/chunk-ZA575VLF.js.map +1 -0
  68. package/dist/{claude-H33OQMXO.js → claude-6H36IBHO.js} +4 -2
  69. package/dist/{cleanup-OU2HFOOG.js → cleanup-ZPOMRSNN.js} +20 -16
  70. package/dist/cleanup-ZPOMRSNN.js.map +1 -0
  71. package/dist/cli.js +511 -959
  72. package/dist/cli.js.map +1 -1
  73. package/dist/commit-6S2RIA2K.js +237 -0
  74. package/dist/commit-6S2RIA2K.js.map +1 -0
  75. package/dist/{compile-ULNO5F7Q.js → compile-LRMAADUT.js} +9 -9
  76. package/dist/{contribute-T7ENST5N.js → contribute-GXKOIA42.js} +99 -31
  77. package/dist/contribute-GXKOIA42.js.map +1 -0
  78. package/dist/{dev-server-4RCDJ5MU.js → dev-server-GREJUEKW.js} +22 -74
  79. package/dist/dev-server-GREJUEKW.js.map +1 -0
  80. package/dist/{feedback-O4Q55SVS.js → feedback-G7G5QCY4.js} +10 -10
  81. package/dist/{git-FVMGBHC2.js → git-ENLT2VNI.js} +6 -4
  82. package/dist/hooks/iloom-hook.js +30 -2
  83. package/dist/{ignite-VHV65WEZ.js → ignite-YUAOJ5PP.js} +20 -20
  84. package/dist/ignite-YUAOJ5PP.js.map +1 -0
  85. package/dist/index.d.ts +71 -27
  86. package/dist/index.js +196 -266
  87. package/dist/index.js.map +1 -1
  88. package/dist/init-XQQMFDM6.js +21 -0
  89. package/dist/{lint-5JMCWE4Y.js → lint-OFVN7FT6.js} +9 -9
  90. package/dist/mcp/issue-management-server.js +359 -13
  91. package/dist/mcp/issue-management-server.js.map +1 -1
  92. package/dist/mcp/recap-server.js +13 -4
  93. package/dist/mcp/recap-server.js.map +1 -1
  94. package/dist/{open-WHVUYGPY.js → open-MCWQAPSZ.js} +25 -76
  95. package/dist/open-MCWQAPSZ.js.map +1 -0
  96. package/dist/{projects-SA76I4TZ.js → projects-PQOTWUII.js} +11 -4
  97. package/dist/projects-PQOTWUII.js.map +1 -0
  98. package/dist/prompts/init-prompt.txt +63 -59
  99. package/dist/prompts/issue-prompt.txt +132 -63
  100. package/dist/prompts/pr-prompt.txt +3 -3
  101. package/dist/prompts/regular-prompt.txt +16 -18
  102. package/dist/prompts/session-summary-prompt.txt +13 -13
  103. package/dist/{rebase-5EY3Q6XP.js → rebase-RKQED567.js} +53 -8
  104. package/dist/rebase-RKQED567.js.map +1 -0
  105. package/dist/{recap-VOOUXOGP.js → recap-ZKGHZCX6.js} +6 -6
  106. package/dist/{run-NCRK5NPR.js → run-CCG24PBC.js} +25 -76
  107. package/dist/run-CCG24PBC.js.map +1 -0
  108. package/dist/schema/settings.schema.json +14 -3
  109. package/dist/{shell-SBLXVOVJ.js → shell-2NNSIU34.js} +6 -6
  110. package/dist/{summary-CVFAMDOJ.js → summary-G6L3VAKK.js} +11 -10
  111. package/dist/{summary-CVFAMDOJ.js.map → summary-G6L3VAKK.js.map} +1 -1
  112. package/dist/{test-3KIVXI6J.js → test-QZDOEUIO.js} +9 -9
  113. package/dist/{test-git-ZB6AGGRW.js → test-git-E2BLXR6M.js} +4 -4
  114. package/dist/{test-prefix-FBGXKMPA.js → test-prefix-A7JGGYAA.js} +4 -4
  115. package/dist/{test-webserver-YVQD42W6.js → test-webserver-NRMGT2HB.js} +29 -8
  116. package/dist/test-webserver-NRMGT2HB.js.map +1 -0
  117. package/package.json +3 -1
  118. package/dist/ClaudeContextManager-6J2EB4QU.js +0 -14
  119. package/dist/ClaudeService-O2PB22GX.js +0 -13
  120. package/dist/PRManager-OCSB2HPT.js +0 -14
  121. package/dist/chunk-5IWU3HXE.js.map +0 -1
  122. package/dist/chunk-6YSFTPKW.js.map +0 -1
  123. package/dist/chunk-7Q66W4OH.js.map +0 -1
  124. package/dist/chunk-AEIMYF4P.js.map +0 -1
  125. package/dist/chunk-BXCPJJYM.js.map +0 -1
  126. package/dist/chunk-CFUWQHCJ.js.map +0 -1
  127. package/dist/chunk-F6WVM437.js.map +0 -1
  128. package/dist/chunk-GEXP5IOF.js.map +0 -1
  129. package/dist/chunk-K7SEEHKO.js.map +0 -1
  130. package/dist/chunk-PMVWQBWS.js.map +0 -1
  131. package/dist/chunk-UB4TFAXJ.js.map +0 -1
  132. package/dist/chunk-VU3QMIP2.js.map +0 -1
  133. package/dist/chunk-W6WVRHJ6.js +0 -251
  134. package/dist/chunk-W6WVRHJ6.js.map +0 -1
  135. package/dist/chunk-WIJWIKAN.js.map +0 -1
  136. package/dist/cleanup-OU2HFOOG.js.map +0 -1
  137. package/dist/contribute-T7ENST5N.js.map +0 -1
  138. package/dist/dev-server-4RCDJ5MU.js.map +0 -1
  139. package/dist/ignite-VHV65WEZ.js.map +0 -1
  140. package/dist/init-HB34Q5FH.js +0 -21
  141. package/dist/open-WHVUYGPY.js.map +0 -1
  142. package/dist/projects-SA76I4TZ.js.map +0 -1
  143. package/dist/rebase-5EY3Q6XP.js.map +0 -1
  144. package/dist/run-NCRK5NPR.js.map +0 -1
  145. package/dist/test-webserver-YVQD42W6.js.map +0 -1
  146. /package/dist/{BranchNamingService-B5PVRR7F.js.map → BranchNamingService-FLPUUFOB.js.map} +0 -0
  147. /package/dist/{ClaudeContextManager-6J2EB4QU.js.map → ClaudeContextManager-KE5TBZVZ.js.map} +0 -0
  148. /package/dist/{ClaudeService-O2PB22GX.js.map → ClaudeService-CRSETT3A.js.map} +0 -0
  149. /package/dist/{GitHubService-S2OGUTDR.js.map → GitHubService-O7U4UQ7N.js.map} +0 -0
  150. /package/dist/{LoomLauncher-5LFM4LXB.js.map → LoomLauncher-NL65LSKP.js.map} +0 -0
  151. /package/dist/{MetadataManager-DFI73J3G.js.map → MetadataManager-XJ2YB762.js.map} +0 -0
  152. /package/dist/{PRManager-OCSB2HPT.js.map → PRManager-2ABCWXHW.js.map} +0 -0
  153. /package/dist/{ProjectCapabilityDetector-S5FLNCFI.js.map → ProjectCapabilityDetector-UZYW32SY.js.map} +0 -0
  154. /package/dist/{PromptTemplateManager-C3DK6XZL.js.map → PromptTemplateManager-7L3HJQQU.js.map} +0 -0
  155. /package/dist/{SettingsManager-35F5RUJH.js.map → SettingsManager-YU4VYPTW.js.map} +0 -0
  156. /package/dist/{build-FJVYP7EV.js.map → build-O2EJHDEW.js.map} +0 -0
  157. /package/dist/{chunk-ZPSTA5PR.js.map → chunk-3CDWFEGL.js.map} +0 -0
  158. /package/dist/{chunk-UQIXZ3BA.js.map → chunk-5V74K5ZA.js.map} +0 -0
  159. /package/dist/{chunk-7WANFUIK.js.map → chunk-6TL3BYH6.js.map} +0 -0
  160. /package/dist/{chunk-5TXLVEXT.js.map → chunk-C3AKFAIR.js.map} +0 -0
  161. /package/dist/{chunk-64O2UIWO.js.map → chunk-GV5X6XUE.js.map} +0 -0
  162. /package/dist/{chunk-7HIRPCKU.js.map → chunk-HVQNVRAF.js.map} +0 -0
  163. /package/dist/{chunk-6U6VI4SZ.js.map → chunk-KVS4XGBQ.js.map} +0 -0
  164. /package/dist/{chunk-AXX3QIKK.js.map → chunk-LLWX3PCW.js.map} +0 -0
  165. /package/dist/{chunk-SN3Z6EZO.js.map → chunk-N7FVXZNI.js.map} +0 -0
  166. /package/dist/{chunk-EK3XCAAS.js.map → chunk-UDRZY65Y.js.map} +0 -0
  167. /package/dist/{chunk-3PT7RKL5.js.map → chunk-USJSNHGG.js.map} +0 -0
  168. /package/dist/{chunk-TRQ76ISK.js.map → chunk-Z6BO53V7.js.map} +0 -0
  169. /package/dist/{claude-H33OQMXO.js.map → claude-6H36IBHO.js.map} +0 -0
  170. /package/dist/{compile-ULNO5F7Q.js.map → compile-LRMAADUT.js.map} +0 -0
  171. /package/dist/{feedback-O4Q55SVS.js.map → feedback-G7G5QCY4.js.map} +0 -0
  172. /package/dist/{git-FVMGBHC2.js.map → git-ENLT2VNI.js.map} +0 -0
  173. /package/dist/{init-HB34Q5FH.js.map → init-XQQMFDM6.js.map} +0 -0
  174. /package/dist/{lint-5JMCWE4Y.js.map → lint-OFVN7FT6.js.map} +0 -0
  175. /package/dist/{recap-VOOUXOGP.js.map → recap-ZKGHZCX6.js.map} +0 -0
  176. /package/dist/{shell-SBLXVOVJ.js.map → shell-2NNSIU34.js.map} +0 -0
  177. /package/dist/{test-3KIVXI6J.js.map → test-QZDOEUIO.js.map} +0 -0
  178. /package/dist/{test-git-ZB6AGGRW.js.map → test-git-E2BLXR6M.js.map} +0 -0
  179. /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. |
@@ -362,6 +368,18 @@ Control how `il finish` handles your work. Configure in `.iloom/settings.json`:
362
368
  | `github-pr` | Push branch and create a GitHub PR on `il finish`. Worktree cleanup is optional. |
363
369
  | `github-draft-pr` | Create a draft PR immediately on `il start`. On `il finish`, the PR is marked ready for review. **Recommended for contributions to forked repos.** |
364
370
 
371
+ ### Rebase Conflict Resolution
372
+
373
+ When `il finish` or `il rebase` encounter rebase conflicts, iloom automatically launches Claude to help resolve them. During conflict resolution, the following git commands are **auto-approved** so Claude can work efficiently without requiring manual permission for each command:
374
+
375
+ - `git status` - View current rebase state
376
+ - `git diff` - Examine conflicts
377
+ - `git log` - Understand branch history
378
+ - `git add` - Stage resolved files
379
+ - `git rebase` - Continue or abort rebase
380
+
381
+ Note: Potentially destructive commands like `git reset` and `git checkout` are intentionally not auto-approved to prevent accidental data loss.
382
+
365
383
  **When to use `github-draft-pr`:**
366
384
  - **Contributing to forks:** When you don't are contributing to a forked repo use this mode to create the PR from your fork immediately, allowing iloom's agents to post workflow comments directly to the PR instead of writing to the upstream repo's issues (which may not be appreciated by the repo owners).
367
385
  - CI runs on your branch during development (draft PRs trigger CI on most repos)
@@ -458,19 +476,43 @@ This is an early-stage product.
458
476
 
459
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...
460
478
 
461
- Contributing
462
- ------------
479
+ Contributing to iloom
480
+ ---------------------
463
481
 
464
- 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:
465
483
 
466
484
  ```bash
467
- iloom contribute # Handles forking, cloning, and setting up the dev environment automatically.
485
+ iloom contribute # Handles forking, cloning, and dev setup automatically
468
486
  ```
469
487
 
470
- **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.
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.
471
489
 
472
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).
473
491
 
492
+ Contributing to Open Source
493
+ ---------------------------
494
+
495
+ iloom streamlines the fork → clone → setup → PR workflow for any GitHub repository:
496
+
497
+ ```bash
498
+ # Full URL format
499
+ iloom contribute "https://github.com/n8n-io/n8n"
500
+
501
+ # Shortened URL format
502
+ iloom contribute "github.com/n8n-io/n8n"
503
+
504
+ # owner/repo format
505
+ iloom contribute "n8n-io/n8n"
506
+ ```
507
+
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)
513
+
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.
515
+
474
516
  License & Name
475
517
  --------------
476
518
 
@@ -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. |
@@ -362,6 +368,18 @@ Control how `il finish` handles your work. Configure in `.iloom/settings.json`:
362
368
  | `github-pr` | Push branch and create a GitHub PR on `il finish`. Worktree cleanup is optional. |
363
369
  | `github-draft-pr` | Create a draft PR immediately on `il start`. On `il finish`, the PR is marked ready for review. **Recommended for contributions to forked repos.** |
364
370
 
371
+ ### Rebase Conflict Resolution
372
+
373
+ When `il finish` or `il rebase` encounter rebase conflicts, iloom automatically launches Claude to help resolve them. During conflict resolution, the following git commands are **auto-approved** so Claude can work efficiently without requiring manual permission for each command:
374
+
375
+ - `git status` - View current rebase state
376
+ - `git diff` - Examine conflicts
377
+ - `git log` - Understand branch history
378
+ - `git add` - Stage resolved files
379
+ - `git rebase` - Continue or abort rebase
380
+
381
+ Note: Potentially destructive commands like `git reset` and `git checkout` are intentionally not auto-approved to prevent accidental data loss.
382
+
365
383
  **When to use `github-draft-pr`:**
366
384
  - **Contributing to forks:** When you don't are contributing to a forked repo use this mode to create the PR from your fork immediately, allowing iloom's agents to post workflow comments directly to the PR instead of writing to the upstream repo's issues (which may not be appreciated by the repo owners).
367
385
  - CI runs on your branch during development (draft PRs trigger CI on most repos)
@@ -458,19 +476,43 @@ This is an early-stage product.
458
476
 
459
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...
460
478
 
461
- Contributing
462
- ------------
479
+ Contributing to iloom
480
+ ---------------------
463
481
 
464
- 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:
465
483
 
466
484
  ```bash
467
- iloom contribute # Handles forking, cloning, and setting up the dev environment automatically.
485
+ iloom contribute # Handles forking, cloning, and dev setup automatically
468
486
  ```
469
487
 
470
- **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.
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.
471
489
 
472
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).
473
491
 
492
+ Contributing to Open Source
493
+ ---------------------------
494
+
495
+ iloom streamlines the fork → clone → setup → PR workflow for any GitHub repository:
496
+
497
+ ```bash
498
+ # Full URL format
499
+ iloom contribute "https://github.com/n8n-io/n8n"
500
+
501
+ # Shortened URL format
502
+ iloom contribute "github.com/n8n-io/n8n"
503
+
504
+ # owner/repo format
505
+ iloom contribute "n8n-io/n8n"
506
+ ```
507
+
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)
513
+
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.
515
+
474
516
  License & Name
475
517
  --------------
476
518
 
@@ -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