clean-code · sickn33 — скилл для Claude Code: что делает и как установить
Скилл помогает писать, проверять и рефакторить код по принципам Clean Code. Пригодится для ревью, legacy-кода и изменений с тестами.
npx skills add sickn33/agentic-awesome-skills --skill clean-code -a claude-codeЧто делает clean-code
Скилл разбирает код по именам, размеру функций, числу аргументов, побочным эффектам и границам ответственности классов. Он предлагает отделять бизнес-логику от деталей, скрывать устройство объектов за интерфейсами, обрабатывать ошибки через исключения и не возвращать null без необходимости.
Для ревью и рефакторинга он использует эвристики: ищет запутанные имена, лишние комментарии, повторение, жёсткие связи и признаки хрупкости. Отдельные правила касаются форматирования, DTO, закона Деметры и юнит-тестов по TDD. В чек-листе есть проверка функций короче 20 строк и наличие теста, который сначала падает.
Правила не дают права менять поведение кода: нужно сохранять нужные комментарии о безопасности и лицензии, учитывать соглашения репозитория и проверять результат. Скилл устанавливается отдельно для Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI и OpenCode.
Какие задачи решает
- переименовать неясные переменные и методы
- разделить крупную функцию на небольшие части
- найти лишние комментарии и заменить их ясным кодом
- проверить рефакторинг сфокусированными юнит-тестами
- выявить жёсткие связи и повторение в коде
Примеры запросов агенту
- Проведи ревью этого Pull Request по принципам Clean Code и предложи изменения без смены поведения.
- Отрефактори этот legacy-код: улучши имена, сократи функции и добавь сфокусированные тесты.
- Проверь функцию на лишние аргументы, побочные эффекты и смешение уровней абстракции.
Как установить clean-code
1Через Skills CLI (Vercel)
npx skills add sickn33/agentic-awesome-skills --skill clean-code -a claude-code2Вручную: положить файлы
~/.claude/skills/clean-code/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/clean-code/
1Через Skills CLI (Vercel)
npx skills add sickn33/agentic-awesome-skills --skill clean-code -a codex2Вручную: положить файлы
.agents/skills/clean-code/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add sickn33/agentic-awesome-skills --skill clean-code -a cursor2Вручную: положить файлы
.cursor/skills/clean-code/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install sickn33/agentic-awesome-skills clean-code2Вручную: положить файлы
.github/skills/clean-code/SKILL.md1Через Skills CLI (Vercel)
npx skills add sickn33/agentic-awesome-skills --skill clean-code -a gemini-cli2Командой платформы
gemini skills install https://github.com/sickn33/agentic-awesome-skills --path skills/clean-codeВручную: положить файлы
.devin/skills/clean-code/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add sickn33/agentic-awesome-skills --skill clean-code -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о clean-code
Как установить clean-code в Claude Code?
Выполните npx skills add sickn33/agentic-awesome-skills --skill clean-code -a claude-code, затем проверьте файл ~/.claude/skills/clean-code/SKILL.md.
Что делает clean-code?
Скилл помогает писать и рефакторить код по принципам Clean Code: улучшает имена, разделяет ответственность, проверяет обработку ошибок и подсказывает, где нужны тесты.
Можно ли применять его при рефакторинге без изменения поведения?
Да. Описание скилла требует сохранять поведение, учитывать соглашения репозитория и проверять результат подходящими тестами.
Исходный текст
SKILL.md · MIT
--- name: clean-code description: "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.\"" risk: safe source: "ClawForge (https://github.com/jackjin1997/ClawForge)" date_added: "2026-02-27" --- # 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.
© sickn33 · MIT · sickn33/agentic-awesome-skills