본문으로 건너뛰기
cccskills
무료GitHub에 공개

smells

Analyze a class or module for code smells and produce a prioritized refactoring plan. Use when the user asks for code smell analysis, says `/smells`, or runs `/refactor:smells`.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(1)

  • SKILL.md3.4 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Analyze the provided class for code smells and create a refactoring plan.

Usage

/smells $ARGUMENTS

Analysis Output

📊 Code Smell Analysis for: $ARGUMENTS

🔍 Top 5 Code Smells Detected:

  1. Poor Naming Conventions

    • Generic variable names (data, temp, obj, result)
    • Non-descriptive method names (process, handle, do)
    • Inconsistent naming patterns
    • Fix: Rename to domain-specific terms that describe purpose
  2. Long Method

    • Methods exceeding 20-30 lines
    • Multiple responsibilities in single method
    • Difficult to test and understand
    • Fix: Extract smaller, focused methods with single responsibilities
  3. Large Class (God Object)

    • Too many responsibilities in one class
    • High number of instance variables
    • Violates Single Responsibility Principle
    • Fix: Split into smaller, cohesive classes
  4. Duplicate Code

    • Copy-pasted logic across methods
    • Similar patterns with slight variations
    • Fix: Extract common logic into reusable methods
  5. Feature Envy

    • Methods that use data from other classes more than their own
    • Excessive getter/setter calls to another object
    • Fix: Move method to the class it's most interested in

📋 Refactoring Plan

Phase 1: Name Refactoring (No Behavior Changes)

  • Identify all poorly named variables, methods, and fields
  • Map current names to descriptive alternatives
  • Ensure naming follows language conventions:
    • Java/JavaScript: camelCase for methods/variables, PascalCase for classes
    • Python: snake_case for functions/variables, PascalCase for classes
  • Update all references throughout codebase
  • Run tests to ensure no behavioral changes

Phase 2: Structure Improvements

  • Address long methods by identifying extraction points
  • Plan class decomposition for God Objects
  • Identify duplicate code patterns for consolidation
  • Map feature envy methods to their proper homes

Phase 3: Implementation Order

  1. Start with naming - Low risk, high readability impact
  2. Extract methods - Reduce complexity incrementally
  3. Remove duplication - Create reusable components
  4. Reorganize classes - Move methods to appropriate classes
  5. Split large classes - Final structural improvements

🎯 Success Criteria

  • All tests pass after each refactoring step
  • Code coverage remains the same or improves
  • Cyclomatic complexity reduced
  • Improved readability scores
  • No behavioral changes introduced

⚠️ Risk Mitigation

  • Create comprehensive test suite before refactoring
  • Use version control for easy rollback
  • Refactor in small, reviewable commits
  • Document all name mappings
  • Review with team before major structural changes

Example Name Refactorings

// Before
getData() → fetchCustomerPurchaseHistory()
processItems() → calculateMonthlyRevenue()
userObj → customerProfile
temp → filteredTransactions
data → invoiceRecords
doStuff() → validatePaymentCredentials()

Next Steps

  1. Review the identified code smells
  2. Prioritize based on impact and risk
  3. Begin with Phase 1 naming refactors
  4. Proceed incrementally through the plan
  5. Measure improvements after each phase

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Automates browser interactions for web testing, form filling, screenshots, and data extraction. Use when the user needs to navigate websites, interact with web pages, fill forms, take screenshots, test web applications, or extract information from web pages.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

SDiamante13/dotfiles102026년 10월 2일 업데이트

catchup

무료

Rebuilds session context after a clear by reading git history, plans, and beads state. Triggers on 'catch up'.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

SDiamante13/dotfiles102026년 10월 2일 업데이트

changelog

무료

Generate a bullet-point summary of branch changes for a PR description. Triggers on "changelog", "pr summary", "summarize branch", or "/changelog".

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

SDiamante13/dotfiles102026년 10월 2일 업데이트

commit

무료

Commit the current changes with quality checks, status review, staged diff inspection, appropriate tests, and a clear commit message. Use when the user says "commit", "c", asks to make a commit, or wants changes saved in git.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

SDiamante13/dotfiles102026년 10월 2일 업데이트

declutter

무료

Refactor code to remove dead code, useless comments, unused variables, and unused imports. Use when asked to declutter a class, clean up noisy code, remove cruft, or run `/refactor:declutter`.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

SDiamante13/dotfiles102026년 10월 2일 업데이트

dry

무료

Refactor duplicated code by extracting helpers, shared abstractions, or clearer reusable structure. Use when asked to apply DRY, remove duplication, consolidate repeated logic, or run `/refactor:dry`.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

SDiamante13/dotfiles102026년 10월 2일 업데이트

SDiamante13의 스킬 모두 보기

이 스킬의 문제 신고