Code review comparing implementation against specs, BRD, and quality standards. Use when: (1) After implementation and testing, (2) Before merging a PR, (3) Verifying BRD use case coverage (--brd flag), (4) Checking code quality, security, and pattern compliance
Resources
1Install
npx skillscat add codihaus/claude-skills/dev-review Install via the SkillsCat registry.
This skill reviews code changes against specifications, business requirement documents, and quality standards to identify defects, security issues, and compliance problems. It is used after implementation and testing or before merging a pull request to ensure code quality and requirement coverage.
/dev-review - Code Review
Skill Awareness: See
skills/_registry.mdfor all available skills.
- Before: After
/dev-codingimplementation and/dev-testpasses- Reads:
_quality-attributes.md(ALL Levels - verification)- If issues: Fix with
/dev-coding, then review again- If major changes: Create CR via
/debrief
Review code changes for quality, security, and adherence to standards.
When to Use
- After implementing a feature
- Before merging a PR
- To get feedback on approach
- To catch issues before production
Usage
/dev-review # Review uncommitted changes
/dev-review --staged # Review staged changes only
/dev-review src/auth/ # Review specific directory
/dev-review UC-AUTH-001 # Review changes for specific UC
/dev-review billing --brd # Verify all BRD use cases coveredInput
Reviews can be based on:
- Git diff - Uncommitted or staged changes
- File list - Specific files to review
- UC reference - Files changed for a use case (from spec)
Output
## Review Summary
**Verdict**: ✅ Approve | ⚠️ Request Changes | ❓ Needs Discussion
**Stats**: X files, Y additions, Z deletions
### Issues Found
#### 🔴 Critical (must fix)
- [security] SQL injection risk in `src/api/users.ts:45`
- [bug] Null pointer in `src/utils/parse.ts:23`
#### 🟡 Important (should fix)
- [performance] N+1 query in `src/api/posts.ts:67`
- [error-handling] Unhandled promise rejection
#### 🔵 Suggestions (nice to have)
- [style] Consider extracting to helper function
- [naming] `data` is too generic, suggest `userProfile`
### By File
- `src/api/auth.ts` - 2 issues
- `src/components/Form.tsx` - 1 suggestion
### Positives
- Good error handling in login flow
- Clean separation of concernsExpected Outcome
Review report with verdict and categorized issues.
Report includes:
- Verdict (Approve/Request Changes/Needs Discussion)
- Issues found (by severity: critical/important/suggestion)
- Issues by file
- Positives (acknowledge good work)
- Spec compliance (if UC provided)
Review Workflow
1. Load Context (once):
- Read
plans/brd/tech-context.md→ Identify stack(s) - Load
knowledge/stacks/{stack}/_index.md→ Focus on "For /dev-review" section - Read
_quality-attributes.md→ Get all level checklists - Read spec (if UC provided) → Get requirements
- Get git diff or file list → Understand what changed
2. Analyze Changes:
- Review each changed file
- Apply: Security + Quality + Conventions + Stack-Specific checks
- Note issues by severity (critical/important/suggestion)
- Acknowledge good practices
3. Verify Spec Compliance (if UC provided):
- Check all requirements met
- Identify missing items
- Flag unauthorized additions
4. Generate Report:
- Verdict (Approve/Request Changes/Needs Discussion)
- Issues by severity
- Issues by file
- Spec compliance status
- Positives
5. Offer Fix (if issues found):
- Critical/Important → Suggest auto-fix via
/dev-coding - Suggestions → User decides
Success Criteria
- Stack knowledge loaded and applied
- Security risks identified
- Quality issues found
- Spec compliance verified
- Conventions checked
- Framework patterns verified (from stack knowledge)
- Constructive feedback with suggested fixes
- Clear verdict given
Review Focus Areas
Security
- Input validation (sanitized, injection prevented, XSS prevented)
- Authentication (required where needed, tokens validated, sessions secure)
- Authorization (permissions checked, data access restricted, admin protected)
- Data protection (passwords hashed, sensitive data not logged, no secrets in code)
- API security (rate limiting, CORS, no sensitive data in URLs)
Quality
- Error handling (caught, user-friendly messages, logged, not swallowed)
- Performance (no N+1 queries, pagination on lists, async heavy ops, no memory leaks)
- Maintainability (readable, functions not too long, no magic values, DRY)
- Testing (new code tested, edge cases covered, meaningful tests)
Conventions
- Naming (variables, files, components per scout)
- Structure (correct location, follows patterns, organized imports)
- Style (matches configs, consistent, no linting errors)
- Git (proper commit format, no unrelated changes, no debug code)
Spec Compliance
- Requirements met (all implemented)
- Requirements not met (missing items)
- Not in spec (unauthorized additions)
Stack-Specific
CRITICAL: Load framework-specific review checklists from references/stack-checks.md. Also load knowledge/stacks/{stack}/_index.md "For /dev-review" section for deeper patterns.
Context Sources
Read to understand what was changed:
- git diff (uncommitted or staged)
- Specific files (if provided)
Read to understand standards:
Step 1: Load stack knowledge (CRITICAL)
- Read
plans/brd/tech-context.md→ Identify stack(s) - Extract stack names (look for "Primary Stack" or "Tech Stack" section)
- Load corresponding knowledge files:
- If "React" → Read
knowledge/stacks/react/_index.md→ Focus on "For /dev-review" section - If "Vue" → Read
knowledge/stacks/vue/_index.md→ Focus on "For /dev-review" section - If "Next.js" → Read
knowledge/stacks/nextjs/_index.md→ Focus on "For /dev-review" section - If "Nuxt" → Read
knowledge/stacks/nuxt/_index.md→ Focus on "For /dev-review" section - If "Directus" → Read
knowledge/stacks/directus/_index.md→ Focus on "For /dev-review" section
- If "React" → Read
Step 2: Load project and spec context
tech-context.md- Project conventionsarchitecture.md- Architecture decisions (if exists)spec- Requirements (if UC provided)_quality-attributes.md- ALL levels (Architecture, Specification, Implementation, Review)- Config files (
.eslintrc,tsconfig.json, etc.)
Severity Levels
| Level | Icon | Meaning | Action |
|---|---|---|---|
| Critical | 🔴 | Security risk, bug, breaks functionality | Must fix before merge |
| Important | 🟡 | Performance, maintainability issues | Should fix |
| Suggestion | 🔵 | Style, improvements | Nice to have |
| Positive | ✅ | Good practice noted | Encouragement |
Verdicts
| Verdict | When |
|---|---|
| ✅ Approve | No critical/important issues |
| ⚠️ Request Changes | Has critical or multiple important issues |
| ❓ Needs Discussion | Unclear requirements, architectural concerns |
Review Best Practices
See references/review-examples.md for constructive feedback patterns, example reviews, and fix loop details.
Key principles: Be constructive (suggest fix, not just flag), explain why, suggest alternatives, acknowledge good work.
Tools Used
| Tool | Purpose |
|---|---|
Bash |
git diff, git log |
Read |
Read changed files, specs, BRD use cases |
Grep |
Search for patterns |
Glob |
Find related files |
BRD Coverage Verification (--brd flag)
When --brd flag provided, perform macro-level verification: Code vs BRD use cases.
1. Load BRD use cases:
- Read all
plans/brd/use-cases/{feature}/UC-*.md - Extract requirements and acceptance criteria per UC
2. Load code changes:
git log --onelinefor feature branch/periodgit diff --statfor files changed
3. Map changes to UCs:
For each UC, determine:
- ✅ Covered: Code changes address requirements
- ⚠️ Partial: Some requirements met, some missing
- ❌ Not covered: No code changes for this UC
4. Report:
## BRD Coverage Report: {feature}
| UC | Title | Status | Evidence |
|----|-------|--------|----------|
| UC-PAY-001 | Checkout | ✅ Covered | src/api/checkout.ts, src/components/Checkout.tsx |
| UC-PAY-002 | Refund | ⚠️ Partial | API done, UI missing |
| UC-PAY-004 | Invoice | ❌ Not covered | No related changes |
### Summary
- **Covered**: 3/5 UCs
- **Partial**: 1/5 UCs
- **Not covered**: 1/5 UCs5. Recommendation:
- All covered → "BRD requirements fully addressed"
- Gaps exist → "X UCs not covered. Run
/dev-specs+/dev-codingfor missing UCs"
Fix Loop
When issues found, offer to fix via /dev-coding. See references/review-examples.md for detailed fix loop flow.
Issues found? → Offer fix → /dev-coding (fix) → /dev-review (re-run) → Pass → /dev-changelogAfter Pass
When review passes: suggest /dev-changelog {feature} to document what was built.
Integration
| Skill | Relationship |
|---|---|
/dev-coding |
Review after implementation, call to fix issues |
/dev-scout |
Get project conventions |
/dev-specs |
Check spec compliance |
/dev-changelog |
Document after pass |
References
references/stack-checks.md- Framework-specific review checklistsreferences/review-examples.md- Examples, fix loop, best practices