cc-reviewer 1.2.2 → 1.2.4
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 +20 -10
- package/commands/codex-xhigh.md +54 -0
- package/commands/codex.md +87 -0
- package/commands/council.md +107 -0
- package/commands/gemini.md +91 -0
- package/commands/multi.md +99 -0
- package/dist/setup.d.ts +7 -0
- package/dist/setup.js +50 -0
- package/dist/tools/feedback.js +4 -4
- package/package.json +4 -2
package/README.md
CHANGED
|
@@ -4,11 +4,19 @@ Get second-opinion feedback from OpenAI Codex and Google Gemini CLIs on Claude C
|
|
|
4
4
|
|
|
5
5
|
## Quick Install
|
|
6
6
|
|
|
7
|
+
**Step 1: Add the MCP server**
|
|
7
8
|
```bash
|
|
8
9
|
claude mcp add -s user cc-reviewer -- npx -y cc-reviewer
|
|
9
10
|
```
|
|
10
11
|
|
|
11
|
-
|
|
12
|
+
**Step 2: Install slash commands**
|
|
13
|
+
```bash
|
|
14
|
+
npx cc-reviewer-setup
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
**Step 3: Restart Claude Code**
|
|
18
|
+
|
|
19
|
+
The MCP tools and slash commands (`/codex`, `/gemini`, `/multi`, `/council`) are now available.
|
|
12
20
|
|
|
13
21
|
Verify with:
|
|
14
22
|
```bash
|
|
@@ -39,19 +47,21 @@ npm install -g @google/gemini-cli
|
|
|
39
47
|
gemini # follow auth prompts
|
|
40
48
|
```
|
|
41
49
|
|
|
42
|
-
##
|
|
50
|
+
## Usage
|
|
43
51
|
|
|
44
|
-
|
|
52
|
+
These tools provide **external second-opinion reviews** from Codex and Gemini CLIs. They are designed to complement Claude Code's native review capabilities, not replace them.
|
|
45
53
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
54
|
+
**When to use:**
|
|
55
|
+
- `/codex` or "review with codex" - Get external Codex review
|
|
56
|
+
- `/gemini` or "review with gemini" - Get external Gemini review
|
|
57
|
+
- `/multi` - Get parallel reviews from both CLIs
|
|
58
|
+
- Council review - Get consensus-based feedback from multiple models
|
|
49
59
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
60
|
+
**For regular reviews:** Just say "review" and Claude Code will use its native capabilities. These external tools are only invoked when explicitly requested.
|
|
61
|
+
|
|
62
|
+
## Slash Commands
|
|
53
63
|
|
|
54
|
-
|
|
64
|
+
After running `npx cc-reviewer-setup`, these commands are available:
|
|
55
65
|
|
|
56
66
|
```bash
|
|
57
67
|
/codex # Review with Codex
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Codex XHigh
|
|
2
|
+
|
|
3
|
+
Get a deep-thinking review from OpenAI Codex CLI with xhigh reasoning effort.
|
|
4
|
+
|
|
5
|
+
## Arguments
|
|
6
|
+
- `$ARGUMENTS` - Optional: focus area or custom instructions
|
|
7
|
+
|
|
8
|
+
## Instructions
|
|
9
|
+
|
|
10
|
+
Use the `codex_feedback` MCP tool with `reasoningEffort: "xhigh"` for deeper analysis.
|
|
11
|
+
|
|
12
|
+
1. Determine what to review:
|
|
13
|
+
- If we just completed work, summarize the changes made
|
|
14
|
+
- If user provided context, use that
|
|
15
|
+
- Default: review the current working directory
|
|
16
|
+
|
|
17
|
+
2. Call the `codex_feedback` tool with:
|
|
18
|
+
- `workingDir`: current working directory
|
|
19
|
+
- `ccOutput`: brief summary of recent changes or context
|
|
20
|
+
- `reasoningEffort`: "xhigh" (this is the key difference from /codex)
|
|
21
|
+
- `focus`: extracted from $ARGUMENTS if it's a known focus area
|
|
22
|
+
- `customInstructions`: $ARGUMENTS if it's custom text
|
|
23
|
+
|
|
24
|
+
3. After receiving feedback - VALIDATE before accepting:
|
|
25
|
+
|
|
26
|
+
IMPORTANT: Do NOT blindly accept external feedback. You must:
|
|
27
|
+
|
|
28
|
+
a. **Verify file references exist**
|
|
29
|
+
- Check any mentioned file:line actually exists
|
|
30
|
+
- Flag hallucinated paths immediately
|
|
31
|
+
|
|
32
|
+
b. **Cross-check claims by reading code**
|
|
33
|
+
- Read the actual files mentioned
|
|
34
|
+
- Verify the issue described matches reality
|
|
35
|
+
|
|
36
|
+
c. **Mark your confidence level for each finding:**
|
|
37
|
+
- ✓✓ Verified (you checked the code yourself)
|
|
38
|
+
- ✓ Likely (plausible but not verified)
|
|
39
|
+
- ? Uncertain (needs more investigation)
|
|
40
|
+
- ✗ Rejected (you disagree after checking)
|
|
41
|
+
|
|
42
|
+
d. **Make YOUR recommendation**
|
|
43
|
+
- Don't just relay their findings
|
|
44
|
+
- Apply your own judgment
|
|
45
|
+
- You may disagree with external feedback
|
|
46
|
+
|
|
47
|
+
4. Present synthesis:
|
|
48
|
+
- Show validated findings with confidence levels
|
|
49
|
+
- Highlight anything that looks like a hallucination
|
|
50
|
+
- Offer to incorporate only verified/likely suggestions
|
|
51
|
+
|
|
52
|
+
Note: xhigh reasoning takes longer but provides deeper analysis.
|
|
53
|
+
|
|
54
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# Codex Feedback
|
|
2
|
+
|
|
3
|
+
Get a review from OpenAI Codex CLI, specialized in correctness and security.
|
|
4
|
+
|
|
5
|
+
## Arguments
|
|
6
|
+
- `$ARGUMENTS` - Optional: focus area or custom instructions
|
|
7
|
+
|
|
8
|
+
## Codex Strengths
|
|
9
|
+
- **Correctness**: Logic errors, edge cases, bugs
|
|
10
|
+
- **Security**: Vulnerabilities, injection attacks
|
|
11
|
+
- **Performance**: Efficiency analysis
|
|
12
|
+
|
|
13
|
+
## Before Calling - PREPARE THE HANDOFF
|
|
14
|
+
|
|
15
|
+
### 1. Summarize What You Did (Brief!)
|
|
16
|
+
```
|
|
17
|
+
"Added user registration with email validation and password hashing."
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
### 2. List Your Uncertainties
|
|
21
|
+
What should Codex verify?
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
UNCERTAINTIES:
|
|
25
|
+
- "Is the email regex sufficient for validation?"
|
|
26
|
+
- "Is bcrypt properly configured for password security?"
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### 3. Ask Specific Questions
|
|
30
|
+
```
|
|
31
|
+
QUESTIONS:
|
|
32
|
+
- "Are there SQL injection vectors I missed?"
|
|
33
|
+
- "Is the rate limiting on registration adequate?"
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Tool Invocation
|
|
37
|
+
|
|
38
|
+
Call `codex_feedback` with:
|
|
39
|
+
|
|
40
|
+
```json
|
|
41
|
+
{
|
|
42
|
+
"workingDir": "<current directory>",
|
|
43
|
+
"ccOutput": "<structured handoff - see below>",
|
|
44
|
+
"outputType": "analysis",
|
|
45
|
+
"focusAreas": ["<from $ARGUMENTS>"],
|
|
46
|
+
"reasoningEffort": "high" // or "xhigh" for deeper analysis
|
|
47
|
+
}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Structure your ccOutput:
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
SUMMARY:
|
|
54
|
+
<what you did, 1-3 sentences>
|
|
55
|
+
|
|
56
|
+
UNCERTAINTIES (verify these):
|
|
57
|
+
1. <your uncertainty>
|
|
58
|
+
2. <another uncertainty>
|
|
59
|
+
|
|
60
|
+
QUESTIONS:
|
|
61
|
+
1. <specific question>
|
|
62
|
+
|
|
63
|
+
PRIORITY FILES:
|
|
64
|
+
- <file to focus on>
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## After Receiving Review
|
|
68
|
+
|
|
69
|
+
1. **Verify file references exist**
|
|
70
|
+
- Check mentioned file:line locations
|
|
71
|
+
- Flag any that don't exist
|
|
72
|
+
|
|
73
|
+
2. **Cross-check findings**
|
|
74
|
+
- Read the actual code
|
|
75
|
+
- Confirm the issue exists
|
|
76
|
+
|
|
77
|
+
3. **Mark confidence:**
|
|
78
|
+
- ✓✓ Verified by you
|
|
79
|
+
- ✓ Plausible, not verified
|
|
80
|
+
- ? Needs investigation
|
|
81
|
+
- ✗ Rejected
|
|
82
|
+
|
|
83
|
+
4. **Apply judgment**
|
|
84
|
+
- You may disagree with findings
|
|
85
|
+
- Make YOUR recommendation
|
|
86
|
+
|
|
87
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# Council Review
|
|
2
|
+
|
|
3
|
+
Get a Council Review with automatic consensus from multiple AI models.
|
|
4
|
+
|
|
5
|
+
## Arguments
|
|
6
|
+
- `$ARGUMENTS` - Optional: focus area or custom instructions
|
|
7
|
+
|
|
8
|
+
## Before Calling - PREPARE THE HANDOFF
|
|
9
|
+
|
|
10
|
+
The quality of review depends on what you share. Before calling the tool:
|
|
11
|
+
|
|
12
|
+
### 1. Summarize What You Did (1-3 sentences)
|
|
13
|
+
```
|
|
14
|
+
Example: "Implemented JWT authentication for the /api/users endpoints.
|
|
15
|
+
Added token validation middleware and refresh token rotation."
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
### 2. List Your Uncertainties (CRITICAL!)
|
|
19
|
+
What are you unsure about? What do you want verified?
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
Example uncertainties:
|
|
23
|
+
- "Is the token expiry handling correct for edge cases?"
|
|
24
|
+
- "Does the refresh rotation prevent token replay attacks?"
|
|
25
|
+
- "Should I validate the audience claim?"
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### 3. Formulate Specific Questions
|
|
29
|
+
What do you specifically want the reviewer to answer?
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
Example questions:
|
|
33
|
+
- "Is the bcrypt cost factor (12) appropriate for this use case?"
|
|
34
|
+
- "Does this break backwards compatibility with existing sessions?"
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### 4. Note Key Decisions (Optional)
|
|
38
|
+
Major choices you made that reviewer should evaluate:
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
Example: "Chose JWT over sessions because the API is stateless.
|
|
42
|
+
Alternative was Redis-backed sessions but added infrastructure complexity."
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Tool Invocation
|
|
46
|
+
|
|
47
|
+
Call `council_feedback` with:
|
|
48
|
+
|
|
49
|
+
```json
|
|
50
|
+
{
|
|
51
|
+
"workingDir": "<current directory>",
|
|
52
|
+
"ccOutput": "<your brief summary + uncertainties + questions>",
|
|
53
|
+
"outputType": "analysis",
|
|
54
|
+
"focusAreas": ["<from $ARGUMENTS if applicable>"],
|
|
55
|
+
"customPrompt": "<any specific instructions>"
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Format your ccOutput like this:
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
SUMMARY:
|
|
63
|
+
<1-3 sentences of what you did>
|
|
64
|
+
|
|
65
|
+
UNCERTAINTIES (please verify):
|
|
66
|
+
1. <uncertainty 1>
|
|
67
|
+
2. <uncertainty 2>
|
|
68
|
+
|
|
69
|
+
QUESTIONS:
|
|
70
|
+
1. <specific question 1>
|
|
71
|
+
2. <specific question 2>
|
|
72
|
+
|
|
73
|
+
KEY DECISIONS:
|
|
74
|
+
- <decision>: <rationale>
|
|
75
|
+
|
|
76
|
+
PRIORITY FILES:
|
|
77
|
+
- path/to/critical/file.ts
|
|
78
|
+
- path/to/another/file.ts
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## After Receiving Review
|
|
82
|
+
|
|
83
|
+
### Validate the Response
|
|
84
|
+
|
|
85
|
+
1. **Check uncertainty responses**
|
|
86
|
+
- Did reviewer verify your uncertain areas?
|
|
87
|
+
- Do you agree with their assessment?
|
|
88
|
+
|
|
89
|
+
2. **Check question answers**
|
|
90
|
+
- Were your questions answered?
|
|
91
|
+
- Is the reasoning sound?
|
|
92
|
+
|
|
93
|
+
3. **Evaluate new findings**
|
|
94
|
+
- For each finding, verify the file/line exists
|
|
95
|
+
- Read the code yourself to confirm
|
|
96
|
+
- Mark your confidence:
|
|
97
|
+
- ✓✓✓ Consensus + you verified
|
|
98
|
+
- ✓✓ Multiple models agreed
|
|
99
|
+
- ✓ Single source, plausible
|
|
100
|
+
- ? Needs investigation
|
|
101
|
+
- ✗ Rejected after checking
|
|
102
|
+
|
|
103
|
+
4. **Resolve conflicts**
|
|
104
|
+
- If models disagree, YOU decide
|
|
105
|
+
- Don't just pick majority - read the code
|
|
106
|
+
|
|
107
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# Gemini Feedback
|
|
2
|
+
|
|
3
|
+
Get a review from Google Gemini CLI, specialized in architecture and large-scale analysis.
|
|
4
|
+
|
|
5
|
+
## Arguments
|
|
6
|
+
- `$ARGUMENTS` - Optional: focus area or custom instructions
|
|
7
|
+
|
|
8
|
+
## Gemini Strengths
|
|
9
|
+
- **Architecture**: Design patterns, code structure
|
|
10
|
+
- **Large Context**: Can analyze entire codebases
|
|
11
|
+
- **Maintainability**: Code clarity, complexity
|
|
12
|
+
- **Scalability**: System design concerns
|
|
13
|
+
|
|
14
|
+
## Before Calling - PREPARE THE HANDOFF
|
|
15
|
+
|
|
16
|
+
### 1. Summarize What You Did (Brief!)
|
|
17
|
+
```
|
|
18
|
+
"Refactored the payment service to use the repository pattern,
|
|
19
|
+
extracted common validation logic into a shared module."
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
### 2. List Your Uncertainties
|
|
23
|
+
What should Gemini verify?
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
UNCERTAINTIES:
|
|
27
|
+
- "Does the new abstraction layer add unnecessary complexity?"
|
|
28
|
+
- "Is the module boundary in the right place?"
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### 3. Ask Specific Questions
|
|
32
|
+
```
|
|
33
|
+
QUESTIONS:
|
|
34
|
+
- "Should PaymentValidator be its own service or stay as a utility?"
|
|
35
|
+
- "Is there a better pattern for the retry logic?"
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Tool Invocation
|
|
39
|
+
|
|
40
|
+
Call `gemini_feedback` with:
|
|
41
|
+
|
|
42
|
+
```json
|
|
43
|
+
{
|
|
44
|
+
"workingDir": "<current directory>",
|
|
45
|
+
"ccOutput": "<structured handoff - see below>",
|
|
46
|
+
"outputType": "analysis",
|
|
47
|
+
"focusAreas": ["<from $ARGUMENTS>"]
|
|
48
|
+
}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Structure your ccOutput:
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
SUMMARY:
|
|
55
|
+
<what you did, 1-3 sentences>
|
|
56
|
+
|
|
57
|
+
UNCERTAINTIES (verify these):
|
|
58
|
+
1. <your uncertainty>
|
|
59
|
+
2. <another uncertainty>
|
|
60
|
+
|
|
61
|
+
QUESTIONS:
|
|
62
|
+
1. <specific question>
|
|
63
|
+
|
|
64
|
+
KEY DECISIONS:
|
|
65
|
+
- <decision>: <rationale>
|
|
66
|
+
|
|
67
|
+
PRIORITY FILES:
|
|
68
|
+
- <file to focus on>
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## After Receiving Review
|
|
72
|
+
|
|
73
|
+
1. **Verify file references exist**
|
|
74
|
+
- Check mentioned file:line locations
|
|
75
|
+
- Flag any that don't exist
|
|
76
|
+
|
|
77
|
+
2. **Cross-check findings**
|
|
78
|
+
- Read the actual code
|
|
79
|
+
- Confirm the issue exists
|
|
80
|
+
|
|
81
|
+
3. **Mark confidence:**
|
|
82
|
+
- ✓✓ Verified by you
|
|
83
|
+
- ✓ Plausible, not verified
|
|
84
|
+
- ? Needs investigation
|
|
85
|
+
- ✗ Rejected
|
|
86
|
+
|
|
87
|
+
4. **Apply judgment**
|
|
88
|
+
- You may disagree with findings
|
|
89
|
+
- Make YOUR recommendation
|
|
90
|
+
|
|
91
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# Multi Feedback
|
|
2
|
+
|
|
3
|
+
Get parallel reviews from both Codex and Gemini, raw output for manual synthesis.
|
|
4
|
+
|
|
5
|
+
## Arguments
|
|
6
|
+
- `$ARGUMENTS` - Optional: focus area or custom instructions
|
|
7
|
+
|
|
8
|
+
## When to Use
|
|
9
|
+
|
|
10
|
+
- `/multi` - Raw parallel reviews, YOU synthesize
|
|
11
|
+
- `/council` - Automatic consensus with confidence scores
|
|
12
|
+
|
|
13
|
+
Use `/multi` when you want full control over synthesis.
|
|
14
|
+
|
|
15
|
+
## Before Calling - PREPARE THE HANDOFF
|
|
16
|
+
|
|
17
|
+
### 1. Summarize What You Did (Brief!)
|
|
18
|
+
```
|
|
19
|
+
"Implemented caching layer for the product catalog API using Redis.
|
|
20
|
+
Added cache invalidation on product updates."
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### 2. List Your Uncertainties
|
|
24
|
+
```
|
|
25
|
+
UNCERTAINTIES:
|
|
26
|
+
- "Is the cache TTL appropriate for this data?"
|
|
27
|
+
- "Does the invalidation handle all update scenarios?"
|
|
28
|
+
- "Is the Redis connection pooling configured correctly?"
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### 3. Ask Specific Questions
|
|
32
|
+
```
|
|
33
|
+
QUESTIONS:
|
|
34
|
+
- "Should I use write-through or write-behind caching?"
|
|
35
|
+
- "Is there a race condition in the invalidation logic?"
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Tool Invocation
|
|
39
|
+
|
|
40
|
+
Call `multi_feedback` with:
|
|
41
|
+
|
|
42
|
+
```json
|
|
43
|
+
{
|
|
44
|
+
"workingDir": "<current directory>",
|
|
45
|
+
"ccOutput": "<structured handoff>",
|
|
46
|
+
"outputType": "analysis",
|
|
47
|
+
"focusAreas": ["<from $ARGUMENTS>"]
|
|
48
|
+
}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Structure your ccOutput:
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
SUMMARY:
|
|
55
|
+
<what you did, 1-3 sentences>
|
|
56
|
+
|
|
57
|
+
UNCERTAINTIES (verify these):
|
|
58
|
+
1. <uncertainty>
|
|
59
|
+
2. <uncertainty>
|
|
60
|
+
|
|
61
|
+
QUESTIONS:
|
|
62
|
+
1. <question>
|
|
63
|
+
|
|
64
|
+
PRIORITY FILES:
|
|
65
|
+
- <file>
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## After Receiving Review
|
|
69
|
+
|
|
70
|
+
You will receive separate reviews from each model.
|
|
71
|
+
|
|
72
|
+
### Synthesize Manually
|
|
73
|
+
|
|
74
|
+
1. **Find agreements** (both models say same thing)
|
|
75
|
+
- Higher confidence
|
|
76
|
+
- Still verify yourself
|
|
77
|
+
|
|
78
|
+
2. **Identify conflicts** (they disagree)
|
|
79
|
+
- Read the code
|
|
80
|
+
- YOU decide who's right
|
|
81
|
+
|
|
82
|
+
3. **Note unique insights**
|
|
83
|
+
- Findings only one model found
|
|
84
|
+
- Evaluate on merit
|
|
85
|
+
|
|
86
|
+
4. **Verify all findings**
|
|
87
|
+
- Check file/line references exist
|
|
88
|
+
- Read actual code
|
|
89
|
+
- Mark your confidence:
|
|
90
|
+
- ✓✓ Verified
|
|
91
|
+
- ✓ Plausible
|
|
92
|
+
- ? Investigate
|
|
93
|
+
- ✗ Rejected
|
|
94
|
+
|
|
95
|
+
5. **Make YOUR recommendation**
|
|
96
|
+
- Don't just relay findings
|
|
97
|
+
- Apply your judgment
|
|
98
|
+
|
|
99
|
+
$ARGUMENTS
|
package/dist/setup.d.ts
ADDED
package/dist/setup.js
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Setup script for cc-reviewer slash commands
|
|
4
|
+
*
|
|
5
|
+
* Copies the slash command files to ~/.claude/commands/
|
|
6
|
+
*/
|
|
7
|
+
import { existsSync, mkdirSync, copyFileSync, readdirSync } from 'fs';
|
|
8
|
+
import { join, dirname } from 'path';
|
|
9
|
+
import { homedir } from 'os';
|
|
10
|
+
import { fileURLToPath } from 'url';
|
|
11
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
12
|
+
const __dirname = dirname(__filename);
|
|
13
|
+
function setup() {
|
|
14
|
+
const commandsSource = join(__dirname, '..', 'commands');
|
|
15
|
+
const commandsTarget = join(homedir(), '.claude', 'commands');
|
|
16
|
+
console.log('CC Reviewer - Setup Slash Commands\n');
|
|
17
|
+
// Check if source commands exist
|
|
18
|
+
if (!existsSync(commandsSource)) {
|
|
19
|
+
console.error('Error: Commands directory not found in package.');
|
|
20
|
+
console.error('Expected at:', commandsSource);
|
|
21
|
+
process.exit(1);
|
|
22
|
+
}
|
|
23
|
+
// Create target directory if it doesn't exist
|
|
24
|
+
if (!existsSync(commandsTarget)) {
|
|
25
|
+
console.log(`Creating ${commandsTarget}...`);
|
|
26
|
+
mkdirSync(commandsTarget, { recursive: true });
|
|
27
|
+
}
|
|
28
|
+
// Copy command files
|
|
29
|
+
const files = readdirSync(commandsSource).filter(f => f.endsWith('.md'));
|
|
30
|
+
if (files.length === 0) {
|
|
31
|
+
console.error('Error: No command files found.');
|
|
32
|
+
process.exit(1);
|
|
33
|
+
}
|
|
34
|
+
console.log('Installing slash commands:\n');
|
|
35
|
+
for (const file of files) {
|
|
36
|
+
const source = join(commandsSource, file);
|
|
37
|
+
const target = join(commandsTarget, file);
|
|
38
|
+
const commandName = file.replace('.md', '');
|
|
39
|
+
copyFileSync(source, target);
|
|
40
|
+
console.log(` /${commandName} -> ${target}`);
|
|
41
|
+
}
|
|
42
|
+
console.log('\n✓ Done! Restart Claude Code to use the commands.\n');
|
|
43
|
+
console.log('Available commands:');
|
|
44
|
+
console.log(' /codex - Review with OpenAI Codex');
|
|
45
|
+
console.log(' /codex-xhigh - Review with Codex (xhigh reasoning)');
|
|
46
|
+
console.log(' /gemini - Review with Google Gemini');
|
|
47
|
+
console.log(' /multi - Review with both Codex and Gemini');
|
|
48
|
+
console.log(' /council - Council review with consensus\n');
|
|
49
|
+
}
|
|
50
|
+
setup();
|
package/dist/tools/feedback.js
CHANGED
|
@@ -351,7 +351,7 @@ Install at least one:
|
|
|
351
351
|
export const TOOL_DEFINITIONS = {
|
|
352
352
|
codex_feedback: {
|
|
353
353
|
name: 'codex_feedback',
|
|
354
|
-
description: "
|
|
354
|
+
description: "ONLY use when user explicitly requests '/codex' or 'review with codex'. Get external second-opinion from OpenAI Codex CLI. Codex focuses on correctness, edge cases, and performance. DO NOT use for general 'review' requests.",
|
|
355
355
|
inputSchema: {
|
|
356
356
|
type: 'object',
|
|
357
357
|
properties: {
|
|
@@ -396,7 +396,7 @@ export const TOOL_DEFINITIONS = {
|
|
|
396
396
|
},
|
|
397
397
|
gemini_feedback: {
|
|
398
398
|
name: 'gemini_feedback',
|
|
399
|
-
description: "
|
|
399
|
+
description: "ONLY use when user explicitly requests '/gemini' or 'review with gemini'. Get external second-opinion from Google Gemini CLI. Gemini focuses on design patterns, scalability, and tech debt. DO NOT use for general 'review' requests.",
|
|
400
400
|
inputSchema: {
|
|
401
401
|
type: 'object',
|
|
402
402
|
properties: {
|
|
@@ -436,7 +436,7 @@ export const TOOL_DEFINITIONS = {
|
|
|
436
436
|
},
|
|
437
437
|
multi_feedback: {
|
|
438
438
|
name: 'multi_feedback',
|
|
439
|
-
description: "Get parallel
|
|
439
|
+
description: "ONLY use when user explicitly requests '/multi' or 'review with both codex and gemini'. Get parallel second-opinions from both external CLIs (Codex and Gemini). Returns combined feedback for synthesis. DO NOT use for general 'review' requests.",
|
|
440
440
|
inputSchema: {
|
|
441
441
|
type: 'object',
|
|
442
442
|
properties: {
|
|
@@ -476,7 +476,7 @@ export const TOOL_DEFINITIONS = {
|
|
|
476
476
|
},
|
|
477
477
|
council_feedback: {
|
|
478
478
|
name: 'council_feedback',
|
|
479
|
-
description: "Get
|
|
479
|
+
description: "ONLY use when user explicitly requests council review or consensus-based feedback. Get external second-opinions from multiple CLIs with automatic consensus calculation. Runs Codex and Gemini in parallel, detects agreements/conflicts, and synthesizes findings with confidence scores. DO NOT use for general 'review' requests.",
|
|
480
480
|
inputSchema: {
|
|
481
481
|
type: 'object',
|
|
482
482
|
properties: {
|
package/package.json
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cc-reviewer",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.4",
|
|
4
4
|
"description": "MCP server for Claude Code - Get second-opinion feedback from Codex/Gemini CLIs",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"bin": {
|
|
8
|
-
"cc-reviewer": "dist/index.js"
|
|
8
|
+
"cc-reviewer": "dist/index.js",
|
|
9
|
+
"cc-reviewer-setup": "dist/setup.js"
|
|
9
10
|
},
|
|
10
11
|
"files": [
|
|
11
12
|
"dist/**/*",
|
|
13
|
+
"commands/**/*",
|
|
12
14
|
"README.md",
|
|
13
15
|
"LICENSE"
|
|
14
16
|
],
|