AI & LLMsDocumentedScanned

clean-code

Pragmatic coding standards - concise, direct, no over-engineering, no unnecessary comments

Share:

Installation

npx clawhub@latest install clean-code

View the full skill documentation and source below.

Documentation

Clean Code - Pragmatic AI Coding Standards

CRITICAL SKILL - Be concise, direct, and solution-focused.

Core Principles

PrincipleRule
SRPSingle Responsibility - each function/class does ONE thing
DRYDon't Repeat Yourself - extract duplicates, reuse
KISSKeep It Simple - simplest solution that works
YAGNIYou Aren't Gonna Need It - don't build unused features
Boy ScoutLeave code cleaner than you found it

Naming Rules

ElementConvention
VariablesReveal intent: userCount not n
FunctionsVerb + noun: getUserById() not user()
BooleansQuestion form: isActive, hasPermission, canEdit
ConstantsSCREAMING_SNAKE: MAX_RETRY_COUNT
Rule: If you need a comment to explain a name, rename it.

Function Rules

RuleDescription
SmallMax 20 lines, ideally 5-10
One ThingDoes one thing, does it well
One LevelOne level of abstraction per function
Few ArgsMax 3 arguments, prefer 0-2
No Side EffectsDon't mutate inputs unexpectedly

Code Structure

PatternApply
Guard ClausesEarly returns for edge cases
Flat > NestedAvoid deep nesting (max 2 levels)
CompositionSmall functions composed together
ColocationKeep related code close

AI Coding Style

SituationAction
User asks for featureWrite it directly
User reports bugFix it, don't explain
No clear requirementAsk, don't assume

Anti-Patterns (DON'T)

❌ Patternβœ… Fix
Comment every lineDelete obvious comments
Helper for one-linerInline the code
Factory for 2 objectsDirect instantiation
utils.ts with 1 functionPut code where used
"First we import..."Just write code
Deep nestingGuard clauses
Magic numbersNamed constants
God functionsSplit by responsibility

πŸ”΄ Before Editing ANY File (THINK FIRST!)

Before changing a file, ask yourself:

QuestionWhy
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

DoDon't
Write code directlyWrite tutorials
Let code self-documentAdd obvious comments
Fix bugs immediatelyExplain the fix first
Inline small thingsCreate unnecessary files
Name things clearlyUse abbreviations
Keep functions smallWrite 100+ line functions
Remember: The user wants working code, not a programming lesson.

πŸ”΄ Self-Check Before Completing (MANDATORY)

Before saying "task complete", verify:

CheckQuestion
βœ… 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

AgentScriptCommand
frontend-specialistUX Auditpython .agent/skills/frontend-design/scripts/ux_audit.py .
frontend-specialistA11y Checkpython .agent/skills/frontend-design/scripts/accessibility_checker.py .
backend-specialistAPI Validatorpython .agent/skills/api-patterns/scripts/api_validator.py .
mobile-developerMobile Auditpython .agent/skills/mobile-design/scripts/mobile_audit.py .
database-architectSchema Validatepython .agent/skills/database-design/scripts/schema_validator.py .
security-auditorSecurity Scanpython .agent/skills/vulnerability-scanner/scripts/security_scan.py .
seo-specialistSEO Checkpython .agent/skills/seo-fundamentals/scripts/seo_checker.py .
seo-specialistGEO Checkpython .agent/skills/geo-fundamentals/scripts/geo_checker.py .
performance-optimizerLighthousepython .agent/skills/performance-profiling/scripts/lighthouse_audit.py
test-engineerTest Runnerpython .agent/skills/testing-patterns/scripts/test_runner.py .
test-engineerPlaywrightpython .agent/skills/webapp-testing/scripts/playwright_runner.py
Any agentLint Checkpython .agent/skills/lint-and-validate/scripts/lint_runner.py .
Any agentType Coveragepython .agent/skills/lint-and-validate/scripts/type_coverage.py .
Any agenti18n Checkpython .agent/skills/i18n-localization/scripts/i18n_checker.py .
❌ WRONG: test-engineer running ux_audit.py
βœ… CORRECT: frontend-specialist running ux_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.