simplify
Installation
SKILL.md
코드 단순화
최근 변경된 코드를 리뷰하고 단순화합니다.
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또는 현재 상태 확인 → 수정 후 검증 → 실패 시 원복
Related skills
More from jh941213/my-claude-code-asset
shadcn-ui
|
34frontend
|
23stitch-react
Stitch 스크린을 React 컴포넌트 시스템으로 변환합니다 — 디자인 토큰 추출, 컴포넌트 분해, TypeScript 타입 생성, 자동 검증 포함. Triggers on: Stitch React, 컴포넌트 변환, React 변환, HTML to React. NOT for: 새 React 앱 생성, API 구현.
23stitch-enhance-prompt
모호한 UI 아이디어를 Stitch에 최적화된 상세 프롬프트로 변환합니다 — 구체성 향상, UI/UX 키워드 추가, 디자인 시스템 컨텍스트 주입. Triggers on: 프롬프트 향상, Stitch 프롬프트, UI 아이디어, 프롬프트 개선. NOT for: 직접 코딩, React 구현.
22stitch-loop
Stitch를 사용하여 자율적으로 멀티 페이지 웹사이트를 생성하는 반복 빌드 루프 패턴 — 바통 시스템으로 지속적 웹사이트 개발. Triggers on: Stitch 루프, 웹사이트 생성, 멀티 페이지, 빌드 루프. NOT for: 단일 페이지, React 앱.
16build-fix
>
15