بنقرة واحدة
refactoring
기존 코드의 안전한 리팩토링. Characterization Test로 동작 보존하며 구조 개선
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
기존 코드의 안전한 리팩토링. Characterization Test로 동작 보존하며 구조 개선
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Creates ast-grep patterns for structural code search. Use when finding functions/classes by structure, refactoring code, or when grep returns too many false positives.
Builds Claude Agent SDK agents in Python. Use when creating custom tools, hooks, sub-agents, or MCP integrations with the Agent SDK. Python 에이전트 구축 시 사용.
Graph-based code review with Tree-sitter knowledge graph. Use when reviewing code changes, PRs, or exploring blast radius of modifications in projects with code-review-graph installed (.code-review-graph/ exists). Also use for initial setup of code-review-graph in a new project. Do NOT use for checklist-based reviews without graph (use code-review instead), or for security-focused reviews (use security instead).
Code review hub. 타입 안전성 (TypeScript, Python), lint 감사, 죽은 코드, 테스트 품질 리뷰 (smell, overfitting, 커버리지, 통합/E2E), Terraform/IaC 안전성 (lifecycle, state, credentials). 병렬 에이전트 모드로 다각적 분석 지원. 코드 리뷰, 타입 체크, lint, 테스트 리뷰, terraform, IaC.
데이터 조사/분석 파이프라인 생성. 데이터 수집 -> Python 분석/차트(matplotlib) -> HTML 리포트. Use when 데이터 분석, 조사, investigation, 이상 탐지, 패턴 분석, 리포트 생성, 차트 시각화, 데이터 수집 파이프라인 구축. Also use when 데이터를 모아서 분석하고 보고서를 만드는 작업. Do NOT use for 단순 DB 조회 (use gandy), 단순 차트 하나 (use diagram).
코드 작업 완료 후 변경 내러티브 문서 생성. 변경 요약, 설계 판단 근거, 학습 포인트를 vault에 기록. Vault 위치/매핑은 `documentation` skill, 형식은 `obsidian-write` 참조. Use when completing code work, after PR creation, reviewing what was done, or wanting to document changes for learning. /debrief, 작업 정리, 변경 기록, 회고.
| name | refactoring |
| description | 기존 코드의 안전한 리팩토링. Characterization Test로 동작 보존하며 구조 개선 |
| user-invocable | true |
| tags | ["refactoring","characterization-test","behavior-preservation","legacy"] |
| triggers | {"keywords":["리팩토링","레거시 코드","동작 보존","구조 개선","기존 코드 개선","characterization test"]} |
기존 코드를 안전하게 리팩토링하는 ANALYZE-PRESERVE-IMPROVE 워크플로우.
| tidy | refactoring | |
|---|---|---|
| 규모 | 분 단위 소규모 정리 | 시간~일 단위 구조 변경 |
| 테스트 | 기존 테스트 의존 | Characterization Test 새로 작성 |
| 범위 | 단일 패턴 (guard clause, dead code 등) | 모듈 추출, 클래스 분리, API 마이그레이션 |
| 커밋 | 1 tidying = 1 commit | 단계별 incremental commit |
| tdd | refactoring | |
|---|---|---|
| 대상 | 새 기능 (코드 없음) | 기존 코드 (동작 있음) |
| 테스트 | Specification Test (기대 동작 정의) | Characterization Test (현재 동작 캡처) |
| 사이클 | RED-GREEN-REFACTOR | ANALYZE-PRESERVE-IMPROVE |
현재 코드 구조를 파악하고 리팩토링 대상을 식별한다.
구조 분석:
/vis-graph 활용)/code-metrics 활용)문제 패턴 식별 (ast-grep 활용):
산출물: 현재 구조 + 문제 영역 + 리팩토링 대상 + 리스크 평가
변경 전 안전망을 구축한다. 이 단계를 건너뛰지 않는다.
Characterization Test 작성:
Characterization Test는 "정답"을 검증하는 게 아니라 **"현재 동작"**을 기록한다. 리팩토링 후 이 테스트가 깨지면 동작이 바뀐 것이다.
네이밍: test_characterize_{component}_{scenario}
Characterization Test의 품질은
/principles check TEST-BEHAVIOR(외부 행위 기반 검증) 및/principles check TEST-SMELLS(Sensitive Equality — 부동소수점·직렬화 포맷 주의) 참조.
Behavior Snapshot (복잡한 출력일 때):
Safety Net 검증:
한 번에 큰 변경을 하지 않는다. 패턴:
가장 작은 구조 변경 → 전체 테스트 → 실패 시 즉시 revert → 성공 시 commit → 반복
안전한 리팩토링 패턴:
각 변환 후 검증:
1. 리팩토링 범위 확인 (SPEC 또는 사용자 요청)
2. ANALYZE: 대상 코드 구조 분석
3. PRESERVE: Characterization Test 작성 + 기존 테스트 통과 확인
4. IMPROVE: 점진적 변환 (각 단계마다 테스트 + 커밋)
5. 검증: 전후 메트릭 비교 + 모든 테스트 통과
리팩토링의 황금률: 관찰 가능한 동작이 전후 동일해야 한다.
테스트 실패 시: 즉시 revert → 어떤 테스트가 왜 실패했는지 분석 → 더 작은 단위로 재시도
Characterization Test가 flaky: 비결정적 요소 식별 → 외부 의존성 mock → 시간/순서 의존 제거
성능 저하: 전후 프로파일링 → 핫 패스 확인 → 최적화 또는 트레이드오프 문서화
/tidy — 분 단위 소규모 코드 정리/plan-review tdd — 새 기능의 테스트 주도 개발/code-metrics — 결합도/복잡도 정량 측정/vis-graph — 파일 간 의존성 시각화/strategic-thinking — 리팩토링 범위 결정 시 체계적 판단Origin: moai-adk workflow-ddd (ANALYZE-PRESERVE-IMPROVE cycle) 기반, dots 스타일로 재구성