// Reviews code for SHEREHE brand compliance, TypeScript type safety, React best practices, security issues, and accessibility. Use when user asks to review code, check for issues, audit code quality, or validate implementation.
| name | code-review |
| description | Reviews code for SHEREHE brand compliance, TypeScript type safety, React best practices, security issues, and accessibility. Use when user asks to review code, check for issues, audit code quality, or validate implementation. |
| allowed-tools | ["Read","Grep","Glob","Bash"] |
Performs comprehensive code review for the SHEREHE event planning platform, ensuring production-ready code that follows all project standards.
Activate this skill when the user:
blue-500, gray-800, red-600, zinc-*, slate-*sherehe-purple-* (50-950 scale)sherehe-coral-* (50-950 scale)sherehe-pink-* (50-950 scale)rwanda-blue, rwanda-yellow, rwanda-greensuccess-*, warning-*, error-*, info-*Example violations:
// โ FAIL - Generic colors
<button className="bg-blue-500">Submit</button>
<h1 className="text-gray-800">Title</h1>
<div className="border-zinc-200">Content</div>
// โ
PASS - SHEREHE colors
<button className="bg-sherehe-coral-500">Submit</button>
<h1 className="text-sherehe-purple-700">Title</h1>
<div className="border-sherehe-purple-200">Content</div>
font-clash-displayfont-jetbrains-monoExample violations:
// โ FAIL - No font specified for heading
<h1 className="text-4xl font-bold">Welcome</h1>
// โ
PASS - Proper font usage
<h1 className="font-clash-display text-4xl font-bold text-sherehe-purple-700">
Welcome to SHEREHE
</h1>
btn-primary, btn-secondary, btn-outlinecard-sherehe, card-coral, card-purplebadge-confirmed, badge-pending, badge-cancelledshadow-coral-glow, shadow-purple-glow, glass-effectExample violations:
// โ FAIL - Custom button style
<button className="bg-blue-500 rounded px-4 py-2 hover:bg-blue-600">
Click Me
</button>
// โ
PASS - Predefined component
<button className="btn-primary">Click Me</button>
bg-gradient-to-* with custom colorstext-gradient-celebration - Main brand gradienttext-gradient-brand - Secondary gradientbg-gradient-celebration - Background gradientbg-gradient-brand - Background gradientExample violations:
// โ FAIL - Custom gradient
<h1 className="bg-linear-to-r from-blue-500 to-purple-500">Title</h1>
// โ
PASS - Predefined gradient
<h1 className="text-gradient-celebration">Title</h1>
Example violations:
// โ FAIL - Generic messages
{
email: "Invalid email format",
password: "Required field"
}
// โ
PASS - SHEREHE tone
{
email: "Hey there! We need your email to send you event updates ๐ง",
password: "Let's make it strong! Use at least 8 characters ๐"
}
any type - ALWAYS fail reviewunknown type - Must define proper types@ts-ignore, @ts-nocheck, @ts-expect-error without descriptionas any type assertionsany (function params without types)Example violations:
// โ FAIL - Using any
function handleData(data: any) {}
const result = response as any;
// โ FAIL - Using unknown
function process(input: unknown) {}
// โ FAIL - Implicit any
function calculate(price) {} // No type on param
// โ
PASS - Proper typing
interface EventData {
id: string;
name: string;
date: Date;
}
function handleData(data: EventData) {}
Example violations:
// โ FAIL - Unnecessary client component
'use client';
export default function Layout({ children }) {
return <div>{children}</div>; // No hooks or events
}
// โ FAIL - Server code in client component
'use client';
import { db } from '@/lib/db'; // Server-only
// โ
PASS - Proper separation
// Server Component (no directive needed)
export default async function Page() {
const data = await fetchData();
return <ClientComponent data={data} />;
}
Example violations:
// โ FAIL - Not awaiting params
export default function Page({ params }: { params: { id: string } }) {
const id = params.id; // params is a Promise in Next.js 16
}
// โ
PASS - Awaiting params
export default async function Page({ params }: { params: Promise<{ id: string }> }) {
const { id } = await params;
}
Example violations:
// โ FAIL - Unsanitized input
<div dangerouslySetInnerHTML={{ __html: userInput }} />
// โ FAIL - Hardcoded secret
const API_KEY = "sk_live_1234567890";
// โ
PASS - Proper validation
import { z } from 'zod';
const schema = z.object({
email: z.string().email(),
name: z.string().min(2).max(100)
});
const validated = schema.parse(userInput);
<img> tags - Must use next/imageimport _ from 'lodash')<button>)Example violations:
// โ FAIL - Div as button
<div onClick={handleClick}>Click me</div>
// โ FAIL - Missing alt text
<Image src="/hero.jpg" width={800} height={600} />
// โ
PASS - Proper accessibility
<button
onClick={handleClick}
aria-label="Close modal"
className="focus:ring-2 focus:ring-sherehe-coral-500"
>
<XIcon aria-hidden="true" />
</button>
use* prefix for hooksis/has/should prefix for booleans_ prefix)When activated, follow this process:
Identify scope: Determine which files to review
Read files: Use Read tool to examine code
Search for violations: Use Grep to find:
className=".*(?:blue|gray|zinc|slate|red|green)-\d+any type usage: :\s*any\bunknown type: :\s*unknown\b@ts-ignore: @ts-ignoreawait params: params\s*:\s*{\s*\w+\s*:\s*\w+\s*}Categorize issues by severity:
Report findings in structured format:
## Code Review Results
### Files Reviewed
- app/page.tsx
- components/EventCard.tsx
### Issues Found: X
#### ๐ด CRITICAL (X issues)
**File**: `app/page.tsx:25`
**Issue**: Using `any` type
**Code**: `function handleData(data: any)`
**Fix**: Define proper interface for data
**Severity**: CRITICAL - Defeats TypeScript safety
#### ๐ด CRITICAL (X issues)
**File**: `components/EventCard.tsx:12`
**Issue**: Using generic color instead of SHEREHE brand
**Code**: `<button className="bg-blue-500">`
**Fix**: Use `className="btn-primary"` or `bg-sherehe-coral-500`
**Severity**: CRITICAL - Violates brand identity
### Summary
- Total issues: X
- Critical: X (MUST FIX)
- High: X (SHOULD FIX)
- Medium: X (RECOMMENDED)
- Low: X (OPTIONAL)
### Recommendation
[PASS โ
| NEEDS WORK โ ๏ธ | REJECT โ]
User: "Review my EventCard component"
Skill Actions:
components/EventCard.tsxBefore reviewing, understand the standards:
.github/copilot-instructions.md - Complete standardsstyles/globals.css - Design system implementationtsconfig.json - TypeScript configurationeslint.config.mjs - Linting rulesThis skill ensures every line of code meets SHEREHE's production standards.