Agent skill

Code Smell Detector

by ArabelaTso in ArabelaTso/Skills-4-SE

Identify and report code smells indicating poor design or maintainability issues in Python code, including duplicate code, magic numbers, hardcoded values, God classes, feature envy, inappropriate…

Apache-2.0Auto-check passedDevelopment

Install Code Smell Detector

skills CLI
$ npx skills add ArabelaTso/Skills-4-SE --skill code-smell-detector -a claude-code

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

GitHub CLI
$ gh skill install ArabelaTso/Skills-4-SE code-smell-detector --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/ArabelaTso/Skills-4-SE.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/code-smell-detector .claude/skills/code-smell-detector && 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
code-smell-detector
GitHub stars
253
Token cost
~3.9k tokens
SKILL.md length
1,037 words
Files
4 (incl. scripts, references)
Skills in repo
150
Repo updated
First seen
Licence
Apache-2.0

At a glance

Identify and report code smells indicating poor design or maintainability issues in Python code, including duplicate code, magic numbers, hardcoded values, God classes, feature envy, inappropriate…

  • Works in 6 steps: Understand the Analysis Scope → Detect Code Smells → Categorize Smells → …
  • Conducting code quality audits
  • SKILL.md covers Overview, Workflow, Code Smell Analysis Report and Summary, plus 7 more sections
  • Runs Python scripts from its folder; calls python and pip

What it does

Code Smell Detector is an agent skill from ArabelaTso/Skills-4-SE. Identify and report code smells indicating poor design or maintainability issues in Python code, including duplicate code, magic numbers, hardcoded values, God classes, feature envy, inappropriate intimacy, data clumps, primitive obsession, and long parameter lists. Use when conducting code quality audits, preparing for refactoring, improving codebase maintainability, or performing design reviews. Produces markdown reports with severity ratings, locations, descriptions, and specific refactoring recommendations…

Its SKILL.md is about 3.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including scripts and reference files (for example `references/refactoring-patterns.md`, `references/smell-patterns.md` and `scripts/detect_smells.py`).

It sits in Development, covering Refactoring and Code quality. It works with Python. The repository describes itself as: A curated list of 180+ useful Claude Skills for Software Engineering and resources for customizing AI for SE workflows. The licence is Apache-2.0.

When your agent uses it

  • Conducting code quality audits
  • Preparing for refactoring
  • Improving codebase maintainability
  • Performing design reviews

Example prompts

  • “/code-smell-detector”

Requirements

  • Python 3

Workflow steps

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

  1. Understand the Analysis Scope
  2. Detect Code Smells
  3. Categorize Smells
  4. Identify Refactorings
  5. Generate Report
  6. Present Findings

What it can do on your machine

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

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python
    • pip

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

  • Network

    No URLs in SKILL.md. Its commands use pip, which can reach the network depending on how they are called.

    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

Code Smell Detector loads about 3.9k tokens when it runs, and up to ~9.6k if it reads all its reference files. Until then it costs about 178 tokens; SKILL.md has 1,037 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~178
When it runs · the whole SKILL.md, loaded when a task matches
~3.9k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~9.6k

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); the scripts in this folder are not scanned.

SKILL.md

The full file from ArabelaTso/Skills-4-SE at commit 4f38503, republished under its Apache-2.0 licence (© ArabelaTso). 1,037 words, ~3,934 tokens.

Download SKILL.mdSave it as .claude/skills/code-smell-detector/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.
name
code-smell-detector
description
Identify and report code smells indicating poor design or maintainability issues in Python code, including duplicate code, magic numbers, hardcoded values, God classes, feature envy, inappropriate intimacy, data clumps, primitive obsession, and long parameter lists. Use when conducting code quality audits, preparing for refactoring, improving codebase maintainability, or performing design reviews. Produces markdown reports with severity ratings, locations, descriptions, and specific refactoring recommendations with before/after examples. Triggers when users ask to find code smells, identify design issues, suggest refactorings, improve code quality, or detect maintainability problems.

Code Smell Detector

Overview

Identify code quality and design smells in Python codebases, then provide specific refactoring recommendations to improve maintainability and design.

