@shareworker/code-review-mcp 0.1.0 → 0.1.2
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 +150 -55
- package/dist/bundler.js +2 -2
- package/dist/bundler.js.map +1 -1
- package/dist/diff-parser.d.ts.map +1 -1
- package/dist/diff-parser.js +11 -6
- package/dist/diff-parser.js.map +1 -1
- package/dist/git.d.ts +17 -0
- package/dist/git.d.ts.map +1 -1
- package/dist/git.js +31 -0
- package/dist/git.js.map +1 -1
- package/dist/index.js +93 -2
- package/dist/index.js.map +1 -1
- package/dist/position.js +3 -3
- package/dist/position.js.map +1 -1
- package/dist/reflect.js +6 -3
- package/dist/reflect.js.map +1 -1
- package/package.json +1 -1
- package/README +0 -155
- package/skills/code +0 -139
- package/skills/code-review/SK +0 -139
- package/skills/code-review/SKILL +0 -139
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/position.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getDiffForFileOrSynthesize, getFileContent } from "./git.js";
|
|
2
2
|
import { parseFileDiffs, parseHunks, extractSideLines, matchConsecutive, splitAndNormalize, normalizeLine } from "./diff-parser.js";
|
|
3
3
|
/**
|
|
4
4
|
* Locate a comment to precise line numbers in the target file.
|
|
@@ -37,7 +37,7 @@ export async function positionComment(repo, input) {
|
|
|
37
37
|
async function tryTextMatch(repo, path, diffRef, targetLines) {
|
|
38
38
|
let diffText;
|
|
39
39
|
try {
|
|
40
|
-
diffText = await
|
|
40
|
+
diffText = await getDiffForFileOrSynthesize(repo, diffRef, path);
|
|
41
41
|
}
|
|
42
42
|
catch {
|
|
43
43
|
return null;
|
|
@@ -137,7 +137,7 @@ function matchInFileContent(fileContent, targetLines) {
|
|
|
137
137
|
async function tryHunkAlign(repo, path, diffRef, hintLine) {
|
|
138
138
|
let diffText;
|
|
139
139
|
try {
|
|
140
|
-
diffText = await
|
|
140
|
+
diffText = await getDiffForFileOrSynthesize(repo, diffRef, path);
|
|
141
141
|
}
|
|
142
142
|
catch {
|
|
143
143
|
return null;
|
package/dist/position.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"position.js","sourceRoot":"","sources":["../src/position.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"position.js","sourceRoot":"","sources":["../src/position.ts"],"names":[],"mappings":"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"}
|
package/dist/reflect.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getDiffForFileOrSynthesize, getFileContent } from "./git.js";
|
|
2
2
|
import { parseFileDiffs, getAddedLineNumbers, splitAndNormalize, normalizeLine } from "./diff-parser.js";
|
|
3
3
|
/**
|
|
4
4
|
* Deterministic validation of a positioned comment.
|
|
@@ -26,7 +26,7 @@ export async function reflectComment(repo, input) {
|
|
|
26
26
|
let diffText = "";
|
|
27
27
|
let hasDiff = true;
|
|
28
28
|
try {
|
|
29
|
-
diffText = await
|
|
29
|
+
diffText = await getDiffForFileOrSynthesize(repo, diffRef, path);
|
|
30
30
|
}
|
|
31
31
|
catch {
|
|
32
32
|
hasDiff = false;
|
|
@@ -150,7 +150,10 @@ function checkExistingCodeFound(existingCode, fileContent) {
|
|
|
150
150
|
const targetLines = splitAndNormalize(existingCode);
|
|
151
151
|
if (targetLines.length === 0)
|
|
152
152
|
return true;
|
|
153
|
-
const fileLines = fileContent
|
|
153
|
+
const fileLines = fileContent
|
|
154
|
+
.split("\n")
|
|
155
|
+
.map((l) => normalizeLine(l))
|
|
156
|
+
.filter((l) => l !== ""); // skip blanks so they don't break the window match
|
|
154
157
|
// Check for consecutive match (same logic as matchInFileContent but simpler — just existence).
|
|
155
158
|
for (let i = 0; i <= fileLines.length - targetLines.length; i++) {
|
|
156
159
|
let matched = true;
|
package/dist/reflect.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reflect.js","sourceRoot":"","sources":["../src/reflect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"reflect.js","sourceRoot":"","sources":["../src/reflect.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shareworker/code-review-mcp",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "MCP server exposing the deterministic engineering layer of code review as tools for host agents (Claude Code, Codex, Devin). The server never calls an LLM.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
package/README
DELETED
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
# @shareworker/code-review-mcp
|
|
2
|
-
|
|
3
|
-
An MCP server that exposes the deterministic engineering layer of code review as
|
|
4
|
-
tools, callable by host agents (Claude Code, Codex, Devin) within their own LLM
|
|
5
|
-
loops. The server never calls an LLM — all reasoning happens in the host session.
|
|
6
|
-
|
|
7
|
-
## Why
|
|
8
|
-
|
|
9
|
-
General-purpose agents doing code review via Skills suffer from: incomplete
|
|
10
|
-
coverage (skipping files on large changesets), position drift (line numbers
|
|
11
|
-
don't match actual code), and unstable quality (minor prompt variations cause
|
|
12
|
-
large quality swings). This server enforces hard constraints on the review
|
|
13
|
-
process — file selection, smart bundling, rule matching, comment positioning,
|
|
14
|
-
and comment reflection — so quality is stable regardless of host model variation.
|
|
15
|
-
|
|
16
|
-
## Tools
|
|
17
|
-
|
|
18
|
-
| Tool | Purpose |
|
|
19
|
-
|------|---------|
|
|
20
|
-
| `get_review_targets` | Git diff → file filtering → `diff_ref` + file list |
|
|
21
|
-
| `get_file_bundle` | Smart bundling (test/source + i18n) with 20000 char cap |
|
|
22
|
-
| `match_rules` | Path-based rule matching → `prompt_section` for host LLM |
|
|
23
|
-
| `position_comment` | Text match + hunk align → precise line numbers |
|
|
24
|
-
| `reflect_comment` | Deterministic validation (keep/drop) — no LLM |
|
|
25
|
-
|
|
26
|
-
## Installation
|
|
27
|
-
|
|
28
|
-
### Claude Code
|
|
29
|
-
|
|
30
|
-
Add to `.claude/mcp.json`:
|
|
31
|
-
|
|
32
|
-
```json
|
|
33
|
-
{
|
|
34
|
-
"mcpServers": {
|
|
35
|
-
"code-review": {
|
|
36
|
-
"command": "npx",
|
|
37
|
-
"args": ["-y", "@shareworker/code-review-mcp"]
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
Copy the skill to `.claude/skills/`:
|
|
44
|
-
|
|
45
|
-
```bash
|
|
46
|
-
mkdir -p .claude/skills/code-review
|
|
47
|
-
cp skills/code-review/SKILL.md .claude/skills/code-review/SKILL.md
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
### Codex
|
|
51
|
-
|
|
52
|
-
Add to your Codex MCP configuration:
|
|
53
|
-
|
|
54
|
-
```json
|
|
55
|
-
{
|
|
56
|
-
"mcpServers": {
|
|
57
|
-
"code-review": {
|
|
58
|
-
"command": "npx",
|
|
59
|
-
"args": ["-y", "@shareworker/code-review-mcp"]
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
Copy the skill to Codex's skill directory:
|
|
66
|
-
|
|
67
|
-
```bash
|
|
68
|
-
cp skills/code-review/SKILL.md <codex-skills-dir>/code-review/SKILL.md
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
### Devin
|
|
72
|
-
|
|
73
|
-
Add to `.devin/config.json`:
|
|
74
|
-
|
|
75
|
-
```json
|
|
76
|
-
{
|
|
77
|
-
"mcpServers": {
|
|
78
|
-
"code-review": {
|
|
79
|
-
"command": "npx",
|
|
80
|
-
"args": ["-y", "@shareworker/code-review-mcp"]
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
Copy the skill to `.devin/skills/`:
|
|
87
|
-
|
|
88
|
-
```bash
|
|
89
|
-
mkdir -p .devin/skills/code-review
|
|
90
|
-
cp skills/code-review/SKILL.md .devin/skills/code-review/SKILL.md
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
## Configuration
|
|
94
|
-
|
|
95
|
-
Create `.code-review/rules.json` in your repo (or `~/.code-review/rules.json`
|
|
96
|
-
for global config):
|
|
97
|
-
|
|
98
|
-
```json
|
|
99
|
-
{
|
|
100
|
-
"filters": {
|
|
101
|
-
"exclude": ["**/*.lock", "**/*.min.js", "**/*.map"],
|
|
102
|
-
"include": ["**/*.ts", "**/*.js"]
|
|
103
|
-
},
|
|
104
|
-
"rules": [
|
|
105
|
-
{
|
|
106
|
-
"path": "**/*.ts",
|
|
107
|
-
"rule": "Check for any types and proper null handling"
|
|
108
|
-
},
|
|
109
|
-
{
|
|
110
|
-
"path": "**/*mapper*.xml",
|
|
111
|
-
"rule": "Check SQL for injection risks and missing closing tags"
|
|
112
|
-
}
|
|
113
|
-
]
|
|
114
|
-
}
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
### Configuration Resolution Priority
|
|
118
|
-
|
|
119
|
-
1. `--rule <path>` flag (highest) — not exposed via MCP, reserved for future CLI
|
|
120
|
-
2. `<repo>/.code-review/rules.json` — project-level
|
|
121
|
-
3. `~/.code-review/rules.json` — global/user-level
|
|
122
|
-
4. Built-in defaults (lowest) — covers correctness, security, performance,
|
|
123
|
-
maintainability, test coverage
|
|
124
|
-
|
|
125
|
-
For MVP, only layers 2-4 are active (no `--rule` flag since there's no CLI).
|
|
126
|
-
The first matching user rule replaces the built-in system rule at the same layer.
|
|
127
|
-
|
|
128
|
-
### `filters`
|
|
129
|
-
|
|
130
|
-
- `exclude`: glob patterns for files to exclude (merged with built-in defaults)
|
|
131
|
-
- `include`: glob patterns — when present, only matching files are reviewed
|
|
132
|
-
|
|
133
|
-
### `rules`
|
|
134
|
-
|
|
135
|
-
Array of `{ "path": "<glob>", "rule": "<text>" }`. First match wins. The `rule`
|
|
136
|
-
text is returned as `prompt_section` for the host LLM to inject into its review
|
|
137
|
-
prompt.
|
|
138
|
-
|
|
139
|
-
## Development
|
|
140
|
-
|
|
141
|
-
```bash
|
|
142
|
-
npm install
|
|
143
|
-
npm run build # compile TypeScript
|
|
144
|
-
npm test # run unit tests
|
|
145
|
-
npm run dev # watch mode
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
## Architecture
|
|
149
|
-
|
|
150
|
-
See `docs/superpowers/specs/2026-07-02-code-review-mcp-design.md` for the full
|
|
151
|
-
design spec and `docs/adr/` for architecture decision records.
|
|
152
|
-
|
|
153
|
-
## License
|
|
154
|
-
|
|
155
|
-
MIT
|
package/skills/code
DELETED
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: code-review
|
|
3
|
-
description: |
|
|
4
|
-
AI-powered code review using the code-review-mcp server. Reviews git changes
|
|
5
|
-
(workspace, range, or commit) for code quality issues with deterministic file
|
|
6
|
-
coverage, precise comment positioning, and deterministic reflection. Use when
|
|
7
|
-
the user asks to review code, review a pull request, review staged/unstaged
|
|
8
|
-
changes, review a commit, or compare branches for code quality.
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# Code Review Skill
|
|
12
|
-
|
|
13
|
-
This skill orchestrates the `@shareworker/code-review-mcp` MCP server to perform
|
|
14
|
-
structured code reviews. The server provides deterministic engineering (file
|
|
15
|
-
selection, bundling, rule matching, comment positioning, comment reflection);
|
|
16
|
-
you (the host LLM) provide the reasoning (generating comments, semantic review).
|
|
17
|
-
|
|
18
|
-
## Trigger Conditions
|
|
19
|
-
|
|
20
|
-
Activate this skill when the user says any of:
|
|
21
|
-
- "review code" / "review my changes"
|
|
22
|
-
- "review PR" / "review pull request"
|
|
23
|
-
- "review commit" / "review this commit"
|
|
24
|
-
- "review staged/unstaged changes"
|
|
25
|
-
- "compare branches for code quality"
|
|
26
|
-
|
|
27
|
-
## Complete Flow
|
|
28
|
-
|
|
29
|
-
You MUST follow this flow in order. Do not skip steps.
|
|
30
|
-
|
|
31
|
-
### Step 1: Get review targets
|
|
32
|
-
|
|
33
|
-
Call `get_review_targets` to determine which files need review.
|
|
34
|
-
|
|
35
|
-
```
|
|
36
|
-
get_review_targets(mode: "workspace" | "range" | "commit", from?, to?, commit?)
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
- **workspace**: review staged + unstaged + untracked changes (default when user says "review my changes")
|
|
40
|
-
- **range**: review `from..to` (when user says "compare branches" or "review PR")
|
|
41
|
-
- **commit**: review a specific commit (when user says "review commit abc123")
|
|
42
|
-
|
|
43
|
-
The response includes a `diff_ref` — you MUST pass this to all downstream tools.
|
|
44
|
-
|
|
45
|
-
### Step 2: Bundle files
|
|
46
|
-
|
|
47
|
-
Call `get_file_bundle` with the file paths from step 1 and the `diff_ref`.
|
|
48
|
-
|
|
49
|
-
```
|
|
50
|
-
get_file_bundle(files: [...], diff_ref: "<from step 1>")
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
This groups related files (test/source pairs, i18n variants) into review bundles
|
|
54
|
-
with a 20000 char cap. Review each bundle as a unit.
|
|
55
|
-
|
|
56
|
-
### Step 3: Review each bundle
|
|
57
|
-
|
|
58
|
-
For each bundle:
|
|
59
|
-
|
|
60
|
-
1. **Get rules**: Call `match_rules(path)` for each file in the bundle to get
|
|
61
|
-
the `prompt_section` (review rules to apply).
|
|
62
|
-
|
|
63
|
-
2. **Read file content**: Use your native capabilities (read/grep/glob) to read
|
|
64
|
-
the full file content for each file. The diff alone is not enough — you need
|
|
65
|
-
the full file to understand context.
|
|
66
|
-
|
|
67
|
-
3. **Generate comments**: Using the `prompt_section` + diff + full file content,
|
|
68
|
-
generate review comments. Each comment has:
|
|
69
|
-
- `path`: file path
|
|
70
|
-
- `content`: the comment text
|
|
71
|
-
- `existing_code` (optional): the code snippet the comment references
|
|
72
|
-
- `suggestion_code` (optional): suggested fix code
|
|
73
|
-
|
|
74
|
-
4. **Position each comment**: Call `position_comment` to locate each comment to
|
|
75
|
-
precise line numbers:
|
|
76
|
-
```
|
|
77
|
-
position_comment(path, content, existing_code, suggestion_code, hint_line?, diff_ref)
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
5. **Reflect each comment**: Call `reflect_comment` on every positioned comment:
|
|
81
|
-
```
|
|
82
|
-
reflect_comment(path, content, start_line, end_line, existing_code?, diff_ref)
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
### Step 4: Filter and output
|
|
86
|
-
|
|
87
|
-
- **Discard** all comments where `reflect_comment` returns `verdict: "drop"`.
|
|
88
|
-
- **Keep** comments where `verdict: "keep"`.
|
|
89
|
-
- Optionally perform a semantic self-review on kept comments (is the suggestion
|
|
90
|
-
technically correct?). This is your responsibility, not the server's.
|
|
91
|
-
- Classify kept comments by priority and output.
|
|
92
|
-
|
|
93
|
-
## Hard Constraints (MUST follow)
|
|
94
|
-
|
|
95
|
-
1. **You MUST call `reflect_comment` on every comment.** Comments that have not
|
|
96
|
-
been reflected MUST NOT be output to the user.
|
|
97
|
-
|
|
98
|
-
2. **Comments where `reflect_comment` returns `drop` MUST be discarded**, not
|
|
99
|
-
shown to the user.
|
|
100
|
-
|
|
101
|
-
3. **You MUST call `get_review_targets` before `get_file_bundle`.** Do not skip
|
|
102
|
-
either step.
|
|
103
|
-
|
|
104
|
-
4. **You MUST pass the `diff_ref` returned by `get_review_targets`** to
|
|
105
|
-
`get_file_bundle`, `position_comment`, and `reflect_comment`. Do not rely on
|
|
106
|
-
the `"HEAD"` default unless you ran `get_review_targets` in `workspace` mode.
|
|
107
|
-
|
|
108
|
-
## Output Format
|
|
109
|
-
|
|
110
|
-
```markdown
|
|
111
|
-
## Code Review Results
|
|
112
|
-
|
|
113
|
-
**Files reviewed**: N
|
|
114
|
-
**Issues found**: X high priority / Y medium priority
|
|
115
|
-
|
|
116
|
-
### High Priority
|
|
117
|
-
|
|
118
|
-
- **`path/to/file.ts:42`** -- Brief description
|
|
119
|
-
> Recommendation: How to fix
|
|
120
|
-
|
|
121
|
-
### Medium Priority
|
|
122
|
-
|
|
123
|
-
- **`path/to/file.ts:88`** -- Brief description
|
|
124
|
-
> Recommendation: How to fix (if applicable)
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
**Priority classification**:
|
|
128
|
-
- **High**: Obvious bugs, security issues, clear mistakes, well-founded
|
|
129
|
-
suggestions with precise fix proposals
|
|
130
|
-
- **Medium**: Reasonable but context-dependent concerns, style/performance
|
|
131
|
-
suggestions, fixes requiring manual implementation
|
|
132
|
-
- **Low**: Discarded silently (likely false positives, lacking context, nitpicks)
|
|
133
|
-
|
|
134
|
-
## Key Boundary
|
|
135
|
-
|
|
136
|
-
The server does NOT call any LLM. `reflect_comment` is pure deterministic logic
|
|
137
|
-
(checks line ranges, code existence). Semantic-level reflection (is the
|
|
138
|
-
suggestion technically correct?) is YOUR job. After `reflect_comment` returns
|
|
139
|
-
`keep`, you may perform a semantic self-review before outputting.
|
package/skills/code-review/SK
DELETED
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: code-review
|
|
3
|
-
description: |
|
|
4
|
-
AI-powered code review using the code-review-mcp server. Reviews git changes
|
|
5
|
-
(workspace, range, or commit) for code quality issues with deterministic file
|
|
6
|
-
coverage, precise comment positioning, and deterministic reflection. Use when
|
|
7
|
-
the user asks to review code, review a pull request, review staged/unstaged
|
|
8
|
-
changes, review a commit, or compare branches for code quality.
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# Code Review Skill
|
|
12
|
-
|
|
13
|
-
This skill orchestrates the `@shareworker/code-review-mcp` MCP server to perform
|
|
14
|
-
structured code reviews. The server provides deterministic engineering (file
|
|
15
|
-
selection, bundling, rule matching, comment positioning, comment reflection);
|
|
16
|
-
you (the host LLM) provide the reasoning (generating comments, semantic review).
|
|
17
|
-
|
|
18
|
-
## Trigger Conditions
|
|
19
|
-
|
|
20
|
-
Activate this skill when the user says any of:
|
|
21
|
-
- "review code" / "review my changes"
|
|
22
|
-
- "review PR" / "review pull request"
|
|
23
|
-
- "review commit" / "review this commit"
|
|
24
|
-
- "review staged/unstaged changes"
|
|
25
|
-
- "compare branches for code quality"
|
|
26
|
-
|
|
27
|
-
## Complete Flow
|
|
28
|
-
|
|
29
|
-
You MUST follow this flow in order. Do not skip steps.
|
|
30
|
-
|
|
31
|
-
### Step 1: Get review targets
|
|
32
|
-
|
|
33
|
-
Call `get_review_targets` to determine which files need review.
|
|
34
|
-
|
|
35
|
-
```
|
|
36
|
-
get_review_targets(mode: "workspace" | "range" | "commit", from?, to?, commit?)
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
- **workspace**: review staged + unstaged + untracked changes (default when user says "review my changes")
|
|
40
|
-
- **range**: review `from..to` (when user says "compare branches" or "review PR")
|
|
41
|
-
- **commit**: review a specific commit (when user says "review commit abc123")
|
|
42
|
-
|
|
43
|
-
The response includes a `diff_ref` — you MUST pass this to all downstream tools.
|
|
44
|
-
|
|
45
|
-
### Step 2: Bundle files
|
|
46
|
-
|
|
47
|
-
Call `get_file_bundle` with the file paths from step 1 and the `diff_ref`.
|
|
48
|
-
|
|
49
|
-
```
|
|
50
|
-
get_file_bundle(files: [...], diff_ref: "<from step 1>")
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
This groups related files (test/source pairs, i18n variants) into review bundles
|
|
54
|
-
with a 20000 char cap. Review each bundle as a unit.
|
|
55
|
-
|
|
56
|
-
### Step 3: Review each bundle
|
|
57
|
-
|
|
58
|
-
For each bundle:
|
|
59
|
-
|
|
60
|
-
1. **Get rules**: Call `match_rules(path)` for each file in the bundle to get
|
|
61
|
-
the `prompt_section` (review rules to apply).
|
|
62
|
-
|
|
63
|
-
2. **Read file content**: Use your native capabilities (read/grep/glob) to read
|
|
64
|
-
the full file content for each file. The diff alone is not enough — you need
|
|
65
|
-
the full file to understand context.
|
|
66
|
-
|
|
67
|
-
3. **Generate comments**: Using the `prompt_section` + diff + full file content,
|
|
68
|
-
generate review comments. Each comment has:
|
|
69
|
-
- `path`: file path
|
|
70
|
-
- `content`: the comment text
|
|
71
|
-
- `existing_code` (optional): the code snippet the comment references
|
|
72
|
-
- `suggestion_code` (optional): suggested fix code
|
|
73
|
-
|
|
74
|
-
4. **Position each comment**: Call `position_comment` to locate each comment to
|
|
75
|
-
precise line numbers:
|
|
76
|
-
```
|
|
77
|
-
position_comment(path, content, existing_code, suggestion_code, hint_line?, diff_ref)
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
5. **Reflect each comment**: Call `reflect_comment` on every positioned comment:
|
|
81
|
-
```
|
|
82
|
-
reflect_comment(path, content, start_line, end_line, existing_code?, diff_ref)
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
### Step 4: Filter and output
|
|
86
|
-
|
|
87
|
-
- **Discard** all comments where `reflect_comment` returns `verdict: "drop"`.
|
|
88
|
-
- **Keep** comments where `verdict: "keep"`.
|
|
89
|
-
- Optionally perform a semantic self-review on kept comments (is the suggestion
|
|
90
|
-
technically correct?). This is your responsibility, not the server's.
|
|
91
|
-
- Classify kept comments by priority and output.
|
|
92
|
-
|
|
93
|
-
## Hard Constraints (MUST follow)
|
|
94
|
-
|
|
95
|
-
1. **You MUST call `reflect_comment` on every comment.** Comments that have not
|
|
96
|
-
been reflected MUST NOT be output to the user.
|
|
97
|
-
|
|
98
|
-
2. **Comments where `reflect_comment` returns `drop` MUST be discarded**, not
|
|
99
|
-
shown to the user.
|
|
100
|
-
|
|
101
|
-
3. **You MUST call `get_review_targets` before `get_file_bundle`.** Do not skip
|
|
102
|
-
either step.
|
|
103
|
-
|
|
104
|
-
4. **You MUST pass the `diff_ref` returned by `get_review_targets`** to
|
|
105
|
-
`get_file_bundle`, `position_comment`, and `reflect_comment`. Do not rely on
|
|
106
|
-
the `"HEAD"` default unless you ran `get_review_targets` in `workspace` mode.
|
|
107
|
-
|
|
108
|
-
## Output Format
|
|
109
|
-
|
|
110
|
-
```markdown
|
|
111
|
-
## Code Review Results
|
|
112
|
-
|
|
113
|
-
**Files reviewed**: N
|
|
114
|
-
**Issues found**: X high priority / Y medium priority
|
|
115
|
-
|
|
116
|
-
### High Priority
|
|
117
|
-
|
|
118
|
-
- **`path/to/file.ts:42`** -- Brief description
|
|
119
|
-
> Recommendation: How to fix
|
|
120
|
-
|
|
121
|
-
### Medium Priority
|
|
122
|
-
|
|
123
|
-
- **`path/to/file.ts:88`** -- Brief description
|
|
124
|
-
> Recommendation: How to fix (if applicable)
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
**Priority classification**:
|
|
128
|
-
- **High**: Obvious bugs, security issues, clear mistakes, well-founded
|
|
129
|
-
suggestions with precise fix proposals
|
|
130
|
-
- **Medium**: Reasonable but context-dependent concerns, style/performance
|
|
131
|
-
suggestions, fixes requiring manual implementation
|
|
132
|
-
- **Low**: Discarded silently (likely false positives, lacking context, nitpicks)
|
|
133
|
-
|
|
134
|
-
## Key Boundary
|
|
135
|
-
|
|
136
|
-
The server does NOT call any LLM. `reflect_comment` is pure deterministic logic
|
|
137
|
-
(checks line ranges, code existence). Semantic-level reflection (is the
|
|
138
|
-
suggestion technically correct?) is YOUR job. After `reflect_comment` returns
|
|
139
|
-
`keep`, you may perform a semantic self-review before outputting.
|