# 안전한 리팩터링 (safe-refactor)

> 동작을 유지한 채 코드를 재구성하고, 구조 변경 전후를 같은 검증으로 감쌉니다.

- 카테고리: [리팩터링](https://www.myskills.tools/ko/categories/refactoring/)
- 출처: 커뮤니티 · Julius Brussee
- 저장소: https://github.com/JuliusBrussee/caveman/tree/main/skills/safe-refactor (commit 82864c8)
- SKILL.md: https://github.com/JuliusBrussee/caveman/blob/main/skills/safe-refactor/SKILL.md
- 설치 명령: `npx skills add JuliusBrussee/caveman --skill safe-refactor`
- 라이선스: Apache-2.0
- 호환 도구: Claude Code, Codex, Gemini CLI
- 권한: read-repo ✓, write-files ✓, shell ✓, network ✗
- 상태: 스캔 통과
- 규칙 스캔으로 모든 위험을 찾을 수는 없습니다. 설치 전에 이 스킬의 SKILL.md를 읽고 권한을 확인하세요.

## 핵심 규칙

구조를 변경하기 전에 동작 보존 경계를 정하고 검증 방법을 마련합니다.

## 실행 단계

1. **경계·검증 수립** — 보존해야 할 동작을 정하고 편집 전에 검증 방법을 마련하며, 기능 변경은 리팩터링에 넣지 않습니다.
2. **경계를 하나씩 이동** — 소유권 경계를 한 번에 하나씩 옮기고 중간 상태도 빌드·테스트 가능하게 유지합니다.
3. **인터페이스 유지** — 범위에 명시되지 않았다면 공개 인터페이스, 실패 동작, 순서, 호환성을 유지하고 불필요한 의존성이나 설정을 늘리지 않습니다.
4. **같은 검증 재실행** — 변경 후 같은 검증을 실행하고, 동작이 일치하고 요구한 구조가 되면 멈춥니다.

## 권한 설명 (SKILL.md 기준)

| 기능 | 필요 여부 | 설명 |
|---|---|---|
| 파일 쓰기 | 필요 | 리팩터링 범위 안에서 코드 구조를 수정합니다. |
| 명령 실행 | 일부 필요 | 동작이 그대로임을 증명하는 빌드·테스트 명령을 실행합니다. |
| 네트워크 송신 | 필요 없음 | 스킬은 네트워크 접근을 요구하지 않습니다. |

## SKILL.md 프런트매터(YAML)

```yaml
---
name: safe-refactor
description: Restructure code while preserving behavior. Use for extraction, consolidation, ownership moves, or cleanup where verification must bracket structural edits.
---
```

홈: https://www.myskills.tools/ko/ · URL: https://www.myskills.tools/ko/skills/safe-refactor/
