5,383,139 AI resources indexedWorking toward the world’s largest AI resource index.

PDF

Code Review Evaluation Skill

Evaluate external PR suggestions (Gemini, CodeRabbit) against project conventions. Use when asked to review or agree with external code review comments.

Installable skillApache-2.0By David-Li0406Updated Oct 30, 2026
INTENDED FOROpenClawInstall in a listed agent.

instructions.md

---
name: code-review-evaluation-eae244e709ce
description: Evaluate external PR suggestions (Gemini, CodeRabbit) against project conventions. Use when asked to review or agree with external code review comments.
---

# Code Review Evaluation Skill

## Purpose

Evaluate external code review suggestions (Gemini, CodeRabbit, etc.) against project conventions. These tools have access to our codebase and often make valid suggestions - but they don't know our **project-specific conventions**.

## What External Reviewers ARE Good At

CodeRabbit, Gemini, etc. **can see your code** and are excellent at catching:

- ✅ **Missing fields** in examples/docs (like missing `geoScope` in docstring)
- ✅ **Type mismatches** and inconsistencies
- ✅ **Unused imports/variables**
- ✅ **Potential null/undefined errors**
- ✅ **Security vulnerabilities** (generic patterns)
- ✅ **Documentation gaps**
- ✅ **Test coverage suggestions**
- ✅ **General best practices** (accessibility, performance)

**These suggestions are usually VALID - agree with them!**

## What External Reviewers DON'T Know

They lack context about our **project-specific conventions**:

- ❌ Our `@i18n/routing` Link requirement
- ❌ Our `/types` directory governance
- ❌ Our three-layer API proxy pattern
- ❌ Our design system semantic classes
- ❌ Our env variable 4-location rule
- ❌ Our $300 searchParams incident history

**Only check skills when suggestion involves these patterns.**

## Evaluation Framework

When user asks "Do you agree with this suggestion?":

### Step 1: Categorize the Suggestion

| Category            | Examples                                   | Default Response  |
| ------------------- | ------------------------------------------ | ----------------- |
| **Bug/Error fix**   | Missing field, type error, null check      | Usually **AGREE** |
| **Documentation**   | Missing JSDoc, outdated example            | Usually **AGREE** |
| **Code quality**    | Unused code, simplification                | Usually **AGREE** |
| **Code complexity** | >100 lines/function, >10 props, >3 nesting | Usually **AGREE** |
| **Pattern change**  | Different import, new abstraction          | **CHECK SKILLS**  |
| **Architecture**    | Component structure, API calls             | **CHECK SKILLS**  |

### Step 2: If Pattern/Architecture → Cross-Reference Skills

Only check skills if the suggestion involves patterns we have rules for:

| Skill                          | Check For                                           |
| ------------------------------ | --------------------------------------------------- |
| `pre-implementation-checklist` | Does suggestion duplicate existing code?            |
| `type-system-governance`       | Does it create types outside `/types`?              |
| `react-nextjs-patterns`        | Does it violate server-first pattern?               |
| `api-layer-patterns`           | Does it bypass three-layer proxy?                   |
| `url-canonicalization`         | Does it add `searchParams` to listing pages?        |
| `i18n-best-practices`          | Does it use `next/link` instead of `@i18n/routing`? |
| `design-system-conventions`    | Does it use `gray-*` or arbitrary utilities?        |
| `env-variable-management`      | Does it add env var without all 4 locations?        |
| `data-validation-patterns`     | Does it skip Zod validation?                        |
| `security-headers-csp`         | Does it use raw `fetch()` without wrappers?         |

### Step 3: Provide Structured Response

## Response Template

```markdown
## Evaluation: [Suggestion Title/Topic]

### Summary

[1-2 sentence summary of the suggestion]

### Category

[Bug fix / Documentation / Code quality / Pattern change / Architecture]

### Skill Check (if pattern/architecture)

- [ ] [Relevant skill] - [Pass/Conflict: reason]

### Recommendation

**[AGREE / DISAGREE / PARTIAL]**

[Explanation]
```

## Example: Valid Suggestion (AGREE)

**CodeRabbit says**: "Docstring example missing geoScope field"