Workflow

1. Understand the Analysis Scope

Define what to analyze:

Questions to ask:

  • What directory or files should be analyzed?
  • Focus on quality smells, design smells, or both?
  • Are there specific concerns (e.g., "this class is too complex")?
  • Should test files be included?

Determine scope:

bash
# Check project structure
ls -la

# Count Python files
find . -name "*.py" | wc -l

# Identify large files (potential smells)
find . -name "*.py" -exec wc -l {} + | sort -rn | head -10
2. Detect Code Smells

Use multiple detection strategies.

Strategy 1: Automated Detection

Use the bundled script for AST-based analysis:

bash
# Scan entire project
python scripts/detect_smells.py /path/to/project

# Exclude specific directories
python scripts/detect_smells.py /path/to/project venv,tests,docs

What it detects:

  • Long methods (>50 lines)
  • Too many parameters (>5)
  • Large classes (>15 methods)
  • God classes (>20 methods)
  • Magic numbers
Strategy 2: Manual Code Review

Read the code to identify design smells. See smell-patterns.md for comprehensive catalog.

Look for:

Code Quality Smells:

  • Duplicate code blocks
  • Magic numbers (unexplained numeric literals)
  • Hardcoded values (paths, URLs, config)
  • Commented-out code
  • Inconsistent naming

Design Smells:

  • God classes (too many responsibilities)
  • Feature envy (method uses more from another class)
  • Inappropriate intimacy (classes too coupled)
  • Data clumps (same parameters repeated)
  • Primitive obsession (using primitives instead of objects)
  • Long parameter lists (>5 parameters)

Search patterns:

bash
# Find long files (potential large classes)
find . -name "*.py" -exec wc -l {} + | awk '$1 > 300'

# Find magic numbers (basic pattern)
grep -r "[^0-9]\d\{3,\}" --include="*.py" .

# Find hardcoded paths
grep -r '"/.*/"' --include="*.py" .

# Find commented code
grep -r "^[ ]*#.*def \|^[ ]*#.*class " --include="*.py" .
Strategy 3: Use External Tools

radon - Complexity metrics:

bash
# Install
pip install radon

# Check cyclomatic complexity
radon cc /path/to/project -a

# Maintainability index
radon mi /path/to/project

# Show only complex functions
radon cc /path/to/project -nc

pylint - Code quality:

bash
pip install pylint

# Check for code smells
pylint /path/to/project --disable=C0111  # Disable docstring warnings
3. Categorize Smells

Organize findings by severity and type.

See smell-patterns.md for detailed patterns.

High Severity

Immediate attention needed:

  • God classes (>20 methods, multiple responsibilities)
  • Shotgun surgery (changes ripple across many files)
  • Feature envy (method belongs in different class)
  • Long parameter lists (>7 parameters)
Medium Severity

Should refactor soon:

  • Large classes (>15 methods)
  • Duplicate code
  • Data clumps
  • Primitive obsession
  • Inappropriate intimacy
Low Severity

Nice to improve:

  • Magic numbers
  • Hardcoded values
  • Inconsistent naming
  • Lazy classes
  • Commented-out code
4. Identify Refactorings

For each smell, determine appropriate refactoring.

See refactoring-patterns.md for detailed examples.

Common mappings:

SmellRefactoring
God classExtract Class, Extract Service
Feature envyMove Method
Duplicate codeExtract Method, Pull Up Method
Data clumpsIntroduce Parameter Object
Magic numbersReplace with Symbolic Constant
Long parameter listIntroduce Parameter Object
Primitive obsessionReplace Data Value with Object
Inappropriate intimacyMove Method, Hide Delegate
Shotgun surgeryMove Method, Inline Class
Lazy classInline Class, Collapse Hierarchy
5. Generate Report

Create a structured markdown report with specific refactoring recommendations.

Code Smell Analysis Report

Project: [Project Name] Analyzed: [Date] Scope: [Directories analyzed] Excluded: [Excluded directories]


Summary

  • High severity smells: X issues
  • Medium severity smells: Y issues
  • Low severity smells: Z issues

Total: N code smells detected


🔴 High Severity Smells

