templates/.claude/skills/dev-review/SKILL.md
Review code against language-specific best practices
npx skillsauth add baekenough/oh-my-customcode dev-reviewInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Review code for best practices using language-specific expert agents.
| Scenario | Better Alternative |
|----------|--------------------|
| Formatting/style issues only | Run linter or formatter directly (prettier, gofmt, black) |
| Single syntax error | IDE/LSP diagnostics |
| Auto-generated code | Skip — generated code follows its own conventions |
| Pre-commit quick check | Git hooks with linter integration |
Pre-execution check: If the issue is purely formatting, run the appropriate formatter first.
Before executing the review workflow, the agent MUST run these checks:
Level: WARN Check: Scan target files for auto-generation markers
# Detection patterns (any match = WARN)
grep -rl "DO NOT EDIT" {target} 2>/dev/null
grep -rl "auto-generated" {target} 2>/dev/null
grep -rl "@generated" {target} 2>/dev/null
# File pattern detection
# *.gen.*, *.pb.go, */generated/*, */proto/*, *_generated.*, *.g.dart
Action: [Pre-flight] WARN: Auto-generated code detected in {file}. Generated code follows its own conventions — review may produce false positives. Continue? [Y/n]
Level: INFO Check: If reviewing changed files (not full codebase), check if changes are formatting-only
# If git diff is available for the target
git diff --stat {target} | grep -E '^\s+\d+ files? changed'
# Compare with whitespace-ignored diff
git diff -w {target}
# If -w diff is empty but regular diff has changes → formatting only
Action: [Pre-flight] INFO: Changes in {file} appear to be formatting-only. Consider running the appropriate formatter instead (prettier, gofmt, black).
Level: INFO Check: If target is a single file and the request mentions "error", "syntax", or "broken"
# Keyword detection in user request
keywords: error, syntax, broken, doesn't compile, won't build
# Single file check
target is exactly 1 file (not a directory)
Action: [Pre-flight] INFO: For single syntax errors, IDE/LSP diagnostics are faster. Proceeding with full review.
Level: INFO Check: Detect if a project-appropriate linter exists
# Check for linter configs in project root
ls .eslintrc* .prettierrc* biome.json .golangci.yml pyproject.toml .rubocop.yml 2>/dev/null
Action: [Pre-flight] INFO: Linter config found ({config}). For style-only issues, run the linter directly.
[Pre-flight] dev-review
├── Auto-generated code: PASS
├── Formatting-only changes: INFO — whitespace changes in src/util.ts
├── Single syntax error: PASS
└── Linter available: INFO — .eslintrc.json found
Result: PROCEED (0 GATE, 0 WARN, 2 INFO)
If any GATE: block and suggest alternative. If any WARN: show warning, ask user to confirm. If only PASS/INFO: proceed automatically.
| Name | Type | Required | Description | |------|------|----------|-------------| | path | string | yes | File or directory to review |
--lang, -l Language (auto-detected if not specified)
Values: go, python, rust, kotlin, typescript, java
--focus, -f Focus area (style, performance, security, all)
--verbose, -v Detailed output
0. Run pre-flight guards (see ## Pre-flight Guards)
1. Detect language (or use --lang)
2. Select appropriate expert agent
3. Load language-specific skill
4. Analyze code against best practices
5. Generate review report
.claude/outputs/sessions/{YYYY-MM-DD}/dev-review-{HHmmss}.md
With metadata header:
---
skill: dev-review
date: {ISO-8601 with timezone}
query: "{original user query}"
---
The review agent creates the directory and writes the artifact before returning results (R010 compliance).| File Extension | Agent | Skill | |----------------|-------|-------| | .go | lang-golang-expert | go-best-practices | | .py | lang-python-expert | python-best-practices | | .rs | lang-rust-expert | rust-best-practices | | .kt | lang-kotlin-expert | kotlin-best-practices | | .ts, .tsx | lang-typescript-expert | typescript-best-practices | | .java | be-springboot-expert | springboot-best-practices | | .jsx, .js (React) | fe-vercel-agent | react-best-practices |
[dev:review src/main.go]
┌─ Agent: lang-golang-expert (sw-engineer)
├─ Skill: go-best-practices
└─ File: src/main.go
Review Results:
[Style] Line 15
Issue: Variable name should be camelCase
Found: user_name
Suggest: userName
[Error Handling] Line 42
Issue: Error not checked
Found: file.Close()
Suggest: if err := file.Close(); err != nil { ... }
[Performance] Line 78
Issue: Inefficient string concatenation in loop
Found: str += item
Suggest: Use strings.Builder
Summary:
Style: 1 issue
Error Handling: 1 issue
Performance: 1 issue
Total: 3 issues
Recommendation: Fix error handling issues first.
development
Generate and maintain a persistent codebase wiki — LLM-built interlinked markdown knowledge base (Karpathy LLM Wiki pattern)
development
Use the project wiki as RAG knowledge source — search wiki pages to answer codebase questions before exploring raw files
tools
Analyze task trajectories to propose reusable SKILL.md candidates from successful patterns
data-ai
hada.io RSS feed monitoring for AI agent/harness articles with automated /scout analysis