review-clean-code
Clean Code Review
Focused on 7 high-impact review dimensions based on "Clean Code" principles.
Review Workflow
Review Progress:
- [ ] 1. Scan codebase: identify files to review
- [ ] 2. Check each dimension (naming, functions, DRY, YAGNI, magic numbers, clarity, conventions)
- [ ] 3. Rate severity (High/Medium/Low) for each issue
- [ ] 4. Generate report sorted by severity
Core Principle: Preserve Functionality
All suggestions target implementation approach only—never suggest changing the code's functionality, output, or behavior.
Check Dimensions
1. Naming Issues【Meaningful Names】
Check for:
- Meaningless names like
data1,temp,result,info,obj - Inconsistent naming for same concepts (
get/fetch/retrievemixed)
// ❌
const d = new Date();
const data1 = fetchUser();
// ✅
const currentDate = new Date();
const userProfile = fetchUser();
2. Function Issues【Small Functions + SRP】
Check for:
- Functions exceeding 100 lines
- More than 3 parameters
- Functions doing multiple things
// ❌ 7 parameters
function processOrder(user, items, address, payment, discount, coupon, notes)
// ✅ Use parameter object
interface OrderParams { user: User; items: Item[]; shipping: Address; payment: Payment }
function processOrder(params: OrderParams)
3. Duplication Issues【DRY】
Check for:
- Similar if-else structures
- Similar data transformation/error handling logic
- Copy-paste traces
4. Over-Engineering【YAGNI】
Check for:
if (config.legacyMode)branches that are never true- Interfaces with only one implementation
- Useless try-catch or if-else
// ❌ YAGNI violation: unused compatibility code
if (config.legacyMode) {
// 100 lines of compatibility code
}
5. Magic Numbers【Avoid Hardcoding】
Check for:
- Bare numbers without explanation
- Hardcoded strings
// ❌
if (retryCount > 3) // What is 3?
setTimeout(fn, 86400000) // How long is this?
// ✅
const MAX_RETRY_COUNT = 3;
const ONE_DAY_MS = 24 * 60 * 60 * 1000;
6. Structural Clarity【Readability First】
Check for:
- Nested ternary operators
- Overly compact one-liners
- Deep conditional nesting (> 3 levels)
// ❌ Nested ternary
const status = a ? (b ? 'x' : 'y') : (c ? 'z' : 'w');
// ✅ Use switch or if/else
function getStatus(a, b, c) {
if (a) return b ? 'x' : 'y';
return c ? 'z' : 'w';
}
7. Project Conventions【Consistency】
Check for:
- Mixed import order (external libs vs internal modules)
- Inconsistent function declaration styles
- Mixed naming conventions (camelCase vs snake_case)
// ❌ Inconsistent style
import { api } from './api'
import axios from 'axios' // External lib should come first
const handle_click = () => { ... } // Mixed naming style
// ✅ Unified style
import axios from 'axios'
import { api } from './api'
function handleClick(): void { ... }
[!TIP] Project conventions should refer to
CLAUDE.md,AGENTS.md, or project-defined coding standards.
Severity Levels
| Level | Criteria |
|---|---|
| High | Affects maintainability/readability, should fix immediately |
| Medium | Room for improvement, recommended fix |
| Low | Code smell, optional optimization |
Output Format
### [Issue Type]: [Brief Description]
- **Principle**: [Clean Code principle]
- **Location**: `file:line`
- **Severity**: High/Medium/Low
- **Issue**: [Specific description]
- **Suggestion**: [Fix direction]
Artifacts (Pipeline Mode)
- Output:
clean-code-review.md(human-readable report) - Output:
clean-code-review.json(structured issue list for aggregation/deduplication/statistics)
References
Detailed examples: See detailed-examples.md
- Complete cases for each dimension (naming, functions, DRY, YAGNI, magic numbers)
Language patterns: See language-patterns.md
- TypeScript/JavaScript common issues
- Python common issues
- Go common issues
Multi-Agent Parallel
Split by the following dimensions for parallel multi-agent execution:
- By check dimension - One agent per dimension (7 total)
- By module/directory - One agent per module
- By language - One agent each for TypeScript, Python, Go
- By file type - Components, hooks, utilities, type definitions
Example: /review-clean-code --scope=components or --dimension=naming
Deduplication and unified severity rating needed when aggregating.
More from heyvhuang/ship-faster
mcp-supabase
Execute database operations via Supabase MCP (query/write/migration/logs/type generation). Triggers: query/statistics/export/insert/update/delete/fix/backfill/migrate/logs/alerts/type generation. Does not trigger for: pure architecture discussion or code planning. Write operations require confirmation; UPDATE/DELETE without WHERE is refused.
76tool-openclaw
Help users install, configure, and operate OpenClaw (gateway, channels, nodes, plugins). Use when answering OpenClaw setup/debug questions; use the local docs snapshot bundled with this skill as the source of truth. Triggers: openclaw, clawdbot, clawd, clawdhub, gateway, onboard, channels login, whatsapp, telegram, discord, mattermost, pairing, nodes, sandboxing, tailscale.
62tool-ast-grep-rules
Write AST-based code search and rewrite rules using ast-grep YAML. Create linting rules, code modernizations, and API migrations with auto-fix. Use when the user mentions ast-grep, tree-sitter patterns, code search rules, lint rules with YAML, AST matching, or code refactoring patterns.
55skill-evolution
Global evolution system for ship-faster skills. Uses hooks to capture context, failures, and session summaries, then generates patch suggestions (no auto edits) via skill-improver. Use when you want the skills to self-improve safely and continuously.
53review-doc-consistency
Documentation consistency reviewer that checks alignment between code implementation and documentation. Use when user requests reviewing documentation vs code consistency, checking if README/docs are outdated, verifying API documentation accuracy. Applicable for (1) reviewing README vs implementation consistency (2) checking if docs/ directory content is outdated (3) verifying API/config documentation accuracy (4) generating documentation consistency reports. Trigger words include doc review, documentation consistency, check outdated docs, verify docs.
53stripe
Billing and payment operations for Stripe: customers, products, prices, invoices, payment links, subscriptions, refunds, disputes, balance. Triggers: create customer, create product, create invoice, generate payment link, query transactions, process refunds, manage subscriptions, view disputes, check balance. Money operations require confirmation. MCP is optional — works with Dashboard/CLI too.
53