LazyCodex
LazyCodexv4.12.1

remove-ai-slops

동작을 보존하면서 AI가 만든 코드 냄새를 정리합니다.

remove-ai-slops는 브랜치 변경분이나 명시된 파일 목록에서 AI가 만든 코드 냄새(슬롭)를 동작을 엄격히 보존하면서 제거합니다. 핵심 안전 불변식은, 한 줄을 지우기 전에 통과한 회귀 테스트로 동작을 고정한다는 것입니다. 체크리스트는 안전장치가 아니며, 통과하는 테스트가 안전장치입니다.

"remove ai slops", "clean ai code", "deslop", "cleanup AI generated"가 트리거입니다.

remove-ai-slops는 오케스트레이터입니다. 범위(브랜치 diff 또는 파일 목록)를 정하고, 먼저 회귀 테스트로 동작을 고정한 뒤, 여러 파일에 걸친 카테고리별 정리를 병렬 worker로 나눠 실행하고, 품질 게이트로 검증합니다. Codex에서는 OpenCode식 deep 예시를 그대로 쓰지 않고, 자기완결 메시지를 가진 worker sub-agent로 번역해 실행합니다.

범위

  • 기본값: merge-base main 대비 브랜치 diff — 인자 없이 동작합니다.
  • 선택: 호출자가 넘긴 명시적 파일 목록(예: 루프 워크플로우의 변경 파일 집합).

삭제·바이너리·생성·벤더링 파일은 걸러집니다.

슬롭 카테고리

이 Skill은 주요 슬롭 카테고리를 종류별로 묶어 평가합니다.

그룹카테고리
스타일뻔한 주석, 과도한 방어 코드, 과한 복잡도
구조불필요한 추상화, 경계 위반, 죽은 코드
숨은 비용중복, 성능 등가 최적화
동작 커버리지누락된 테스트
구조(크기)과대 모듈(순수 250 LOC 이상)

각 카테고리에는 명시적인 KEEP 규칙이 있습니다. WHY를 설명하는 주석, 시스템 경계에서의 검증, 실제 이음새를 주는 추상화, 의도된 패턴은 보존합니다. 성능 수정은 동작 등가가 명백할 때만 적용하고, 아니면 SKIP합니다. 과대 모듈은 단순 플래그가 아니라 전면 모듈 리팩터링을 유발하며, 새 파일은 각각이 책임지는 개념으로 이름 짓습니다(절대 utils, helpers, common, part_1 금지).

절차

범위 결정

파일 경로가 넘어왔으면 그게 범위입니다. 아니면 브랜치 diff를 씁니다.

git diff $(git merge-base main HEAD)..HEAD --name-only

회귀 테스트로 동작 고정

범위 안의 각 파일에 대해 관찰 가능한 동작을 식별하고, 기존 커버리지를 찾고, 편집 전에 현재 동작을 고정하는 가장 좁은 회귀 테스트를 작성합니다. 베이스라인은 green이어야 합니다. green 베이스라인을 세울 수 없으면 멈추고 보고합니다.

계획 후 병렬 정리

안전한 순에서 위험한 순(주석 → 죽은 코드 → 방어 → 중복 → 복잡도 → 추상화/경계 → 성능 → 테스트 → 과대 모듈)으로 파일별 정리 계획을 명시합니다. 그다음 파일 단위 worker를 한 번에 최대 다섯 개씩 병렬 배치합니다. 파일이 실패하면 한 번 재시도하고, 그래도 안 되면 에스컬레이션합니다.

품질 게이트로 검증

회귀 테스트, 린트, 타입체크(LSP 진단과 프로젝트 타입 체커), 단위/통합 테스트, 정적/보안 스캔을 실행합니다. 정말로 N/A인 게이트는 N/A로 보고하고, 조용히 건너뛰지 않습니다. 그 뒤 안전/동작/품질 비판적 리뷰 체크리스트를 훑습니다.

이슈 수정

게이트가 실패하면 문제 변경을 git checkout이나 표적 편집으로 되돌리고, 안전이 증명되는 것만 다시 적용하고, 게이트를 재실행합니다. 같은 파일에서 세 번 실패하면 멈추고 에스컬레이션합니다.

안티패턴

  • 회귀 테스트 단계 건너뛰기 — 커버되지 않은 땅에서 코드를 지우는 건 동작 변경 시한폭탄입니다.
  • 무관한 리팩터링을 한 정리 커밋에 묶기.
  • 알고리즘 변경을 성능 최적화로 위장하기.
  • 조용한 스킵 — N/A와 그 이유를 말하기.
  • WHY를 설명하는 주석 제거.
  • 범위 밖 파일 건드리기.

목차