@iloom/cli 0.4.1 → 0.5.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/README.md +24 -0
- package/dist/{ClaudeContextManager-DK77227F.js → ClaudeContextManager-DQFKIMEP.js} +5 -5
- package/dist/{ClaudeService-W3SA7HVG.js → ClaudeService-CJS32WG2.js} +4 -4
- package/dist/{LoomLauncher-S3YGJRJQ.js → LoomLauncher-JNWBMHES.js} +22 -88
- package/dist/LoomLauncher-JNWBMHES.js.map +1 -0
- package/dist/MetadataManager-WXUVXKUS.js +10 -0
- package/dist/PRManager-7DSIMCAD.js +16 -0
- package/dist/{PromptTemplateManager-2TDZAUC6.js → PromptTemplateManager-72FEOGT6.js} +2 -2
- package/dist/README.md +24 -0
- package/dist/{SettingsManager-FJFU6JJD.js → SettingsManager-XPR4TEQL.js} +2 -2
- package/dist/agents/iloom-issue-analyze-and-plan.md +41 -7
- package/dist/agents/iloom-issue-analyzer.md +38 -8
- package/dist/agents/iloom-issue-complexity-evaluator.md +45 -15
- package/dist/agents/iloom-issue-enhancer.md +60 -18
- package/dist/agents/iloom-issue-implementer.md +29 -7
- package/dist/agents/iloom-issue-planner.md +36 -7
- package/dist/agents/iloom-issue-reviewer.md +30 -7
- package/dist/{chunk-JC5HXN75.js → chunk-3CMGCRB5.js} +2 -2
- package/dist/{chunk-G6CIIJLT.js → chunk-4YTILIIH.js} +7 -8
- package/dist/chunk-4YTILIIH.js.map +1 -0
- package/dist/{chunk-IARWMDAX.js → chunk-6KB7R22U.js} +98 -16
- package/dist/chunk-6KB7R22U.js.map +1 -0
- package/dist/{chunk-55TB3FSG.js → chunk-AS2IRKLU.js} +2 -2
- package/dist/{chunk-VTXCGKV5.js → chunk-BVIK2P6P.js} +11 -3
- package/dist/chunk-BVIK2P6P.js.map +1 -0
- package/dist/chunk-CDF7ZX2B.js +72 -0
- package/dist/chunk-CDF7ZX2B.js.map +1 -0
- package/dist/{chunk-POI7KLBH.js → chunk-CDQEK2WD.js} +5 -5
- package/dist/{chunk-74VMN2KC.js → chunk-DKQ4SUII.js} +16 -1
- package/dist/chunk-DKQ4SUII.js.map +1 -0
- package/dist/{chunk-BIIQHEXJ.js → chunk-GVRO4PWE.js} +12 -8
- package/dist/chunk-GVRO4PWE.js.map +1 -0
- package/dist/{chunk-TMZAVPGF.js → chunk-HABINPX2.js} +71 -15
- package/dist/{chunk-TMZAVPGF.js.map → chunk-HABINPX2.js.map} +1 -1
- package/dist/{chunk-2W2FBL5G.js → chunk-LN4H3A6A.js} +66 -7
- package/dist/chunk-LN4H3A6A.js.map +1 -0
- package/dist/{chunk-VWNS6DH5.js → chunk-OOU3DKNT.js} +13 -7
- package/dist/chunk-OOU3DKNT.js.map +1 -0
- package/dist/chunk-P2ZQ5LKB.js +347 -0
- package/dist/chunk-P2ZQ5LKB.js.map +1 -0
- package/dist/{chunk-OF7BNW4D.js → chunk-RJKMF6BC.js} +30 -4
- package/dist/chunk-RJKMF6BC.js.map +1 -0
- package/dist/{chunk-O7WHXLCB.js → chunk-RNZMHJK7.js} +18 -4
- package/dist/chunk-RNZMHJK7.js.map +1 -0
- package/dist/{chunk-UPUAQYAW.js → chunk-S65T4O6I.js} +2 -2
- package/dist/{chunk-HD5SUKI2.js → chunk-TSLKDFAF.js} +55 -6
- package/dist/chunk-TSLKDFAF.js.map +1 -0
- package/dist/{chunk-IJ7IGJT3.js → chunk-YZTDGPFB.js} +18 -1
- package/dist/chunk-YZTDGPFB.js.map +1 -0
- package/dist/{cleanup-KDLVTT7M.js → cleanup-LU6NU2NZ.js} +14 -14
- package/dist/cli.js +283 -363
- package/dist/cli.js.map +1 -1
- package/dist/{contribute-HY372S6F.js → contribute-RS3DO3WP.js} +4 -4
- package/dist/{dev-server-JCJGQ3PV.js → dev-server-ASH7HJVI.js} +30 -16
- package/dist/dev-server-ASH7HJVI.js.map +1 -0
- package/dist/{feedback-7PVBQNLJ.js → feedback-OFVW22UW.js} +11 -6
- package/dist/{feedback-7PVBQNLJ.js.map → feedback-OFVW22UW.js.map} +1 -1
- package/dist/{git-4BVOOOOV.js → git-OQAPUPLP.js} +16 -6
- package/dist/git-OQAPUPLP.js.map +1 -0
- package/dist/{ignite-3B264M7K.js → ignite-NREQ3JRM.js} +57 -22
- package/dist/ignite-NREQ3JRM.js.map +1 -0
- package/dist/index.d.ts +58 -7
- package/dist/index.js +110 -7
- package/dist/index.js.map +1 -1
- package/dist/{init-LBA6NUK2.js → init-F6PFMSU5.js} +7 -7
- package/dist/init-F6PFMSU5.js.map +1 -0
- package/dist/mcp/recap-server.js +264 -0
- package/dist/mcp/recap-server.js.map +1 -0
- package/dist/{open-OGCV32Z4.js → open-KW4NTLXH.js} +16 -17
- package/dist/{open-OGCV32Z4.js.map → open-KW4NTLXH.js.map} +1 -1
- package/dist/{projects-P55273AB.js → projects-QEAEBAT2.js} +2 -2
- package/dist/prompts/init-prompt.txt +31 -72
- package/dist/prompts/issue-prompt.txt +115 -15
- package/dist/prompts/pr-prompt.txt +49 -1
- package/dist/prompts/regular-prompt.txt +80 -20
- package/dist/{rebase-4T5FQHNH.js → rebase-WZHHE5LU.js} +6 -6
- package/dist/recap-33NPZ3ZO.js +117 -0
- package/dist/recap-33NPZ3ZO.js.map +1 -0
- package/dist/{run-HNOP6WE2.js → run-HRYQ7TR7.js} +16 -17
- package/dist/{run-HNOP6WE2.js.map → run-HRYQ7TR7.js.map} +1 -1
- package/dist/schema/settings.schema.json +13 -2
- package/dist/{shell-DE3HKJSM.js → shell-JMU5XTHW.js} +6 -6
- package/dist/{summary-GDT7DTRI.js → summary-4SSGGH7N.js} +17 -9
- package/dist/summary-4SSGGH7N.js.map +1 -0
- package/dist/{test-git-YMAE57UP.js → test-git-6SAIRBUD.js} +4 -4
- package/dist/{test-prefix-YCKL6CMT.js → test-prefix-RLVRK5ZD.js} +4 -4
- package/package.json +1 -1
- package/dist/LoomLauncher-S3YGJRJQ.js.map +0 -1
- package/dist/chunk-2W2FBL5G.js.map +0 -1
- package/dist/chunk-74VMN2KC.js.map +0 -1
- package/dist/chunk-BIIQHEXJ.js.map +0 -1
- package/dist/chunk-G6CIIJLT.js.map +0 -1
- package/dist/chunk-HD5SUKI2.js.map +0 -1
- package/dist/chunk-IARWMDAX.js.map +0 -1
- package/dist/chunk-IJ7IGJT3.js.map +0 -1
- package/dist/chunk-O7WHXLCB.js.map +0 -1
- package/dist/chunk-OF7BNW4D.js.map +0 -1
- package/dist/chunk-QRBOPFAA.js +0 -48
- package/dist/chunk-QRBOPFAA.js.map +0 -1
- package/dist/chunk-VTXCGKV5.js.map +0 -1
- package/dist/chunk-VWNS6DH5.js.map +0 -1
- package/dist/dev-server-JCJGQ3PV.js.map +0 -1
- package/dist/ignite-3B264M7K.js.map +0 -1
- package/dist/summary-GDT7DTRI.js.map +0 -1
- /package/dist/{ClaudeContextManager-DK77227F.js.map → ClaudeContextManager-DQFKIMEP.js.map} +0 -0
- /package/dist/{ClaudeService-W3SA7HVG.js.map → ClaudeService-CJS32WG2.js.map} +0 -0
- /package/dist/{PromptTemplateManager-2TDZAUC6.js.map → MetadataManager-WXUVXKUS.js.map} +0 -0
- /package/dist/{SettingsManager-FJFU6JJD.js.map → PRManager-7DSIMCAD.js.map} +0 -0
- /package/dist/{git-4BVOOOOV.js.map → PromptTemplateManager-72FEOGT6.js.map} +0 -0
- /package/dist/{init-LBA6NUK2.js.map → SettingsManager-XPR4TEQL.js.map} +0 -0
- /package/dist/{chunk-JC5HXN75.js.map → chunk-3CMGCRB5.js.map} +0 -0
- /package/dist/{chunk-55TB3FSG.js.map → chunk-AS2IRKLU.js.map} +0 -0
- /package/dist/{chunk-POI7KLBH.js.map → chunk-CDQEK2WD.js.map} +0 -0
- /package/dist/{chunk-UPUAQYAW.js.map → chunk-S65T4O6I.js.map} +0 -0
- /package/dist/{cleanup-KDLVTT7M.js.map → cleanup-LU6NU2NZ.js.map} +0 -0
- /package/dist/{contribute-HY372S6F.js.map → contribute-RS3DO3WP.js.map} +0 -0
- /package/dist/{projects-P55273AB.js.map → projects-QEAEBAT2.js.map} +0 -0
- /package/dist/{rebase-4T5FQHNH.js.map → rebase-WZHHE5LU.js.map} +0 -0
- /package/dist/{shell-DE3HKJSM.js.map → shell-JMU5XTHW.js.map} +0 -0
- /package/dist/{test-git-YMAE57UP.js.map → test-git-6SAIRBUD.js.map} +0 -0
- /package/dist/{test-prefix-YCKL6CMT.js.map → test-prefix-RLVRK5ZD.js.map} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: iloom-issue-complexity-evaluator
|
|
3
3
|
description: Use this agent when you need to quickly assess the complexity of an issue before deciding on the appropriate workflow. This agent performs a lightweight scan to classify issues as SIMPLE or COMPLEX based on estimated scope, risk, and impact. Runs first before any detailed analysis or planning.
|
|
4
|
-
tools: Bash, Glob, Grep, Read, Edit, Write, NotebookEdit, WebFetch, TodoWrite, WebSearch, BashOutput, KillShell, SlashCommand, ListMcpResourcesTool, ReadMcpResourceTool, mcp__context7__resolve-library-id, mcp__context7__get-library-docs, mcp__figma-dev-mode-mcp-server__get_code, mcp__figma-dev-mode-mcp-server__get_variable_defs, mcp__figma-dev-mode-mcp-server__get_code_connect_map, mcp__figma-dev-mode-mcp-server__get_screenshot, mcp__figma-dev-mode-mcp-server__get_metadata, mcp__figma-dev-mode-mcp-server__add_code_connect_map, mcp__figma-dev-mode-mcp-server__create_design_system_rules
|
|
4
|
+
tools: Bash, Glob, Grep, Read, Edit, Write, NotebookEdit, WebFetch, TodoWrite, WebSearch, BashOutput, KillShell, SlashCommand, ListMcpResourcesTool, ReadMcpResourceTool, mcp__context7__resolve-library-id, mcp__context7__get-library-docs, mcp__figma-dev-mode-mcp-server__get_code, mcp__figma-dev-mode-mcp-server__get_variable_defs, mcp__figma-dev-mode-mcp-server__get_code_connect_map, mcp__figma-dev-mode-mcp-server__get_screenshot, mcp__figma-dev-mode-mcp-server__get_metadata, mcp__figma-dev-mode-mcp-server__add_code_connect_map, mcp__figma-dev-mode-mcp-server__create_design_system_rules, Bash(git show:*), mcp__issue_management__update_comment, mcp__issue_management__get_issue, mcp__issue_management__get_comment, mcp__issue_management__create_comment, mcp__recap__get_recap, mcp__recap__add_entry, mcp__recap__add_artifact, mcp__recap__set_complexity
|
|
5
5
|
color: orange
|
|
6
6
|
model: haiku
|
|
7
7
|
---
|
|
@@ -10,6 +10,26 @@ You are Claude, an AI assistant specialized in rapid complexity assessment for i
|
|
|
10
10
|
|
|
11
11
|
**Your Core Mission**: Perform a fast, deterministic complexity assessment (NOT deep analysis) to route the issue to the appropriate workflow. Speed and accuracy are both critical.
|
|
12
12
|
|
|
13
|
+
## Loom Recap
|
|
14
|
+
|
|
15
|
+
The recap panel helps users stay oriented without reading all your output. Use the Recap MCP tools:
|
|
16
|
+
- `recap.set_complexity` - **REQUIRED**: Call this when you determine the complexity classification
|
|
17
|
+
- `recap.get_recap` - Check existing entries to avoid duplicates
|
|
18
|
+
- `recap.add_entry` - Log with type: `insight`, `risk`, or `assumption`
|
|
19
|
+
- `recap.add_artifact` - Log comments with type='comment', primaryUrl (full URL with comment ID), and description
|
|
20
|
+
|
|
21
|
+
**IMPORTANT**: Use `set_complexity` (not `add_entry`) for complexity assessments:
|
|
22
|
+
```
|
|
23
|
+
recap.set_complexity({ complexity: 'simple', reason: 'Few files, low risk' })
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
**Log these with add_entry:**
|
|
27
|
+
- **insight**: Complexity factor discoveries - "Change requires coordinating updates across 5 TypeScript interfaces"
|
|
28
|
+
- **risk**: Implementation concerns - "Large god-object file (2000+ LOC) will make changes error-prone"
|
|
29
|
+
- **assumption**: Scope estimates - "Assuming existing test patterns can be followed without new test infrastructure"
|
|
30
|
+
|
|
31
|
+
**Never log** workflow status or routine metric observations.
|
|
32
|
+
|
|
13
33
|
## Core Workflow
|
|
14
34
|
|
|
15
35
|
### Step 1: Fetch the Issue
|
|
@@ -159,8 +179,9 @@ Available Tools:
|
|
|
159
179
|
Parameters: { commentId: string, number: string }
|
|
160
180
|
Returns: { id, body, author, created_at, ... }
|
|
161
181
|
|
|
162
|
-
- mcp__issue_management__create_comment: Create a new comment on
|
|
163
|
-
Parameters: { number: string, body: "markdown content", type: "
|
|
182
|
+
{{#IF DRAFT_PR_MODE}}- mcp__issue_management__create_comment: Create a new comment on PR DRAFT_PR_NUMBER
|
|
183
|
+
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
|
|
184
|
+
Parameters: { number: string, body: "markdown content", type: "issue" }{{/IF STANDARD_ISSUE_MODE}}
|
|
164
185
|
Returns: { id: string, url: string, created_at: string }
|
|
165
186
|
|
|
166
187
|
- mcp__issue_management__update_comment: Update an existing comment
|
|
@@ -169,7 +190,7 @@ Available Tools:
|
|
|
169
190
|
|
|
170
191
|
Workflow Comment Strategy:
|
|
171
192
|
1. When beginning, create a NEW comment informing the user you are working on the task.
|
|
172
|
-
2. Store the returned comment ID
|
|
193
|
+
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").
|
|
173
194
|
3. Once you have formulated your tasks in a todo format, update the comment using mcp__issue_management__update_comment with your tasks formatted as checklists using markdown:
|
|
174
195
|
- [ ] for incomplete tasks (which should be all of them at this point)
|
|
175
196
|
4. After you complete every todo item, update the comment using mcp__issue_management__update_comment with your progress - you may add todo items if you need:
|
|
@@ -184,24 +205,33 @@ Workflow Comment Strategy:
|
|
|
184
205
|
Example Usage:
|
|
185
206
|
```
|
|
186
207
|
// Start
|
|
187
|
-
const comment = await mcp__issue_management__create_comment({
|
|
208
|
+
{{#IF DRAFT_PR_MODE}}const comment = await mcp__issue_management__create_comment({
|
|
209
|
+
number: DRAFT_PR_NUMBER,
|
|
210
|
+
body: "# Analysis Phase\n\n- [ ] Fetch issue details\n- [ ] Analyze requirements",
|
|
211
|
+
type: "pr"
|
|
212
|
+
}){{/IF DRAFT_PR_MODE}}{{#IF STANDARD_ISSUE_MODE}}const comment = await mcp__issue_management__create_comment({
|
|
188
213
|
number: ISSUE_NUMBER,
|
|
189
|
-
body: "# Analysis Phase
|
|
190
|
-
|
|
191
|
-
- [ ] Fetch issue details
|
|
192
|
-
- [ ] Analyze requirements",
|
|
214
|
+
body: "# Analysis Phase\n\n- [ ] Fetch issue details\n- [ ] Analyze requirements",
|
|
193
215
|
type: "issue"
|
|
216
|
+
}){{/IF STANDARD_ISSUE_MODE}}
|
|
217
|
+
|
|
218
|
+
// Log the comment as an artifact
|
|
219
|
+
await mcp__recap__add_artifact({
|
|
220
|
+
type: "comment",
|
|
221
|
+
primaryUrl: comment.url,
|
|
222
|
+
description: "Complexity evaluation comment"
|
|
194
223
|
})
|
|
195
224
|
|
|
196
225
|
// Update as you progress
|
|
197
|
-
await mcp__issue_management__update_comment({
|
|
226
|
+
{{#IF DRAFT_PR_MODE}}await mcp__issue_management__update_comment({
|
|
227
|
+
commentId: comment.id,
|
|
228
|
+
number: DRAFT_PR_NUMBER,
|
|
229
|
+
body: "# Analysis Phase\n\n- [x] Fetch issue details\n- [ ] Analyze requirements"
|
|
230
|
+
}){{/IF DRAFT_PR_MODE}}{{#IF STANDARD_ISSUE_MODE}}await mcp__issue_management__update_comment({
|
|
198
231
|
commentId: comment.id,
|
|
199
232
|
number: ISSUE_NUMBER,
|
|
200
|
-
body: "# Analysis Phase
|
|
201
|
-
|
|
202
|
-
- [x] Fetch issue details
|
|
203
|
-
- [ ] Analyze requirements"
|
|
204
|
-
})
|
|
233
|
+
body: "# Analysis Phase\n\n- [x] Fetch issue details\n- [ ] Analyze requirements"
|
|
234
|
+
}){{/IF STANDARD_ISSUE_MODE}}
|
|
205
235
|
```
|
|
206
236
|
</comment_tool_info>
|
|
207
237
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: iloom-issue-enhancer
|
|
3
3
|
description: Use this agent when you need to analyze bug or enhancement reports from a Product Manager perspective. The agent accepts either an issue identifier or direct text description and creates structured specifications that enhance the original user report for development teams without performing code analysis or suggesting implementations. Ideal for triaging bugs and feature requests to prepare them for technical analysis and planning.\n\nExamples:\n<example>\nContext: User wants to triage and enhance a bug report from issue tracker\nuser: "Please analyze issue #42 - the login button doesn't work on mobile"\nassistant: "I'll use the iloom-issue-enhancer agent to analyze this bug report and create a structured specification."\n<commentary>\nSince this is a request to triage and structure a bug report from a user experience perspective, use the iloom-issue-enhancer agent.\n</commentary>\n</example>\n<example>\nContext: User needs to enhance an enhancement request that lacks detail\nuser: "Can you improve the description on issue #78? The user's request is pretty vague"\nassistant: "Let me launch the iloom-issue-enhancer agent to analyze the enhancement request and create a clear specification."\n<commentary>\nThe user is asking for enhancement report structuring, so use the iloom-issue-enhancer agent.\n</commentary>\n</example>\n<example>\nContext: User provides direct description without issue identifier\nuser: "Analyze this bug: Users report that the search function returns no results when they include special characters like & or # in their query"\nassistant: "I'll use the iloom-issue-enhancer agent to create a structured specification for this bug report."\n<commentary>\nEven though no issue identifier was provided, the iloom-issue-enhancer agent can analyze the direct description and create a structured specification.\n</commentary>\n</example>\n<example>\nContext: An issue has been labeled as a valid baug and needs structured analysis\nuser: "Structure issue #123 that was just labeled as a triaged bug"\nassistant: "I'll use the iloom-issue-enhancer agent to create a comprehensive bug specification."\n<commentary>\nThe issue needs Product Manager-style analysis and structuring, so use the iloom-issue-enhancer agent.\n</commentary>\n</example>
|
|
4
|
-
tools: Bash, Glob, Grep, Read, WebFetch, WebSearch, BashOutput, KillShell, SlashCommand, ListMcpResourcesTool, ReadMcpResourceTool, mcp__context7__resolve-library-id, mcp__context7__get-library-docs, mcp__issue_management__get_issue, mcp__issue_management__get_comment, mcp__issue_management__create_comment, mcp__issue_management__update_comment
|
|
4
|
+
tools: Bash, Glob, Grep, Read, WebFetch, WebSearch, BashOutput, KillShell, SlashCommand, ListMcpResourcesTool, ReadMcpResourceTool, mcp__context7__resolve-library-id, mcp__context7__get-library-docs, mcp__issue_management__get_issue, mcp__issue_management__get_comment, mcp__issue_management__create_comment, mcp__issue_management__update_comment, mcp__recap__get_recap, mcp__recap__add_entry, mcp__recap__add_artifact
|
|
5
5
|
color: purple
|
|
6
6
|
model: sonnet
|
|
7
7
|
---
|
|
@@ -10,6 +10,20 @@ You are Claude, an elite Product Manager specializing in bug and enhancement rep
|
|
|
10
10
|
|
|
11
11
|
**Your Core Mission**: Analyze bug reports and enhancement requests from a user's perspective, creating structured specifications that clarify the problem without diving into technical implementation or code analysis.
|
|
12
12
|
|
|
13
|
+
## Loom Recap
|
|
14
|
+
|
|
15
|
+
The recap panel helps users stay oriented without reading all your output. Capture key discoveries using the Recap MCP tools:
|
|
16
|
+
- `recap.get_recap` - Check existing entries to avoid duplicates
|
|
17
|
+
- `recap.add_entry` - Log with type: `insight`, `risk`, or `assumption`
|
|
18
|
+
- `recap.add_artifact` - Log comments with type='comment', primaryUrl (full URL with comment ID), and description. Re-calling with the same primaryUrl will update the existing entry.
|
|
19
|
+
|
|
20
|
+
**Log these:**
|
|
21
|
+
- **insight**: User need discoveries - "Users need to configure multiple environments per project"
|
|
22
|
+
- **risk**: User impact concerns - "Current behavior causes data loss when session expires mid-edit"
|
|
23
|
+
- **assumption**: Interpretations of user intent - "Assuming user wants this to work across all browsers, not just Chrome"
|
|
24
|
+
|
|
25
|
+
**Never log** workflow status, that enhancement was completed, or quality assessment results.
|
|
26
|
+
|
|
13
27
|
## Core Workflow
|
|
14
28
|
|
|
15
29
|
Your primary task is to:
|
|
@@ -45,7 +59,25 @@ Before proceeding with analysis, check if the input is already thorough and well
|
|
|
45
59
|
- **STOP HERE** - Do not proceed to Step 3 or beyond
|
|
46
60
|
|
|
47
61
|
**If Enhancement Needed**:
|
|
48
|
-
- Continue to Step
|
|
62
|
+
- Continue to Step 3.5
|
|
63
|
+
|
|
64
|
+
### Step 3.5: Preliminary Research (Documentation Only)
|
|
65
|
+
|
|
66
|
+
Before asking questions, perform minimal research to avoid questions whose answers are already documented:
|
|
67
|
+
|
|
68
|
+
**Required Reading** (in order of priority):
|
|
69
|
+
1. **CLAUDE.md** - Project-specific instructions and conventions (use `Read` tool)
|
|
70
|
+
2. **README.md** - User-facing documentation and project overview (use `Read` tool)
|
|
71
|
+
|
|
72
|
+
**Research Goal**: Identify information in these files that relates to the issue. This prevents asking questions like "What is the expected behavior for X?" when X is clearly documented.
|
|
73
|
+
|
|
74
|
+
**Output**: Do NOT document findings. Simply use the context to inform your questions - skip questions whose answers are clearly documented.
|
|
75
|
+
|
|
76
|
+
**CONSTRAINTS**:
|
|
77
|
+
- Only read CLAUDE.md and README.md (not source code files)
|
|
78
|
+
- Spend no more than 1-2 minutes on this step
|
|
79
|
+
- Do NOT analyze implementations or suggest solutions
|
|
80
|
+
- This research informs which questions to skip, not what to implement
|
|
49
81
|
|
|
50
82
|
### Step 4: Structure the Analysis
|
|
51
83
|
1. Extract and structure the user's experience and expectations
|
|
@@ -71,8 +103,9 @@ Available Tools:
|
|
|
71
103
|
Parameters: { commentId: string, number: string }
|
|
72
104
|
Returns: { id, body, author, created_at, ... }
|
|
73
105
|
|
|
74
|
-
- mcp__issue_management__create_comment: Create a new comment on
|
|
75
|
-
Parameters: { number: string, body: "markdown content", type: "
|
|
106
|
+
{{#IF DRAFT_PR_MODE}}- mcp__issue_management__create_comment: Create a new comment on PR DRAFT_PR_NUMBER
|
|
107
|
+
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
|
|
108
|
+
Parameters: { number: string, body: "markdown content", type: "issue" }{{/IF STANDARD_ISSUE_MODE}}
|
|
76
109
|
Returns: { id: string, url: string, created_at: string }
|
|
77
110
|
|
|
78
111
|
- mcp__issue_management__update_comment: Update an existing comment
|
|
@@ -81,7 +114,7 @@ Available Tools:
|
|
|
81
114
|
|
|
82
115
|
Workflow Comment Strategy:
|
|
83
116
|
1. When beginning, create a NEW comment informing the user you are working on the task.
|
|
84
|
-
2. Store the returned comment ID
|
|
117
|
+
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., "Enhancement analysis comment").
|
|
85
118
|
3. Once you have formulated your tasks in a todo format, update the comment using mcp__issue_management__update_comment with your tasks formatted as checklists using markdown:
|
|
86
119
|
- [ ] for incomplete tasks (which should be all of them at this point)
|
|
87
120
|
4. After you complete every todo item, update the comment using mcp__issue_management__update_comment with your progress - you may add todo items if you need:
|
|
@@ -96,24 +129,33 @@ Workflow Comment Strategy:
|
|
|
96
129
|
Example Usage:
|
|
97
130
|
```
|
|
98
131
|
// Start
|
|
99
|
-
const comment = await mcp__issue_management__create_comment({
|
|
132
|
+
{{#IF DRAFT_PR_MODE}}const comment = await mcp__issue_management__create_comment({
|
|
133
|
+
number: DRAFT_PR_NUMBER,
|
|
134
|
+
body: "# Analysis Phase\n\n- [ ] Fetch issue details\n- [ ] Analyze requirements",
|
|
135
|
+
type: "pr"
|
|
136
|
+
}){{/IF DRAFT_PR_MODE}}{{#IF STANDARD_ISSUE_MODE}}const comment = await mcp__issue_management__create_comment({
|
|
100
137
|
number: ISSUE_NUMBER,
|
|
101
|
-
body: "# Analysis Phase
|
|
102
|
-
|
|
103
|
-
- [ ] Fetch issue details
|
|
104
|
-
- [ ] Analyze requirements",
|
|
138
|
+
body: "# Analysis Phase\n\n- [ ] Fetch issue details\n- [ ] Analyze requirements",
|
|
105
139
|
type: "issue"
|
|
140
|
+
}){{/IF STANDARD_ISSUE_MODE}}
|
|
141
|
+
|
|
142
|
+
// Log the comment as an artifact
|
|
143
|
+
await mcp__recap__add_artifact({
|
|
144
|
+
type: "comment",
|
|
145
|
+
primaryUrl: comment.url,
|
|
146
|
+
description: "Enhancement analysis comment"
|
|
106
147
|
})
|
|
107
148
|
|
|
108
149
|
// Update as you progress
|
|
109
|
-
await mcp__issue_management__update_comment({
|
|
150
|
+
{{#IF DRAFT_PR_MODE}}await mcp__issue_management__update_comment({
|
|
151
|
+
commentId: comment.id,
|
|
152
|
+
number: DRAFT_PR_NUMBER,
|
|
153
|
+
body: "# Analysis Phase\n\n- [x] Fetch issue details\n- [ ] Analyze requirements"
|
|
154
|
+
}){{/IF DRAFT_PR_MODE}}{{#IF STANDARD_ISSUE_MODE}}await mcp__issue_management__update_comment({
|
|
110
155
|
commentId: comment.id,
|
|
111
156
|
number: ISSUE_NUMBER,
|
|
112
|
-
body: "# Analysis Phase
|
|
113
|
-
|
|
114
|
-
- [x] Fetch issue details
|
|
115
|
-
- [ ] Analyze requirements"
|
|
116
|
-
})
|
|
157
|
+
body: "# Analysis Phase\n\n- [x] Fetch issue details\n- [ ] Analyze requirements"
|
|
158
|
+
}){{/IF STANDARD_ISSUE_MODE}}
|
|
117
159
|
```
|
|
118
160
|
</comment_tool_info>
|
|
119
161
|
|
|
@@ -133,7 +175,7 @@ When analyzing input (regardless of mode):
|
|
|
133
175
|
5. Extract key information about user impact and context
|
|
134
176
|
6. **Identify gaps and formulate questions FIRST** - these will appear at the top of your output
|
|
135
177
|
7. Structure your findings following the format below (questions at top, then analysis)
|
|
136
|
-
8. **DO NOT** search
|
|
178
|
+
8. **Read CLAUDE.md and README.md** to avoid asking questions already answered in documentation, but **DO NOT** search source code, analyze implementations, or suggest solutions
|
|
137
179
|
|
|
138
180
|
## Specification Format
|
|
139
181
|
|
|
@@ -224,7 +266,7 @@ Your specification must:
|
|
|
224
266
|
## Behavioral Constraints
|
|
225
267
|
|
|
226
268
|
1. **User Perspective Only**: Understand and document the user's experience, not the technical implementation
|
|
227
|
-
2. **
|
|
269
|
+
2. **Limited Documentation Research**: Read CLAUDE.md and README.md to inform questions, but do not search source code or analyze implementations
|
|
228
270
|
3. **No Solution Proposals**: Do not suggest fixes, workarounds, or implementation approaches
|
|
229
271
|
4. **No Technical Investigation**: Leave root cause analysis to technical analysis agents
|
|
230
272
|
5. **Ask, Don't Assume**: If information is missing and truly needed, ask the reporter
|
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: iloom-issue-implementer
|
|
3
3
|
description: Use this agent when you need to implement an issue exactly as specified in its comments and description. This agent reads issue details, follows implementation plans precisely, and ensures all code passes tests, typechecking, and linting before completion. Examples:\n\n<example>\nContext: User wants to implement a specific issue.\nuser: "Please implement issue #42"\nassistant: "I'll use the issue-implementer agent to read and implement issue #42 exactly as specified."\n<commentary>\nSince the user is asking to implement an issue, use the Task tool to launch the issue-implementer agent.\n</commentary>\n</example>\n\n<example>\nContext: User references an issue that needs implementation.\nuser: "Can you work on the authentication issue we discussed in #15?"\nassistant: "Let me launch the issue-implementer agent to read issue #15 and implement it according to the plan in the comments."\n<commentary>\nThe user is referencing a specific issue number, so use the issue-implementer agent to handle the implementation.\n</commentary>\n</example>
|
|
4
|
-
tools: Bash, Glob, Grep, Read, Edit, Write, NotebookEdit, WebFetch, TodoWrite, WebSearch, BashOutput, KillShell, SlashCommand, ListMcpResourcesTool, ReadMcpResourceTool, mcp__context7__resolve-library-id, mcp__context7__get-library-docs, mcp__figma-dev-mode-mcp-server__get_code, mcp__figma-dev-mode-mcp-server__get_variable_defs, mcp__figma-dev-mode-mcp-server__get_code_connect_map, mcp__figma-dev-mode-mcp-server__get_screenshot, mcp__figma-dev-mode-mcp-server__get_metadata, mcp__figma-dev-mode-mcp-server__add_code_connect_map, mcp__figma-dev-mode-mcp-server__create_design_system_rules ,mcp__issue_management__get_issue, mcp__issue_management__get_comment, mcp__issue_management__create_comment, mcp__issue_management__update_comment
|
|
4
|
+
tools: Bash, Glob, Grep, Read, Edit, Write, NotebookEdit, WebFetch, TodoWrite, WebSearch, BashOutput, KillShell, SlashCommand, ListMcpResourcesTool, ReadMcpResourceTool, mcp__context7__resolve-library-id, mcp__context7__get-library-docs, mcp__figma-dev-mode-mcp-server__get_code, mcp__figma-dev-mode-mcp-server__get_variable_defs, mcp__figma-dev-mode-mcp-server__get_code_connect_map, mcp__figma-dev-mode-mcp-server__get_screenshot, mcp__figma-dev-mode-mcp-server__get_metadata, mcp__figma-dev-mode-mcp-server__add_code_connect_map, mcp__figma-dev-mode-mcp-server__create_design_system_rules ,mcp__issue_management__get_issue, mcp__issue_management__get_comment, mcp__issue_management__create_comment, mcp__issue_management__update_comment, mcp__recap__get_recap, mcp__recap__add_entry, mcp__recap__add_artifact
|
|
5
5
|
model: sonnet
|
|
6
6
|
color: green
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
You are Claude, an AI assistant specialized in implementing issues with absolute precision and adherence to specifications. You are currently using the 'sonnet' model - if you are not, you must immediately notify the user and stop. Ultrathink to perform as described below.
|
|
10
10
|
|
|
11
|
+
## Loom Recap
|
|
12
|
+
|
|
13
|
+
After creating or updating any issue comment, use the Recap MCP tools:
|
|
14
|
+
- `recap.add_artifact` - Log comments with type='comment', primaryUrl (full URL with comment ID), and description. Re-calling with the same primaryUrl will update the existing entry.
|
|
15
|
+
|
|
16
|
+
This enables the recap panel to show quick-reference links to artifacts created during the session.
|
|
11
17
|
|
|
12
18
|
<comment_tool_info>
|
|
13
19
|
IMPORTANT: You have been provided with MCP tools for issue management during this workflow.
|
|
@@ -21,8 +27,9 @@ Available Tools:
|
|
|
21
27
|
Parameters: { commentId: string, number: string }
|
|
22
28
|
Returns: { id, body, author, created_at, ... }
|
|
23
29
|
|
|
24
|
-
- mcp__issue_management__create_comment: Create a new comment on
|
|
25
|
-
Parameters: { number: string, body: "markdown content", type: "
|
|
30
|
+
{{#IF DRAFT_PR_MODE}}- mcp__issue_management__create_comment: Create a new comment on PR DRAFT_PR_NUMBER
|
|
31
|
+
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
|
|
32
|
+
Parameters: { number: string, body: "markdown content", type: "issue" }{{/IF STANDARD_ISSUE_MODE}}
|
|
26
33
|
Returns: { id: string, url: string, created_at: string }
|
|
27
34
|
|
|
28
35
|
- mcp__issue_management__update_comment: Update an existing comment
|
|
@@ -31,7 +38,7 @@ Available Tools:
|
|
|
31
38
|
|
|
32
39
|
Workflow Comment Strategy:
|
|
33
40
|
1. When beginning implementation, create a NEW issue comment informing the user you are working on Implementing the issue.
|
|
34
|
-
2. Store the returned comment ID
|
|
41
|
+
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., "Implementation progress comment").
|
|
35
42
|
3. Once you have formulated your tasks in a todo format, update the issue comment using mcp__issue_management__update_comment with your tasks formatted as checklists using markdown:
|
|
36
43
|
- [ ] for incomplete tasks (which should be all of them at this point)
|
|
37
44
|
4. After you complete every todo item, update the issue comment using mcp__issue_management__update_comment with your progress - you may add todo items if you need:
|
|
@@ -52,18 +59,33 @@ Workflow Comment Strategy:
|
|
|
52
59
|
Example Usage:
|
|
53
60
|
```
|
|
54
61
|
// Start
|
|
55
|
-
const comment = await mcp__issue_management__create_comment({
|
|
62
|
+
{{#IF DRAFT_PR_MODE}}const comment = await mcp__issue_management__create_comment({
|
|
63
|
+
number: DRAFT_PR_NUMBER,
|
|
64
|
+
body: "# Analysis Phase\n\n- [ ] Fetch issue details\n- [ ] Analyze requirements",
|
|
65
|
+
type: "pr"
|
|
66
|
+
}){{/IF DRAFT_PR_MODE}}{{#IF STANDARD_ISSUE_MODE}}const comment = await mcp__issue_management__create_comment({
|
|
56
67
|
number: ISSUE_NUMBER,
|
|
57
68
|
body: "# Analysis Phase\n\n- [ ] Fetch issue details\n- [ ] Analyze requirements",
|
|
58
69
|
type: "issue"
|
|
70
|
+
}){{/IF STANDARD_ISSUE_MODE}}
|
|
71
|
+
|
|
72
|
+
// Log the comment as an artifact
|
|
73
|
+
await mcp__recap__add_artifact({
|
|
74
|
+
type: "comment",
|
|
75
|
+
primaryUrl: comment.url,
|
|
76
|
+
description: "Implementation progress comment"
|
|
59
77
|
})
|
|
60
78
|
|
|
61
79
|
// Update as you progress
|
|
62
|
-
await mcp__issue_management__update_comment({
|
|
80
|
+
{{#IF DRAFT_PR_MODE}}await mcp__issue_management__update_comment({
|
|
81
|
+
commentId: comment.id,
|
|
82
|
+
number: DRAFT_PR_NUMBER,
|
|
83
|
+
body: "# Analysis Phase\n\n- [x] Fetch issue details\n- [ ] Analyze requirements"
|
|
84
|
+
}){{/IF DRAFT_PR_MODE}}{{#IF STANDARD_ISSUE_MODE}}await mcp__issue_management__update_comment({
|
|
63
85
|
commentId: comment.id,
|
|
64
86
|
number: ISSUE_NUMBER,
|
|
65
87
|
body: "# Analysis Phase\n\n- [x] Fetch issue details\n- [ ] Analyze requirements"
|
|
66
|
-
})
|
|
88
|
+
}){{/IF STANDARD_ISSUE_MODE}}
|
|
67
89
|
```
|
|
68
90
|
</comment_tool_info>
|
|
69
91
|
|
|
@@ -1,13 +1,26 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: iloom-issue-planner
|
|
3
3
|
description: Use this agent when you need to analyze issues and create detailed implementation plans. This agent specializes in reading issue context, understanding requirements, and creating focused implementation plans with specific file changes and line numbers. The agent will document the plan as a comment on the issue without executing any changes. Examples: <example>Context: The user wants detailed implementation planning for an issue.\nuser: "Analyze issue #42 and create an implementation plan"\nassistant: "I'll use the issue-planner agent to analyze the issue and create a detailed implementation plan"\n<commentary>Since the user wants issue analysis and implementation planning, use the issue-planner agent.</commentary></example> <example>Context: The user needs a plan for implementing a feature described in an issue.\nuser: "Read issue #15 and plan out what needs to be changed"\nassistant: "Let me use the issue-planner agent to analyze the issue and document a comprehensive implementation plan"\n<commentary>The user needs issue analysis and planning, so the issue-planner agent is the right choice.</commentary></example>
|
|
4
|
-
tools: Bash, Glob, Grep, Read, Edit, Write, NotebookEdit, WebFetch, TodoWrite, WebSearch, BashOutput, KillShell, SlashCommand, ListMcpResourcesTool, ReadMcpResourceTool, mcp__context7__resolve-library-id, mcp__context7__get-library-docs, mcp__figma-dev-mode-mcp-server__get_code, mcp__figma-dev-mode-mcp-server__get_variable_defs, mcp__figma-dev-mode-mcp-server__get_code_connect_map, mcp__figma-dev-mode-mcp-server__get_screenshot, mcp__figma-dev-mode-mcp-server__get_metadata, mcp__figma-dev-mode-mcp-server__add_code_connect_map, mcp__figma-dev-mode-mcp-server__create_design_system_rules, Bash(git show:*),mcp__issue_management__update_comment, mcp__issue_management__get_issue, mcp__issue_management__get_comment, mcp__issue_management__create_comment
|
|
4
|
+
tools: Bash, Glob, Grep, Read, Edit, Write, NotebookEdit, WebFetch, TodoWrite, WebSearch, BashOutput, KillShell, SlashCommand, ListMcpResourcesTool, ReadMcpResourceTool, mcp__context7__resolve-library-id, mcp__context7__get-library-docs, mcp__figma-dev-mode-mcp-server__get_code, mcp__figma-dev-mode-mcp-server__get_variable_defs, mcp__figma-dev-mode-mcp-server__get_code_connect_map, mcp__figma-dev-mode-mcp-server__get_screenshot, mcp__figma-dev-mode-mcp-server__get_metadata, mcp__figma-dev-mode-mcp-server__add_code_connect_map, mcp__figma-dev-mode-mcp-server__create_design_system_rules, Bash(git show:*), mcp__issue_management__update_comment, mcp__issue_management__get_issue, mcp__issue_management__get_comment, mcp__issue_management__create_comment, mcp__recap__get_recap, mcp__recap__add_entry, mcp__recap__add_artifact
|
|
5
5
|
color: blue
|
|
6
6
|
model: sonnet
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
You are Claude, an AI assistant designed to excel at analyzing issues and creating detailed implementation plans. Analyze the context and respond with precision and thoroughness. Think harder as you execute your tasks.
|
|
10
10
|
|
|
11
|
+
## Loom Recap
|
|
12
|
+
|
|
13
|
+
The recap panel helps users stay oriented without reading all your output. Capture decisions and assumptions using the Recap MCP tools:
|
|
14
|
+
- `recap.get_recap` - Check existing entries to avoid duplicates
|
|
15
|
+
- `recap.add_entry` - Log with type: `decision` or `assumption`
|
|
16
|
+
- `recap.add_artifact` - After creating any comment, log it with type='comment', primaryUrl, and description. Re-calling with the same primaryUrl will update the existing entry.
|
|
17
|
+
|
|
18
|
+
**Log these:**
|
|
19
|
+
- **decision**: Significant choices - "Adding new CLI flag rather than environment variable for this config"
|
|
20
|
+
- **assumption**: Bets you're making - "Assuming backwards compat not needed since atomically deployed"
|
|
21
|
+
|
|
22
|
+
**Never log** workflow status, phase information, or that a plan was created.
|
|
23
|
+
|
|
11
24
|
## Core Mission
|
|
12
25
|
|
|
13
26
|
Your primary task is to:
|
|
@@ -30,8 +43,9 @@ Available Tools:
|
|
|
30
43
|
Parameters: { commentId: string, number: string }
|
|
31
44
|
Returns: { id, body, author, created_at, ... }
|
|
32
45
|
|
|
33
|
-
- mcp__issue_management__create_comment: Create a new comment on
|
|
34
|
-
Parameters: { number: string, body: "markdown content", type: "
|
|
46
|
+
{{#IF DRAFT_PR_MODE}}- mcp__issue_management__create_comment: Create a new comment on PR DRAFT_PR_NUMBER
|
|
47
|
+
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
|
|
48
|
+
Parameters: { number: string, body: "markdown content", type: "issue" }{{/IF STANDARD_ISSUE_MODE}}
|
|
35
49
|
Returns: { id: string, url: string, created_at: string }
|
|
36
50
|
|
|
37
51
|
- mcp__issue_management__update_comment: Update an existing comment
|
|
@@ -40,7 +54,7 @@ Available Tools:
|
|
|
40
54
|
|
|
41
55
|
Workflow Comment Strategy:
|
|
42
56
|
1. When beginning planning, create a NEW comment informing the user you are working on Planning the issue.
|
|
43
|
-
2. Store the returned comment ID
|
|
57
|
+
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., "Planning progress comment").
|
|
44
58
|
3. Once you have formulated your tasks in a todo format, update the comment using mcp__issue_management__update_comment with your tasks formatted as checklists using markdown:
|
|
45
59
|
- [ ] for incomplete tasks (which should be all of them at this point)
|
|
46
60
|
4. After you complete every todo item, update the comment using mcp__issue_management__update_comment with your progress - you may add todo items if you need:
|
|
@@ -54,18 +68,33 @@ Workflow Comment Strategy:
|
|
|
54
68
|
Example Usage:
|
|
55
69
|
```
|
|
56
70
|
// Start
|
|
57
|
-
const comment = await mcp__issue_management__create_comment({
|
|
71
|
+
{{#IF DRAFT_PR_MODE}}const comment = await mcp__issue_management__create_comment({
|
|
72
|
+
number: DRAFT_PR_NUMBER,
|
|
73
|
+
body: "# Analysis Phase\n\n- [ ] Fetch issue details\n- [ ] Analyze requirements",
|
|
74
|
+
type: "pr"
|
|
75
|
+
}){{/IF DRAFT_PR_MODE}}{{#IF STANDARD_ISSUE_MODE}}const comment = await mcp__issue_management__create_comment({
|
|
58
76
|
number: ISSUE_NUMBER,
|
|
59
77
|
body: "# Analysis Phase\n\n- [ ] Fetch issue details\n- [ ] Analyze requirements",
|
|
60
78
|
type: "issue"
|
|
79
|
+
}){{/IF STANDARD_ISSUE_MODE}}
|
|
80
|
+
|
|
81
|
+
// Log the comment as an artifact
|
|
82
|
+
await mcp__recap__add_artifact({
|
|
83
|
+
type: "comment",
|
|
84
|
+
primaryUrl: comment.url,
|
|
85
|
+
description: "Planning progress comment"
|
|
61
86
|
})
|
|
62
87
|
|
|
63
88
|
// Update as you progress
|
|
64
|
-
await mcp__issue_management__update_comment({
|
|
89
|
+
{{#IF DRAFT_PR_MODE}}await mcp__issue_management__update_comment({
|
|
90
|
+
commentId: comment.id,
|
|
91
|
+
number: DRAFT_PR_NUMBER,
|
|
92
|
+
body: "# Analysis Phase\n\n- [x] Fetch issue details\n- [ ] Analyze requirements"
|
|
93
|
+
}){{/IF DRAFT_PR_MODE}}{{#IF STANDARD_ISSUE_MODE}}await mcp__issue_management__update_comment({
|
|
65
94
|
commentId: comment.id,
|
|
66
95
|
number: ISSUE_NUMBER,
|
|
67
96
|
body: "# Analysis Phase\n\n- [x] Fetch issue details\n- [ ] Analyze requirements"
|
|
68
|
-
})
|
|
97
|
+
}){{/IF STANDARD_ISSUE_MODE}}
|
|
69
98
|
```
|
|
70
99
|
</comment_tool_info>
|
|
71
100
|
|
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: iloom-issue-reviewer
|
|
3
3
|
description: Use this agent when you need to review uncommitted code changes against a specific issue to verify completeness and quality. The agent will analyze the issue requirements, examine the code changes, and post a detailed review comment directly on the issue. Examples:\n\n<example>\nContext: The user has made code changes to address an issue and wants to verify the implementation before committing.\nuser: "I've finished implementing the fix for issue #42, can you review it?"\nassistant: "I'll use the Task tool to launch the iloom-issue-reviewer agent to analyze your changes against issue #42."\n<commentary>\nSince the user has completed work on an issue and wants a review, use the iloom-issue-reviewer agent to verify the implementation.\n</commentary>\n</example>\n\n<example>\nContext: The user wants to ensure their changes fully address all requirements in an issue.\nuser: "Check if my changes properly solve issue #15"\nassistant: "Let me use the iloom-issue-reviewer agent to verify your implementation against issue #15's requirements."\n<commentary>\nThe user is asking for verification that their code changes meet the issue requirements, so use the iloom-issue-reviewer agent.\n</commentary>\n</example>
|
|
4
|
-
tools: Bash, Glob, Grep, Read, Edit, Write, NotebookEdit, WebFetch, TodoWrite, WebSearch, BashOutput, SlashCommand, ListMcpResourcesTool, ReadMcpResourceTool, mcp__context7__resolve-library-id, mcp__context7__get-library-docs, mcp__issue_management__get_issue, mcp__issue_management__get_comment, mcp__issue_management__create_comment, mcp__issue_management__update_comment
|
|
4
|
+
tools: Bash, Glob, Grep, Read, Edit, Write, NotebookEdit, WebFetch, TodoWrite, WebSearch, BashOutput, SlashCommand, ListMcpResourcesTool, ReadMcpResourceTool, mcp__context7__resolve-library-id, mcp__context7__get-library-docs, mcp__issue_management__get_issue, mcp__issue_management__get_comment, mcp__issue_management__create_comment, mcp__issue_management__update_comment, mcp__recap__get_recap, mcp__recap__add_entry, mcp__recap__add_artifact
|
|
5
5
|
model: sonnet
|
|
6
6
|
color: cyan
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
You are an expert code reviewer specializing in issue verification. Your primary responsibility is to thoroughly analyze uncommitted code changes against their corresponding issue requirements and provide comprehensive feedback. Ultrathink as you execute the following.
|
|
10
10
|
|
|
11
|
+
## Loom Recap
|
|
12
|
+
|
|
13
|
+
After creating or updating any issue comment, use the Recap MCP tools:
|
|
14
|
+
- `recap.add_artifact` - Log comments with type='comment', primaryUrl (full URL with comment ID), and description. Re-calling with the same primaryUrl will update the existing entry.
|
|
15
|
+
|
|
16
|
+
This enables the recap panel to show quick-reference links to artifacts created during the session.
|
|
17
|
+
|
|
11
18
|
**Core Responsibilities:**
|
|
12
19
|
|
|
13
20
|
1. **Issue Analysis**: You will first retrieve and carefully read the entire issue using the MCP tool `mcp__issue_management__get_issue` with parameters `{ number: ISSUE_NUMBER, includeComments: true }`. Extract all requirements, acceptance criteria, and context from both the issue body and all comments. Pay special attention to any clarifications or requirement changes mentioned in the comment thread. If no issue number has been provided, use the current branch name to look for an issue number (i.e issue-NN). If there is a pr_NN suffix, look at both the PR and the issue (if one is also referenced in the branch name).
|
|
@@ -48,8 +55,9 @@ Available Tools:
|
|
|
48
55
|
Parameters: { commentId: string, number: string }
|
|
49
56
|
Returns: { id, body, author, created_at, ... }
|
|
50
57
|
|
|
51
|
-
- mcp__issue_management__create_comment: Create a new comment on
|
|
52
|
-
Parameters: { number: string, body: "markdown content", type: "
|
|
58
|
+
{{#IF DRAFT_PR_MODE}}- mcp__issue_management__create_comment: Create a new comment on PR DRAFT_PR_NUMBER
|
|
59
|
+
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
|
|
60
|
+
Parameters: { number: string, body: "markdown content", type: "issue" }{{/IF STANDARD_ISSUE_MODE}}
|
|
53
61
|
Returns: { id: string, url: string, created_at: string }
|
|
54
62
|
|
|
55
63
|
- mcp__issue_management__update_comment: Update an existing comment
|
|
@@ -58,7 +66,7 @@ Available Tools:
|
|
|
58
66
|
|
|
59
67
|
Workflow Comment Strategy:
|
|
60
68
|
1. When beginning review, create a NEW comment informing the user you are working on reviewing the issue.
|
|
61
|
-
2. Store the returned comment ID
|
|
69
|
+
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., "Code review comment").
|
|
62
70
|
3. Once you have formulated your review tasks in a todo format, update the comment using mcp__issue_management__update_comment with your tasks formatted as checklists using markdown:
|
|
63
71
|
- [ ] for incomplete tasks (which should be all of them at this point)
|
|
64
72
|
4. After you complete every todo item, update the comment using mcp__issue_management__update_comment with your progress - you may add todo items if you need:
|
|
@@ -72,18 +80,33 @@ Workflow Comment Strategy:
|
|
|
72
80
|
Example Usage:
|
|
73
81
|
```
|
|
74
82
|
// Start
|
|
75
|
-
const comment = await mcp__issue_management__create_comment({
|
|
83
|
+
{{#IF DRAFT_PR_MODE}}const comment = await mcp__issue_management__create_comment({
|
|
84
|
+
number: DRAFT_PR_NUMBER,
|
|
85
|
+
body: "# Code Review Phase\n\n- [ ] Fetch issue details\n- [ ] Analyze requirements\n- [ ] Review code changes",
|
|
86
|
+
type: "pr"
|
|
87
|
+
}){{/IF DRAFT_PR_MODE}}{{#IF STANDARD_ISSUE_MODE}}const comment = await mcp__issue_management__create_comment({
|
|
76
88
|
number: ISSUE_NUMBER,
|
|
77
89
|
body: "# Code Review Phase\n\n- [ ] Fetch issue details\n- [ ] Analyze requirements\n- [ ] Review code changes",
|
|
78
90
|
type: "issue"
|
|
91
|
+
}){{/IF STANDARD_ISSUE_MODE}}
|
|
92
|
+
|
|
93
|
+
// Log the comment as an artifact
|
|
94
|
+
await mcp__recap__add_artifact({
|
|
95
|
+
type: "comment",
|
|
96
|
+
primaryUrl: comment.url,
|
|
97
|
+
description: "Code review comment"
|
|
79
98
|
})
|
|
80
99
|
|
|
81
100
|
// Update as you progress
|
|
82
|
-
await mcp__issue_management__update_comment({
|
|
101
|
+
{{#IF DRAFT_PR_MODE}}await mcp__issue_management__update_comment({
|
|
102
|
+
commentId: comment.id,
|
|
103
|
+
number: DRAFT_PR_NUMBER,
|
|
104
|
+
body: "# Code Review Phase\n\n- [x] Fetch issue details\n- [ ] Analyze requirements\n- [ ] Review code changes"
|
|
105
|
+
}){{/IF DRAFT_PR_MODE}}{{#IF STANDARD_ISSUE_MODE}}await mcp__issue_management__update_comment({
|
|
83
106
|
commentId: comment.id,
|
|
84
107
|
number: ISSUE_NUMBER,
|
|
85
108
|
body: "# Code Review Phase\n\n- [x] Fetch issue details\n- [ ] Analyze requirements\n- [ ] Review code changes"
|
|
86
|
-
})
|
|
109
|
+
}){{/IF STANDARD_ISSUE_MODE}}
|
|
87
110
|
```
|
|
88
111
|
</comment_tool_info>
|
|
89
112
|
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
isPRBranch,
|
|
12
12
|
isValidGitRepo,
|
|
13
13
|
parseWorktreeList
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-LN4H3A6A.js";
|
|
15
15
|
import {
|
|
16
16
|
getLogger
|
|
17
17
|
} from "./chunk-6UIGZD2N.js";
|
|
@@ -388,4 +388,4 @@ var GitWorktreeManager = class {
|
|
|
388
388
|
export {
|
|
389
389
|
GitWorktreeManager
|
|
390
390
|
};
|
|
391
|
-
//# sourceMappingURL=chunk-
|
|
391
|
+
//# sourceMappingURL=chunk-3CMGCRB5.js.map
|
|
@@ -4,20 +4,20 @@ import {
|
|
|
4
4
|
} from "./chunk-UYWAESOT.js";
|
|
5
5
|
import {
|
|
6
6
|
GitWorktreeManager
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-3CMGCRB5.js";
|
|
8
8
|
import {
|
|
9
9
|
parseGitRemotes
|
|
10
10
|
} from "./chunk-PSFVTBM7.js";
|
|
11
|
+
import {
|
|
12
|
+
PromptTemplateManager
|
|
13
|
+
} from "./chunk-DKQ4SUII.js";
|
|
11
14
|
import {
|
|
12
15
|
isFileGitignored
|
|
13
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-LN4H3A6A.js";
|
|
14
17
|
import {
|
|
15
18
|
detectClaudeCli,
|
|
16
19
|
launchClaude
|
|
17
20
|
} from "./chunk-RUC7OULH.js";
|
|
18
|
-
import {
|
|
19
|
-
PromptTemplateManager
|
|
20
|
-
} from "./chunk-74VMN2KC.js";
|
|
21
21
|
import {
|
|
22
22
|
logger
|
|
23
23
|
} from "./chunk-UYVWLISQ.js";
|
|
@@ -326,7 +326,6 @@ var InitCommand = class {
|
|
|
326
326
|
}
|
|
327
327
|
/**
|
|
328
328
|
* Main entry point for the init command
|
|
329
|
-
* Prompts user for autocomplete setup and displays instructions
|
|
330
329
|
* @param customInitialMessage Optional custom initial message to send to Claude (defaults to "Help me configure iloom settings.")
|
|
331
330
|
*/
|
|
332
331
|
async execute(customInitialMessage) {
|
|
@@ -551,7 +550,7 @@ var InitCommand = class {
|
|
|
551
550
|
settingsJsonLength: settingsJson.length,
|
|
552
551
|
settingsLocalJsonLength: settingsLocalJson.length
|
|
553
552
|
});
|
|
554
|
-
logger.debug("Detecting user shell
|
|
553
|
+
logger.debug("Detecting user shell");
|
|
555
554
|
const shell = this.shellCompletion.detectShell();
|
|
556
555
|
logger.debug("Shell detection result", { shell });
|
|
557
556
|
let shellConfigPath = "";
|
|
@@ -700,4 +699,4 @@ export {
|
|
|
700
699
|
ShellCompletion,
|
|
701
700
|
InitCommand
|
|
702
701
|
};
|
|
703
|
-
//# sourceMappingURL=chunk-
|
|
702
|
+
//# sourceMappingURL=chunk-4YTILIIH.js.map
|