```markdown
## Evaluation: Missing geoScope in docstring

### Summary

Example in JSDoc is missing a required field from the type.

### Category

Documentation - external reviewer caught a real inconsistency.

### Skill Check

Not needed - this is a documentation fix, not a pattern change.

### Recommendation

**AGREE** - The docstring example should match the actual type definition.
```

## Project-Specific Blind Spots (CHECK SKILLS)

Only disagree when suggestion conflicts with our conventions:

### 1. "Use `next/link` directly"

**Our rule**: Always use `Link` from `@i18n/routing`
**Response**: Disagree - breaks locale handling

### 2. "Add types inline in component"

**Our rule**: All types in `/types` directory
**Response**: Disagree - violates type governance

### 3. "Use `gray-500` for text"

**Our rule**: Use semantic tokens (`text-foreground/80`)
**Response**: Disagree - violates design system

### 4. "Add searchParams to page component for filtering"

**Our rule**: NEVER in listing pages (causes $300+ cost spikes)
**Response**: Disagree - violates url-canonicalization (CRITICAL)

### 5. "Use raw fetch() for this API call"

**Our rule**: Use `fetchWithHmac` or `safeFetch`
**Response**: Disagree - violates security patterns

### 6. "Create a helper function here"

**Our rule**: Search for existing patterns first
**Response**: Partial - check if pattern exists before creating

### 7. "Use axios instead of fetch"

**Our rule**: Use `fetchWithHmac` (internal) or `safeFetch` (external)
**Response**: Disagree - we have standardized fetch wrappers

### 8. "Prefer @types/\* path alias over bare types/ path"

**Our rule**: Use `types/*` not `@types/*`
**Response**: Disagree - `@types/*` conflicts with TypeScript's convention for type definition packages (e.g., `@types/react`, `@types/node`). We intentionally use `types/*` to avoid this collision.

## Quick Decision Tree

```text
Is the suggestion about...?
│
├─ Bug/error fix → Usually AGREE ✅
├─ Missing docs/fields → Usually AGREE ✅
├─ Unused code cleanup → Usually AGREE ✅
├─ Test coverage → Usually AGREE ✅
│
├─ Types/interfaces → Check type-system-governance
├─ Components → Check react-nextjs-patterns
├─ Styling → Check design-system-conventions
├─ API calls → Check api-layer-patterns
├─ URLs/routing → Check url-canonicalization
├─ Links → Check i18n-best-practices
├─ Env vars → Check env-variable-management
├─ Validation → Check data-validation-patterns
├─ Security → Check security-headers-csp
├─ New utility → Check pre-implementation-checklist
```

## More Examples

### Example: Missing Field in Docstring (AGREE)

**Suggestion**: "Docstring example missing geoScope field"

**Response**: **AGREE** - External reviewer correctly identified inconsistency between example and type.

### Example: Suggestion to use `useMemo` (PARTIAL)

**Suggestion**: "Wrap this computation in useMemo for performance"

**Response**: **PARTIAL** - Only if profiling shows actual bottleneck. Don't prematurely optimize.

### Example: Suggestion to inline styles (DISAGREE)

**Suggestion**: "Use inline className with Tailwind utilities"

**Response**: **DISAGREE** - `design-system-conventions` requires semantic classes.

## When to AGREE (Most Cases)

External reviewers are usually right about:

- Missing fields in docs/examples
- Type inconsistencies
- Unused imports/variables
- Null/undefined safety
- Documentation improvements
- Test coverage gaps
- Accessibility issues
- General security issues

## When to DISAGREE (Project-Specific)

Only disagree when suggestion conflicts with our skills:

- Uses `next/link` instead of `@i18n/routing`
- Creates types outside `/types`
- Uses `gray-*` instead of semantic tokens
- Adds `searchParams` to listing pages
- Uses raw `fetch()` instead of our wrappers
- Bypasses three-layer API pattern
- Adds env var without 4-location update

## Checklist

- [ ] What category is this? (Bug fix / Docs / Code quality / Pattern)
- [ ] If pattern change → check relevant skills
- [ ] Does it conflict with project conventions?
- [ ] Provide clear AGREE / DISAGREE / PARTIAL response

Discuss this resource

Platform guidance

Imported from the listed AgentSkill.sh category. Complete supplied package files and notices are retained. Required external tools and credentials are not installed. No bundled code was executed during import. Individual agent task behavior has not been tested.