
Clean Code
FreeAdopt pragmatic coding standards for better code quality.
Free ยท Opens the source repo
What Clean Code does
The Clean Code skill provides a set of pragmatic coding standards aimed at improving code quality and maintainability. It emphasizes principles such as Single Responsibility (SRP), Don't Repeat Yourself (DRY), Keep It Simple (KISS), and You Aren't Gonna Need It (YAGNI). By adhering to these principles, developers can write code that is concise, direct, and focused on solutions rather than unnecessary complexities. This skill is particularly useful for teams looking to establish a consistent coding style and for individual developers seeking to enhance their coding practices.
The skill also outlines specific naming conventions and function rules that promote clarity and simplicity in code. For instance, it suggests using descriptive variable names that reveal intent and keeping functions small, ideally between 5 to 10 lines. These guidelines help ensure that code is self-explanatory, reducing the need for excessive comments and making it easier for others to understand and maintain.
In addition to coding standards, the Clean Code skill provides a framework for structuring code effectively. It advocates for patterns such as guard clauses to handle edge cases early and encourages the use of composition over deep nesting. This approach not only enhances readability but also facilitates easier debugging and testing.
This skill is designed for developers and teams who prioritize writing clean, maintainable code. It serves as a reference for best practices and a checklist for self-assessment before completing coding tasks, ensuring that all necessary considerations are addressed before finalizing changes.
When to use it
Use this skill when you want to enforce coding standards and improve code readability and maintainability in your projects.
When not to use it
This skill may not be suitable for projects where flexibility and rapid prototyping are prioritized over strict coding standards.
What you can build with it
Team Code Review
Implement the Clean Code principles during team code reviews to ensure everyone adheres to the same standards.
Onboarding New Developers
Use this skill as a reference for new developers to help them understand the coding standards expected in your projects.
Refactoring Legacy Code
Apply the Clean Code practices when refactoring legacy code to improve its maintainability and readability.
How to install Clean Code
View source1. Install with the skills CLI
npx skills add davila7/claude-code-templates/clean-code --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by davila7Clean Code - Pragmatic AI Coding Standards
CRITICAL SKILL - Be concise, direct, and solution-focused.
Core Principles
| Principle | Rule |
|---|---|
| SRP | Single Responsibility - each function/class does ONE thing |
| DRY | Don't Repeat Yourself - extract duplicates, reuse |
| KISS | Keep It Simple - simplest solution that works |
| YAGNI | You Aren't Gonna Need It - don't build unused features |
| Boy Scout | Leave code cleaner than you found it |
Naming Rules
| Element | Convention |
|---|---|
| Variables | Reveal intent: userCount not n |
| Functions | Verb + noun: getUserById() not user() |
| Booleans | Question form: isActive, hasPermission, canEdit |
| Constants | SCREAMING_SNAKE: MAX_RETRY_COUNT |
Rule: If you need a comment to explain a name, rename it.
Function Rules
| Rule | Description |
|---|---|
| Small | Max 20 lines, ideally 5-10 |
| One Thing | Does one thing, does it well |
| One Level | One level of abstraction per function |
| Few Args | Max 3 arguments, prefer 0-2 |
| No Side Effects | Don't mutate inputs unexpectedly |
Code Structure
| Pattern | Apply |
|---|---|
| Guard Clauses | Early returns for edge cases |
| Flat > Nested | Avoid deep nesting (max 2 levels) |
| Composition | Small functions composed together |
| Colocation | Keep related code close |
AI Coding Style
| Situation | Action |
|---|---|
| User asks for feature | Write it directly |
| User reports bug | Fix it, don't explain |
| No clear requirement | Ask, don't assume |
Anti-Patterns (DON'T)
| โ Pattern | โ Fix |
|---|---|
| Comment every line | Delete obvious comments |
| Helper for one-liner | Inline the code |
| Factory for 2 objects | Direct instantiation |
| utils.ts with 1 function | Put code where used |
| "First we import..." | Just write code |
| Deep nesting | Guard clauses |
| Magic numbers | Named constants |
| God functions | Split by responsibility |
๐ด Before Editing ANY File (THINK FIRST!)
Before changing a file, ask yourself:
| Question | Why |
|---|---|
| What imports this file? | They might break |
| What does this file import? | Interface changes |
| What tests cover this? | Tests might fail |
| Is this a shared component? | Multiple places affected |
Quick Check:
File to edit: UserService.ts
โโโ Who imports this? โ UserController.ts, AuthController.ts
โโโ Do they need changes too? โ Check function signatures
๐ด Rule: Edit the file + all dependent files in the SAME task. ๐ด Never leave broken imports or missing updates.
Summary
| Do | Don't |
|---|---|
| Write code directly | Write tutorials |
| Let code self-document | Add obvious comments |
| Fix bugs immediately | Explain the fix first |
| Inline small things | Create unnecessary files |
| Name things clearly | Use abbreviations |
| Keep functions small | Write 100+ line functions |
Remember: The user wants working code, not a programming lesson.
๐ด Self-Check Before Completing (MANDATORY)
Before saying "task complete", verify:
| Check | Question |
|---|---|
| โ Goal met? | Did I do exactly what user asked? |
| โ Files edited? | Did I modify all necessary files? |
| โ Code works? | Did I test/verify the change? |
| โ No errors? | Lint and TypeScript pass? |
| โ Nothing forgotten? | Any edge cases missed? |
๐ด Rule: If ANY check fails, fix it before completing.
Verification Scripts (MANDATORY)
๐ด CRITICAL: Each agent runs ONLY their own skill's scripts after completing work.
Agent โ Script Mapping
| Agent | Script | Command |
|---|---|---|
| frontend-specialist | UX Audit | python ~/.claude/skills/frontend-design/scripts/ux_audit.py . |
| frontend-specialist | A11y Check | python ~/.claude/skills/frontend-design/scripts/accessibility_checker.py . |
| backend-specialist | API Validator | python ~/.claude/skills/api-patterns/scripts/api_validator.py . |
| mobile-developer | Mobile Audit | python ~/.claude/skills/mobile-design/scripts/mobile_audit.py . |
| database-architect | Schema Validate | python ~/.claude/skills/database-design/scripts/schema_validator.py . |
| security-auditor | Security Scan | python ~/.claude/skills/vulnerability-scanner/scripts/security_scan.py . |
| seo-specialist | SEO Check | python ~/.claude/skills/seo-fundamentals/scripts/seo_checker.py . |
| seo-specialist | GEO Check | python ~/.claude/skills/geo-fundamentals/scripts/geo_checker.py . |
| performance-optimizer | Lighthouse | python ~/.claude/skills/performance-profiling/scripts/lighthouse_audit.py <url> |
| test-engineer | Test Runner | python ~/.claude/skills/testing-patterns/scripts/test_runner.py . |
| test-engineer | Playwright | python ~/.claude/skills/webapp-testing/scripts/playwright_runner.py <url> |
| Any agent | Lint Check | python ~/.claude/skills/lint-and-validate/scripts/lint_runner.py . |
| Any agent | Type Coverage | python ~/.claude/skills/lint-and-validate/scripts/type_coverage.py . |
| Any agent | i18n Check | python ~/.claude/skills/i18n-localization/scripts/i18n_checker.py . |
โ WRONG:
test-engineerrunningux_audit.pyโ CORRECT:frontend-specialistrunningux_audit.py
๐ด Script Output Handling (READ โ SUMMARIZE โ ASK)
When running a validation script, you MUST:
- Run the script and capture ALL output
- Parse the output - identify errors, warnings, and passes
- Summarize to user in this format:
## Script Results: [script_name.py]
### โ Errors Found (X items)
- [File:Line] Error description 1
- [File:Line] Error description 2
### โ ๏ธ Warnings (Y items)
- [File:Line] Warning description
### โ
Passed (Z items)
- Check 1 passed
- Check 2 passed
**Should I fix the X errors?**
- Wait for user confirmation before fixing
- After fixing โ Re-run script to confirm
๐ด VIOLATION: Running script and ignoring output = FAILED task. ๐ด VIOLATION: Auto-fixing without asking = Not allowed. ๐ด Rule: Always READ output โ SUMMARIZE โ ASK โ then fix.
Frequently asked questions about Clean Code
Similar skills
Quality Playbook Generator
Run comprehensive quality audits on any codebase.
PR Draft Summary
Automate PR summary generation for openai-agents-python.
Final Release Review
Streamline your release candidate audits with ease.
Unit Test Vue Pinia
Efficiently write and review unit tests for Vue 3 applications.
Slang Shader Expert
Optimize and integrate Slang shaders with ease.
Telemetry Standards
Ensure consistent event tracking in Supabase Studio.