Smell 1: God Class

Location: src/services/user_manager.py:15

Class: UserManager

Description: Class has 28 methods handling multiple unrelated responsibilities (user CRUD, authentication, email, logging, analytics).

Impact:

  • Violates Single Responsibility Principle
  • Hard to test and maintain
  • Changes ripple across unrelated features

Refactoring: Extract Class

Recommendation:

Split into focused classes by responsibility:

python
# Before: God class with 28 methods
class UserManager:
    def create_user(self, data): pass
    def update_user(self, user_id, data): pass
    def delete_user(self, user_id): pass
    def authenticate(self, username, password): pass
    def hash_password(self, password): pass
    def send_welcome_email(self, user): pass
    def send_password_reset(self, user): pass
    def log_activity(self, user, action): pass
    def get_statistics(self, user): pass
    # ... 19 more methods

# After: Split by responsibility
class UserRepository:
    """Handles user persistence."""
    def create(self, data): pass
    def update(self, user_id, data): pass
    def delete(self, user_id): pass
    def find_by_id(self, user_id): pass

class UserAuthService:
    """Handles authentication."""
    def authenticate(self, username, password): pass
    def hash_password(self, password): pass
    def validate_password_strength(self, password): pass

class UserNotificationService:
    """Handles user notifications."""
    def send_welcome_email(self, user): pass
    def send_password_reset(self, user): pass

class UserAnalyticsService:
    """Handles user analytics."""
    def log_activity(self, user, action): pass
    def get_statistics(self, user): pass

Priority: High - Refactor within 1-2 sprints


Smell 2: Feature Envy

Location: src/models/order.py:45

Method: Order.calculate_total()

Description: Method uses customer features heavily (discount_rate, is_premium, shipping_address) rather than its own class features.

Impact:

  • Poor cohesion - method is in wrong class
  • Changes to Customer affect Order
  • Violates "tell, don't ask" principle

Refactoring: Move Method

Recommendation:

Move calculation logic to Customer class:

python
# Before: Feature envy
class Order:
    def calculate_total(self):
        discount = self.customer.get_discount_rate()
        is_premium = self.customer.is_premium_member()
        address = self.customer.get_shipping_address()

        total = sum(item.price for item in self.items)
        if is_premium:
            total *= (1 - discount)
        if address.country != 'US':
            total += 50
        return total

# After: Move to appropriate class
class Customer:
    def calculate_order_total(self, items):
        total = sum(item.price for item in items)
        if self.is_premium_member():
            total *= (1 - self.get_discount_rate())
        if self.shipping_address.country != 'US':
            total += 50
        return total

class Order:
    def calculate_total(self):
        return self.customer.calculate_order_total(self.items)

Priority: High - Refactor within 2 weeks


🟡 Medium Severity Smells

Smell 3: Duplicate Code

Locations:

  • src/validators/user_validator.py:23-35
  • src/validators/profile_validator.py:45-57

Description: Identical email and name validation logic appears in two validators.

Impact:

  • Changes must be made in multiple places
  • Risk of inconsistent validation
  • Maintenance burden

Refactoring: Extract Method

Recommendation:

Extract common validation into shared utility:

python
# Before: Duplicate code
class UserValidator:
    def validate(self, data):
        if not data.get('email') or '@' not in data['email']:
            raise ValueError("Invalid email")
        if not data.get('name') or len(data['name']) < 2:
            raise ValueError("Invalid name")
        # ... more validation

class ProfileValidator:
    def validate(self, data):
        if not data.get('email') or '@' not in data['email']:
            raise ValueError("Invalid email")
        if not data.get('name') or len(data['name']) < 2:
            raise ValueError("Invalid name")
        # ... more validation

# After: Extract common validation
class ValidationHelpers:
    @staticmethod
    def validate_email(email):
        if not email or '@' not in email:
            raise ValueError("Invalid email")

    @staticmethod
    def validate_name(name):
        if not name or len(name) < 2:
            raise ValueError("Invalid name")

class UserValidator:
    def validate(self, data):
        ValidationHelpers.validate_email(data.get('email'))
        ValidationHelpers.validate_name(data.get('name'))
        # ... more validation

