Agent skill
quality-reviewer
Automatically reviews DevPrep AI code for quality standards including ESLint compliance, TypeScript strict mode, 180-line file limits, complexity under 15, proper naming conventions, import patterns, and architectural compliance with the 6-folder structure
Install this agent skill to your Project
npx add-skill https://github.com/aiskillstore/marketplace/tree/main/skills/ariegoldkin/quality-reviewer
SKILL.md
Quality Reviewer
Automatically enforces DevPrep AI code quality standards during development.
Auto-Triggers
Auto-triggered by keywords:
- "review", "check", "validate", "verify"
- "lint", "quality", "standards"
- "type check", "typescript"
- "complexity", "file size", "architecture"
Quick Standards
File Limits
- ≤180 lines per file (code only)
- Complexity ≤15 per function
- ≤50 lines per function
- ≤4 parameters per function
TypeScript
- Strict mode enabled
- No
anytypes - Interfaces:
Iprefix (e.g.,IButtonProps) - Type imports:
import type { ... }
Naming
- Interfaces:
IUserProfile,IButtonProps - Types:
QuestionType,Difficulty - Functions:
camelCase - Components:
PascalCase
Imports
Use path aliases:
@shared/ui/button // ✅ Correct
@modules/practice/* // ✅ Correct
@lib/trpc/client // ✅ Correct
@store/hooks // ✅ Correct
../../../shared/ui/* // ❌ Wrong
Architecture (6-Folder)
app/ Routes only
modules/ Features (practice, assessment, results, profile, questions, home)
shared/ Cross-cutting (ui, components, hooks, utils)
lib/ Integrations (trpc, claude)
store/ Zustand state
styles/ Design system
Run Checks
Single Check
# Target specific issues
./.claude/skills/quality-reviewer/scripts/check-file-size.sh
./.claude/skills/quality-reviewer/scripts/check-complexity.sh
./.claude/skills/quality-reviewer/scripts/check-imports.sh
./.claude/skills/quality-reviewer/scripts/check-architecture.sh
./.claude/skills/quality-reviewer/scripts/check-naming.sh
Full Review
# Run all 7 checks at once
./.claude/skills/quality-reviewer/scripts/full-review.sh
Checks: file size → complexity → imports → architecture → naming → ESLint → TypeScript
Common Fixes
Interface Missing 'I' Prefix
interface ButtonProps { } // ❌
interface IButtonProps { } // ✅
Direct React Import
import { ReactElement } from 'react'; // ❌
import type { ReactElement } from 'react'; // ✅
Relative Import
import { Button } from '../../../shared/ui/button'; // ❌
import { Button } from '@shared/ui/button'; // ✅
Using 'any'
const data: any = fetchData(); // ❌
const data: IUserData = fetchData(); // ✅
File Too Large
Split into:
Component.tsx- UI onlyhooks.ts- Logictypes.ts- Typesutils.ts- Helpers
See: examples/refactor-after/
Complexity Too High (>15)
// ❌ Before: Nested ifs (complexity 18)
if (user.role === 'admin') {
if (user.isActive) {
if (user.permissions.includes('write')) {
// do something
}
}
}
// ✅ After: Early returns (complexity 3)
if (!user.role === 'admin') return;
if (!user.isActive) return;
if (!user.permissions.includes('write')) return;
// do something
Quick fixes:
- Extract conditionals → separate functions
- Use early returns → avoid nesting
- Replace switch → lookup objects
const MAP = { key: 'value' };
When to Load Additional Docs
SKILL.md is self-sufficient for:
- Running checks (all scripts listed above)
- Simple fixes (naming, imports, basic refactoring)
- Understanding standards
Load additional docs only when needed:
| Need | Load | Lines |
|---|---|---|
| File splitting strategies | examples/refactor-after/ |
~256 |
| Complexity reduction tactics | docs/standards.md (lines 75-163) |
~88 |
| Architecture patterns | docs/standards.md (lines 224-280) |
~56 |
| Type safety patterns | docs/standards.md (lines 283-348) |
~65 |
| Deep-dive on any violation | docs/standards.md (full file) |
~370 |
Code examples:
- ✅ Perfect:
examples/good-code.tsx - ❌ Violations:
examples/bad-code.tsx - 🔄 Refactoring:
examples/refactor-after/
Full project standards: Docs/code-standards.md
Version: 1.1.0 (Optimized) | Updated: October 2025 Optimization: 31% smaller, 52% fewer tokens for typical usage
Note: Example files use // @ts-nocheck and /* eslint-disable */ directives to suppress IDE warnings, since they demonstrate intentional violations or reference non-existent paths for educational purposes. They are also excluded from build-time TypeScript compilation via frontend/tsconfig.json.
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
perigon-backend
Perigon ASP.NET Core + EF Core + Aspire conventions
perigon-agent
Pointers for Copilot/agents to apply Perigon conventions
perigon-angular
Angular 21+ standalone/Material/signal conventions for Perigon WebApp
fastapi-mastery
Comprehensive FastAPI development skill covering REST API creation, routing, request/response handling, validation, authentication, database integration, middleware, and deployment. Use when working with FastAPI projects, building APIs, implementing CRUD operations, setting up authentication/authorization, integrating databases (SQL/NoSQL), adding middleware, handling WebSockets, or deploying FastAPI applications. Triggered by requests involving .py files with FastAPI code, API endpoint creation, Pydantic models, or FastAPI-specific features.
context7-efficient
Token-efficient library documentation fetcher using Context7 MCP with 86.8% token savings through intelligent shell pipeline filtering. Fetches code examples, API references, and best practices for JavaScript, Python, Go, Rust, and other libraries. Use when users ask about library documentation, need code examples, want API usage patterns, are learning a new framework, need syntax reference, or troubleshooting with library-specific information. Triggers include questions like "Show me React hooks", "How do I use Prisma", "What's the Next.js routing syntax", or any request for library/framework documentation.
browser-use
Browser automation using Playwright MCP. Navigate websites, fill forms, click elements, take screenshots, and extract data. Use when tasks require web browsing, form submission, web scraping, UI testing, or any browser interaction.
Didn't find tool you were looking for?