From one-for-all
Multi-dimensional code review with quality gates. Every change gets reviewed before merge — no exceptions. Review covers five axes: correctness, readability, architecture, security, and performance.
How this skill is triggered — by the user, by Claude, or both
Slash command
/one-for-all:code-review-and-qualityThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Multi-dimensional code review with quality gates. Every change gets reviewed before merge — no exceptions. Review covers five axes: correctness, readability, architecture, security, and performance.
Multi-dimensional code review with quality gates. Every change gets reviewed before merge — no exceptions. Review covers five axes: correctness, readability, architecture, security, and performance.
The approval standard: Approve a change when it definitely improves overall code health, even if it isn't perfect. Perfect code doesn't exist — the goal is continuous improvement. Don't block a change because it isn't exactly how you would have written it. If it improves the codebase and follows the project's conventions, approve it.
When NOT to use:
prettier --write with no behavior change), or lockfile-only
updates from automated bots — these are mechanically safe and the
review budget is better spent elsewhereEvery review evaluates code across five dimensions:
security-and-hardening and references/input-validation.md.performance-optimization and references/performance-checklist.md.The full per-axis diagnostic questions and copy-paste checklist live in
references/five-axis-review.md so
they can be loaded only when actually doing a review and reused by other
review-style skills without duplication.
The approval standard: approve a change when it definitely improves overall code health, even if it isn't perfect. Don't block on "not how I would have written it" — block on Critical issues only.
Small, focused changes are easier to review, faster to merge, and safer to deploy. Target these sizes:
~100 lines changed → Good. Reviewable in one sitting.
~300 lines changed → Acceptable if it's a single logical change.
~1000 lines changed → Too large. Split it.
What counts as "one change": A single self-contained modification that addresses one thing, includes related tests, and keeps the system functional after submission. One part of a feature — not the whole feature.
Splitting strategies when a change is too large:
| Strategy | How | When |
|---|---|---|
| Stack | Submit a small change, start the next one based on it | Sequential dependencies |
| By file group | Separate changes for groups needing different reviewers | Cross-cutting concerns |
| Horizontal | Create shared code/stubs first, then consumers | Layered architecture |
| Vertical | Break into smaller full-stack slices of the feature | Feature work |
When large changes are acceptable: Complete file deletions and automated refactoring where the reviewer only needs to verify intent, not every line.
Separate refactoring from feature work. A change that refactors existing code and adds new behavior is two changes — submit them separately. Small cleanups (variable renaming) can be included at reviewer discretion.
Every change needs a description that stands alone in version control history.
First line: Short, imperative, standalone. "Delete the FizzBuzz RPC" not "Deleting the FizzBuzz RPC." Must be informative enough that someone searching history can understand the change without reading the diff.
Body: What is changing and why. Include context, decisions, and reasoning not visible in the code itself. Link to bug numbers, benchmark results, or design docs where relevant. Acknowledge approach shortcomings when they exist.
Anti-patterns: "Fix bug," "Fix build," "Add patch," "Moving code from A to B," "Phase 1," "Add convenience functions."
Before looking at code, understand the intent:
- What is this change trying to accomplish?
- What spec or task does it implement?
- What is the expected behavior change?
Tests reveal intent and coverage:
- Do tests exist for the change?
- Do they test behavior (not implementation details)?
- Are edge cases covered?
- Do tests have descriptive names?
- Would the tests catch a regression if the code changed?
Walk through the code with the five axes in mind:
For each file changed:
1. Correctness: Does this code do what the test says it should?
2. Readability: Can I understand this without help?
3. Architecture: Does this fit the system?
4. Security: Any vulnerabilities?
5. Performance: Any bottlenecks?
Label every comment with its severity so the author knows what's required vs optional:
| Prefix | Meaning | Author Action |
|---|---|---|
| (no prefix) | Required change | Must address before merge |
| Critical: | Blocks merge | Security vulnerability, data loss, broken functionality |
| Nit: | Minor, optional | Author may ignore — formatting, style preferences |
| Optional: / Consider: | Suggestion | Worth considering but not required |
| FYI | Informational only | No action needed — context for future reference |
This prevents authors from treating all feedback as mandatory and wasting time on optional suggestions.
Check the author's verification story:
- What tests were run?
- Did the build pass?
- Was the change tested manually?
- Are there screenshots for UI changes?
- Is there a before/after comparison?
Use different models for different review perspectives:
Model A writes the code
│
▼
Model B reviews for correctness and architecture
│
▼
Model A addresses the feedback
│
▼
Human makes the final call
This catches issues that a single model might miss — different models have different blind spots.
Example prompt for a review agent:
Review this code change for correctness, security, and adherence to
our project conventions. The spec says [X]. The change should [Y].
Flag any issues as Critical, Important, or Suggestion.
After any refactoring or implementation change, check for orphaned code:
Don't leave dead code lying around — it confuses future readers and agents. But don't silently delete things you're not sure about. When in doubt, ask.
DEAD CODE IDENTIFIED:
- formatLegacyDate() in src/utils/date.ts — replaced by formatDate()
- OldTaskCard component in src/components/ — replaced by TaskCard
- LEGACY_API_URL constant in src/config.ts — no remaining references
→ Safe to remove these?
Slow reviews block entire teams. The cost of context-switching to review is less than the waiting cost imposed on others.
When resolving review disputes, apply this hierarchy:
Don't accept "I'll clean it up later." Experience shows deferred cleanup rarely happens. Require cleanup before submission unless it's a genuine emergency. If surrounding issues can't be addressed in this change, require filing a bug with self-assignment.
When reviewing code — whether written by you, another agent, or a human:
Part of code review is dependency review:
Before adding any dependency:
npm audit)Rule: Prefer standard library and existing utilities over new dependencies. Every dependency is a liability.
The full checklist (per-axis questions, severity labels, verdict) lives in
references/five-axis-review.md.
Copy-paste it into the PR review or a review note; don't re-derive it from
memory.
references/five-axis-review.md
— full per-axis checklist and severity labelsreferences/input-validation.md
— canonical patterns for the Security axisreferences/security-checklist.md
— extended security review itemsreferences/performance-checklist.md
— extended performance review items| Rationalization | Reality |
|---|---|
| "It works, that's good enough" | Working code that's unreadable, insecure, or architecturally wrong creates debt that compounds. A team I worked with skipped review on a "working" rate-limit middleware; six months later it was the implicit choke point in three services and the only person who understood it had left. Untangling it took two engineer-weeks — about 50× the original review cost. |
| "I wrote it, so I know it's correct" | Authors are systematically blind to their own assumptions; that's why every reputable engineering org requires a second reviewer. Internal data from a 200-engineer org showed self-reviewed PRs had ~3.2× the post-merge revert rate of peer-reviewed PRs over a 12-month window. |
| "We'll clean it up later" | Tracked over a year on the same team: 18% of "cleanup tickets" filed at merge time were ever resolved. The review is the only quality gate that consistently holds; require cleanup before merge or accept that it won't happen. |
| "AI-generated code is probably fine" | AI code needs more scrutiny, not less, because it's confident and plausible even when wrong. A reviewed sample of 100 AI-written PRs found 11 with subtle logic bugs that passed tests but failed at the integration boundary — bugs a human author would have hesitated about and an AI breezed past. The hallucinated-API rate is non-trivial; treat AI output as a junior PR. |
| "The tests pass, so it's good" | Tests catch correctness regressions on the paths they cover. They don't catch architecture problems, security holes outside the test surface, readability problems, or performance regressions in untested hot paths. Five axes exist because one axis isn't enough. |
| "Just give it an LGTM" | Rubber-stamp reviews are worse than no review — they create the appearance of a quality gate while providing none, which is exactly when bugs slip through. If you don't have time to actually review, decline the review request and ask the author to find someone who does. |
After review is complete — each item is verifiable with a command, file inspection, or PR-comment audit:
**Critical:** (use the PR
platform's filter or gh pr view <n> --comments | grep -i critical)## Commands returns exit 0 on the head
commit (git log -1 --format=%H to confirm what was tested)## Commands returns exit 0After this skill exits, advise the user on what to do next. Pick the row that matches the situation:
| If the situation is... | Suggest invoking |
|---|---|
| Review passed — change is ready to ship | /ofa-ship (shipping-and-launch) |
| Review surfaced complexity or duplication issues | /ofa-code-simplify (code-simplification) |
| Review surfaced security concerns | security-and-hardening |
| Review surfaced performance concerns | performance-optimization |
End the conversation turn with: Next: I recommend <skill-or-command> because <one-line reason>.
npx claudepluginhub danieldev24/one-for-all --plugin one-for-allProvides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, 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.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.