class ProfileValidator:
    def validate(self, data):
        ValidationHelpers.validate_email(data.get('email'))
        ValidationHelpers.validate_name(data.get('name'))
        # ... more validation

Priority: Medium - Refactor within month


Smell 4: Data Clumps

Locations:

  • src/services/email_service.py:12 (6 parameters)
  • src/services/sms_service.py:23 (6 parameters)
  • src/services/notification_service.py:34 (6 parameters)

Description: Same parameter group (name, email, phone, address_street, address_city, address_zip) appears in multiple methods.

Impact:

  • Suggests missing abstraction
  • Hard to maintain - changes affect many signatures
  • Easy to pass wrong parameters

Refactoring: Introduce Parameter Object

Recommendation:

Create ContactInfo value object:

python
# Before: Data clumps
def send_email(name, email, phone, street, city, zip_code):
    pass

def send_sms(name, email, phone, street, city, zip_code):
    pass

def send_notification(name, email, phone, street, city, zip_code):
    pass

# After: Parameter object
from dataclasses import dataclass

@dataclass
class Address:
    street: str
    city: str
    zip_code: str

@dataclass
class ContactInfo:
    name: str
    email: str
    phone: str
    address: Address

def send_email(contact: ContactInfo):
    pass

def send_sms(contact: ContactInfo):
    pass

def send_notification(contact: ContactInfo):
    pass

Priority: Medium - Refactor within month


🔵 Low Severity Smells

Show full SKILL.md (414 more words)Show less
Smell 5: Magic Numbers

Location: src/billing/calculator.py:67-78

Description: Multiple unexplained numeric literals (1000, 0.15, 500, 0.10, 0.05).

Impact:

  • Unclear business rules
  • Hard to change discount thresholds
  • Risk of typos

Refactoring: Replace Magic Number with Symbolic Constant

Recommendation:

Use named constants:

python
# Before: Magic numbers
def calculate_discount(price):
    if price > 1000:
        return price * 0.15
    elif price > 500:
        return price * 0.10
    else:
        return price * 0.05

# After: Named constants
BULK_ORDER_THRESHOLD = 1000
LARGE_ORDER_THRESHOLD = 500
BULK_DISCOUNT_RATE = 0.15
LARGE_DISCOUNT_RATE = 0.10
STANDARD_DISCOUNT_RATE = 0.05

def calculate_discount(price):
    if price > BULK_ORDER_THRESHOLD:
        return price * BULK_DISCOUNT_RATE
    elif price > LARGE_ORDER_THRESHOLD:
        return price * LARGE_DISCOUNT_RATE
    else:
        return price * STANDARD_DISCOUNT_RATE

Priority: Low - Refactor when touching this code


Recommendations

Immediate Actions (High Priority)
  1. Refactor UserManager god class into separate services
  2. Move Order.calculate_total() to Customer class
  3. Address feature envy in payment processing
Short-term Actions (Medium Priority)
  1. Extract duplicate validation logic
  2. Introduce ContactInfo parameter object
  3. Refactor large classes (>15 methods)
Long-term Actions (Low Priority)
  1. Replace magic numbers with named constants
  2. Standardize naming conventions
  3. Remove commented-out code
Prevention Strategies

Add to CI/CD:

bash
# Complexity checks
radon cc src/ -nc  # Fail on complex functions

# Code quality
pylint src/ --fail-under=8.0

Code review checklist:

  • No methods >50 lines
  • No classes >15 methods
  • No parameter lists >5 parameters
  • No duplicate code blocks
  • No magic numbers
  • No hardcoded config

Regular audits:

  • Weekly: Review new code for smells
  • Monthly: Full codebase smell detection
  • Quarterly: Major refactoring sprints

6. Present Findings

Share report with team and discuss refactoring priorities.

Presentation tips:

  • Start with summary statistics
  • Focus on high-severity smells first
  • Show before/after code examples
  • Discuss business impact
  • Prioritize based on team capacity

Get team input:

  • "Does this class actually have too many responsibilities?"
  • "Is this refactoring worth the effort?"
  • "Should we tackle this now or later?"

