Code quality standards for reviewing code changes. Activated when reviewing PRs, implementing features, or discussing code quality. Triggers on requests to "review code", "check quality", "improve code", or "refactor".
From pwnpx claudepluginhub ken2403/claude-paralell-dev-plugin --plugin pwThis skill is limited to using the following tools:
references/checklist.mdreferences/patterns.mdSearches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Guides idea refinement into designs: explores context, asks questions one-by-one, proposes approaches, presents sections for approval, writes/review specs before coding.
Apply these quality criteria when reviewing or writing code.
Before reviewing or writing code, explore the codebase to understand existing conventions.
Glob("**/*Service.ts") to find all service files).Evaluate against: readability, maintainability, simplicity, error handling, type safety.
For detailed criteria, consult references/checklist.md.
Flag these common issues:
For naming conventions and style patterns, consult references/patterns.md.
| Aspect | Check |
|---|---|
| Naming | Match existing variable/function naming conventions |
| Structure | Follow established file/directory organization |
| Patterns | Use same design patterns as existing code |
| Formatting | Match indentation, spacing, line breaks |
| Imports | Match import ordering and grouping |
| Error handling | Use same error handling patterns |
After flagging an issue, use Grep to verify the pattern is consistent across the codebase before reporting. The existing codebase convention takes precedence over general best practices.
For each finding:
When reviewing database access code, watch for queries inside loops:
# Bad - N+1 query
for user in users:
posts = db.query(Post).filter(Post.user_id == user.id).all()
# Good - Eager loading
users = db.query(User).options(joinedload(User.posts)).all()
# Bad - Deep nesting
def process(data):
if data:
if data.is_valid():
if data.has_permission():
return do_work(data)
# Good - Early returns
def process(data):
if not data:
return None
if not data.is_valid():
raise ValueError("Invalid data")
if not data.has_permission():
raise PermissionError("Access denied")
return do_work(data)
If code quality problems are missed:
references/checklist.mdIf style suggestions conflict with the existing codebase: