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 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
- That's it! Restart Claude Code and the tools are available.
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
- ## Slash Commands (Optional)
50
+ ## Usage
43
51
 
44
- Copy the slash commands to your global commands folder:
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
- ```bash
47
- # Clone repo (if not already)
48
- git clone https://github.com/SimonRen/cc-reviewer.git
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
- # Copy commands
51
- cp cc-reviewer/commands/*.md ~/.claude/commands/
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
- Then use:
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
@@ -0,0 +1,7 @@
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
+ export {};
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();
@@ -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: "Get Codex's review of Claude Code's work. Codex focuses on correctness, edge cases, and performance.",
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: "Get Gemini's review of Claude Code's work. Gemini focuses on design patterns, scalability, and tech debt.",
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 reviews from all available AI CLIs (Codex and Gemini). Returns combined feedback for synthesis.",
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 a Council Review with automatic consensus calculation. Runs multiple models in parallel, detects agreements/conflicts, and synthesizes findings with confidence scores.",
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.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
  ],