Tips for Effective Smell Detection

Start with obvious smells:

  • Focus on metrics first (long methods, large classes)
  • Look for duplicate code
  • Check for magic numbers and hardcoded values

Consider context:

  • Some "smells" may be justified
  • Legacy code may have historical reasons
  • Performance-critical code may break rules

Prioritize by impact:

  • High impact: God classes, shotgun surgery
  • Medium impact: Duplicate code, data clumps
  • Low impact: Magic numbers, naming issues

Refactor incrementally:

  • Don't refactor everything at once
  • Focus on areas changing frequently
  • Test after each refactoring step

Use tools as guides:

  • Tools find potential issues
  • Human judgment determines if it's truly a smell
  • Team decides refactoring priorities

Common False Positives

Not every pattern is a smell:

Long methods may be acceptable:

  • Sequential data processing pipelines
  • Complex algorithms better kept together
  • Generated code

Large classes may be justified:

  • Façade pattern intentionally centralizes
  • DTO/Entity classes with many fields
  • Framework base classes

Magic numbers may be OK:

  • Well-known constants (0, 1, 100, 1024)
  • Index operations
  • Test data

Consider trade-offs:

  • Refactoring has costs (time, risk, testing)
  • Some smells aren't worth fixing
  • Balance purity with pragmatism

Reference

For comprehensive smell patterns and refactoring techniques:

© ArabelaTso, 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 3 other files (scripts, references) in skills/code-smell-detector of ArabelaTso/Skills-4-SE.

  • SKILL.md
  • references/refactoring-patterns.md
  • references/smell-patterns.md
  • scripts/detect_smells.py

Open the folder on GitHubat commit 4f38503

Compare with similar skills

Code Smell Detector 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.

Code Smell Detector compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Code Smell Detector this skillArabelaTso/Skills-4-SE253—~3.9kAutomated safety check: PassApache-2.0
Dignified Python Standardsdocling-project/docling69k—~1.5kAutomated safety check: PassApache-2.0
Odoo Workflowunclecatvn/agent-skills143—~4.7kAutomated safety check: PassMIT
Code Refactor Masteryennanliu/CS_basics142—~3.3kAutomated safety check: PassNone
Clean Testsertugrul-dmr/clean-code-skills196—~1.3kAutomated safety check: PassMIT
Code Revieweralirezarezvani/claude-skills28k1 repos~1.6kAutomated safety check: PassMIT

