@polka-codes/core 0.9.23 → 0.9.25
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/dist/_tsup-dts-rollup.d.ts +32 -14
- package/dist/index.d.ts +3 -1
- package/dist/index.js +98 -60
- package/package.json +1 -1
|
@@ -774,7 +774,7 @@ export declare const default_alias_3: {
|
|
|
774
774
|
export declare const default_alias_4: {
|
|
775
775
|
readonly name: "reviewDiff";
|
|
776
776
|
readonly description: "Reviews a git diff";
|
|
777
|
-
readonly prompt: "\n# Code Review Prompt\n\nYou are a senior software engineer reviewing code changes.\n\n## Critical Instructions\n**ONLY review the actual changes shown in the diff.** Do not comment on existing code that wasn't modified.\n\n## Viewing Changes\n- **
|
|
777
|
+
readonly prompt: "\n# Code Review Prompt\n\nYou are a senior software engineer reviewing code changes.\n\n## Critical Instructions\n- **ONLY review the actual changes shown in the diff.** Do not comment on existing code that wasn't modified.\n- **ONLY run git_diff on files that are reviewable source/config files** per the \"File Selection for git_diff\" rules below. Do not pass excluded files to git_diff.\n\n## File Selection for git_diff\nUse <file_status> to decide which files to diff. Include only files likely to contain human-authored source or meaningful configuration.\n\nInclude (run git_diff):\n- Application/source code\n- UI/templates/assets code\n- Infra/config that affects behavior\n\nExclude (do NOT run git_diff; do not review):\n- Lockfiles\n- Generated/build artifacts & deps\n- Test artifacts/snapshots\n- Data and fixtures\n- Binary/media/minified/maps\n\n## Viewing Changes\n- For each included file, **use git_diff** to inspect the actual code changes:\n - **Pull request:** use the provided commit range for the git_diff tool with contextLines: 5 and includeLineNumbers: true, but only surface and review the included files.\n - **Local changes:** diff staged or unstaged included files using git_diff with contextLines: 5 and includeLineNumbers: true.\n- The diff will include line number annotations: [Line N] for additions and [Line N removed] for deletions.\n- You may receive:\n - <pr_title>\n - <pr_description>\n - <commit_messages>\n- A <review_instructions> tag tells you the focus of the review.\n- Use <file_status> to understand which files were modified, added, deleted, or renamed and to apply the inclusion/exclusion rules above.\n\n## Line Number Reporting\n- Use the line numbers from the annotations in the diff output.\n- For additions: use the number from the [Line N] annotation after the + line.\n- For deletions: use the number from the [Line N removed] annotation after the - line.\n- For modifications: report the line number of the new/current code (from [Line N]).\n- Report single lines as \"N\" and ranges as \"N-M\".\n\n## Review Guidelines\nFocus exclusively on the changed lines (+ additions, - deletions, modified lines):\n- **Specific issues:** Point to exact problems in the changed code with accurate line references from the annotations.\n- **Actionable fixes:** Provide concrete solutions, not vague suggestions.\n- **Clear reasoning:** Explain why each issue matters and how to fix it.\n- **Avoid generic advice** unless directly tied to a specific problem visible in the diff.\n\n## What NOT to review\n- Files excluded by the \"File Selection for git_diff\" rules (do not diff or comment on them).\n- Existing unchanged code.\n- Overall project structure/architecture unless directly impacted by the changes.\n- Missing features or functionality not part of this diff.\n\n## Output Format\nDo not include praise or positive feedback.\nOnly include reviews for actual issues found in the changed code.\n\nReturn your review as a JSON object inside a ```json block, wrapped like:\n<tool_attempt_completion>\n<tool_parameter_result>\n```json\n{\n \"overview\": \"Summary of specific issues found in the diff changes, 'No issues found', or 'No reviewable changes' if all modified files were excluded.\",\n \"specificReviews\": [\n {\n \"file\": \"path/filename.ext\",\n \"lines\": \"N or N-M\",\n \"review\": \"Specific issue with the changed code and exact actionable fix.\"\n }\n ]\n}\n```\n</tool_parameter_result>\n</tool_attempt_completion>\n";
|
|
778
778
|
readonly formatInput: (params: Input_2) => string;
|
|
779
779
|
readonly parseOutput: (output: string) => Output_2;
|
|
780
780
|
readonly agent: (options: SharedAgentOptions) => AnalyzerAgent;
|
|
@@ -787,7 +787,7 @@ export declare const default_alias_5: {
|
|
|
787
787
|
readonly parameters: z.ZodObject<{
|
|
788
788
|
staged: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>;
|
|
789
789
|
commitRange: z.ZodOptional<z.ZodString>;
|
|
790
|
-
file: z.
|
|
790
|
+
file: z.ZodString;
|
|
791
791
|
contextLines: z.ZodDefault<z.ZodOptional<z.ZodCoercedNumber<unknown>>>;
|
|
792
792
|
includeLineNumbers: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>;
|
|
793
793
|
}, z.core.$strip>;
|
|
@@ -799,7 +799,7 @@ export declare const default_alias_5: {
|
|
|
799
799
|
parameters: z.ZodObject<{
|
|
800
800
|
staged: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>;
|
|
801
801
|
commitRange: z.ZodOptional<z.ZodString>;
|
|
802
|
-
file: z.
|
|
802
|
+
file: z.ZodString;
|
|
803
803
|
contextLines: z.ZodDefault<z.ZodOptional<z.ZodCoercedNumber<unknown>>>;
|
|
804
804
|
includeLineNumbers: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>;
|
|
805
805
|
}, z.core.$strip>;
|
|
@@ -1331,7 +1331,7 @@ export { systemInformation as systemInformation_alias_2 }
|
|
|
1331
1331
|
/**
|
|
1332
1332
|
* Union type of all possible task events
|
|
1333
1333
|
*/
|
|
1334
|
-
declare type TaskEvent = TaskEventStartTask | TaskEventStartRequest | TaskEventEndRequest | TaskEventUsage | TaskEventText |
|
|
1334
|
+
declare type TaskEvent = TaskEventStartTask | TaskEventStartRequest | TaskEventEndRequest | TaskEventUsage | TaskEventText | TaskEventToolUse | TaskEventToolResult | TaskEventToolError | TaskEventToolPause | TaskEventToolHandOverDelegate | TaskEventUsageExceeded | TaskEventEndTask;
|
|
1335
1335
|
export { TaskEvent }
|
|
1336
1336
|
export { TaskEvent as TaskEvent_alias_1 }
|
|
1337
1337
|
export { TaskEvent as TaskEvent_alias_2 }
|
|
@@ -1432,17 +1432,14 @@ export { TaskEventText }
|
|
|
1432
1432
|
export { TaskEventText as TaskEventText_alias_1 }
|
|
1433
1433
|
export { TaskEventText as TaskEventText_alias_2 }
|
|
1434
1434
|
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
*/
|
|
1438
|
-
declare interface TaskEventTool extends TaskEventBase {
|
|
1439
|
-
kind: TaskEventKind.ToolUse | TaskEventKind.ToolReply | TaskEventKind.ToolInvalid | TaskEventKind.ToolError | TaskEventKind.ToolInterrupted;
|
|
1435
|
+
declare interface TaskEventToolError extends TaskEventBase {
|
|
1436
|
+
kind: TaskEventKind.ToolError;
|
|
1440
1437
|
tool: string;
|
|
1441
|
-
|
|
1438
|
+
error: ToolResponseError | ToolResponseResult;
|
|
1442
1439
|
}
|
|
1443
|
-
export {
|
|
1444
|
-
export {
|
|
1445
|
-
export {
|
|
1440
|
+
export { TaskEventToolError }
|
|
1441
|
+
export { TaskEventToolError as TaskEventToolError_alias_1 }
|
|
1442
|
+
export { TaskEventToolError as TaskEventToolError_alias_2 }
|
|
1446
1443
|
|
|
1447
1444
|
/**
|
|
1448
1445
|
* Event for tool handover
|
|
@@ -1468,6 +1465,27 @@ export { TaskEventToolPause }
|
|
|
1468
1465
|
export { TaskEventToolPause as TaskEventToolPause_alias_1 }
|
|
1469
1466
|
export { TaskEventToolPause as TaskEventToolPause_alias_2 }
|
|
1470
1467
|
|
|
1468
|
+
declare interface TaskEventToolResult extends TaskEventBase {
|
|
1469
|
+
kind: TaskEventKind.ToolReply | TaskEventKind.ToolInvalid | TaskEventKind.ToolInterrupted;
|
|
1470
|
+
tool: string;
|
|
1471
|
+
content: ToolResponseResult;
|
|
1472
|
+
}
|
|
1473
|
+
export { TaskEventToolResult }
|
|
1474
|
+
export { TaskEventToolResult as TaskEventToolResult_alias_1 }
|
|
1475
|
+
export { TaskEventToolResult as TaskEventToolResult_alias_2 }
|
|
1476
|
+
|
|
1477
|
+
/**
|
|
1478
|
+
* Event for tool-related updates
|
|
1479
|
+
*/
|
|
1480
|
+
declare interface TaskEventToolUse extends TaskEventBase {
|
|
1481
|
+
kind: TaskEventKind.ToolUse;
|
|
1482
|
+
tool: string;
|
|
1483
|
+
params: Record<string, any>;
|
|
1484
|
+
}
|
|
1485
|
+
export { TaskEventToolUse }
|
|
1486
|
+
export { TaskEventToolUse as TaskEventToolUse_alias_1 }
|
|
1487
|
+
export { TaskEventToolUse as TaskEventToolUse_alias_2 }
|
|
1488
|
+
|
|
1471
1489
|
/**
|
|
1472
1490
|
* Event for API usage updates
|
|
1473
1491
|
*/
|
|
@@ -1527,7 +1545,7 @@ export declare const toolInfo: {
|
|
|
1527
1545
|
readonly parameters: z.ZodObject<{
|
|
1528
1546
|
staged: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>;
|
|
1529
1547
|
commitRange: z.ZodOptional<z.ZodString>;
|
|
1530
|
-
file: z.
|
|
1548
|
+
file: z.ZodString;
|
|
1531
1549
|
contextLines: z.ZodDefault<z.ZodOptional<z.ZodCoercedNumber<unknown>>>;
|
|
1532
1550
|
includeLineNumbers: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>;
|
|
1533
1551
|
}, z.core.$strip>;
|
package/dist/index.d.ts
CHANGED
|
@@ -9,7 +9,9 @@ export { TaskEventStartRequest } from './_tsup-dts-rollup.js';
|
|
|
9
9
|
export { TaskEventEndRequest } from './_tsup-dts-rollup.js';
|
|
10
10
|
export { TaskEventUsage } from './_tsup-dts-rollup.js';
|
|
11
11
|
export { TaskEventText } from './_tsup-dts-rollup.js';
|
|
12
|
-
export {
|
|
12
|
+
export { TaskEventToolUse } from './_tsup-dts-rollup.js';
|
|
13
|
+
export { TaskEventToolResult } from './_tsup-dts-rollup.js';
|
|
14
|
+
export { TaskEventToolError } from './_tsup-dts-rollup.js';
|
|
13
15
|
export { TaskEventToolPause } from './_tsup-dts-rollup.js';
|
|
14
16
|
export { TaskEventToolHandOverDelegate } from './_tsup-dts-rollup.js';
|
|
15
17
|
export { TaskEventUsageExceeded } from './_tsup-dts-rollup.js';
|
package/dist/index.js
CHANGED
|
@@ -2236,12 +2236,13 @@ Retrying request ${i + 2} of ${retryCount}`);
|
|
|
2236
2236
|
return resp;
|
|
2237
2237
|
};
|
|
2238
2238
|
let hasPause = false;
|
|
2239
|
+
const toolUseContents = response.filter((c) => c.type === "tool_use");
|
|
2239
2240
|
outer: for (const content of response) {
|
|
2240
2241
|
switch (content.type) {
|
|
2241
2242
|
case "text":
|
|
2242
2243
|
break;
|
|
2243
2244
|
case "tool_use": {
|
|
2244
|
-
await this.#callback({ kind: "ToolUse" /* ToolUse */, agent: this, tool: content.name,
|
|
2245
|
+
await this.#callback({ kind: "ToolUse" /* ToolUse */, agent: this, tool: content.name, params: content.params });
|
|
2245
2246
|
const toolResp = await this.#invokeTool(content.name, content.params);
|
|
2246
2247
|
switch (toolResp.type) {
|
|
2247
2248
|
case "Reply" /* Reply */: {
|
|
@@ -2250,52 +2251,73 @@ Retrying request ${i + 2} of ${retryCount}`);
|
|
|
2250
2251
|
break;
|
|
2251
2252
|
}
|
|
2252
2253
|
case "Exit" /* Exit */:
|
|
2254
|
+
case "HandOver" /* HandOver */:
|
|
2255
|
+
case "Delegate" /* Delegate */: {
|
|
2256
|
+
if (this.config.toolFormat === "native" && toolUseContents.length > 1) {
|
|
2257
|
+
const message = {
|
|
2258
|
+
type: "Error" /* Error */,
|
|
2259
|
+
message: {
|
|
2260
|
+
type: "error-text",
|
|
2261
|
+
value: `Error: The tool '${content.name}' must be called alone, but it was called with other tools.`
|
|
2262
|
+
},
|
|
2263
|
+
canRetry: false
|
|
2264
|
+
};
|
|
2265
|
+
await this.#callback({ kind: "ToolError" /* ToolError */, agent: this, tool: content.name, error: message });
|
|
2266
|
+
toolResponses.push({
|
|
2267
|
+
type: "response",
|
|
2268
|
+
tool: content.name,
|
|
2269
|
+
response: processResponse(message.message),
|
|
2270
|
+
id: content.id
|
|
2271
|
+
});
|
|
2272
|
+
break;
|
|
2273
|
+
}
|
|
2253
2274
|
if (toolResponses.length > 0) {
|
|
2254
2275
|
break outer;
|
|
2255
2276
|
}
|
|
2256
|
-
|
|
2277
|
+
if (toolResp.type === "Exit" /* Exit */) {
|
|
2278
|
+
return { type: "exit", reason: toolResp };
|
|
2279
|
+
}
|
|
2280
|
+
if (toolResp.type === "HandOver" /* HandOver */) {
|
|
2281
|
+
await this.#callback({
|
|
2282
|
+
kind: "ToolHandOver" /* ToolHandOver */,
|
|
2283
|
+
agent: this,
|
|
2284
|
+
tool: content.name,
|
|
2285
|
+
agentName: toolResp.agentName,
|
|
2286
|
+
task: toolResp.task,
|
|
2287
|
+
context: toolResp.context,
|
|
2288
|
+
files: toolResp.files
|
|
2289
|
+
});
|
|
2290
|
+
return { type: "exit", reason: toolResp };
|
|
2291
|
+
}
|
|
2292
|
+
if (toolResp.type === "Delegate" /* Delegate */) {
|
|
2293
|
+
await this.#callback({
|
|
2294
|
+
kind: "ToolDelegate" /* ToolDelegate */,
|
|
2295
|
+
agent: this,
|
|
2296
|
+
tool: content.name,
|
|
2297
|
+
agentName: toolResp.agentName,
|
|
2298
|
+
task: toolResp.task,
|
|
2299
|
+
context: toolResp.context,
|
|
2300
|
+
files: toolResp.files
|
|
2301
|
+
});
|
|
2302
|
+
return { type: "exit", reason: toolResp };
|
|
2303
|
+
}
|
|
2304
|
+
break;
|
|
2305
|
+
}
|
|
2257
2306
|
case "Invalid" /* Invalid */: {
|
|
2258
2307
|
await this.#callback({ kind: "ToolInvalid" /* ToolInvalid */, agent: this, tool: content.name, content: toolResp.message });
|
|
2259
2308
|
toolResponses.push({ type: "response", tool: content.name, response: processResponse(toolResp.message), id: content.id });
|
|
2260
|
-
|
|
2261
|
-
}
|
|
2262
|
-
case "Error" /* Error */: {
|
|
2263
|
-
await this.#callback({ kind: "ToolError" /* ToolError */, agent: this, tool: content.name, content: toolResp.message });
|
|
2264
|
-
toolResponses.push({ type: "response", tool: content.name, response: processResponse(toolResp.message), id: content.id });
|
|
2265
|
-
break outer;
|
|
2266
|
-
}
|
|
2267
|
-
case "Interrupted" /* Interrupted */:
|
|
2268
|
-
await this.#callback({ kind: "ToolInterrupted" /* ToolInterrupted */, agent: this, tool: content.name, content: toolResp.message });
|
|
2269
|
-
return { type: "exit", reason: toolResp };
|
|
2270
|
-
case "HandOver" /* HandOver */: {
|
|
2271
|
-
if (toolResponses.length > 0) {
|
|
2309
|
+
if (this.config.toolFormat !== "native") {
|
|
2272
2310
|
break outer;
|
|
2273
2311
|
}
|
|
2274
|
-
|
|
2275
|
-
kind: "ToolHandOver" /* ToolHandOver */,
|
|
2276
|
-
agent: this,
|
|
2277
|
-
tool: content.name,
|
|
2278
|
-
agentName: toolResp.agentName,
|
|
2279
|
-
task: toolResp.task,
|
|
2280
|
-
context: toolResp.context,
|
|
2281
|
-
files: toolResp.files
|
|
2282
|
-
});
|
|
2283
|
-
return { type: "exit", reason: toolResp };
|
|
2312
|
+
break;
|
|
2284
2313
|
}
|
|
2285
|
-
case "
|
|
2286
|
-
|
|
2314
|
+
case "Error" /* Error */: {
|
|
2315
|
+
await this.#callback({ kind: "ToolError" /* ToolError */, agent: this, tool: content.name, error: toolResp.message });
|
|
2316
|
+
toolResponses.push({ type: "response", tool: content.name, response: processResponse(toolResp.message), id: content.id });
|
|
2317
|
+
if (this.config.toolFormat !== "native") {
|
|
2287
2318
|
break outer;
|
|
2288
2319
|
}
|
|
2289
|
-
|
|
2290
|
-
kind: "ToolDelegate" /* ToolDelegate */,
|
|
2291
|
-
agent: this,
|
|
2292
|
-
tool: content.name,
|
|
2293
|
-
agentName: toolResp.agentName,
|
|
2294
|
-
task: toolResp.task,
|
|
2295
|
-
context: toolResp.context,
|
|
2296
|
-
files: toolResp.files
|
|
2297
|
-
});
|
|
2298
|
-
return { type: "exit", reason: toolResp };
|
|
2320
|
+
break;
|
|
2299
2321
|
}
|
|
2300
2322
|
case "Pause" /* Pause */: {
|
|
2301
2323
|
await this.#callback({ kind: "ToolPause" /* ToolPause */, agent: this, tool: content.name, object: toolResp.object });
|
|
@@ -3711,7 +3733,7 @@ var toolInfo15 = {
|
|
|
3711
3733
|
return val;
|
|
3712
3734
|
}, z17.boolean().optional().default(false)).describe("Get staged changes instead of unstaged changes."),
|
|
3713
3735
|
commitRange: z17.string().optional().describe('The commit range to get the diff for (e.g., "main...HEAD").'),
|
|
3714
|
-
file: z17.string().
|
|
3736
|
+
file: z17.string().describe("Get the diff for a specific file."),
|
|
3715
3737
|
contextLines: z17.coerce.number().optional().default(5).describe("Number of context lines to include around changes."),
|
|
3716
3738
|
includeLineNumbers: z17.preprocess((val) => {
|
|
3717
3739
|
if (typeof val === "string") {
|
|
@@ -3743,7 +3765,7 @@ var handler15 = async (provider, args) => {
|
|
|
3743
3765
|
commandParts.push(commitRange);
|
|
3744
3766
|
}
|
|
3745
3767
|
if (file) {
|
|
3746
|
-
commandParts.push("--", file);
|
|
3768
|
+
commandParts.push("--", `'${file}'`);
|
|
3747
3769
|
}
|
|
3748
3770
|
const command = commandParts.join(" ");
|
|
3749
3771
|
try {
|
|
@@ -3806,42 +3828,58 @@ var prompt5 = `
|
|
|
3806
3828
|
You are a senior software engineer reviewing code changes.
|
|
3807
3829
|
|
|
3808
3830
|
## Critical Instructions
|
|
3809
|
-
**ONLY review the actual changes shown in the diff.** Do not comment on existing code that wasn't modified.
|
|
3831
|
+
- **ONLY review the actual changes shown in the diff.** Do not comment on existing code that wasn't modified.
|
|
3832
|
+
- **ONLY run git_diff on files that are reviewable source/config files** per the "File Selection for git_diff" rules below. Do not pass excluded files to git_diff.
|
|
3833
|
+
|
|
3834
|
+
## File Selection for git_diff
|
|
3835
|
+
Use <file_status> to decide which files to diff. Include only files likely to contain human-authored source or meaningful configuration.
|
|
3836
|
+
|
|
3837
|
+
Include (run git_diff):
|
|
3838
|
+
- Application/source code
|
|
3839
|
+
- UI/templates/assets code
|
|
3840
|
+
- Infra/config that affects behavior
|
|
3841
|
+
|
|
3842
|
+
Exclude (do NOT run git_diff; do not review):
|
|
3843
|
+
- Lockfiles
|
|
3844
|
+
- Generated/build artifacts & deps
|
|
3845
|
+
- Test artifacts/snapshots
|
|
3846
|
+
- Data and fixtures
|
|
3847
|
+
- Binary/media/minified/maps
|
|
3810
3848
|
|
|
3811
3849
|
## Viewing Changes
|
|
3812
|
-
- **
|
|
3813
|
-
- **Pull request
|
|
3814
|
-
- **Local changes
|
|
3815
|
-
- The diff will include line number annotations: [Line N] for additions and [Line N removed] for deletions
|
|
3816
|
-
-
|
|
3850
|
+
- For each included file, **use git_diff** to inspect the actual code changes:
|
|
3851
|
+
- **Pull request:** use the provided commit range for the git_diff tool with contextLines: 5 and includeLineNumbers: true, but only surface and review the included files.
|
|
3852
|
+
- **Local changes:** diff staged or unstaged included files using git_diff with contextLines: 5 and includeLineNumbers: true.
|
|
3853
|
+
- The diff will include line number annotations: [Line N] for additions and [Line N removed] for deletions.
|
|
3854
|
+
- You may receive:
|
|
3817
3855
|
- <pr_title>
|
|
3818
3856
|
- <pr_description>
|
|
3819
3857
|
- <commit_messages>
|
|
3820
3858
|
- A <review_instructions> tag tells you the focus of the review.
|
|
3821
|
-
-
|
|
3859
|
+
- Use <file_status> to understand which files were modified, added, deleted, or renamed and to apply the inclusion/exclusion rules above.
|
|
3822
3860
|
|
|
3823
3861
|
## Line Number Reporting
|
|
3824
|
-
-
|
|
3825
|
-
- For additions:
|
|
3826
|
-
- For deletions:
|
|
3827
|
-
- For modifications:
|
|
3828
|
-
- Report single lines as "N" and ranges as "N-M"
|
|
3862
|
+
- Use the line numbers from the annotations in the diff output.
|
|
3863
|
+
- For additions: use the number from the [Line N] annotation after the + line.
|
|
3864
|
+
- For deletions: use the number from the [Line N removed] annotation after the - line.
|
|
3865
|
+
- For modifications: report the line number of the new/current code (from [Line N]).
|
|
3866
|
+
- Report single lines as "N" and ranges as "N-M".
|
|
3829
3867
|
|
|
3830
3868
|
## Review Guidelines
|
|
3831
3869
|
Focus exclusively on the changed lines (+ additions, - deletions, modified lines):
|
|
3832
|
-
- **Specific issues
|
|
3833
|
-
- **Actionable fixes
|
|
3834
|
-
- **Clear reasoning
|
|
3835
|
-
- **Avoid generic advice
|
|
3870
|
+
- **Specific issues:** Point to exact problems in the changed code with accurate line references from the annotations.
|
|
3871
|
+
- **Actionable fixes:** Provide concrete solutions, not vague suggestions.
|
|
3872
|
+
- **Clear reasoning:** Explain why each issue matters and how to fix it.
|
|
3873
|
+
- **Avoid generic advice** unless directly tied to a specific problem visible in the diff.
|
|
3836
3874
|
|
|
3837
3875
|
## What NOT to review
|
|
3838
|
-
-
|
|
3839
|
-
-
|
|
3840
|
-
-
|
|
3841
|
-
- Missing features or functionality not part of this diff
|
|
3876
|
+
- Files excluded by the "File Selection for git_diff" rules (do not diff or comment on them).
|
|
3877
|
+
- Existing unchanged code.
|
|
3878
|
+
- Overall project structure/architecture unless directly impacted by the changes.
|
|
3879
|
+
- Missing features or functionality not part of this diff.
|
|
3842
3880
|
|
|
3843
3881
|
## Output Format
|
|
3844
|
-
Do
|
|
3882
|
+
Do not include praise or positive feedback.
|
|
3845
3883
|
Only include reviews for actual issues found in the changed code.
|
|
3846
3884
|
|
|
3847
3885
|
Return your review as a JSON object inside a \`\`\`json block, wrapped like:
|
|
@@ -3849,7 +3887,7 @@ Return your review as a JSON object inside a \`\`\`json block, wrapped like:
|
|
|
3849
3887
|
<tool_parameter_result>
|
|
3850
3888
|
\`\`\`json
|
|
3851
3889
|
{
|
|
3852
|
-
"overview": "Summary of specific issues found in the diff changes,
|
|
3890
|
+
"overview": "Summary of specific issues found in the diff changes, 'No issues found', or 'No reviewable changes' if all modified files were excluded.",
|
|
3853
3891
|
"specificReviews": [
|
|
3854
3892
|
{
|
|
3855
3893
|
"file": "path/filename.ext",
|