@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.
- package/LICENSE +1 -1
- package/README.md +58 -16
- package/dist/{BranchNamingService-B5PVRR7F.js → BranchNamingService-FLPUUFOB.js} +2 -2
- package/dist/ClaudeContextManager-KE5TBZVZ.js +14 -0
- package/dist/ClaudeService-CRSETT3A.js +13 -0
- package/dist/{GitHubService-S2OGUTDR.js → GitHubService-O7U4UQ7N.js} +3 -3
- package/dist/{LoomLauncher-5LFM4LXB.js → LoomLauncher-NL65LSKP.js} +6 -6
- package/dist/{MetadataManager-DFI73J3G.js → MetadataManager-XJ2YB762.js} +2 -2
- package/dist/PRManager-2ABCWXHW.js +16 -0
- package/dist/{ProjectCapabilityDetector-S5FLNCFI.js → ProjectCapabilityDetector-UZYW32SY.js} +3 -3
- package/dist/{PromptTemplateManager-C3DK6XZL.js → PromptTemplateManager-7L3HJQQU.js} +2 -2
- package/dist/README.md +58 -16
- package/dist/{SettingsManager-35F5RUJH.js → SettingsManager-YU4VYPTW.js} +2 -2
- package/dist/agents/iloom-issue-analyze-and-plan.md +42 -17
- package/dist/agents/iloom-issue-analyzer.md +14 -14
- package/dist/agents/iloom-issue-complexity-evaluator.md +38 -15
- package/dist/agents/iloom-issue-enhancer.md +15 -15
- package/dist/agents/iloom-issue-implementer.md +44 -15
- package/dist/agents/iloom-issue-planner.md +121 -17
- package/dist/agents/iloom-issue-reviewer.md +15 -15
- package/dist/{build-FJVYP7EV.js → build-O2EJHDEW.js} +9 -9
- package/dist/{chunk-ZPSTA5PR.js → chunk-3CDWFEGL.js} +2 -2
- package/dist/{chunk-VU3QMIP2.js → chunk-453NC377.js} +91 -15
- package/dist/chunk-453NC377.js.map +1 -0
- package/dist/{chunk-UQIXZ3BA.js → chunk-5V74K5ZA.js} +2 -2
- package/dist/{chunk-7WANFUIK.js → chunk-6TL3BYH6.js} +2 -2
- package/dist/{chunk-5TXLVEXT.js → chunk-C3AKFAIR.js} +2 -2
- package/dist/{chunk-K7SEEHKO.js → chunk-CNSTXBJ3.js} +7 -419
- package/dist/chunk-CNSTXBJ3.js.map +1 -0
- package/dist/{chunk-5IWU3HXE.js → chunk-EPPPDVHD.js} +23 -11
- package/dist/chunk-EPPPDVHD.js.map +1 -0
- package/dist/{chunk-UB4TFAXJ.js → chunk-FEAJR6PN.js} +9 -55
- package/dist/chunk-FEAJR6PN.js.map +1 -0
- package/dist/{chunk-6YSFTPKW.js → chunk-FM4KBPVA.js} +18 -13
- package/dist/chunk-FM4KBPVA.js.map +1 -0
- package/dist/{chunk-AEIMYF4P.js → chunk-FP7G7DG3.js} +6 -2
- package/dist/chunk-FP7G7DG3.js.map +1 -0
- package/dist/{chunk-LT3SGBR7.js → chunk-GCPAZSGV.js} +36 -2
- package/dist/{chunk-LT3SGBR7.js.map → chunk-GCPAZSGV.js.map} +1 -1
- package/dist/chunk-GJMEKEI5.js +517 -0
- package/dist/chunk-GJMEKEI5.js.map +1 -0
- package/dist/{chunk-64O2UIWO.js → chunk-GV5X6XUE.js} +4 -4
- package/dist/{chunk-7Q66W4OH.js → chunk-HBJITKSZ.js} +37 -1
- package/dist/chunk-HBJITKSZ.js.map +1 -0
- package/dist/{chunk-7HIRPCKU.js → chunk-HVQNVRAF.js} +2 -2
- package/dist/{chunk-BXCPJJYM.js → chunk-ITN64ENQ.js} +1 -1
- package/dist/chunk-ITN64ENQ.js.map +1 -0
- package/dist/{chunk-6U6VI4SZ.js → chunk-KVS4XGBQ.js} +4 -4
- package/dist/{chunk-AXX3QIKK.js → chunk-LLWX3PCW.js} +2 -2
- package/dist/{chunk-WIJWIKAN.js → chunk-LQBLDI47.js} +105 -7
- package/dist/chunk-LQBLDI47.js.map +1 -0
- package/dist/{chunk-SN3Z6EZO.js → chunk-N7FVXZNI.js} +2 -2
- package/dist/chunk-NTIZLX42.js +822 -0
- package/dist/chunk-NTIZLX42.js.map +1 -0
- package/dist/{chunk-PMVWQBWS.js → chunk-S7YMZQUD.js} +31 -45
- package/dist/chunk-S7YMZQUD.js.map +1 -0
- package/dist/chunk-TIYJEEVO.js +79 -0
- package/dist/chunk-TIYJEEVO.js.map +1 -0
- package/dist/{chunk-EK3XCAAS.js → chunk-UDRZY65Y.js} +2 -2
- package/dist/{chunk-3PT7RKL5.js → chunk-USJSNHGG.js} +2 -2
- package/dist/{chunk-CFUWQHCJ.js → chunk-VWGKGNJP.js} +114 -35
- package/dist/chunk-VWGKGNJP.js.map +1 -0
- package/dist/{chunk-F6WVM437.js → chunk-WFQ5CLTR.js} +6 -3
- package/dist/chunk-WFQ5CLTR.js.map +1 -0
- package/dist/{chunk-TRQ76ISK.js → chunk-Z6BO53V7.js} +9 -9
- package/dist/{chunk-GEXP5IOF.js → chunk-ZA575VLF.js} +21 -8
- package/dist/chunk-ZA575VLF.js.map +1 -0
- package/dist/{claude-H33OQMXO.js → claude-6H36IBHO.js} +4 -2
- package/dist/{cleanup-OU2HFOOG.js → cleanup-ZPOMRSNN.js} +20 -16
- package/dist/cleanup-ZPOMRSNN.js.map +1 -0
- package/dist/cli.js +511 -959
- package/dist/cli.js.map +1 -1
- package/dist/commit-6S2RIA2K.js +237 -0
- package/dist/commit-6S2RIA2K.js.map +1 -0
- package/dist/{compile-ULNO5F7Q.js → compile-LRMAADUT.js} +9 -9
- package/dist/{contribute-T7ENST5N.js → contribute-GXKOIA42.js} +99 -31
- package/dist/contribute-GXKOIA42.js.map +1 -0
- package/dist/{dev-server-4RCDJ5MU.js → dev-server-GREJUEKW.js} +22 -74
- package/dist/dev-server-GREJUEKW.js.map +1 -0
- package/dist/{feedback-O4Q55SVS.js → feedback-G7G5QCY4.js} +10 -10
- package/dist/{git-FVMGBHC2.js → git-ENLT2VNI.js} +6 -4
- package/dist/hooks/iloom-hook.js +30 -2
- package/dist/{ignite-VHV65WEZ.js → ignite-YUAOJ5PP.js} +20 -20
- package/dist/ignite-YUAOJ5PP.js.map +1 -0
- package/dist/index.d.ts +71 -27
- package/dist/index.js +196 -266
- package/dist/index.js.map +1 -1
- package/dist/init-XQQMFDM6.js +21 -0
- package/dist/{lint-5JMCWE4Y.js → lint-OFVN7FT6.js} +9 -9
- package/dist/mcp/issue-management-server.js +359 -13
- package/dist/mcp/issue-management-server.js.map +1 -1
- package/dist/mcp/recap-server.js +13 -4
- package/dist/mcp/recap-server.js.map +1 -1
- package/dist/{open-WHVUYGPY.js → open-MCWQAPSZ.js} +25 -76
- package/dist/open-MCWQAPSZ.js.map +1 -0
- package/dist/{projects-SA76I4TZ.js → projects-PQOTWUII.js} +11 -4
- package/dist/projects-PQOTWUII.js.map +1 -0
- package/dist/prompts/init-prompt.txt +63 -59
- package/dist/prompts/issue-prompt.txt +132 -63
- package/dist/prompts/pr-prompt.txt +3 -3
- package/dist/prompts/regular-prompt.txt +16 -18
- package/dist/prompts/session-summary-prompt.txt +13 -13
- package/dist/{rebase-5EY3Q6XP.js → rebase-RKQED567.js} +53 -8
- package/dist/rebase-RKQED567.js.map +1 -0
- package/dist/{recap-VOOUXOGP.js → recap-ZKGHZCX6.js} +6 -6
- package/dist/{run-NCRK5NPR.js → run-CCG24PBC.js} +25 -76
- package/dist/run-CCG24PBC.js.map +1 -0
- package/dist/schema/settings.schema.json +14 -3
- package/dist/{shell-SBLXVOVJ.js → shell-2NNSIU34.js} +6 -6
- package/dist/{summary-CVFAMDOJ.js → summary-G6L3VAKK.js} +11 -10
- package/dist/{summary-CVFAMDOJ.js.map → summary-G6L3VAKK.js.map} +1 -1
- package/dist/{test-3KIVXI6J.js → test-QZDOEUIO.js} +9 -9
- package/dist/{test-git-ZB6AGGRW.js → test-git-E2BLXR6M.js} +4 -4
- package/dist/{test-prefix-FBGXKMPA.js → test-prefix-A7JGGYAA.js} +4 -4
- package/dist/{test-webserver-YVQD42W6.js → test-webserver-NRMGT2HB.js} +29 -8
- package/dist/test-webserver-NRMGT2HB.js.map +1 -0
- package/package.json +3 -1
- package/dist/ClaudeContextManager-6J2EB4QU.js +0 -14
- package/dist/ClaudeService-O2PB22GX.js +0 -13
- package/dist/PRManager-OCSB2HPT.js +0 -14
- package/dist/chunk-5IWU3HXE.js.map +0 -1
- package/dist/chunk-6YSFTPKW.js.map +0 -1
- package/dist/chunk-7Q66W4OH.js.map +0 -1
- package/dist/chunk-AEIMYF4P.js.map +0 -1
- package/dist/chunk-BXCPJJYM.js.map +0 -1
- package/dist/chunk-CFUWQHCJ.js.map +0 -1
- package/dist/chunk-F6WVM437.js.map +0 -1
- package/dist/chunk-GEXP5IOF.js.map +0 -1
- package/dist/chunk-K7SEEHKO.js.map +0 -1
- package/dist/chunk-PMVWQBWS.js.map +0 -1
- package/dist/chunk-UB4TFAXJ.js.map +0 -1
- package/dist/chunk-VU3QMIP2.js.map +0 -1
- package/dist/chunk-W6WVRHJ6.js +0 -251
- package/dist/chunk-W6WVRHJ6.js.map +0 -1
- package/dist/chunk-WIJWIKAN.js.map +0 -1
- package/dist/cleanup-OU2HFOOG.js.map +0 -1
- package/dist/contribute-T7ENST5N.js.map +0 -1
- package/dist/dev-server-4RCDJ5MU.js.map +0 -1
- package/dist/ignite-VHV65WEZ.js.map +0 -1
- package/dist/init-HB34Q5FH.js +0 -21
- package/dist/open-WHVUYGPY.js.map +0 -1
- package/dist/projects-SA76I4TZ.js.map +0 -1
- package/dist/rebase-5EY3Q6XP.js.map +0 -1
- package/dist/run-NCRK5NPR.js.map +0 -1
- package/dist/test-webserver-YVQD42W6.js.map +0 -1
- /package/dist/{BranchNamingService-B5PVRR7F.js.map → BranchNamingService-FLPUUFOB.js.map} +0 -0
- /package/dist/{ClaudeContextManager-6J2EB4QU.js.map → ClaudeContextManager-KE5TBZVZ.js.map} +0 -0
- /package/dist/{ClaudeService-O2PB22GX.js.map → ClaudeService-CRSETT3A.js.map} +0 -0
- /package/dist/{GitHubService-S2OGUTDR.js.map → GitHubService-O7U4UQ7N.js.map} +0 -0
- /package/dist/{LoomLauncher-5LFM4LXB.js.map → LoomLauncher-NL65LSKP.js.map} +0 -0
- /package/dist/{MetadataManager-DFI73J3G.js.map → MetadataManager-XJ2YB762.js.map} +0 -0
- /package/dist/{PRManager-OCSB2HPT.js.map → PRManager-2ABCWXHW.js.map} +0 -0
- /package/dist/{ProjectCapabilityDetector-S5FLNCFI.js.map → ProjectCapabilityDetector-UZYW32SY.js.map} +0 -0
- /package/dist/{PromptTemplateManager-C3DK6XZL.js.map → PromptTemplateManager-7L3HJQQU.js.map} +0 -0
- /package/dist/{SettingsManager-35F5RUJH.js.map → SettingsManager-YU4VYPTW.js.map} +0 -0
- /package/dist/{build-FJVYP7EV.js.map → build-O2EJHDEW.js.map} +0 -0
- /package/dist/{chunk-ZPSTA5PR.js.map → chunk-3CDWFEGL.js.map} +0 -0
- /package/dist/{chunk-UQIXZ3BA.js.map → chunk-5V74K5ZA.js.map} +0 -0
- /package/dist/{chunk-7WANFUIK.js.map → chunk-6TL3BYH6.js.map} +0 -0
- /package/dist/{chunk-5TXLVEXT.js.map → chunk-C3AKFAIR.js.map} +0 -0
- /package/dist/{chunk-64O2UIWO.js.map → chunk-GV5X6XUE.js.map} +0 -0
- /package/dist/{chunk-7HIRPCKU.js.map → chunk-HVQNVRAF.js.map} +0 -0
- /package/dist/{chunk-6U6VI4SZ.js.map → chunk-KVS4XGBQ.js.map} +0 -0
- /package/dist/{chunk-AXX3QIKK.js.map → chunk-LLWX3PCW.js.map} +0 -0
- /package/dist/{chunk-SN3Z6EZO.js.map → chunk-N7FVXZNI.js.map} +0 -0
- /package/dist/{chunk-EK3XCAAS.js.map → chunk-UDRZY65Y.js.map} +0 -0
- /package/dist/{chunk-3PT7RKL5.js.map → chunk-USJSNHGG.js.map} +0 -0
- /package/dist/{chunk-TRQ76ISK.js.map → chunk-Z6BO53V7.js.map} +0 -0
- /package/dist/{claude-H33OQMXO.js.map → claude-6H36IBHO.js.map} +0 -0
- /package/dist/{compile-ULNO5F7Q.js.map → compile-LRMAADUT.js.map} +0 -0
- /package/dist/{feedback-O4Q55SVS.js.map → feedback-G7G5QCY4.js.map} +0 -0
- /package/dist/{git-FVMGBHC2.js.map → git-ENLT2VNI.js.map} +0 -0
- /package/dist/{init-HB34Q5FH.js.map → init-XQQMFDM6.js.map} +0 -0
- /package/dist/{lint-5JMCWE4Y.js.map → lint-OFVN7FT6.js.map} +0 -0
- /package/dist/{recap-VOOUXOGP.js.map → recap-ZKGHZCX6.js.map} +0 -0
- /package/dist/{shell-SBLXVOVJ.js.map → shell-2NNSIU34.js.map} +0 -0
- /package/dist/{test-3KIVXI6J.js.map → test-QZDOEUIO.js.map} +0 -0
- /package/dist/{test-git-ZB6AGGRW.js.map → test-git-E2BLXR6M.js.map} +0 -0
- /package/dist/{test-prefix-FBGXKMPA.js.map → test-prefix-A7JGGYAA.js.map} +0 -0
|
@@ -67,7 +67,7 @@ When the documentation below and the settings schema conflict, ALWAYS follow the
|
|
|
67
67
|
|
|
68
68
|
### Main Project Documentation
|
|
69
69
|
|
|
70
|
-
README_CONTENT
|
|
70
|
+
{{README_CONTENT}}
|
|
71
71
|
|
|
72
72
|
---
|
|
73
73
|
|
|
@@ -130,7 +130,7 @@ The following JSON Schema defines valid iloom settings:
|
|
|
130
130
|
},
|
|
131
131
|
"noVerify": {
|
|
132
132
|
"type": "boolean",
|
|
133
|
-
"description": "Skip pre-commit hooks (--no-verify) when committing during finish
|
|
133
|
+
"description": "Skip pre-commit hooks (--no-verify) when committing during commit and finish workflows"
|
|
134
134
|
},
|
|
135
135
|
"startIde": {
|
|
136
136
|
"type": "boolean",
|
|
@@ -175,7 +175,7 @@ The following JSON Schema defines valid iloom settings:
|
|
|
175
175
|
},
|
|
176
176
|
"noVerify": {
|
|
177
177
|
"type": "boolean",
|
|
178
|
-
"description": "Skip pre-commit hooks (--no-verify) when committing during finish
|
|
178
|
+
"description": "Skip pre-commit hooks (--no-verify) when committing during commit and finish workflows"
|
|
179
179
|
},
|
|
180
180
|
"startIde": {
|
|
181
181
|
"type": "boolean",
|
|
@@ -220,7 +220,7 @@ The following JSON Schema defines valid iloom settings:
|
|
|
220
220
|
},
|
|
221
221
|
"noVerify": {
|
|
222
222
|
"type": "boolean",
|
|
223
|
-
"description": "Skip pre-commit hooks (--no-verify) when committing during finish
|
|
223
|
+
"description": "Skip pre-commit hooks (--no-verify) when committing during commit and finish workflows"
|
|
224
224
|
},
|
|
225
225
|
"startIde": {
|
|
226
226
|
"type": "boolean",
|
|
@@ -324,6 +324,17 @@ The following JSON Schema defines valid iloom settings:
|
|
|
324
324
|
"capabilities": {
|
|
325
325
|
"type": "object",
|
|
326
326
|
"properties": {
|
|
327
|
+
"capabilities": {
|
|
328
|
+
"type": "array",
|
|
329
|
+
"items": {
|
|
330
|
+
"type": "string",
|
|
331
|
+
"enum": [
|
|
332
|
+
"cli",
|
|
333
|
+
"web"
|
|
334
|
+
]
|
|
335
|
+
},
|
|
336
|
+
"description": "Explicitly declared project capabilities (auto-detected if not specified)"
|
|
337
|
+
},
|
|
327
338
|
"web": {
|
|
328
339
|
"type": "object",
|
|
329
340
|
"properties": {
|
|
@@ -509,7 +520,7 @@ The following JSON Schema defines valid iloom settings:
|
|
|
509
520
|
}
|
|
510
521
|
```
|
|
511
522
|
|
|
512
|
-
{{#
|
|
523
|
+
{{#if SETTINGS_JSON}}
|
|
513
524
|
## Existing Configuration (Shared)
|
|
514
525
|
|
|
515
526
|
**CRITICAL: DO NOT read .iloom/settings.json just to get information - the content is provided below. Only read it when you need to modify it.**
|
|
@@ -517,11 +528,11 @@ The following JSON Schema defines valid iloom settings:
|
|
|
517
528
|
The user has shared configuration at `.iloom/settings.json`:
|
|
518
529
|
|
|
519
530
|
```json
|
|
520
|
-
SETTINGS_JSON
|
|
531
|
+
{{SETTINGS_JSON}}
|
|
521
532
|
```
|
|
522
|
-
{{/
|
|
533
|
+
{{/if}}
|
|
523
534
|
|
|
524
|
-
{{#
|
|
535
|
+
{{#if SETTINGS_LOCAL_JSON}}
|
|
525
536
|
## Existing Configuration (Local)
|
|
526
537
|
|
|
527
538
|
**CRITICAL: DO NOT read .iloom/settings.local.json just to get information - the content is provided below. Only read it when you need to modify it.**
|
|
@@ -529,11 +540,11 @@ SETTINGS_JSON
|
|
|
529
540
|
The user has local configuration at `.iloom/settings.local.json`:
|
|
530
541
|
|
|
531
542
|
```json
|
|
532
|
-
SETTINGS_LOCAL_JSON
|
|
543
|
+
{{SETTINGS_LOCAL_JSON}}
|
|
533
544
|
```
|
|
534
|
-
{{/
|
|
545
|
+
{{/if}}
|
|
535
546
|
|
|
536
|
-
{{#
|
|
547
|
+
{{#if SETTINGS_GLOBAL_JSON}}
|
|
537
548
|
## Global Configuration (User-Level)
|
|
538
549
|
|
|
539
550
|
**CRITICAL: DO NOT read ~/.config/iloom-ai/settings.json just to get information - the content is provided below. Only read it when you need to modify it.**
|
|
@@ -541,9 +552,9 @@ SETTINGS_LOCAL_JSON
|
|
|
541
552
|
The user has global configuration at `~/.config/iloom-ai/settings.json`:
|
|
542
553
|
|
|
543
554
|
```json
|
|
544
|
-
SETTINGS_GLOBAL_JSON
|
|
555
|
+
{{SETTINGS_GLOBAL_JSON}}
|
|
545
556
|
```
|
|
546
|
-
{{/
|
|
557
|
+
{{/if}}
|
|
547
558
|
|
|
548
559
|
## Settings Hierarchy & Recommendations
|
|
549
560
|
|
|
@@ -565,15 +576,15 @@ SETTINGS_GLOBAL_JSON
|
|
|
565
576
|
- Machine-specific overrides (port conflicts, local database URLs)
|
|
566
577
|
- Personal preferences that differ from team defaults
|
|
567
578
|
|
|
568
|
-
{{#
|
|
579
|
+
{{#if SETTINGS_JSON}}{{#if SETTINGS_LOCAL_JSON}}
|
|
569
580
|
**Configuration Priority**: Local settings (settings.local.json) override shared settings (settings.json) when both exist.
|
|
570
|
-
{{/
|
|
581
|
+
{{/if}}{{/if}}
|
|
571
582
|
|
|
572
|
-
{{#
|
|
583
|
+
{{#if SETTINGS_JSON}}{{#if SETTINGS_LOCAL_JSON}}
|
|
573
584
|
You should present the combined configuration as defaults when asking questions, with local values taking precedence over shared values.
|
|
574
|
-
{{/
|
|
585
|
+
{{/if}}{{/if}}
|
|
575
586
|
|
|
576
|
-
{{#
|
|
587
|
+
{{#if SETTINGS_JSON}}{{#if SETTINGS_LOCAL_JSON}}{{/if}}{{/if}}
|
|
577
588
|
|
|
578
589
|
## Configuration Workflow
|
|
579
590
|
|
|
@@ -583,14 +594,14 @@ Follow these steps to guide the user through configuration:
|
|
|
583
594
|
|
|
584
595
|
**BEFORE doing anything else, extract current values from existing configuration:**
|
|
585
596
|
|
|
586
|
-
{{#
|
|
597
|
+
{{#if SETTINGS_JSON}}{{#if SETTINGS_LOCAL_JSON}}
|
|
587
598
|
Parse both settings.json and settings.local.json. Merge them with local taking precedence over shared.
|
|
588
|
-
{{/
|
|
599
|
+
{{/if}}{{/if}}
|
|
589
600
|
|
|
590
|
-
{{#
|
|
591
|
-
{{#
|
|
592
|
-
{{#
|
|
593
|
-
{{/
|
|
601
|
+
{{#if SETTINGS_JSON}}{{#if SETTINGS_LOCAL_JSON}}{{/if}}
|
|
602
|
+
{{#if SETTINGS_LOCAL_JSON}}Parse settings.local.json to get current values.{{/if}}
|
|
603
|
+
{{#if SETTINGS_JSON}}Parse settings.json to get current values.{{/if}}
|
|
604
|
+
{{/if}}
|
|
594
605
|
|
|
595
606
|
Extract these current values if they exist:
|
|
596
607
|
- `currentMainBranch` from `mainBranch` field (default: "main")
|
|
@@ -615,7 +626,7 @@ Base Port: [currentBasePort or "3000 (default)"]
|
|
|
615
626
|
IDE: [currentIdeType or "vscode (default)"]
|
|
616
627
|
Issue Tracker: [currentIssueProvider or "github (default)"]
|
|
617
628
|
Linear Team ID: [currentLinearTeamId] (only if currentIssueProvider == linear)
|
|
618
|
-
{{#
|
|
629
|
+
{{#if MULTIPLE_REMOTES}}GitHub Remote: [currentGitHubRemote] (only if currentIssueProvider == github){{/if}}
|
|
619
630
|
```
|
|
620
631
|
|
|
621
632
|
**Then ask the user what they want to do:**
|
|
@@ -629,9 +640,9 @@ Linear Team ID: [currentLinearTeamId] (only if currentIssueProvider == linear)
|
|
|
629
640
|
|
|
630
641
|
**Based on their answer:**
|
|
631
642
|
- **Modify existing settings** → Proceed to Phase 1 to update settings
|
|
632
|
-
{{#
|
|
643
|
+
{{#if MULTIPLE_REMOTES}}
|
|
633
644
|
- **Configure GitHub remote** → Go to Phase 2 to configure tooling (including remote selection), then skip to Phase 3 (summary), Phase 4 (choose file), and Phase 6 (save). Do NOT re-ask about Phase 1 settings.
|
|
634
|
-
{{/
|
|
645
|
+
{{/if}}
|
|
635
646
|
- **Add advanced configuration** → Skip to Phase 9 to help with advanced options
|
|
636
647
|
- **Start fresh** → Proceed to Phase 1 to reconfigure from scratch
|
|
637
648
|
- **Nothing/Exit** → Show Phase 9 wrap-up message and end session
|
|
@@ -645,7 +656,7 @@ Use AskUserQuestion to ask ALL local development settings questions **IN A SINGL
|
|
|
645
656
|
**Create a single AskUserQuestion call with these questions:**
|
|
646
657
|
|
|
647
658
|
1. **Main Branch**
|
|
648
|
-
- Question format: "What is your main/primary branch name?{{#
|
|
659
|
+
- Question format: "What is your main/primary branch name?{{#if currentMainBranch}} (Currently: [currentMainBranch]){{/if}}"
|
|
649
660
|
- Options (as examples, user can type "Other" to provide custom):
|
|
650
661
|
- "main" - Standard default
|
|
651
662
|
- "master" - Legacy default
|
|
@@ -655,7 +666,7 @@ Use AskUserQuestion to ask ALL local development settings questions **IN A SINGL
|
|
|
655
666
|
- Store answer as: `mainBranch`
|
|
656
667
|
|
|
657
668
|
2. **Worktree Prefix**
|
|
658
|
-
- Question format: "What prefix should iloom use for worktree directories?{{#
|
|
669
|
+
- Question format: "What prefix should iloom use for worktree directories?{{#if currentWorktreePrefix}} (Currently: [currentWorktreePrefix]){{/if}} Leave empty to use default (<repo-name>-looms)."
|
|
659
670
|
- Options (as examples):
|
|
660
671
|
- Use default prefix (recommened)
|
|
661
672
|
- "looms" - Simple 'looms-' prefix
|
|
@@ -666,7 +677,7 @@ Use AskUserQuestion to ask ALL local development settings questions **IN A SINGL
|
|
|
666
677
|
- Note: If user specifies default, omit this field from settings, it they say empty, add an empty string to the settings
|
|
667
678
|
|
|
668
679
|
3. **Permission Mode for Issue Workflows**
|
|
669
|
-
- Question format: "What permission mode should Claude use when working on issues?{{#
|
|
680
|
+
- Question format: "What permission mode should Claude use when working on issues?{{#if currentPermissionMode}} (Currently: [currentPermissionMode]){{/if}}"
|
|
670
681
|
- Options:
|
|
671
682
|
- "default" - Use Claude Code's default behavior
|
|
672
683
|
- "acceptEdits" - Claude executes with your confirmation (recommended)
|
|
@@ -677,7 +688,7 @@ Use AskUserQuestion to ask ALL local development settings questions **IN A SINGL
|
|
|
677
688
|
- Store answer as: `workflows.issue.permissionMode` - NOTE: this is a personal preference - recommend it be stored in the gitignored local settings file.
|
|
678
689
|
|
|
679
690
|
4. **Base Port**
|
|
680
|
-
- Question format: "What base port should web development servers use?{{#
|
|
691
|
+
- Question format: "What base port should web development servers use?{{#if currentBasePort}} (Currently: [currentBasePort]){{/if}}"
|
|
681
692
|
- Options (as examples):
|
|
682
693
|
- "3000" - Common Node.js default
|
|
683
694
|
- "8000" - Common Python default
|
|
@@ -692,7 +703,7 @@ Use AskUserQuestion to ask ALL local development settings questions **IN A SINGL
|
|
|
692
703
|
- Users can select "Other" on any question to provide custom input
|
|
693
704
|
- Process all answers at once when the user submits
|
|
694
705
|
|
|
695
|
-
{{#
|
|
706
|
+
{{#if NO_PACKAGE_JSON}}
|
|
696
707
|
### Phase 1.5: Framework Detection (Non-Node.js Project) - DO NOT SKIP
|
|
697
708
|
|
|
698
709
|
iloom needs to detect the project's language and framework to configure build/test/dev scripts.
|
|
@@ -756,7 +767,7 @@ If the framework detector did not set capabilities, or if you need to ask the us
|
|
|
756
767
|
- No clear indicators -> ask user explicitly
|
|
757
768
|
|
|
758
769
|
After the framework detector agent completes (and capabilities are set), proceed to Phase 2.
|
|
759
|
-
{{/
|
|
770
|
+
{{/if}}
|
|
760
771
|
|
|
761
772
|
### Phase 2: Tooling Configuration
|
|
762
773
|
|
|
@@ -764,12 +775,12 @@ This phase configures external tooling integrations. Use AskUserQuestion to gath
|
|
|
764
775
|
|
|
765
776
|
**Step 1: Issue Tracker Provider**
|
|
766
777
|
|
|
767
|
-
{{#
|
|
778
|
+
{{#if MULTIPLE_REMOTES}}
|
|
768
779
|
Since this repository has multiple git remotes, GitHub Issues is suggested as the default since it integrates with your existing GitHub workflow. However, you can choose Linear if that's your team's issue tracker.
|
|
769
|
-
{{/
|
|
780
|
+
{{/if}}
|
|
770
781
|
|
|
771
782
|
1. **Issue Tracker Provider**
|
|
772
|
-
- Question format: "Which issue tracker do you use?{{#
|
|
783
|
+
- Question format: "Which issue tracker do you use?{{#if currentIssueProvider}} (Currently: [currentIssueProvider]){{/if}}"
|
|
773
784
|
- Options:
|
|
774
785
|
- "github" - GitHub Issues (default)
|
|
775
786
|
- "linear" - Linear Issues
|
|
@@ -789,11 +800,11 @@ Based on the answer to Step 1, ask the appropriate follow-up questions:
|
|
|
789
800
|
|
|
790
801
|
**If GitHub was selected:**
|
|
791
802
|
|
|
792
|
-
{{#
|
|
803
|
+
{{#if MULTIPLE_REMOTES}}
|
|
793
804
|
This repository has multiple git remotes detected. iloom needs to know which remote's GitHub repository to use for creating and reading issues.
|
|
794
805
|
|
|
795
806
|
**Detected remotes:**
|
|
796
|
-
REMOTES_INFO
|
|
807
|
+
{{REMOTES_INFO}}
|
|
797
808
|
|
|
798
809
|
2. **GitHub Remote** (only ask if GitHub is selected)
|
|
799
810
|
- Question format: "Which remote should iloom use for GitHub issue operations?"
|
|
@@ -801,20 +812,20 @@ REMOTES_INFO
|
|
|
801
812
|
- **Classic fork pattern (origin + upstream)**: If both "origin" and "upstream" remotes exist, recommend "upstream" since issues are typically tracked in the original repository, not personal forks. Explain: "In a typical fork workflow, 'upstream' points to the original project where issues are tracked, while 'origin' is your personal fork for submitting PRs."
|
|
802
813
|
- For other multi-remote scenarios: Default to "origin" if it exists, otherwise the first remote
|
|
803
814
|
- Store answer as: `issueManagement.github.remote`
|
|
804
|
-
{{/
|
|
815
|
+
{{/if}}
|
|
805
816
|
|
|
806
|
-
{{#
|
|
807
|
-
**Note:** Only one remote detected (SINGLE_REMOTE_NAME pointing to SINGLE_REMOTE_URL). iloom will use this for GitHub operations. No additional configuration needed.
|
|
808
|
-
{{/
|
|
817
|
+
{{#if SINGLE_REMOTE}}
|
|
818
|
+
**Note:** Only one remote detected ({{SINGLE_REMOTE_NAME}} pointing to {{SINGLE_REMOTE_URL}}). iloom will use this for GitHub operations. No additional configuration needed.
|
|
819
|
+
{{/if}}
|
|
809
820
|
|
|
810
|
-
{{#
|
|
821
|
+
{{#if NO_REMOTES}}
|
|
811
822
|
**Warning:** No git remotes detected. The user will need to configure a remote before using iloom's GitHub features.
|
|
812
|
-
{{/
|
|
823
|
+
{{/if}}
|
|
813
824
|
|
|
814
825
|
**If Linear was selected:**
|
|
815
826
|
|
|
816
827
|
2. **Linear Team ID** (only ask if issue provider is "linear")
|
|
817
|
-
- Question format: "What is your Linear team ID/key?{{#
|
|
828
|
+
- Question format: "What is your Linear team ID/key?{{#if currentLinearTeamId}} (Currently: [currentLinearTeamId]){{/if}}"
|
|
818
829
|
- Options (as examples):
|
|
819
830
|
- "ENG" - Engineering team
|
|
820
831
|
- "PLAT" - Platform team
|
|
@@ -840,7 +851,7 @@ REMOTES_INFO
|
|
|
840
851
|
**Step 3: IDE Selection**
|
|
841
852
|
|
|
842
853
|
4. **IDE Selection**
|
|
843
|
-
- Question format: "Which IDE should iloom launch when starting a loom?{{#
|
|
854
|
+
- Question format: "Which IDE should iloom launch when starting a loom?{{#if currentIdeType}} (Currently: [currentIdeType]){{/if}}"
|
|
844
855
|
- Options:
|
|
845
856
|
- "vscode" - Visual Studio Code (default)
|
|
846
857
|
- "cursor" - Cursor AI editor
|
|
@@ -857,7 +868,7 @@ REMOTES_INFO
|
|
|
857
868
|
**Step 4: Merge Mode** (only ask if multiple remotes detected OR user requests advanced config)
|
|
858
869
|
|
|
859
870
|
5. **Merge Mode**
|
|
860
|
-
- Question format: "How should iloom handle finishing work?{{#
|
|
871
|
+
- Question format: "How should iloom handle finishing work?{{#if currentMergeMode}} (Currently: [currentMergeMode]){{/if}}"
|
|
861
872
|
- Options:
|
|
862
873
|
- "local" - Merge changes locally (traditional workflow)
|
|
863
874
|
- "github-pr" - Create GitHub PR when finishing (for PR-based workflows)
|
|
@@ -884,7 +895,7 @@ REMOTES_INFO
|
|
|
884
895
|
|
|
885
896
|
After Phase 2, handle color settings based on gitignore status.
|
|
886
897
|
|
|
887
|
-
Analyis of system: Is VSCode Settings ignore? VSCODE_SETTINGS_GITIGNORED
|
|
898
|
+
Analyis of system: Is VSCode Settings ignore? {{VSCODE_SETTINGS_GITIGNORED}}
|
|
888
899
|
|
|
889
900
|
**IMPORTANT DISTINCTION:**
|
|
890
901
|
- Schema defaults are: terminal=true, vscode=false (for safety)
|
|
@@ -932,7 +943,7 @@ Tooling Configuration (Phase 2):
|
|
|
932
943
|
Issue Tracker: [value]
|
|
933
944
|
Linear Team ID: [value] (only if issue tracker is Linear)
|
|
934
945
|
Linear API Token: [configured/not configured] (only if issue tracker is Linear - never show actual token)
|
|
935
|
-
{{#
|
|
946
|
+
{{#if MULTIPLE_REMOTES}}GitHub Remote: [value] (only if issue tracker is GitHub){{/if}}
|
|
936
947
|
IDE: [value or "vscode (default)"]
|
|
937
948
|
Merge Mode: [value] (only if configured)
|
|
938
949
|
```
|
|
@@ -948,7 +959,7 @@ Then ask: "Does this configuration look correct?"
|
|
|
948
959
|
|
|
949
960
|
### Phase 4: Choose Configuration File
|
|
950
961
|
|
|
951
|
-
**Fork/Contributor Check:** If "GitHub Remote Configuration" shows both "origin" and "upstream" remotes (classic fork pattern), display: "
|
|
962
|
+
**Fork/Contributor Check:** If "GitHub Remote Configuration" shows both "origin" and "upstream" remotes (classic fork pattern), display: "**FORK DETECTED**: You're working on a fork (origin + upstream remotes detected). **ALL configuration settings should be saved to settings.local.json** to avoid polluting the upstream repository with your personal settings. When you submit PRs to upstream, only your code changes should be included - not iloom configuration. The Local option below is strongly recommended."
|
|
952
963
|
|
|
953
964
|
**CRITICAL: You MUST ask the user where to save the configuration. DO NOT make assumptions or decide for them.**
|
|
954
965
|
|
|
@@ -962,7 +973,7 @@ Ask the user: "Where should this configuration be saved?
|
|
|
962
973
|
- **Recommend Project for**: Main branch, worktree prefix, base port (when standardized for the team)
|
|
963
974
|
- **Recommend Local for**: Machine-specific overrides, personal preferences that differ from team defaults
|
|
964
975
|
|
|
965
|
-
**Fork/Contributor Note:** For fork setups,
|
|
976
|
+
**Fork/Contributor Note:** For fork setups, **ALL settings should go to Local (settings.local.json)**, not Project. This prevents your personal iloom configuration from being included in PRs to the upstream repository. Even settings like mainBranch or basePort should be stored locally in fork scenarios to keep your contributions clean.
|
|
966
977
|
|
|
967
978
|
**DO NOT:**
|
|
968
979
|
- Assume what the user wants based on the type of setting
|
|
@@ -1150,14 +1161,7 @@ Reason: mainBranch has same value in both files, so it's removed from local
|
|
|
1150
1161
|
- `.iloom/settings.local.json` if user chose Local
|
|
1151
1162
|
4. Use the Write tool to create/update the file
|
|
1152
1163
|
|
|
1153
|
-
### Phase 7:
|
|
1154
|
-
|
|
1155
|
-
If the user chose `.iloom/settings.local.json`, ensure `.gitignore` includes this entry:
|
|
1156
|
-
- Read `.gitignore` if it exists
|
|
1157
|
-
- Check if `.iloom/settings.local.json` is already listed
|
|
1158
|
-
- If not, append it to the file
|
|
1159
|
-
|
|
1160
|
-
### Phase 7.5: Offer to Commit Changes
|
|
1164
|
+
### Phase 7: Offer to Commit Changes
|
|
1161
1165
|
|
|
1162
1166
|
After making configuration changes, offer to commit the iloom-related files:
|
|
1163
1167
|
|