Skip to content
Agent Orchestration
Skill

/simplify

코드 단순화 및 리팩토링 — 변경된 코드를 리뷰하고 불필요한 추상화, 중복, 복잡성을 제거합니다. Triggers on: 단순화, simplify, 리팩토링, 코드 정리, 코드 개선. NOT for: 새 기능 추가, 버그 수정.

BOOST
From plugin
my-cc-harness
12543 skills12 agents4 commands10 hooks
Install
$ npx -y skills add jh941213/my-cc-harness --skill simplify --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/simplify

Context preview

The summary Claude sees to decide when to auto-load this skill.

코드 단순화 및 리팩토링 — 변경된 코드를 리뷰하고 불필요한 추상화, 중복, 복잡성을 제거합니다. Triggers on: 단순화, simplify, 리팩토링, 코드 정리, 코드 개선. NOT for: 새 기능 추가, 버그 수정.

SKILL.md

simplify.SKILL.md
name: simplify
description: "코드 단순화 및 리팩토링 — 변경된 코드를 리뷰하고 불필요한 추상화, 중복, 복잡성을 제거합니다. Triggers on: 단순화, simplify, 리팩토링, 코드 정리, 코드 개선. NOT for: 새 기능 추가, 버그 수정."
user-invocable: true
disable-model-invocation: false
allowed-tools: Read, Edit, Grep, Bash

코드 단순화

최근 변경된 코드를 리뷰하고 단순화합니다.

Step 1: 변경 범위 파악

git diff --name-only HEAD~1  # 최근 변경 파일 확인

Step 2: 리팩토링 패턴 적용

불필요한 추상화 제거

// BEFORE: 한 번만 쓰이는 헬퍼
function formatUserName(user: User) { return `${user.first} ${user.last}`; }
const name = formatUserName(user);

// AFTER: 인라인
const name = `${user.first} ${user.last}`;

조건문 단순화

// BEFORE: 깊은 중첩
if (user) {
  if (user.isActive) {
    if (user.hasPermission) {
      doThing();
    }
  }
}

// AFTER: 얼리 리턴
if (!user?.isActive || !user.hasPermission) return;
doThing();

중복 제거

// BEFORE: 반복 패턴
const users = data.filter(d => d.type === 'user').map(d => d.name);
const admins = data.filter(d => d.type === 'admin').map(d => d.name);

// AFTER: 3회 이상 반복될 때만 추출
const namesByType = (type: string) => data.filter(d => d.type === type).map(d => d.name);

**주의**: 2회 반복은 추출하지 않음. 3회부터 고려.

Step 2.5: 중복 코드 탐지

# jscpd — copy-paste 감지 (3줄 이상 중복)
npx jscpd src/ --min-lines 3 --reporters console 2>/dev/null | head -30

# ast-grep — 구조적 패턴 탐지
sg --pattern 'console.log($$$)' --lang ts 2>/dev/null | head -10

Step 3: 검증

수정 후 반드시 확인:

npm run typecheck || npx tsc --noEmit  # 타입 안전
npm test                                # 테스트 통과

체크리스트

  • [ ] 함수 50줄 이하
  • [ ] 파일 800줄 이하
  • [ ] 중첩 4단계 이하
  • [ ] 매직 넘버 → 상수
  • [ ] 명확한 변수명
  • [ ] console.log 제거
  • [ ] 사용하지 않는 import 제거
  • [ ] any 타입 제거

절대 단순화하지 않을 것 (NEVER)

  • NEVER 에러 핸들링 제거 — try/catch, 유효성 검사는 의도적 코드
  • NEVER 생성된/벤더 파일 수정 — node_modules, generated, vendor 디렉토리
  • NEVER 설정 파일 단순화 — tsconfig, eslint, webpack 등은 건드리지 않음
  • NEVER 관련 없는 함수 병합 — 비슷해 보여도 도메인이 다르면 분리 유지
  • NEVER 테스트 코드 단순화 — 테스트의 명시성은 의도적. DRY 적용 금지
  • NEVER 타입 정의 제거 — 중복처럼 보여도 타입 안전성 유지

범위 결정

  • 사용자가 특정 파일 지정 시 → 해당 파일만
  • 지정 없으면 → `git diff --name-only HEAD~1` (최근 커밋 변경 파일)
  • 변경 범위 밖 코드는 절대 수정하지 않음

원칙

  • 동작은 변경하지 않음 (리팩토링만)
  • 3줄 비슷한 코드 > 조기 추상화
  • 과도한 최적화 지양
  • 수정 전 `git stash` 또는 현재 상태 확인 → 수정 후 검증 → 실패 시 원복
Read more
Ships withmy-cc-harness

my-claude-code-asset

Get the whole plugin

Other skills on my-cc-harness.

auto-memory
Skill

auto-memory

레포에서 실질적인 작업(구현·수정·배포·디버깅)을 시작할 때, 새 레포를 처음 파악할 때, 작업을 마치고 기억할 지식이 생겼을 때 사용. 작업 유형에 맞는 docs·메모리만 선택적으로 로드하는 라우팅 테이블을 운영한다

autodev-parallel
Skill

autodev-parallel

Ralph Loop 병렬 버전. 여러 에이전트가 worktree에서 동시에 PRD 항목을 처리한다. 트리거: "PRD 항목 병렬 구현", "병렬 구현", "autodev parallel", "워크트리 병렬 개발", "병렬 랄프"…

autodev
Skill

autodev

Ralph Loop 기반 자율 개발 루프. Stop Hook이 세션 종료를 가로채어 PRD 항목을 하나씩 완료하며 자동 커밋한다. 트리거: "autodev", "자율 개발", "밤새 돌려", "랄프 루프", "ralph loop",…

brainstorming
Skill

brainstorming

기능 추가·컴포넌트 생성·동작 변경 등 모든 창작 작업 전에 사용. 구현 전에 의도·요구사항·설계를 대화로 확정 (심층 인터뷰가 필요한 대규모 기능은 /spec 사용)