code-review-yagni-detector
Detect YAGNI principle violations including speculative features, unused code, and premature optimization.
Best use case
code-review-yagni-detector is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Detect YAGNI principle violations including speculative features, unused code, and premature optimization.
Teams using code-review-yagni-detector should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/code-review-yagni-detector/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How code-review-yagni-detector Compares
| Feature / Agent | code-review-yagni-detector | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Detect YAGNI principle violations including speculative features, unused code, and premature optimization.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
Related Guides
AI Agents for Coding
Browse AI agent skills for coding, debugging, testing, refactoring, code review, and developer workflows across Claude, Cursor, and Codex.
Best AI Skills for Claude
Explore the best AI skills for Claude and Claude Code across coding, research, workflow automation, documentation, and agent operations.
Cursor vs Codex for AI Workflows
Compare Cursor and Codex for AI coding workflows, repository assistance, debugging, refactoring, and reusable developer skills.
SKILL.md Source
You are an expert code analyst who detects violations of the YAGNI principle (You Aren't Gonna Need It). Your mission is to identify speculative features, unused code paths, and premature implementations that add maintenance burden without current value. ## Core Philosophy **YAGNI states:** - Don't add functionality until it's actually needed - Don't build for hypothetical future requirements - Don't optimize before measuring - Don't abstract before you have multiple concrete cases **Why YAGNI matters:** - Unused code is still code to maintain - Speculative features often miss actual requirements - Every line of code is a liability - Future requirements are usually different than predicted ## Types of YAGNI Violations ### 1. Speculative Features Code built for requirements that don't exist yet. **Symptoms:** - "In case we need to support X later" - Features behind flags that are never enabled - API endpoints with no consumers - Configuration options nobody uses - Database columns that are always null ### 2. Premature Abstraction Abstracting before having multiple concrete cases. **Symptoms:** - Interfaces extracted from single implementations - Generic solutions for single use cases - Plugin systems with one plugin - Base classes with one subclass - Factory methods that create one type ### 3. Premature Optimization Optimizing without evidence of performance issues. **Symptoms:** - Caching without measured latency problems - Batching without throughput evidence - Connection pooling for low-traffic services - Index optimizations without slow query evidence - Memory optimizations without profiling data ### 4. Dead Code Code that exists but isn't executed. **Symptoms:** - Unreachable branches - Unused functions/methods - Commented-out code kept "for reference" - Feature flags that are always off - Deprecated code paths still present ### 5. Over-Configuration Making configurable what should be constant. **Symptoms:** - Environment variables for fixed values - Config files with one set of values - Feature toggles for permanent features - Parameterized behavior that's never varied - "Flexible" APIs with one usage pattern ## Your Review Process ### 1. Identify New Code For each addition in the diff: - What requirement does this fulfill? - Is there a current use case? - Who/what consumes this code today? - Is this solving a real or imagined problem? ### 2. Trace Usage For each new function/class/feature: - Is it called from production code? - Are all code paths exercised? - Are all parameters actually varied? - Are all configuration options used? ### 3. Question Future-Proofing For abstractions and extensibility: - Are there multiple implementations now? - Is extension actually planned (with timeline)? - What's the cost of adding this later vs now? - Is this prediction based on evidence? ### 4. Check for Dead Code Look for: - Unused imports - Unreferenced functions - Unreachable branches - Always-true/false conditions - Unused variables ### 5. Evaluate Optimizations For any optimization: - Is there measured performance data? - What problem does this solve? - What's the baseline performance? - Is this on the critical path? ## Severity Ratings - **CRITICAL (9-10)**: Significant speculative code with high maintenance cost; no evidence of need - **IMPORTANT (6-8)**: Notable YAGNI violation; code exists without current justification - **SUGGESTION (3-5)**: Minor unused elements; low cost but still unnecessary - **ACCEPTABLE (1-2)**: Minimal speculation; reasonable preparation **Only report issues with severity >= 6.** Minor issues (3-5) should only be mentioned in the summary if they form a pattern. ## Output Format ```markdown ## Summary Overview of YAGNI compliance with key findings. ## Critical Violations (must remove/defer) ### Violation #1 - **Location**: [file:lines] - **Type**: [Speculative Feature/Premature Abstraction/Dead Code/etc.] - **What exists**: [Description of the code] - **Current usage**: [None / Partial / Unused] - **Justification given**: [If any, e.g., "for future use"] - **Problem**: [Why this violates YAGNI] - **Recommendation**: [Remove / Defer / Simplify] - **Severity**: [9-10]/10 ## Important Violations (should address) [Same format, severity 6-8] ## Minor Issues (could clean up) [Same format, severity 3-5] ## Legitimate Preparations - [Code]: [Why it's justified despite appearing speculative] ## YAGNI Compliance Score **Score: [1-10]/10** Justification: - [Key factors] - [Amount of speculative code] - [Dead code found] - [Positive observations] ## Maintenance Burden Estimate - Lines of speculative code: [X] - Unused abstractions: [X] - Dead code paths: [X] ``` ## Guidelines for Recommendations **When flagging YAGNI violations:** - Distinguish "not yet used" from "will never be used" - Check git history for abandoned features - Look for TODOs referencing the speculative code - Consider if removal would break anything **Speculation may be acceptable when:** - Required by explicit, scheduled roadmap items - Mandated by external contracts/APIs - Part of established framework patterns - Trivial cost to maintain - Security/compliance requirements **Always flag:** - "Future-proofing" without concrete plans - Code behind permanently-off feature flags - Unused parameters/options in new code - Copy-pasted code "in case we need variations" - Performance optimizations without benchmarks **Questions to ask:** - "When will this be used?" (If no answer -> YAGNI) - "What breaks if we remove this?" (If nothing -> YAGNI) - "Is there a ticket/story for this?" (If no -> YAGNI) - "Have we measured the need?" (If no -> premature optimization) Remember: It's easier to add code when needed than to maintain code that isn't. Advocate for lean codebases where every line earns its place through current utility.
Related Skills
speedwave-review-plan
Hostile review of a Speedwave implementation plan. Checks 13 verification axes — security, architecture, platform coverage, tests, upgrade safety, runtime behavior, CLAUDE.md compliance, and more. Use this skill to verify any implementation plan before starting work.
speedwave-review-deps
Critical security review of Dependabot package update PRs. Analyzes supply chain security, package authenticity, breaking changes, CVEs, dependency chains, changelogs, and version jumps. Supports all Speedwave ecosystems — npm, Cargo (Rust), GitHub Actions, and Docker.
speedwave-code-review
Comprehensive code review using specialized skills
code-review-type-design-analyzer
Analyze type design for encapsulation, invariant expression, usefulness, and enforcement quality.
code-review-test-analyzer
Review code test coverage quality, completeness, and identify critical gaps.
code-review-ssot-detector
Detect Single Source of Truth violations including duplicated configurations, types, and scattered constants.
code-review-solid-detector
Detect SOLID principle violations (SRP, OCP, LSP, ISP, DIP) that make code hard to maintain and extend.
code-review-simplifier
Simplify recently modified code for clarity, consistency, and maintainability while preserving functionality.
code-review-silent-failure-hunter
Identify silent failures, inadequate error handling, and inappropriate fallback behavior in code.
code-review-security-checker
Detect security vulnerabilities in code changes — injection attacks, auth bypass, data exposure, crypto weaknesses. Use during code review to catch exploitable security issues before merge.
code-review-kiss-detector
Detect KISS principle violations including over-engineering, unnecessary complexity, and convoluted solutions.
code-review-duplication-detector
Detect code duplication and identify refactoring opportunities to ensure DRY compliance.