clean-code
/clean-code
Use when writing, reviewing or refactoring code to make it clean, readable and maintainable following Robert C. Martin's Clean Code principles (naming, small functions, comments, error handling, tests, code smells) — código limpo, refatorar, revisar código, boas práticas.
- Author
- hanspeterdietiker ↗
- Repository
- open-agent-skills ↗
- Licence
- MIT
- Last repository change
- 12.11.2026
Assessment and security
- Files in this package
- 2
- Scripts
- 0
- HTML comments
- 0
- URLs in SKILL.md
- 4
No signals detected. Repository changed on 12.11.2026, without references to retired models or APIs.
MIT, open: use and modify while retaining author attribution.
What it does and when to use it
Use when writing, reviewing or refactoring code to make it clean, readable and maintainable following Robert C. Martin's Clean Code principles (naming, small functions, comments, error handling, tests, code smells) — código limpo, refatorar, revisar código, boas práticas.
Original author description
Use when writing, reviewing or refactoring code to make it clean, readable and maintainable following Robert C. Martin's Clean Code principles (naming, small functions, comments, error handling, tests, code smells) — código limpo, refatorar, revisar código, boas práticas.
How it works
- 🧠 Core Philosophy
- When to Use
- 1. Meaningful Names
- 2. Functions
- 3. Comments
- 4. Formatting
- 5. Objects and Data Structures
- 6. Error Handling
- 7. Unit Tests
- 8. Classes
SKILL.md preview
--- name: clean-code description: "Use when writing, reviewing or refactoring code to make it clean, readable and maintainable following Robert C. Martin's Clean Code principles (naming, small functions, comments, error handling, tests, code smells) — código limpo, refatorar, revisar código, boas práticas." license: MIT metadata: author: sickn33 (agentic-awesome-skills) source: https://github.com/sickn33/agentic-awesome-skills/tree/main/skills/clean-code original-source: https://github.com/jackjin1997/ClawForge/tree/main/skills/clean-code --- # Clean Code Skill This skill embodies the principles of "Clean Code" by Robert C. Martin (Uncle Bob). Use it to transform "code that works" into "code that is clean." ## 🧠 Core Philosophy > "Code is clean if it can be read, and enhanced by a developer other than its original author." — Grady Booch ## When to Use Use this skill when: - **Writing new code**: To ensure high quality from the start. - **Reviewing Pull Requests**: To provide constructive, principle-based feedback. - **Refactoring legacy code**: To identify and remove code smells. - **Improving team standards**: To align on industry-standard best practices. These are design heuristics, not universal language rules or authority to change behavior. Follow the actual repository conventions; exceptions versus result types, nullability, argument counts and test cadence depend on the language and task. Preserve necessary rationale, security and license comments. Refactor only within scope and verify the relevant behavior. ## 1. Meaningful Names - **Use Intention-Revealing Names**: `elapsedTimeInDays` instead of `d`. - **Avoid Disinformation**: Don't use `accountList` if it's actually a `Map`. - **Make Meaningful Distinctions**: Avoid `ProductData` vs `ProductInfo`. - **Use Pronounceable/Searchable Names**: Avoid `genymdhms`. - **Class Names**: Use nouns (`Customer`, `WikiPage`). Avoid `Manager`, `Data`. - **Method Names**: Use verbs (`postPayment`, `deletePage`). ## 2. Functions - **Small!**: Functions should be shorter than you think. - **Do One Thing**: A function should do only one thing, and do it well. - **One Level of Abstraction**: Don't mix high-level business logic with low-level details (like regex). - **Descriptive Names**: `isPasswordValid` is better than `check`. - **Arguments**: 0 is ideal, 1-2 is okay, 3+ requires a very strong justification. - **No Side Effects**: Functions shouldn't secretly change global state. ## 3. Comments - **Don't Comment Bad Code—Rewrite It**: Most comments are a sign of failure to express ourselves in code. - **Explain Yourself in Code**: ```python # Check if employee is eligible for full benefits if employee.flags & HOURLY and employee.age > 65: ``` vs ```python if employee.isEligibleForFullBenefits(): ``` - **Good Comments**: Legal, Informative (regex intent), Clarification (external libraries), TODOs. - **Bad Comments**: Mumbling, Redundant, Misleading, Mandated, Noise, Position Markers. ## 4. Formatting - **The Newspaper Metaphor**: High-level concepts at the top, details at the bottom. - **Vertical Density**: Related lines should be close to each other. - **Distance**: Variables should be declared near their usage. - **Indentation**: Essential for structural readability. ## 5. Objects and Data Structures - **Data Abstraction**: Hide the implementation behind interfaces. - **The Law of Demeter**: A module should not know about the innards of the objects it manipulates. Avoid `a.getB().getC().doSomething()`. - **Data Transfer Objects (DTO)**: Classes with public variables and no functions. ## 6. Error Handling - **Use Exceptions instead of Return Codes**: Keeps logic clean. - **Write Try-Catch-Finally First**: Defines the scope of the operation. - **Don't Return Null**: It forces the caller to check for null every time. - **Don't Pass Null**: Leads to `NullPointerException`. ## 7. Unit Tests - **The Three Laws of TDD**: 1. Don't write production code until you have a failing unit test. 2. Don't write more of a unit test than is sufficient to fail. 3. Don't write more production code than is sufficient to pass the failing test. - **F.I.R.S.T. Principles**: Fast, Independent, Repeatable, Self-Validating, Timely. ## 8. Classes - **Small!**: Classes should have a single responsibility (SRP). - **The Stepdown Rule**: We want the code to read like a top-down narrative. ## 9. Smells and Heuristics - **Rigidity**: Hard to change. - **Fragility**: Breaks in many places. - **Immobility**: Hard to reuse. - **Viscosity**: Hard to do the right thing. - **Needless Complexity/Repetition**. ## 🛠️ Implementation Checklist - [ ] Is this function smaller than 20 lines? - [ ] Does this function do exactly one thing? - [ ] Are all names searchable and intention-revealing? - [ ] Have I avoided comments by making the code clearer? - [ ] Am I passing too many arguments? - [ ] Is there a failing test for this change? ## Example **User request:** > Refactor this working code for clearer names, smaller units, explicit errors, and preserved behavior; verify it with focused tests. ## Limitations - Use this skill only when the task clearly matches the scope described above. - Do not treat the output as a substitute for environment-specific validation, testing, or expert review. - Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing. ## Créditos / Credits - **Autor / Author:** [sickn33/agentic-awesome-skills](https://github.com/sickn33/agentic-awesome-skills/tree/main/skills/clean-code) — licença MIT (ver [`LICENSE`](LICENSE) nesta pasta). - **Fonte original citada pelo autor / Original source cited by the author:** [jackjin1997/ClawForge](https://github.com/jackjin1997/ClawForge/tree/main/skills/clean-code). - **Base teórica / Theory:** *Clean Code: A Handbook of Agile Software Craftsmanship*, Robert C. Martin (2008). - **Alterações neste repositório / Changes in this repository:** `description` reescrita como gatilho bilíngue (a original tinha aspas não fechadas, invalidando o YAML); metadados de autoria adicionados; corpo mantido sem alterações.
Files in this package (2)
- LICENSE 1 KB
- SKILL.md 6 KB
Versions
| Repository | Score | Licence |
|---|---|---|
| This page · hanspeterdietiker/open-agent-skills | 100 | MIT |
| FrancoStino/opencode-skills-collection | 100 | MIT |
| rootcastleco/rei-skills | 100 | MIT |
| iWiiCK/iwiick-ai-agent-plugin | 100 | MIT |
| sickn33/agentic-awesome-skills | 100 | MIT |
| sagargupta16/claude-skills | 100 | MIT |
| claude-dev-suite/claude-dev-suite | 100 | MIT |
| jonax1337/clean-code-skill | 100 | MIT |
| jeffersonvalente/cardume | 100 | MIT |
Database snapshot: 13.11.2026 · package version e085875a5cff (SHA-256 digest of the entire package)
Downloads in the last 30 days: 0 · ranking
Report a problem with this skill: harmful content, incorrect descriptions or an author’s removal request.
Similar skills
- 100clean-code-reviewer
Reviews code against Robert C. Martin's Clean Code principles. Use when users share code for review, ask for refactoring suggestions, or want to improve code quality. Produces actionable feedback organized by Clean Code principles with concrete before/after examples. - 100clean-code-ts-react
Use when writing, reviewing, or refactoring TypeScript or React code for craftsmanship — naming, function and component shape, error handling, data modeling, tests, and abstraction. Translates Robert C. Martin's Clean Code principles into modern TS+React idioms (TS 5.x, React… - 100code-refactoring-refactor-clean
Refactor code with clean code principles, SOLID design patterns, and modern software engineering practices to improve quality, maintainability, and performance. Use when cleaning up or restructuring existing code. - 100aif-best-practices
Code quality guidelines and best practices for writing clean, maintainable code. Covers naming, structure, error handling, testing, and code review standards. Use when writing code, reviewing, refactoring, or asking "how should I name this", "best practice for", "clean code". - 100write-readable-code
Use when writing or reviewing code for readability — names that say intent, functions at one level of abstraction, comments for why not what, and consistent formatting. - 100clean-architecture
Clean Architecture principles and best practices from Robert C. Martin's book. This skill should be used when designing software systems, reviewing code structure, or refactoring applications to achieve better separation of concerns. Triggers on tasks involving layers,…