@iloom/cli 0.13.0-beta.0 → 0.13.1
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 +3 -18
- package/dist/{ClaudeContextManager-RRGREEZQ.js → ClaudeContextManager-ZH6LEA5I.js} +5 -5
- package/dist/{ClaudeService-LEPW6QAC.js → ClaudeService-YR66WXZN.js} +4 -4
- package/dist/{IssueTrackerFactory-KE2BDCLC.js → IssueTrackerFactory-O2ZBA666.js} +3 -3
- package/dist/{LoomLauncher-GKQMR5E6.js → LoomLauncher-V54ENBEF.js} +5 -5
- package/dist/{MetadataManager-V4LSJ2PB.js → MetadataManager-HHE6LQF2.js} +2 -2
- package/dist/{PromptTemplateManager-I75WKXM4.js → PromptTemplateManager-4RFELNYY.js} +2 -2
- package/dist/README.md +3 -18
- package/dist/{SettingsManager-KQU7OX7G.js → SettingsManager-SLSYEYDZ.js} +4 -4
- package/dist/agents/iloom-artifact-reviewer.md +1 -0
- package/dist/agents/iloom-code-reviewer.md +21 -0
- package/dist/agents/iloom-issue-analyze-and-plan.md +30 -12
- package/dist/agents/iloom-issue-analyzer.md +32 -7
- package/dist/agents/iloom-issue-complexity-evaluator.md +32 -12
- package/dist/agents/iloom-issue-implementer.md +31 -12
- package/dist/agents/iloom-issue-planner.md +30 -12
- package/dist/agents/iloom-wave-verifier.md +177 -4
- package/dist/{build-V3KADFMO.js → build-ZTGWDHWU.js} +8 -8
- package/dist/{chunk-VVQQIG64.js → chunk-55NTREIU.js} +33 -30
- package/dist/chunk-55NTREIU.js.map +1 -0
- package/dist/{chunk-AYLC633W.js → chunk-7TN5VW4I.js} +65 -7
- package/dist/chunk-7TN5VW4I.js.map +1 -0
- package/dist/{chunk-RFCAPHL5.js → chunk-C2BVNJW5.js} +2 -2
- package/dist/{chunk-3XEXT35Z.js → chunk-E5OM25WK.js} +3 -3
- package/dist/{chunk-Q7VXHJP6.js → chunk-EHAITKLS.js} +10 -6
- package/dist/{chunk-Q7VXHJP6.js.map → chunk-EHAITKLS.js.map} +1 -1
- package/dist/{chunk-ZUIFO7B4.js → chunk-ERMEYFT6.js} +7 -2
- package/dist/chunk-ERMEYFT6.js.map +1 -0
- package/dist/{chunk-WGUGB54H.js → chunk-F5NKWLMQ.js} +21 -24
- package/dist/chunk-F5NKWLMQ.js.map +1 -0
- package/dist/{chunk-TN2D2RX7.js → chunk-G2DGDCDP.js} +33 -224
- package/dist/chunk-G2DGDCDP.js.map +1 -0
- package/dist/{chunk-NUUFP53X.js → chunk-GPBX2BY2.js} +2 -2
- package/dist/{chunk-SN4S5CWL.js → chunk-GQDVH6FA.js} +2 -2
- package/dist/{chunk-YUOVWWJX.js → chunk-HKEXRZMU.js} +5 -310
- package/dist/chunk-HKEXRZMU.js.map +1 -0
- package/dist/{chunk-TAEVA4QR.js → chunk-HWDQRW3O.js} +3 -3
- package/dist/chunk-HWDQRW3O.js.map +1 -0
- package/dist/{chunk-KQSV7FOG.js → chunk-J5JOJPK3.js} +2 -2
- package/dist/{chunk-PD75ZCFT.js → chunk-KCAWSZUO.js} +18 -17
- package/dist/chunk-KCAWSZUO.js.map +1 -0
- package/dist/{chunk-QNPJXO53.js → chunk-KGOBNC5A.js} +4 -4
- package/dist/{chunk-H3T3EPF3.js → chunk-LNY2Y32V.js} +2 -2
- package/dist/{chunk-7RCUWU3I.js → chunk-MRPIDNZU.js} +1 -1
- package/dist/chunk-MRPIDNZU.js.map +1 -0
- package/dist/{chunk-VIQOQ463.js → chunk-OLJ54WGW.js} +15 -10
- package/dist/chunk-OLJ54WGW.js.map +1 -0
- package/dist/{chunk-QQULYI2S.js → chunk-P5MNWBLH.js} +108 -47
- package/dist/chunk-P5MNWBLH.js.map +1 -0
- package/dist/{chunk-4VQXMEEP.js → chunk-PPQ5LV7U.js} +3 -3
- package/dist/{chunk-4VQXMEEP.js.map → chunk-PPQ5LV7U.js.map} +1 -1
- package/dist/{chunk-QED2WB2D.js → chunk-PS6K2AOV.js} +5 -5
- package/dist/{chunk-JD3K2344.js → chunk-QNRXRSKC.js} +36 -3
- package/dist/chunk-QNRXRSKC.js.map +1 -0
- package/dist/{chunk-SA446KA2.js → chunk-T4KFKKEB.js} +7 -7
- package/dist/{chunk-XCP2WDYA.js → chunk-T4NESGYB.js} +3 -3
- package/dist/{chunk-QXGM32TO.js → chunk-TJDKGKQV.js} +2 -2
- package/dist/{chunk-X5DRLONY.js → chunk-UXBVDD7U.js} +6 -6
- package/dist/{chunk-JDN4SPV3.js → chunk-WYDLOQYO.js} +2 -2
- package/dist/{chunk-4JZEQBWV.js → chunk-XIVLGWUX.js} +3 -1
- package/dist/chunk-XIVLGWUX.js.map +1 -0
- package/dist/{chunk-NTDY5AMO.js → chunk-ZEFTWM5Z.js} +2 -2
- package/dist/{cleanup-RJKLI47I.js → cleanup-BCVY7PEF.js} +22 -22
- package/dist/cleanup-BCVY7PEF.js.map +1 -0
- package/dist/cli.js +136 -105
- package/dist/cli.js.map +1 -1
- package/dist/{commit-SUHRUMDE.js → commit-L5JNBU4U.js} +8 -8
- package/dist/{compile-2MD346PO.js → compile-GPJOHXH4.js} +8 -8
- package/dist/{contribute-P4BMRY7C.js → contribute-QEGCI4PS.js} +4 -4
- package/dist/{dev-server-ZNTLWOL5.js → dev-server-UQKNKU2S.js} +249 -31
- package/dist/dev-server-UQKNKU2S.js.map +1 -0
- package/dist/{feedback-Q6WG2WX4.js → feedback-2LWXKLQZ.js} +4 -4
- package/dist/{git-TX2IEMB3.js → git-IS7AV3ED.js} +4 -4
- package/dist/hooks/iloom-hook.js +40 -2
- package/dist/{ignite-P644W2PK.js → ignite-VQDJQ37S.js} +12 -14
- package/dist/index.d.ts +73 -75
- package/dist/index.js +32 -32
- package/dist/index.js.map +1 -1
- package/dist/{init-5HFY7JG6.js → init-7SDJUAEZ.js} +8 -8
- package/dist/{install-deps-J4ALTM27.js → install-deps-NGSFDNUW.js} +8 -8
- package/dist/{issues-LZMIF22U.js → issues-4HQKEUP7.js} +5 -5
- package/dist/{lint-XIXKU22H.js → lint-C5FOVRXY.js} +8 -8
- package/dist/mcp/issue-management-server.js +19 -22
- package/dist/mcp/issue-management-server.js.map +1 -1
- package/dist/neon-helpers-LCZAN4U4.js +11 -0
- package/dist/{open-KUO35JIJ.js → open-2HL6GV5F.js} +19 -15
- package/dist/open-2HL6GV5F.js.map +1 -0
- package/dist/{plan-7CF56OIR.js → plan-GC3HF73T.js} +86 -66
- package/dist/plan-GC3HF73T.js.map +1 -0
- package/dist/{projects-L5AHUBGA.js → projects-3F6T3KZL.js} +2 -2
- package/dist/prompts/init-prompt.txt +40 -36
- package/dist/prompts/issue-prompt.txt +4 -1
- package/dist/prompts/plan-prompt.txt +97 -16
- package/dist/prompts/regular-prompt.txt +1 -1
- package/dist/prompts/swarm-orchestrator-prompt.txt +25 -12
- package/dist/{rebase-MAMWPA2L.js → rebase-MLIN572O.js} +7 -7
- package/dist/{recap-IDBO3KM5.js → recap-CKGKFDJL.js} +7 -7
- package/dist/{run-RGZHCQ6M.js → run-CUNRQNZS.js} +19 -15
- package/dist/run-CUNRQNZS.js.map +1 -0
- package/dist/schema/settings.schema.json +35 -31
- package/dist/{shell-7ADCDFIV.js → shell-M2YYPNGV.js} +6 -6
- package/dist/{summary-7J2HORFD.js → summary-XR4CBJEG.js} +9 -9
- package/dist/{test-SRB7EWU6.js → test-ESDAHEVE.js} +8 -8
- package/dist/{test-git-G7ATVIXG.js → test-git-KWPLHYSI.js} +4 -4
- package/dist/{test-jira-Q2HPA522.js → test-jira-6NK7UHSV.js} +3 -3
- package/dist/{test-prefix-JMDGXR5A.js → test-prefix-VVODGHXP.js} +4 -4
- package/dist/{test-webserver-GZFVXBGD.js → test-webserver-AHXKC6H4.js} +6 -6
- package/dist/{vscode-3I7ISHUU.js → vscode-OY7HOVRO.js} +6 -6
- package/package.json +1 -1
- package/dist/chunk-4JZEQBWV.js.map +0 -1
- package/dist/chunk-7RCUWU3I.js.map +0 -1
- package/dist/chunk-AYLC633W.js.map +0 -1
- package/dist/chunk-JD3K2344.js.map +0 -1
- package/dist/chunk-PD75ZCFT.js.map +0 -1
- package/dist/chunk-QQULYI2S.js.map +0 -1
- package/dist/chunk-TAEVA4QR.js.map +0 -1
- package/dist/chunk-TN2D2RX7.js.map +0 -1
- package/dist/chunk-VIQOQ463.js.map +0 -1
- package/dist/chunk-VVQQIG64.js.map +0 -1
- package/dist/chunk-WGUGB54H.js.map +0 -1
- package/dist/chunk-YUOVWWJX.js.map +0 -1
- package/dist/chunk-ZUIFO7B4.js.map +0 -1
- package/dist/cleanup-RJKLI47I.js.map +0 -1
- package/dist/database-helpers-PRDFNDRO.js +0 -11
- package/dist/dev-server-ZNTLWOL5.js.map +0 -1
- package/dist/open-KUO35JIJ.js.map +0 -1
- package/dist/plan-7CF56OIR.js.map +0 -1
- package/dist/run-RGZHCQ6M.js.map +0 -1
- /package/dist/{ClaudeContextManager-RRGREEZQ.js.map → ClaudeContextManager-ZH6LEA5I.js.map} +0 -0
- /package/dist/{ClaudeService-LEPW6QAC.js.map → ClaudeService-YR66WXZN.js.map} +0 -0
- /package/dist/{IssueTrackerFactory-KE2BDCLC.js.map → IssueTrackerFactory-O2ZBA666.js.map} +0 -0
- /package/dist/{LoomLauncher-GKQMR5E6.js.map → LoomLauncher-V54ENBEF.js.map} +0 -0
- /package/dist/{MetadataManager-V4LSJ2PB.js.map → MetadataManager-HHE6LQF2.js.map} +0 -0
- /package/dist/{PromptTemplateManager-I75WKXM4.js.map → PromptTemplateManager-4RFELNYY.js.map} +0 -0
- /package/dist/{SettingsManager-KQU7OX7G.js.map → SettingsManager-SLSYEYDZ.js.map} +0 -0
- /package/dist/{build-V3KADFMO.js.map → build-ZTGWDHWU.js.map} +0 -0
- /package/dist/{chunk-RFCAPHL5.js.map → chunk-C2BVNJW5.js.map} +0 -0
- /package/dist/{chunk-3XEXT35Z.js.map → chunk-E5OM25WK.js.map} +0 -0
- /package/dist/{chunk-NUUFP53X.js.map → chunk-GPBX2BY2.js.map} +0 -0
- /package/dist/{chunk-SN4S5CWL.js.map → chunk-GQDVH6FA.js.map} +0 -0
- /package/dist/{chunk-KQSV7FOG.js.map → chunk-J5JOJPK3.js.map} +0 -0
- /package/dist/{chunk-QNPJXO53.js.map → chunk-KGOBNC5A.js.map} +0 -0
- /package/dist/{chunk-H3T3EPF3.js.map → chunk-LNY2Y32V.js.map} +0 -0
- /package/dist/{chunk-QED2WB2D.js.map → chunk-PS6K2AOV.js.map} +0 -0
- /package/dist/{chunk-SA446KA2.js.map → chunk-T4KFKKEB.js.map} +0 -0
- /package/dist/{chunk-XCP2WDYA.js.map → chunk-T4NESGYB.js.map} +0 -0
- /package/dist/{chunk-QXGM32TO.js.map → chunk-TJDKGKQV.js.map} +0 -0
- /package/dist/{chunk-X5DRLONY.js.map → chunk-UXBVDD7U.js.map} +0 -0
- /package/dist/{chunk-JDN4SPV3.js.map → chunk-WYDLOQYO.js.map} +0 -0
- /package/dist/{chunk-NTDY5AMO.js.map → chunk-ZEFTWM5Z.js.map} +0 -0
- /package/dist/{commit-SUHRUMDE.js.map → commit-L5JNBU4U.js.map} +0 -0
- /package/dist/{compile-2MD346PO.js.map → compile-GPJOHXH4.js.map} +0 -0
- /package/dist/{contribute-P4BMRY7C.js.map → contribute-QEGCI4PS.js.map} +0 -0
- /package/dist/{feedback-Q6WG2WX4.js.map → feedback-2LWXKLQZ.js.map} +0 -0
- /package/dist/{database-helpers-PRDFNDRO.js.map → git-IS7AV3ED.js.map} +0 -0
- /package/dist/{git-TX2IEMB3.js.map → ignite-VQDJQ37S.js.map} +0 -0
- /package/dist/{init-5HFY7JG6.js.map → init-7SDJUAEZ.js.map} +0 -0
- /package/dist/{install-deps-J4ALTM27.js.map → install-deps-NGSFDNUW.js.map} +0 -0
- /package/dist/{issues-LZMIF22U.js.map → issues-4HQKEUP7.js.map} +0 -0
- /package/dist/{lint-XIXKU22H.js.map → lint-C5FOVRXY.js.map} +0 -0
- /package/dist/{ignite-P644W2PK.js.map → neon-helpers-LCZAN4U4.js.map} +0 -0
- /package/dist/{projects-L5AHUBGA.js.map → projects-3F6T3KZL.js.map} +0 -0
- /package/dist/{rebase-MAMWPA2L.js.map → rebase-MLIN572O.js.map} +0 -0
- /package/dist/{recap-IDBO3KM5.js.map → recap-CKGKFDJL.js.map} +0 -0
- /package/dist/{shell-7ADCDFIV.js.map → shell-M2YYPNGV.js.map} +0 -0
- /package/dist/{summary-7J2HORFD.js.map → summary-XR4CBJEG.js.map} +0 -0
- /package/dist/{test-SRB7EWU6.js.map → test-ESDAHEVE.js.map} +0 -0
- /package/dist/{test-git-G7ATVIXG.js.map → test-git-KWPLHYSI.js.map} +0 -0
- /package/dist/{test-jira-Q2HPA522.js.map → test-jira-6NK7UHSV.js.map} +0 -0
- /package/dist/{test-prefix-JMDGXR5A.js.map → test-prefix-VVODGHXP.js.map} +0 -0
- /package/dist/{test-webserver-GZFVXBGD.js.map → test-webserver-AHXKC6H4.js.map} +0 -0
- /package/dist/{vscode-3I7ISHUU.js.map → vscode-OY7HOVRO.js.map} +0 -0
package/LICENSE
CHANGED
|
@@ -20,7 +20,7 @@ it within your organization. What is prohibited is redistributing or offering
|
|
|
20
20
|
access to this software (in original or modified form) as part of something
|
|
21
21
|
you sell or provide to others.
|
|
22
22
|
|
|
23
|
-
Change Date: 2030-03-
|
|
23
|
+
Change Date: 2030-03-16
|
|
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
|
@@ -97,7 +97,7 @@ Each loom is a fully isolated container for your work:
|
|
|
97
97
|
|
|
98
98
|
* **Git Worktree:** A separate filesystem at ~/project-looms/issue-25/. No stashing, no branch switching overhead.
|
|
99
99
|
|
|
100
|
-
* **Database Branch:** (Neon
|
|
100
|
+
* **Database Branch:** (Neon support) Schema changes in this loom are isolated—they won't break your main environment or your other active looms.
|
|
101
101
|
|
|
102
102
|
* **Environment Variables:** Each loom has its own environment files (`.env`, `.env.local`, `.env.development`, `.env.development.local`). Uses `development` by default, override with `DOTENV_FLOW_NODE_ENV`. See [Secret Storage Limitations](#multi-language-project-support) for frameworks with encrypted credentials.
|
|
103
103
|
|
|
@@ -153,7 +153,7 @@ Configuration
|
|
|
153
153
|
|
|
154
154
|
### 1. Interactive Setup (Recommended)
|
|
155
155
|
|
|
156
|
-
The easiest way to configure iloom is the interactive wizard. It guides you through setting up your environment (GitHub/Linear, Neon
|
|
156
|
+
The easiest way to configure iloom is the interactive wizard. It guides you through setting up your environment (GitHub/Linear, Neon, IDE).
|
|
157
157
|
|
|
158
158
|
You can even use natural language to jump-start the process:
|
|
159
159
|
|
|
@@ -206,21 +206,6 @@ This example shows how to configure a project-wide default (e.g., GitHub remote)
|
|
|
206
206
|
}
|
|
207
207
|
```
|
|
208
208
|
|
|
209
|
-
Or, if using Supabase (requires a paid plan):
|
|
210
|
-
|
|
211
|
-
```json
|
|
212
|
-
{
|
|
213
|
-
"databaseProviders": {
|
|
214
|
-
"supabase": {
|
|
215
|
-
"projectRef": "abcdefghijklmnop",
|
|
216
|
-
"parentBranch": "main"
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
> Only one database provider can be active at a time. See [Database Branching](docs/iloom-commands.md#database-branching) for full details.
|
|
223
|
-
|
|
224
209
|
**.iloom/settings.local.json (Gitignored)**
|
|
225
210
|
|
|
226
211
|
```json
|
|
@@ -895,7 +880,7 @@ License & Name
|
|
|
895
880
|
|
|
896
881
|
* ❌ You cannot resell iloom itself as a product or SaaS.
|
|
897
882
|
|
|
898
|
-
* Converts to Apache 2.0 on 2030-03-
|
|
883
|
+
* Converts to Apache 2.0 on 2030-03-16.
|
|
899
884
|
|
|
900
885
|
|
|
901
886
|
See [LICENSE](https://raw.githubusercontent.com/iloom-ai/iloom-cli/main/LICENSE) for complete terms.
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
ClaudeContextManager
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-WYDLOQYO.js";
|
|
5
|
+
import "./chunk-T4NESGYB.js";
|
|
6
|
+
import "./chunk-MRPIDNZU.js";
|
|
7
7
|
import "./chunk-DDHWZNGL.js";
|
|
8
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-F5NKWLMQ.js";
|
|
9
9
|
import "./chunk-FTYWGQFM.js";
|
|
10
10
|
import "./chunk-VRPPI6GU.js";
|
|
11
11
|
export {
|
|
12
12
|
ClaudeContextManager
|
|
13
13
|
};
|
|
14
|
-
//# sourceMappingURL=ClaudeContextManager-
|
|
14
|
+
//# sourceMappingURL=ClaudeContextManager-ZH6LEA5I.js.map
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
ClaudeService
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-T4NESGYB.js";
|
|
5
|
+
import "./chunk-MRPIDNZU.js";
|
|
6
6
|
import "./chunk-DDHWZNGL.js";
|
|
7
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-F5NKWLMQ.js";
|
|
8
8
|
import "./chunk-FTYWGQFM.js";
|
|
9
9
|
import "./chunk-VRPPI6GU.js";
|
|
10
10
|
export {
|
|
11
11
|
ClaudeService
|
|
12
12
|
};
|
|
13
|
-
//# sourceMappingURL=ClaudeService-
|
|
13
|
+
//# sourceMappingURL=ClaudeService-YR66WXZN.js.map
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
IssueTrackerFactory
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-GPBX2BY2.js";
|
|
5
5
|
import "./chunk-DMSL5BAP.js";
|
|
6
6
|
import "./chunk-D4Q7T5KD.js";
|
|
7
7
|
import "./chunk-KV4NU3RP.js";
|
|
8
8
|
import "./chunk-NPVA65KS.js";
|
|
9
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-F5NKWLMQ.js";
|
|
10
10
|
import "./chunk-FTYWGQFM.js";
|
|
11
11
|
import "./chunk-VRPPI6GU.js";
|
|
12
12
|
export {
|
|
13
13
|
IssueTrackerFactory
|
|
14
14
|
};
|
|
15
|
-
//# sourceMappingURL=IssueTrackerFactory-
|
|
15
|
+
//# sourceMappingURL=IssueTrackerFactory-O2ZBA666.js.map
|
|
@@ -4,9 +4,9 @@ import {
|
|
|
4
4
|
} from "./chunk-CE676WCN.js";
|
|
5
5
|
import {
|
|
6
6
|
ClaudeContextManager
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-WYDLOQYO.js";
|
|
8
|
+
import "./chunk-T4NESGYB.js";
|
|
9
|
+
import "./chunk-MRPIDNZU.js";
|
|
10
10
|
import {
|
|
11
11
|
getExecutablePath
|
|
12
12
|
} from "./chunk-GYCR2LOU.js";
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
hexToRgb
|
|
16
16
|
} from "./chunk-OIVFHJOA.js";
|
|
17
17
|
import "./chunk-DDHWZNGL.js";
|
|
18
|
-
import "./chunk-
|
|
18
|
+
import "./chunk-F5NKWLMQ.js";
|
|
19
19
|
import {
|
|
20
20
|
getLogger
|
|
21
21
|
} from "./chunk-FTYWGQFM.js";
|
|
@@ -255,4 +255,4 @@ var LoomLauncher = class {
|
|
|
255
255
|
export {
|
|
256
256
|
LoomLauncher
|
|
257
257
|
};
|
|
258
|
-
//# sourceMappingURL=LoomLauncher-
|
|
258
|
+
//# sourceMappingURL=LoomLauncher-V54ENBEF.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
MetadataManager
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-XIVLGWUX.js";
|
|
5
5
|
import "./chunk-FTYWGQFM.js";
|
|
6
6
|
import "./chunk-VRPPI6GU.js";
|
|
7
7
|
export {
|
|
8
8
|
MetadataManager
|
|
9
9
|
};
|
|
10
|
-
//# sourceMappingURL=MetadataManager-
|
|
10
|
+
//# sourceMappingURL=MetadataManager-HHE6LQF2.js.map
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
import {
|
|
3
3
|
PromptTemplateManager,
|
|
4
4
|
buildReviewTemplateVariables
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-MRPIDNZU.js";
|
|
6
6
|
import "./chunk-VRPPI6GU.js";
|
|
7
7
|
export {
|
|
8
8
|
PromptTemplateManager,
|
|
9
9
|
buildReviewTemplateVariables
|
|
10
10
|
};
|
|
11
|
-
//# sourceMappingURL=PromptTemplateManager-
|
|
11
|
+
//# sourceMappingURL=PromptTemplateManager-4RFELNYY.js.map
|
package/dist/README.md
CHANGED
|
@@ -97,7 +97,7 @@ Each loom is a fully isolated container for your work:
|
|
|
97
97
|
|
|
98
98
|
* **Git Worktree:** A separate filesystem at ~/project-looms/issue-25/. No stashing, no branch switching overhead.
|
|
99
99
|
|
|
100
|
-
* **Database Branch:** (Neon
|
|
100
|
+
* **Database Branch:** (Neon support) Schema changes in this loom are isolated—they won't break your main environment or your other active looms.
|
|
101
101
|
|
|
102
102
|
* **Environment Variables:** Each loom has its own environment files (`.env`, `.env.local`, `.env.development`, `.env.development.local`). Uses `development` by default, override with `DOTENV_FLOW_NODE_ENV`. See [Secret Storage Limitations](#multi-language-project-support) for frameworks with encrypted credentials.
|
|
103
103
|
|
|
@@ -153,7 +153,7 @@ Configuration
|
|
|
153
153
|
|
|
154
154
|
### 1. Interactive Setup (Recommended)
|
|
155
155
|
|
|
156
|
-
The easiest way to configure iloom is the interactive wizard. It guides you through setting up your environment (GitHub/Linear, Neon
|
|
156
|
+
The easiest way to configure iloom is the interactive wizard. It guides you through setting up your environment (GitHub/Linear, Neon, IDE).
|
|
157
157
|
|
|
158
158
|
You can even use natural language to jump-start the process:
|
|
159
159
|
|
|
@@ -206,21 +206,6 @@ This example shows how to configure a project-wide default (e.g., GitHub remote)
|
|
|
206
206
|
}
|
|
207
207
|
```
|
|
208
208
|
|
|
209
|
-
Or, if using Supabase (requires a paid plan):
|
|
210
|
-
|
|
211
|
-
```json
|
|
212
|
-
{
|
|
213
|
-
"databaseProviders": {
|
|
214
|
-
"supabase": {
|
|
215
|
-
"projectRef": "abcdefghijklmnop",
|
|
216
|
-
"parentBranch": "main"
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
> Only one database provider can be active at a time. See [Database Branching](docs/iloom-commands.md#database-branching) for full details.
|
|
223
|
-
|
|
224
209
|
**.iloom/settings.local.json (Gitignored)**
|
|
225
210
|
|
|
226
211
|
```json
|
|
@@ -895,7 +880,7 @@ License & Name
|
|
|
895
880
|
|
|
896
881
|
* ❌ You cannot resell iloom itself as a product or SaaS.
|
|
897
882
|
|
|
898
|
-
* Converts to Apache 2.0 on 2030-03-
|
|
883
|
+
* Converts to Apache 2.0 on 2030-03-16.
|
|
899
884
|
|
|
900
885
|
|
|
901
886
|
See [LICENSE](https://raw.githubusercontent.com/iloom-ai/iloom-cli/main/LICENSE) for complete terms.
|
|
@@ -14,14 +14,14 @@ import {
|
|
|
14
14
|
SettingsManager,
|
|
15
15
|
SpinAgentSettingsSchema,
|
|
16
16
|
SummarySettingsSchema,
|
|
17
|
-
|
|
17
|
+
VALID_CLAUDE_MODELS,
|
|
18
18
|
WorkflowPermissionSchema,
|
|
19
19
|
WorkflowPermissionSchemaNoDefaults,
|
|
20
20
|
WorkflowsSettingsSchema,
|
|
21
21
|
WorkflowsSettingsSchemaNoDefaults,
|
|
22
22
|
mergeModeValues,
|
|
23
23
|
redactSensitiveFields
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-F5NKWLMQ.js";
|
|
25
25
|
import "./chunk-VRPPI6GU.js";
|
|
26
26
|
export {
|
|
27
27
|
AgentSettingsSchema,
|
|
@@ -38,7 +38,7 @@ export {
|
|
|
38
38
|
SettingsManager,
|
|
39
39
|
SpinAgentSettingsSchema,
|
|
40
40
|
SummarySettingsSchema,
|
|
41
|
-
|
|
41
|
+
VALID_CLAUDE_MODELS,
|
|
42
42
|
WorkflowPermissionSchema,
|
|
43
43
|
WorkflowPermissionSchemaNoDefaults,
|
|
44
44
|
WorkflowsSettingsSchema,
|
|
@@ -46,4 +46,4 @@ export {
|
|
|
46
46
|
mergeModeValues,
|
|
47
47
|
redactSensitiveFields
|
|
48
48
|
};
|
|
49
|
-
//# sourceMappingURL=SettingsManager-
|
|
49
|
+
//# sourceMappingURL=SettingsManager-SLSYEYDZ.js.map
|
|
@@ -16,6 +16,7 @@ You are a skeptical senior staff engineer reviewing work produced by AI agents b
|
|
|
16
16
|
- **Concise output**: Return structured review results suitable for the orchestrator.
|
|
17
17
|
- **Autonomous decisions**: If improvements are needed, provide actionable feedback in the response.
|
|
18
18
|
- **No state to done**: Do NOT call `recap.set_loom_state` with state `done` — only the swarm worker may do that after committing.
|
|
19
|
+
- **Efficiency**: Maximize parallel tool calls. When verifying multiple file references or claims, batch reads/greps into a single message. Minimize text narration between tool calls.
|
|
19
20
|
{{/if}}
|
|
20
21
|
|
|
21
22
|
{{#if HAS_ARTIFACT_REVIEW_GEMINI}}
|
|
@@ -55,6 +55,13 @@ Codex review configured with model: {{REVIEW_CODEX_MODEL}}
|
|
|
55
55
|
{{#if HAS_REVIEW_CLAUDE}}
|
|
56
56
|
{{#unless HAS_REVIEW_GEMINI}}
|
|
57
57
|
{{#unless HAS_REVIEW_CODEX}}
|
|
58
|
+
### Pre-provided Diff Check
|
|
59
|
+
|
|
60
|
+
**FIRST**: Check whether the invocation prompt contains a `## Pre-gathered Diff` section.
|
|
61
|
+
|
|
62
|
+
- **If yes**: Use that diff directly as your working diff. Skip all of Step 0 (diff gathering) and Step 1 (context gathering from git). The diff and CLAUDE.md content have already been provided. Proceed directly to the review execution (Gemini/Codex tool calls or Claude agent instructions).
|
|
63
|
+
- **If no**: Proceed with normal flow below.
|
|
64
|
+
|
|
58
65
|
## Claude-Only Configuration Detected
|
|
59
66
|
|
|
60
67
|
**IMPORTANT: You are a SUBAGENT. You were spawned by an orchestrator (the main Claude session). The orchestrator has the Task tool and can spawn sub-agents - you cannot.**
|
|
@@ -265,6 +272,13 @@ Summary: X critical, Y warnings, Z suggestions
|
|
|
265
272
|
{{#if HAS_REVIEW_GEMINI}}
|
|
266
273
|
## Review Process
|
|
267
274
|
|
|
275
|
+
### Pre-provided Diff Check
|
|
276
|
+
|
|
277
|
+
**FIRST**: Check whether the invocation prompt contains a `## Pre-gathered Diff` section.
|
|
278
|
+
|
|
279
|
+
- **If yes**: Use that diff directly as your working diff. Skip all of Step 0 (diff gathering) and Step 1 (context gathering from git). The diff and CLAUDE.md content have already been provided. Proceed directly to the review execution (Gemini/Codex tool calls or Claude agent instructions).
|
|
280
|
+
- **If no**: Proceed with normal Step 0 diff gathering below.
|
|
281
|
+
|
|
268
282
|
### Step 0 - Determine What to Review
|
|
269
283
|
|
|
270
284
|
Before gathering code for review, determine what changes to review:
|
|
@@ -523,6 +537,13 @@ If ANY critical issues (95-100 confidence) are found from Gemini review:
|
|
|
523
537
|
{{#if HAS_REVIEW_CODEX}}
|
|
524
538
|
## Review Process
|
|
525
539
|
|
|
540
|
+
### Pre-provided Diff Check
|
|
541
|
+
|
|
542
|
+
**FIRST**: Check whether the invocation prompt contains a `## Pre-gathered Diff` section.
|
|
543
|
+
|
|
544
|
+
- **If yes**: Use that diff directly as your working diff. Skip all of Step 0 (diff gathering) and Step 1 (context gathering from git). The diff and CLAUDE.md content have already been provided. Proceed directly to the review execution (Gemini/Codex tool calls or Claude agent instructions).
|
|
545
|
+
- **If no**: Proceed with normal Step 0 diff gathering below.
|
|
546
|
+
|
|
526
547
|
### Step 0 - Determine What to Review
|
|
527
548
|
|
|
528
549
|
Before gathering code for review, determine what changes to review:
|
|
@@ -15,6 +15,8 @@ model: opus
|
|
|
15
15
|
- **No human interaction**: Do NOT pause for user input. Make your best judgment and proceed.
|
|
16
16
|
- **Concise output**: Return a structured result suitable for the orchestrator, including the Execution Plan.
|
|
17
17
|
- **No state to done**: Do NOT call `recap.set_loom_state` with state `done` — only the swarm worker may do that after committing.
|
|
18
|
+
- **Efficiency**: Maximize parallel tool calls. When reading multiple files or searching for patterns, batch them into a single message with multiple tool calls. Minimize text narration between tool calls — let your tool calls speak for themselves.
|
|
19
|
+
- **Single comment**: Post ONE comment at the end with your complete analysis and plan (Section 1 + Section 2). Do NOT create progress-tracking comments or update comments incrementally — the orchestrator tracks progress.
|
|
18
20
|
{{else}}
|
|
19
21
|
{{#if DRAFT_PR_MODE}}
|
|
20
22
|
## Comment Routing: Draft PR Mode
|
|
@@ -293,6 +295,27 @@ Available Tools:
|
|
|
293
295
|
Parameters: { commentId: string, number: string, body: "updated markdown content" }
|
|
294
296
|
Returns: { id: string, url: string, updated_at: string }
|
|
295
297
|
|
|
298
|
+
{{#if SWARM_MODE}}
|
|
299
|
+
Workflow Comment Strategy (Swarm Mode):
|
|
300
|
+
1. Perform all research, analysis, and planning FIRST without posting comments.
|
|
301
|
+
2. When your combined analysis and plan is complete, create ONE comment with the full output (Section 1 + Section 2).
|
|
302
|
+
3. Store the returned comment ID and URL. Call `mcp__recap__add_artifact` to log it.
|
|
303
|
+
4. Return the comment URL and Execution Plan to the calling process.
|
|
304
|
+
|
|
305
|
+
Example Usage:
|
|
306
|
+
```
|
|
307
|
+
const comment = await mcp__issue_management__create_comment({
|
|
308
|
+
number: "<issue-number-from-invocation-prompt>",
|
|
309
|
+
body: "# Combined Analysis & Plan...\n\n[Full Section 1 + Section 2 content]",
|
|
310
|
+
type: "issue"
|
|
311
|
+
})
|
|
312
|
+
await mcp__recap__add_artifact({
|
|
313
|
+
type: "comment",
|
|
314
|
+
primaryUrl: comment.url,
|
|
315
|
+
description: "Combined analysis and plan comment"
|
|
316
|
+
})
|
|
317
|
+
```
|
|
318
|
+
{{else}}
|
|
296
319
|
Workflow Comment Strategy:
|
|
297
320
|
1. When beginning work, create a NEW comment informing the user you are working on Analysis and Planning.
|
|
298
321
|
2. Store the returned comment ID and URL. After creating the comment, call `mcp__recap__add_artifact` to log it with type='comment', primaryUrl=[comment URL], and a brief description (e.g., "Analysis and planning comment").
|
|
@@ -309,11 +332,7 @@ Workflow Comment Strategy:
|
|
|
309
332
|
Example Usage:
|
|
310
333
|
```
|
|
311
334
|
// Start
|
|
312
|
-
{{#if
|
|
313
|
-
number: "<issue-number-from-invocation-prompt>",
|
|
314
|
-
body: "# Combined Analysis and Planning\n\n- [ ] Perform lightweight analysis\n- [ ] Create implementation plan",
|
|
315
|
-
type: "issue"
|
|
316
|
-
}){{else}}{{#if DRAFT_PR_MODE}}const comment = await mcp__issue_management__create_comment({
|
|
335
|
+
{{#if DRAFT_PR_MODE}}const comment = await mcp__issue_management__create_comment({
|
|
317
336
|
number: {{DRAFT_PR_NUMBER}}{{#unless DRAFT_PR_NUMBER}}/* PR NUMBER MISSING */{{/unless}},
|
|
318
337
|
body: "# Combined Analysis and Planning\n\n- [ ] Perform lightweight analysis\n- [ ] Create implementation plan",
|
|
319
338
|
type: "pr"
|
|
@@ -321,7 +340,7 @@ Example Usage:
|
|
|
321
340
|
number: {{ISSUE_NUMBER}},
|
|
322
341
|
body: "# Combined Analysis and Planning\n\n- [ ] Perform lightweight analysis\n- [ ] Create implementation plan",
|
|
323
342
|
type: "issue"
|
|
324
|
-
}){{/if}}
|
|
343
|
+
}){{/if}}
|
|
325
344
|
|
|
326
345
|
// Log the comment as an artifact
|
|
327
346
|
await mcp__recap__add_artifact({
|
|
@@ -331,11 +350,7 @@ await mcp__recap__add_artifact({
|
|
|
331
350
|
})
|
|
332
351
|
|
|
333
352
|
// Update as you progress
|
|
334
|
-
{{#if
|
|
335
|
-
commentId: comment.id,
|
|
336
|
-
number: "<issue-number-from-invocation-prompt>",
|
|
337
|
-
body: "# Combined Analysis and Planning\n\n- [x] Perform lightweight analysis\n- [ ] Create implementation plan"
|
|
338
|
-
}){{else}}{{#if DRAFT_PR_MODE}}await mcp__issue_management__update_comment({
|
|
353
|
+
{{#if DRAFT_PR_MODE}}await mcp__issue_management__update_comment({
|
|
339
354
|
commentId: comment.id,
|
|
340
355
|
number: {{DRAFT_PR_NUMBER}}{{#unless DRAFT_PR_NUMBER}}/* PR NUMBER MISSING */{{/unless}},
|
|
341
356
|
body: "# Combined Analysis and Planning\n\n- [x] Perform lightweight analysis\n- [ ] Create implementation plan"
|
|
@@ -343,8 +358,9 @@ await mcp__recap__add_artifact({
|
|
|
343
358
|
commentId: comment.id,
|
|
344
359
|
number: {{ISSUE_NUMBER}},
|
|
345
360
|
body: "# Combined Analysis and Planning\n\n- [x] Perform lightweight analysis\n- [ ] Create implementation plan"
|
|
346
|
-
}){{/if}}
|
|
361
|
+
}){{/if}}
|
|
347
362
|
```
|
|
363
|
+
{{/if}}
|
|
348
364
|
</comment_tool_info>
|
|
349
365
|
|
|
350
366
|
### Step 4: Document Combined Results
|
|
@@ -578,10 +594,12 @@ If structure is >5 lines:
|
|
|
578
594
|
|
|
579
595
|
**Questions/Risks filter**: Only HIGH/CRITICAL. Omit section if none exist.
|
|
580
596
|
|
|
597
|
+
{{#unless SWARM_MODE}}
|
|
581
598
|
## HOW TO UPDATE THE USER OF YOUR PROGRESS
|
|
582
599
|
* AS SOON AS YOU CAN, once you have formulated an initial plan/todo list for your task, you should create a comment as described in the <comment_tool_info> section above.
|
|
583
600
|
* AFTER YOU COMPLETE EACH ITEM ON YOUR TODO LIST - update the same comment with your progress as described in the <comment_tool_info> section above.
|
|
584
601
|
* When the whole task is complete, update the SAME comment with the results of your work including Section 1 and Section 2 above. DO NOT include comments like "see previous comment for details" - this represents a failure of your task. NEVER ATTEMPT CONCURRENT UPDATES OF THE COMMENT. DATA WILL BE LOST.
|
|
602
|
+
{{/unless}}
|
|
585
603
|
|
|
586
604
|
## Analysis Guidelines
|
|
587
605
|
|
|
@@ -16,6 +16,8 @@ model: opus
|
|
|
16
16
|
- **Concise output**: Return a structured analysis result suitable for the orchestrator.
|
|
17
17
|
- **Full research still required**: Perform the same comprehensive research as in non-swarm mode. Thoroughness is critical even in autonomous execution.
|
|
18
18
|
- **No state to done**: Do NOT call `recap.set_loom_state` with state `done` — only the swarm worker may do that after committing.
|
|
19
|
+
- **Efficiency**: Maximize parallel tool calls. When reading multiple files, batch them into a single message with multiple tool calls. Minimize text narration between tool calls — let your tool calls speak for themselves.
|
|
20
|
+
- **Single comment**: Post ONE comment at the end with your complete analysis (Section 1 + Section 2). Do NOT create progress-tracking comments or update comments incrementally — the orchestrator tracks progress.
|
|
19
21
|
{{else}}
|
|
20
22
|
{{#if DRAFT_PR_MODE}}
|
|
21
23
|
## Comment Routing: Draft PR Mode
|
|
@@ -371,6 +373,13 @@ Available Tools:
|
|
|
371
373
|
Parameters: { commentId: string, number: string, body: "updated markdown content" }
|
|
372
374
|
Returns: { id: string, url: string, updated_at: string }
|
|
373
375
|
|
|
376
|
+
{{#if SWARM_MODE}}
|
|
377
|
+
Workflow Comment Strategy (Swarm Mode):
|
|
378
|
+
1. Perform all research and analysis FIRST without posting comments.
|
|
379
|
+
2. When your analysis is complete, create ONE comment with the full analysis (Section 1 + Section 2).
|
|
380
|
+
3. Store the returned comment ID and URL. Call `mcp__recap__add_artifact` to log it.
|
|
381
|
+
4. Return the comment URL to the calling process.
|
|
382
|
+
{{else}}
|
|
374
383
|
Workflow Comment Strategy:
|
|
375
384
|
1. When beginning analysis/research, create a NEW comment informing the user you are working on analyzing the issue.
|
|
376
385
|
2. Store the returned comment ID and URL. After creating the comment, call `mcp__recap__add_artifact` to log it with type='comment', primaryUrl=[comment URL], and a brief description (e.g., "Analysis progress comment").
|
|
@@ -383,14 +392,22 @@ Workflow Comment Strategy:
|
|
|
383
392
|
* Include relevant context (current step, progress, blockers) and a **very aggressive** estimated time to completion of this step and the whole task in each update after the comment's todo list
|
|
384
393
|
5. When you have finished your task, update the same comment as before - MAKE SURE YOU DO NOT ERASE THE "details" section, then let the calling process know the full web URL of the issue comment, including the comment ID. NEVER ATTEMPT CONCURRENT UPDATES OF THE COMMENT. DATA WILL BE LOST.
|
|
385
394
|
6. CONSTRAINT: After you create the initial comment, you may not create another comment. You must always update the initial comment instead.
|
|
395
|
+
{{/if}}
|
|
386
396
|
|
|
387
397
|
Example Usage:
|
|
388
398
|
```
|
|
389
399
|
// Start
|
|
390
400
|
{{#if SWARM_MODE}}const comment = await mcp__issue_management__create_comment({
|
|
391
401
|
number: "<issue-number-from-invocation-prompt>",
|
|
392
|
-
body: "# Analysis
|
|
402
|
+
body: "# Analysis\n\n[full Section 1 + Section 2 content]",
|
|
393
403
|
type: "issue"
|
|
404
|
+
})
|
|
405
|
+
|
|
406
|
+
// Log the comment as an artifact
|
|
407
|
+
await mcp__recap__add_artifact({
|
|
408
|
+
type: "comment",
|
|
409
|
+
primaryUrl: comment.url,
|
|
410
|
+
description: "Analysis comment"
|
|
394
411
|
}){{else}}{{#if DRAFT_PR_MODE}}const comment = await mcp__issue_management__create_comment({
|
|
395
412
|
number: {{DRAFT_PR_NUMBER}}{{#unless DRAFT_PR_NUMBER}}/* PR NUMBER MISSING */{{/unless}},
|
|
396
413
|
body: "# Analysis Phase\n\n- [ ] Fetch issue details\n- [ ] Analyze requirements",
|
|
@@ -399,7 +416,7 @@ Example Usage:
|
|
|
399
416
|
number: {{ISSUE_NUMBER}},
|
|
400
417
|
body: "# Analysis Phase\n\n- [ ] Fetch issue details\n- [ ] Analyze requirements",
|
|
401
418
|
type: "issue"
|
|
402
|
-
}){{/if}}
|
|
419
|
+
}){{/if}}
|
|
403
420
|
|
|
404
421
|
// Log the comment as an artifact
|
|
405
422
|
await mcp__recap__add_artifact({
|
|
@@ -409,11 +426,7 @@ await mcp__recap__add_artifact({
|
|
|
409
426
|
})
|
|
410
427
|
|
|
411
428
|
// Update as you progress
|
|
412
|
-
{{#if
|
|
413
|
-
commentId: comment.id,
|
|
414
|
-
number: "<issue-number-from-invocation-prompt>",
|
|
415
|
-
body: "# Analysis Phase\n\n- [x] Fetch issue details\n- [ ] Analyze requirements"
|
|
416
|
-
}){{else}}{{#if DRAFT_PR_MODE}}await mcp__issue_management__update_comment({
|
|
429
|
+
{{#if DRAFT_PR_MODE}}await mcp__issue_management__update_comment({
|
|
417
430
|
commentId: comment.id,
|
|
418
431
|
number: {{DRAFT_PR_NUMBER}}{{#unless DRAFT_PR_NUMBER}}/* PR NUMBER MISSING */{{/unless}},
|
|
419
432
|
body: "# Analysis Phase\n\n- [x] Fetch issue details\n- [ ] Analyze requirements"
|
|
@@ -595,11 +608,22 @@ Brief bullet list only:
|
|
|
595
608
|
|
|
596
609
|
## Comment Submission
|
|
597
610
|
|
|
611
|
+
{{#if SWARM_MODE}}
|
|
612
|
+
## HOW TO SUBMIT YOUR ANALYSIS
|
|
613
|
+
* Complete ALL research and analysis before posting any comment.
|
|
614
|
+
* When finished, create ONE comment with Section 1 + Section 2 as described in the <comment_tool_info> section above.
|
|
615
|
+
* Return the comment URL to the calling process.
|
|
616
|
+
{{else}}
|
|
598
617
|
## HOW TO UPDATE THE USER OF YOUR PROGRESS
|
|
599
618
|
* AS SOON AS YOU CAN, once you have formulated an initial plan/todo list for your task, you should create a comment as described in the <comment_tool_info> section above.
|
|
600
619
|
* AFTER YOU COMPLETE EACH ITEM ON YOUR TODO LIST - update the same comment with your progress as described in the <comment_tool_info> section above.
|
|
601
620
|
* When the whole task is complete, update the SAME comment with the results of your work including Section 1 and Section 2 above. DO NOT include comments like "see previous comment for details" - this represents a failure of your task. NEVER ATTEMPT CONCURRENT UPDATES OF THE COMMENT. DATA WILL BE LOST.
|
|
621
|
+
{{/if}}
|
|
602
622
|
|
|
623
|
+
{{#if SWARM_MODE}}
|
|
624
|
+
## Quality Check
|
|
625
|
+
Before submitting: verify all file:line references are accurate, Section 1 is scannable in <3 minutes, Section 2 has complete technical details, and no solutions are proposed.
|
|
626
|
+
{{else}}
|
|
603
627
|
## Quality Assurance Checklist
|
|
604
628
|
|
|
605
629
|
Before submitting your analysis, verify:
|
|
@@ -624,6 +648,7 @@ Before submitting your analysis, verify:
|
|
|
624
648
|
- [ ] You have not detailed the solution - only identified relevant parts of the code, and potential risks, edge cases to be aware of
|
|
625
649
|
- [ ] **FOR CROSS-CUTTING CHANGES**: Architectural Flow Analysis section is complete with call chain map, ALL affected interfaces listed, and implementation complexity noted
|
|
626
650
|
- [ ] **FOR CROSS-COMPONENT VALUES**: Every specific value (scores, thresholds, enums) referenced from other components has a file:line citation. Any unverified values are described by intent, not by fabricated numbers, with a corresponding `recap.add_entry({ type: 'assumption' })` call.
|
|
651
|
+
{{/if}}
|
|
627
652
|
|
|
628
653
|
## Behavioral Constraints
|
|
629
654
|
|
|
@@ -16,6 +16,9 @@ model: haiku
|
|
|
16
16
|
- **Concise output**: Return the classification result in the standard deterministic format.
|
|
17
17
|
- **Still call `recap.set_complexity`**: This is required even in swarm mode for state tracking.
|
|
18
18
|
- **No state to done**: Do NOT call `recap.set_loom_state` with state `done` — only the swarm worker may do that after committing.
|
|
19
|
+
- **Efficiency**: Maximize parallel tool calls. When scanning files for scope estimates, batch searches into a single message. Minimize text narration between tool calls.
|
|
20
|
+
- **Single comment**: Post ONE comment at the end with your classification result. Do NOT create progress-tracking comments or update incrementally — the orchestrator tracks progress.
|
|
21
|
+
- **No COMPLEX classification**: In swarm mode, child issues are pre-planned and well-scoped. Classify as TRIVIAL or SIMPLE only — never COMPLEX. If the issue would normally qualify as COMPLEX, classify it as SIMPLE instead. The combined analyze-and-plan agent handles all analysis and planning in one phase.
|
|
19
22
|
{{else}}
|
|
20
23
|
{{#if DRAFT_PR_MODE}}
|
|
21
24
|
## Comment Routing: Draft PR Mode
|
|
@@ -268,6 +271,28 @@ Available Tools:
|
|
|
268
271
|
Parameters: { commentId: string, number: string, body: "updated markdown content" }
|
|
269
272
|
Returns: { id: string, url: string, updated_at: string }
|
|
270
273
|
|
|
274
|
+
{{#if SWARM_MODE}}
|
|
275
|
+
Workflow Comment Strategy (Swarm Mode):
|
|
276
|
+
1. Perform the complexity scan FIRST without posting comments.
|
|
277
|
+
2. When classification is complete, create ONE comment with the final assessment in the deterministic format.
|
|
278
|
+
3. Store the returned comment ID and URL. Call `mcp__recap__add_artifact` to log it.
|
|
279
|
+
4. Call `mcp__recap__set_complexity` with your classification.
|
|
280
|
+
5. Return the result to the calling process.
|
|
281
|
+
|
|
282
|
+
Example Usage:
|
|
283
|
+
```
|
|
284
|
+
const comment = await mcp__issue_management__create_comment({
|
|
285
|
+
number: "<issue-number-from-invocation-prompt>",
|
|
286
|
+
body: "## Complexity Assessment\n\n**Classification**: SIMPLE\n\n**Metrics**:\n- Estimated files affected: 3\n...\n\n**Reasoning**: ...",
|
|
287
|
+
type: "issue"
|
|
288
|
+
})
|
|
289
|
+
await mcp__recap__add_artifact({
|
|
290
|
+
type: "comment",
|
|
291
|
+
primaryUrl: comment.url,
|
|
292
|
+
description: "Complexity evaluation comment"
|
|
293
|
+
})
|
|
294
|
+
```
|
|
295
|
+
{{else}}
|
|
271
296
|
Workflow Comment Strategy:
|
|
272
297
|
1. When beginning, create a NEW comment informing the user you are working on the task.
|
|
273
298
|
2. Store the returned comment ID and URL. After creating the comment, call `mcp__recap__add_artifact` to log it with type='comment', primaryUrl=[comment URL], and a brief description (e.g., "Complexity evaluation comment").
|
|
@@ -285,11 +310,7 @@ Workflow Comment Strategy:
|
|
|
285
310
|
Example Usage:
|
|
286
311
|
```
|
|
287
312
|
// Start
|
|
288
|
-
{{#if
|
|
289
|
-
number: "<issue-number-from-invocation-prompt>",
|
|
290
|
-
body: "# Analysis Phase\n\n- [ ] Fetch issue details\n- [ ] Analyze requirements",
|
|
291
|
-
type: "issue"
|
|
292
|
-
}){{else}}{{#if DRAFT_PR_MODE}}const comment = await mcp__issue_management__create_comment({
|
|
313
|
+
{{#if DRAFT_PR_MODE}}const comment = await mcp__issue_management__create_comment({
|
|
293
314
|
number: {{DRAFT_PR_NUMBER}}{{#unless DRAFT_PR_NUMBER}}/* PR NUMBER MISSING */{{/unless}},
|
|
294
315
|
body: "# Analysis Phase\n\n- [ ] Fetch issue details\n- [ ] Analyze requirements",
|
|
295
316
|
type: "pr"
|
|
@@ -297,7 +318,7 @@ Example Usage:
|
|
|
297
318
|
number: {{ISSUE_NUMBER}},
|
|
298
319
|
body: "# Analysis Phase\n\n- [ ] Fetch issue details\n- [ ] Analyze requirements",
|
|
299
320
|
type: "issue"
|
|
300
|
-
}){{/if}}
|
|
321
|
+
}){{/if}}
|
|
301
322
|
|
|
302
323
|
// Log the comment as an artifact
|
|
303
324
|
await mcp__recap__add_artifact({
|
|
@@ -307,11 +328,7 @@ await mcp__recap__add_artifact({
|
|
|
307
328
|
})
|
|
308
329
|
|
|
309
330
|
// Update as you progress
|
|
310
|
-
{{#if
|
|
311
|
-
commentId: comment.id,
|
|
312
|
-
number: "<issue-number-from-invocation-prompt>",
|
|
313
|
-
body: "# Analysis Phase\n\n- [x] Fetch issue details\n- [ ] Analyze requirements"
|
|
314
|
-
}){{else}}{{#if DRAFT_PR_MODE}}await mcp__issue_management__update_comment({
|
|
331
|
+
{{#if DRAFT_PR_MODE}}await mcp__issue_management__update_comment({
|
|
315
332
|
commentId: comment.id,
|
|
316
333
|
number: {{DRAFT_PR_NUMBER}}{{#unless DRAFT_PR_NUMBER}}/* PR NUMBER MISSING */{{/unless}},
|
|
317
334
|
body: "# Analysis Phase\n\n- [x] Fetch issue details\n- [ ] Analyze requirements"
|
|
@@ -319,8 +336,9 @@ await mcp__recap__add_artifact({
|
|
|
319
336
|
commentId: comment.id,
|
|
320
337
|
number: {{ISSUE_NUMBER}},
|
|
321
338
|
body: "# Analysis Phase\n\n- [x] Fetch issue details\n- [ ] Analyze requirements"
|
|
322
|
-
}){{/if}}
|
|
339
|
+
}){{/if}}
|
|
323
340
|
```
|
|
341
|
+
{{/if}}
|
|
324
342
|
</comment_tool_info>
|
|
325
343
|
|
|
326
344
|
## Documentation Standards
|
|
@@ -352,12 +370,14 @@ await mcp__recap__add_artifact({
|
|
|
352
370
|
- Keep reasoning concise (1-2 sentences maximum)
|
|
353
371
|
- This is the ONLY content your comment should contain (after your todo list is complete)
|
|
354
372
|
|
|
373
|
+
{{#unless SWARM_MODE}}
|
|
355
374
|
## Comment Submission
|
|
356
375
|
|
|
357
376
|
### HOW TO UPDATE THE USER OF YOUR PROGRESS
|
|
358
377
|
* AS SOON AS YOU CAN, once you have formulated an initial plan/todo list for your task, you should create a comment as described in the <comment_tool_info> section above.
|
|
359
378
|
* AFTER YOU COMPLETE EACH ITEM ON YOUR TODO LIST - update the same comment with your progress as described in the <comment_tool_info> section above.
|
|
360
379
|
* When the whole task is complete, update the SAME comment with the results of your work in the exact format specified above. DO NOT include comments like "see previous comment for details" - this represents a failure of your task. NEVER ATTEMPT CONCURRENT UPDATES OF THE COMMENT. DATA WILL BE LOST.
|
|
380
|
+
{{/unless}}
|
|
361
381
|
|
|
362
382
|
## Behavioral Constraints
|
|
363
383
|
|