Similar skills

  • 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.

    69k GitHub stars~1.5k tokensUpdated today
    DevelopmentAuto-check passed
  • Odoo Workflow

    unclecatvn/agent-skills

    Mandatory pre-code gate and definition-of-done for ANY Odoo change (add field, override method, inherit view/xpath, OWL/JS patch, wizard, cron, controller, report, security, migration, bug fix…

    143 GitHub stars~4.7k tokensUpdated 13 days ago
    DevelopmentAuto-check passed
  • Code Refactor Master

    yennanliu/CS_basics

    Code refactoring expert for improving code quality, readability, maintainability, and performance.

    142 GitHub stars~3.3k tokensUpdated today
    DevelopmentAuto-check passed
  • Clean Tests

    ertugrul-dmr/clean-code-skills

    A skill your agent uses when writing, fixing, editing, or refactoring Python tests.

    196 GitHub stars~1.3k tokensUpdated 5 mo ago
    DevelopmentAuto-check passed
  • Code Reviewer

    alirezarezvani/claude-skills

    Code review automation for TypeScript, JavaScript, Python, Go, Swift, Kotlin, C, .NET, Java, C, C++, Rust, Ruby, PHP, and Dart/Flutter.

    28k GitHub starsUsed in 1 repo~1.6k tokens
    DevelopmentAuto-check passed
  • Code Reviewer

    LeoYeAI/openclaw-master-skills

    Code review automation for TypeScript, JavaScript, Python, Go, Swift, Kotlin.

    2.2k GitHub starsUsed in 1 repo~1.2k tokens
    DevelopmentAuto-check passed

More from ArabelaTso/Skills-4-SE

All 150 skills in this repo
  • Framework Migration Assistant

    ArabelaTso/Skills-4-SE

    Automatically migrate Python web applications between frameworks (Flask → FastAPI, Django → FastAPI).

    253 GitHub stars~1.9k tokensUpdated 1 mo ago
    Auto-check passed
  • Metamorphic Test Generator

    ArabelaTso/Skills-4-SE

    Generate test cases using metamorphic testing by applying transformations based on metamorphic properties.

    253 GitHub stars~798 tokensUpdated 1 mo ago
    Auto-check passed
  • Reproduction Trace Instrumenter

    ArabelaTso/Skills-4-SE

    Instruments programs to capture execution traces specifically for reproducing reported bugs, enabling consistent replay and diagnosis of failures.

    253 GitHub stars~2.4k tokensUpdated 1 mo ago
    Auto-check passed
  • Spring Mvc To Boot Migrator

    ArabelaTso/Skills-4-SE

    Automatically migrate Spring MVC applications to Spring Boot.

    253 GitHub stars~2.2k tokensUpdated 1 mo ago
    Auto-check passed
  • State Snapshot Instrumenter

    ArabelaTso/Skills-4-SE

    Instrument programs (Python, C/C++, Java) to capture snapshots of key program states at runtime, including variables, memory, and call stacks.

    253 GitHub stars~2.2k tokensUpdated 1 mo ago
    Auto-check passed

Works with

Categories

Questions about Code Smell Detector

What does Code Smell Detector do?

Identify and report code smells indicating poor design or maintainability issues in Python code, including duplicate code, magic numbers, hardcoded values, God classes, feature envy, inappropriate…. Code Smell Detector is an agent skill from ArabelaTso/Skills-4-SE. Identify and report code smells indicating poor design or maintainability issues in Python code, including duplicate code, magic numbers, hardcoded values, God classes, feature envy, inappropriate intimacy, data clumps, primitive obsession, and long parameter lists.

When should I use Code Smell Detector?

Code Smell Detector fits situations like: conducting code quality audits; preparing for refactoring; improving codebase maintainability; performing design reviews.

How do I install Code Smell Detector in Claude Code?

Run `npx skills add ArabelaTso/Skills-4-SE --skill code-smell-detector -a claude-code`. Or copy the skill folder (skills/code-smell-detector in ArabelaTso/Skills-4-SE) into .claude/skills/code-smell-detector in your project. Claude Code loads it when a task matches its description.

How do I install Code Smell Detector in Codex?

Run `npx skills add ArabelaTso/Skills-4-SE --skill code-smell-detector -a codex`. Or copy the skill folder (skills/code-smell-detector in ArabelaTso/Skills-4-SE) into .agents/skills/code-smell-detector in your project. Codex loads it when a task matches its description.

Can I use Code Smell Detector 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 ArabelaTso/Skills-4-SE --skill code-smell-detector -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/code-smell-detector, .gemini/skills/code-smell-detector, .github/skills/code-smell-detector and .opencode/skills/code-smell-detector in your project.

What does Code Smell Detector need to run?

Going by SKILL.md and its folder, Code Smell Detector needs Python for the scripts in its folder and the command-line tools its instructions call (python and pip). Our summary lists: Python 3.

Does Code Smell Detector access the network?

SKILL.md contains no URLs. Its commands use pip, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Code Smell Detector 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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Code Smell Detector use?

Code Smell Detector 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 Code Smell Detector use?

About 3.9k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 5.7k tokens, read only when the agent opens those files.

What are the alternatives to Code Smell Detector?

Skills that share tags, products or a category with Code Smell Detector: Dignified Python Standards (docling-project/docling, 69k stars), Odoo Workflow (unclecatvn/agent-skills, 143 stars), Code Refactor Master (yennanliu/CS_basics, 142 stars) and Clean Tests (ertugrul-dmr/clean-code-skills, 196 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Code Smell Detector?

ArabelaTso (a GitHub user) maintains it in ArabelaTso/Skills-4-SE, which has 253 GitHub stars. The repository holds 150 skills in this directory. The repository was last updated on August 21, 2026.

Source: ArabelaTso/Skills-4-SE on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.