🎯

clean-code

🎯Skill

from pluginagentmarketplace/custom-plugin-software-design

VibeIndex|
What it does

Analyzes code for quality, providing actionable recommendations to improve readability, maintainability, and adherence to best practices across multiple programming languages.

πŸ“¦

Part of

pluginagentmarketplace/custom-plugin-software-design(7 items)

clean-code

Installation

Add MarketplaceAdd marketplace to Claude Code
/plugin marketplace add pluginagentmarketplace/custom-plugin-software-design
Install PluginInstall plugin from marketplace
/plugin install custom-plugin-software-design@pluginagentmarketplace-software-design
git cloneClone repository
git clone https://github.com/pluginagentmarketplace/custom-plugin-software-design.git
Claude CodeAdd plugin in Claude Code
/plugin load .
πŸ“– Extracted from docs: pluginagentmarketplace/custom-plugin-software-design
1Installs
-
AddedFeb 4, 2026

Skill Details

SKILL.md

Analyze and improve code quality, readability, and maintainability

Overview

# Clean Code Skill

> Atomic skill for code quality analysis and improvement

Skill Definition

```yaml

skill_id: clean-code

responsibility: Single - Code quality analysis and recommendations

atomic: true

idempotent: true

```

Parameter Schema

```typescript

interface SkillParams {

// Required

code: string;

language: string;

// Optional

focus?: ('naming' | 'functions' | 'comments' | 'formatting')[];

style_guide?: string; // airbnb, google, pep8, etc.

strictness?: 'relaxed' | 'normal' | 'strict';

}

interface SkillResult {

quality_score: number; // 0-100

issues: CleanCodeIssue[];

metrics: CodeMetrics;

suggestions: Improvement[];

}

interface CleanCodeIssue {

category: string;

severity: 'low' | 'medium' | 'high';

location: string;

current: string;

suggested: string;

rule: string;

}

interface CodeMetrics {

lines_of_code: number;

avg_function_length: number;

max_function_length: number;

avg_params_per_function: number;

cyclomatic_complexity: number;

naming_score: number;

comment_ratio: number;

}

```

Validation Rules

```yaml

input_validation:

code:

min_length: 1

max_length: 100000

required: true

language:

required: true

allowed: [typescript, javascript, python, java, csharp, go, ruby, kotlin, rust, php]

focus:

default: [naming, functions, comments, formatting]

strictness:

default: normal

```

Retry Logic

```yaml

retry_config:

max_attempts: 3

backoff:

type: exponential

initial_delay_ms: 500

max_delay_ms: 5000

multiplier: 2

retryable_errors:

- TIMEOUT

- RATE_LIMIT

non_retryable_errors:

- INVALID_SYNTAX

- UNSUPPORTED_LANGUAGE

```

Logging & Observability

```yaml

logging:

level: INFO

events:

- analysis_started

- issue_detected

- metrics_calculated

- analysis_completed

metrics:

- name: quality_score

type: gauge

- name: issues_by_category

type: counter

- name: analysis_duration_ms

type: histogram

tracing:

span_name: clean_code_analysis

attributes:

- language

- code_size

- strictness

```

Clean Code Rules

Naming Rules

```yaml

naming_rules:

variables:

- rule: descriptive_names

bad: [x, temp, data, val, item]

good: [userCount, totalPrice, customerEmail]

- rule: pronounceable

bad: [genymdhms, modymdhms]

good: [generationTimestamp, modificationDate]

functions:

- rule: verb_noun

bad: [data, process, handle]

good: [fetchUser, calculateTotal, validateEmail]

classes:

- rule: noun_singular

bad: [Manager, Processor, Data]

good: [User, Order, PaymentGateway]

booleans:

- rule: question_prefix

bad: [flag, status, open]

good: [isActive, hasPermission, canEdit]

```

Function Rules

```yaml

function_rules:

length:

ideal: 10

warning: 20

error: 50

parameters:

ideal: 2

warning: 3

error: 5

nesting:

ideal: 1

warning: 2

error: 4

```

Usage Examples

Basic Analysis

```typescript

// Input

{

code: `

function p(d) {

let x = 0;

for (let i = 0; i < d.length; i++) {

x += d[i].val;

}

return x;

}

`,

language: "typescript"

}

// Output

{

quality_score: 35,

issues: [

{

category: "naming",

severity: "high",

location: "line 1",

current: "p",

suggested: "calculateTotalValue",

rule: "descriptive_names"

}

],

metrics: {

lines_of_code: 7,

avg_function_length: 7,

naming_score: 20

}

}

```

Unit Test Template

```typescript

describe('CleanCodeSkill', () => {

describe('analyze', () => {

it('should detect poor variable naming', async () => {

const code = 'const x = 5; const d = getData();';

const result = await skill.analyze({ code, language: 'typescript' });

expect(result.issues).toContainEqual(

expect.objectContaining({ category: 'naming', current: 'x' })

);

});

it('should calculate accurate quality score', async () => {

const cleanCode = `

function calculateOrderTotal(items: Item[]): number {

return items.reduce((sum, item) => sum + item.price, 0);

}

`;

const result = await skill.analyze({ code: cleanCode, language: 'typescript' });

expect(result.quality_score).toBeGreaterThan(80);

});

});

});

```

Error Handling

```yaml

errors:

INVALID_SYNTAX:

code: 400

message: "Code contains syntax errors"

recovery: "Fix syntax errors before analysis"

UNSUPPORTED_LANGUAGE:

code: 400

message: "Language not supported"

recovery: "Use supported language"

```

Integration

```yaml

requires:

- syntax_parser

- metrics_calculator

emits:

- code_analyzed

- issues_detected

- quality_score_calculated

consumed_by:

- 03-clean-code (bonded agent)

- 04-refactoring (for improvement suggestions)

```