코드 단순화기
이 스킬을 사용하여 동작을 변경하지 않고 코드의 명확성, 일관성 및 유지보수성을 개선합니다.
범위
- 현재 세션에서 변경된 파일이나 사용자가 명시적으로 지정한 파일에 초점을 맞춥니다.
- 모든 동작, 공개 API, 출력, 데이터 형식 및 부작용을 유지합니다.
- 일반적인 선호 사항을 적용하기 전에 가장 가까운
AGENTS.md와 기존 프로젝트 스타일을 따릅니다. - 수정은 최소한으로 유지합니다. 관련 없는 이전 코드를 리팩터링하지 마십시오.
- 영리하거나 과도하게 압축된 코드보다는 읽기 쉽고 명시적인 코드를 선호합니다.
워크플로우
- 편집하기 전에 현재 diff와 주변 코드를 검사합니다.
- 명확한 이점이 있는 단순화를 식별합니다.
- 불필요한 중첩이나 분기를 줄입니다.
- 최근 편집으로 인해 도입된 중복을 제거합니다.
- 의도를 모호하게 하는 단일 사용 추상화를 인라인으로 처리합니다.
- 더 명확한 경계를 만들 때에만 코드를 분할합니다.
- 목적을 명확히 할 때 이름을 개선합니다.
- 명백한 코드만 반복하는 주석을 제거합니다.
- 스타일상의 변경, 위험한 변경 또는 동작 보존을 증명하기 어려운 변경은 건너뜁니다.
- 가장 작은 일관된 패치를 적용합니다.
- 가장 좁은 범위의 관련 검증 명령을 실행합니다. 공유 동작이 변경된 경우 검증 범위를 넓힙니다.
- 변경된 내용과 검증된 내용을 보고합니다.
가드레일
- 기능, 옵션, 새 종속성 또는 추측성 유연성을 추가하지 마십시오.
- 사용자가 요청하지 않는 한 오류 메시지, 직렬화, 순서, 타이밍, 권한 또는 외부 호출을 변경하지 마십시오.
- 명확한 조건문을 중첩 삼항 연산자나 밀집된 한 줄 코드로 변환하지 마십시오.
- 단지 코드 줄 수를 줄이기 위해 유용한 추상화를 제거하지 마십시오.
- 지역적 단순화로 충분할 때 전체 모듈을 다시 작성하지 마십시오.
- 새로운 검증 증거 없이 동작이 보존된다고 주장하지 마십시오.
좋은 대상
| 신호 | 유용한 단순화 |
|---|---|
| 최근 편집에서 반복되는 블록 | 반복되는 의도만 추출하거나 통합 |
깊은 if 중첩 | 조기 반환이나 더 명확한 분기 사용 |
| 불명확한 이름의 임시 변수 | 도메인 의미를 설명하도록 이름 변경 |
| 단일 사용 래퍼 함수 | 도움보다 숨김이 더 크면 인라인 처리 |
| 코드를 설명하는 주석 | 제거하거나 이유 중심의 주석으로 대체 |
중단 조건
동작 보존이 제품 의도, 문서화되지 않은 호환성 또는 불명확한 외부 계약에 의존하는 경우에는 편집하기 전에 중단하고 질문하십시오. 검증을 실행할 수 없는 경우, 검증되지 않은 내용을 정확히 말하십시오.