Agent skill

Clean Code

by softspark in softspark/ai-toolkit

Code quality: meaningful names, SRP, DRY, small functions, guard clauses, refactoring.

Apache-2.0Auto-check passedDevelopment

Install Clean Code

skills CLI
$ npx skills add softspark/ai-toolkit --skill clean-code -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install softspark/ai-toolkit clean-code --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/softspark/ai-toolkit.git skills-src && mkdir -p .claude/skills && cp -r skills-src/app/skills/clean-code .claude/skills/clean-code && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
clean-code
GitHub stars
179
Token cost
~1.3k tokens
SKILL.md length
437 words
Files
6
Skills in repo
112
Repo updated
First seen
Licence
Apache-2.0

At a glance

Code quality: meaningful names, SRP, DRY, small functions, guard clauses, refactoring.

  • Works in 3 steps: Meaningful Names → Single Responsibility → DRY (Don't Repeat Yourself)
  • Tasks that involve Code quality
  • SKILL.md covers Core Principles, Code Organization, Anti-Patterns to Avoid and Quality Checklist, plus 2 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Clean Code is an agent skill from softspark/ai-toolkit. Code quality: meaningful names, SRP, DRY, small functions, guard clauses, refactoring. Triggers: clean code, naming, code smell, SRP, DRY, long function, god class, dead code.

Its SKILL.md is about 1.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files (for example `reference/dart.md`, `reference/go.md` and `reference/php.md`).

It sits in Development, covering Code quality and Refactoring. The repository describes itself as: Professional-grade AI coding toolkit: 94 skills, 44 agents, multi-platform (Claude, Cursor, Windsurf, Copilot, Gemini, Cline, Roo Code, Aider, Augment, Antigravity, Codex CLI… The licence is Apache-2.0.

When your agent uses it

  • Tasks that involve Code quality
  • Tasks that involve Refactoring

Example prompts

  • “/clean-code”

Requirements

  • Python 3
  • Pre-approved tools (allowed-tools): Read

Workflow steps

3 steps, taken from the step headings in SKILL.md.

  1. Meaningful Names
  2. Single Responsibility
  3. DRY (Don't Repeat Yourself)

What it can do on your machine

Read from SKILL.md and the folder at commit d64db2b. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are python).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Clean Code loads about 1.3k tokens when it runs. Until then it costs about 47 tokens; SKILL.md has 437 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~47
When it runs · the whole SKILL.md, loaded when a task matches
~1.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from softspark/ai-toolkit at commit d64db2b, republished under its Apache-2.0 licence (© softspark). 437 words, ~1,255 tokens.

Download SKILL.mdSave it as .claude/skills/clean-code/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.
name
clean-code
description
Code quality: meaningful names, SRP, DRY, small functions, guard clauses, refactoring. Triggers: clean code, naming, code smell, SRP, DRY, long function, god class, dead code.
allowed-tools
Read
effort
medium
user-invocable
false

Clean Code Skill

Core Principles

1. Meaningful Names
python
# Bad
def calc(a, b):
    return a * b

# Good
def calculate_total_price(unit_price: float, quantity: int) -> float:
    return unit_price * quantity
2. Single Responsibility
python
# Bad - does too much
def process_user(user_data):
    validate(user_data)
    user = create_user(user_data)
    send_welcome_email(user)
    log_creation(user)
    return user

# Good - each function does one thing
def create_user(user_data: UserData) -> User:
    return User(**user_data)

def onboard_user(user_data: UserData) -> User:
    user = create_user(user_data)
    send_welcome_email(user)
    log_user_creation(user)
    return user
3. DRY (Don't Repeat Yourself)
python
# Bad
def get_active_users():
    return [u for u in users if u.status == "active"]

def get_active_admins():
    return [u for u in users if u.status == "active" and u.role == "admin"]

# Good
def filter_users(status: str | None = None, role: str | None = None) -> list[User]:
    result = users
    if status:
        result = [u for u in result if u.status == status]
    if role:
        result = [u for u in result if u.role == role]
    return result

Code Organization

Keep modules focused. Order contents consistently: imports (stdlib, third-party, local), constants, public API, private helpers. Use clear visibility markers (underscore prefix in Python, access modifiers in other languages). Group related functionality into cohesive modules rather than dumping everything into a single file.


Anti-Patterns to Avoid

Anti-PatternProblemSolution
God classToo many responsibilitiesSplit into smaller classes
Long methodsHard to understandExtract methods
Deep nestingComplex control flowEarly returns, extract methods
Magic numbersUnclear meaningUse named constants
Bare exceptHides bugsCatch specific exceptions
Mutable defaultsShared state bugsUse None and create inside

Quality Checklist

  • Functions are small (<20 lines ideal)
  • Names are descriptive and consistent
  • Type hints on all public APIs
  • Docstrings on all public functions/classes
  • No magic numbers (use constants)
  • No hardcoded strings (use enums/constants)
  • Error handling is specific
  • Resources are properly cleaned up
  • No code duplication
  • Tests cover critical paths
  • No dead code — grep-verified zero references for every removed/renamed symbol; pre-existing dead code touched by this change is deleted too (Constitution Art. VI.1)
  • Every found bug fixed — bugs, missing tests for changed behavior, and stale docs discovered during the task are fixed in the same change, not deferred (Constitution Art. VI.2)

Show full SKILL.md (221 more words)Show less

Common Rationalizations

ExcuseWhy It's Wrong
"It's readable enough""Enough" means someone will misread it eventually — clarity prevents incidents
"Refactoring for readability is gold-plating"Readability is maintainability — future you will thank present you
"Short variable names are faster to type"You type it once, readers parse it hundreds of times — optimize for reading
"DRY means never repeat anything"Wrong DRY creates coupling — duplicate until you see the real abstraction
"More abstractions = cleaner code"Premature abstraction is worse than duplication — wait for the third use
"That dead file is pre-existing, not my problem"If your change makes it verifiably unused, deleting it IS your problem (Constitution Art. VI.1)
"I'll fix the missing test in a separate PR"Forbidden when the test covers behavior you just changed — add it now (Constitution Art. VI.2)
"Świadome pominięcie" / "out of scope"Deferral of directly-adjacent fixes is forbidden; if a user decision is needed, ASK, don't bury it

Language-Specific References

For detailed patterns, type hints, linting configuration, and idiomatic code per language:

  • Python: type hints, docstrings, error handling, context managers, module/class structure, ruff/mypy config -- see reference/python.md
  • TypeScript: strict tsconfig, ESLint setup, discriminated unions, type safety -- see reference/typescript.md
  • PHP: PHPStan config, PSR-12, enums, constructor promotion -- see reference/php.md
  • Go: gofmt, error handling, receiver naming, early returns -- see reference/go.md
  • Dart/Flutter: null safety, named parameters, const constructors, dart analyze -- see reference/dart.md

© softspark, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 5 other files in app/skills/clean-code of softspark/ai-toolkit.

  • SKILL.md
  • reference/dart.md
  • reference/go.md
  • reference/php.md
  • reference/python.md
  • reference/typescript.md

Open the folder on GitHubat commit d64db2b

Compare with similar skills

Clean Code next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Clean Code compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Clean Code this skillsoftspark/ai-toolkit179—~1.3kAutomated safety check: PassApache-2.0
Systematic Code Refactoringluongnv89/claude-howto42k—~3kAutomated safety check: PassMIT
Dignified Python Standardsdocling-project/docling68k—~1.5kAutomated safety check: PassApache-2.0
Clean Code GuardamElnagdy/guard-skills1.3k2 repos~4.3kAutomated safety check: PassMIT
Code Refactoring Workflowluongnv89/claude-howto42k—~3.1kAutomated safety check: PassMIT
Maintainable Code for iPolloWorkDevin-AXIS/iPolloWork6.7k—~2.7kAutomated safety check: PassCustom licence

Similar skills

  • Systematic Code Refactoring

    luongnv89/claude-howto

    Guides refactoring in phases based on Martin Fowler's method: research, test coverage check, planning and small tested steps, with your approval at each phase.

    42k GitHub stars~3k tokensUpdated 7 days ago
    DevelopmentAuto-check passed
  • Dignified Python Standards

    docling-project/docling

    Applies opinionated production Python conventions chosen by the project's Python version: modern type syntax, pathlib, explicit checks and interface guidance.

    68k GitHub stars~1.5k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Clean Code Guard

    amElnagdy/guard-skills

    Reviews generated or changed production code against Clean Code, SOLID, DRY, KISS, YAGNI and LLM-specific failure modes before it ships, in any language.

    1.3k GitHub starsUsed in 2 repos~4.3k tokens
    DevelopmentAuto-check passed
  • Code Refactoring Workflow

    luongnv89/claude-howto

    Guides systematic, test-backed refactoring in the style of Martin Fowler, moving through research, planning and small incremental changes with your approval at each phase.

    42k GitHub stars~3.1k tokensUpdated 7 days ago
    DevelopmentAuto-check passed
  • A code-change gate for the iPolloWork repository: search and reuse first, keep one source of truth, justify every new file or dependency, and audit the change.

    6.7k GitHub stars~2.7k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Tech Debt Analyzer

    ailabs-393/ai-labs-claude-skills

    This skill should be used when analyzing technical debt in a codebase, documenting code quality issues, creating technical debt registers, or assessing code maintainability.

    454 GitHub starsUsed in 2 repos~3.9k tokens
    DevelopmentAuto-check passed

More from softspark/ai-toolkit

All 112 skills in this repo
  • Prepare Test Env

    softspark/ai-toolkit

    Prepare or verify a project QA environment with source identity, readiness, browser access, evidence paths and owned cleanup.

    179 GitHub stars~1.8k tokensUpdated today
    Auto-check: notes
  • A11y Validate

    softspark/ai-toolkit

    Accessibility validator: WCAG 2.1 AA, EN 301 549, EAA. An agent skill from softspark/ai-toolkit.

    179 GitHub stars~3.8k tokensUpdated today
    Auto-check: notes
  • Analyze

    softspark/ai-toolkit

    Analyzes code quality, complexity, patterns across codebase.

    179 GitHub stars~1k tokensUpdated today
    Auto-check passed
  • Autonomous Dev

    softspark/ai-toolkit

    Drives a brief, specification, issue or existing PR through implementation, review, tests and QA to a ready PR.

    179 GitHub stars~2.6k tokensUpdated today
    Auto-check: notes
  • Brand Voice

    softspark/ai-toolkit

    Direct technical voice for docs, README, user-facing text. An agent skill from softspark/ai-toolkit.

    179 GitHub stars~2.1k tokensUpdated today
    Auto-check passed
  • CI

    softspark/ai-toolkit

    Detect/generate/debug CI pipeline config (GitHub Actions, GitLab CI).

    179 GitHub stars~1.1k tokensUpdated today
    Auto-check: notes

Categories

Questions about Clean Code

What does Clean Code do?

Code quality: meaningful names, SRP, DRY, small functions, guard clauses, refactoring. Clean Code is an agent skill from softspark/ai-toolkit. Code quality: meaningful names, SRP, DRY, small functions, guard clauses, refactoring.

When should I use Clean Code?

Clean Code fits situations like: tasks that involve Code quality; tasks that involve Refactoring.

How do I install Clean Code in Claude Code?

Run `npx skills add softspark/ai-toolkit --skill clean-code -a claude-code`. Or copy the skill folder (app/skills/clean-code in softspark/ai-toolkit) into .claude/skills/clean-code in your project. Claude Code loads it when a task matches its description.

How do I install Clean Code in Codex?

Run `npx skills add softspark/ai-toolkit --skill clean-code -a codex`. Or copy the skill folder (app/skills/clean-code in softspark/ai-toolkit) into .agents/skills/clean-code in your project. Codex loads it when a task matches its description.

Can I use Clean Code in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add softspark/ai-toolkit --skill clean-code -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/clean-code, .gemini/skills/clean-code, .github/skills/clean-code and .opencode/skills/clean-code in your project.

What does Clean Code need to run?

SKILL.md names no scripts, command-line tools or credentials: Clean Code is instructions for the agent only. Our summary lists: Python 3. Its frontmatter pre-approves these tools: Read.

Does Clean Code access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Clean Code safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Clean Code use?

Clean Code is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Clean Code use?

About 1.3k tokens (SKILL.md is roughly 5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Clean Code?

Skills that share tags, products or a category with Clean Code: Systematic Code Refactoring (luongnv89/claude-howto, 42k stars), Dignified Python Standards (docling-project/docling, 68k stars), Clean Code Guard (amElnagdy/guard-skills, 1.3k stars) and Code Refactoring Workflow (luongnv89/claude-howto, 42k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Clean Code?

softspark (a GitHub user) maintains it in softspark/ai-toolkit, which has 179 GitHub stars. The repository holds 112 skills in this directory. The repository was last updated on October 7, 2026.

Source: softspark/ai-toolkit on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.