module-reviewlisted
Install: claude install-skill gagip/gagip-dev
## 이 스킬의 성격
- **대상**: 변경분이 아니라 모듈이 밖으로 내놓는 **공개 계약**. 오래 방치된 설계 부채를 찾는 용도다.
- **속도보다 순서**: 한 번에 전부 훑지 않는다. 모듈 하나씩, 사용자 확인을 받으며 나아간다.
- **수정하지 않는다**: 리뷰 중 코드를 고치면 판단이 흐려지고 되돌리기 어려워진다.
발견은 전부 메모에 쌓고, 실제 수정은 리뷰가 끝난 뒤 별도 작업으로 한다.
판정 기준은 **현재 `SKILL.md` 디렉터리의 `references/coding-philosophy.md`를 로드해 적용한다**
(특히 8~11장). 이 스킬은 "무엇을 보는가"의 순서만 정하고, "무엇이 결함인가"는 철학 문서가 정한다.
---
## Step 1 — 리뷰 대상과 순서 결정 [STOP]
1. 호출과 함께 경로가 주어졌으면 그 경로를, 없으면 레포 루트의 소스 디렉토리를 대상으로 삼는다.
2. 모듈·패키지를 나열하고 **의존 방향 또는 데이터 흐름 순서**로 정렬한다.
(파이프라인이면 흐름 순, 계층 구조면 하위 계층부터. 의존이 없는 쪽에서 있는 쪽으로.)
3. 프로젝트에 아키텍처 문서가 있으면 읽고, 실제 디렉토리 구조와 어긋나는지도 함께 확인한다.
4. 순서를 사용자에게 제시하고 합의한다. **여기서 멈춘다.**
## Step 2 — 메모 파일 생성
저장 위치는 하드코딩하지 않는다. 프로젝트에 보고서 저장 규약이 있으면 그 위치,
없으면 `{git 루트}/.private/`(기존 `private/`(점 없음)가 있으면 그 폴더를 계속 쓰고, 둘 다
없으면 `mkdir -p`). 루트는 `git rev-parse --show-toplevel`로 판별.
파일명은 `<저장위치>/module-review-{YYYYMMDD}.md`.
문서 상단에 다음을 적는다:
- 리뷰 대상과 합의된 순서
- 적용할 공통 원칙 요약 (`references/coding-philosophy.md` 8~11장)
- **"리뷰 중에는 수정하지 않는다. 전체 리뷰가 끝나면 여기 모인 항목을 실제 작업으로 진행한다."**
## Step 3 — 모듈 하나씩 점검 (반복)
각 모듈마다 아래 ①~⑦을 순서대로 본다. 결과를 메모에 append하고,
**사용자 확인을 받은 뒤** 다음 모듈로 넘어간다.
| 순서 | 점검 | 방법 | 철학 |
|---|---|---|---|
| ① | 공개 표면 열거 | 모듈이 밖으로 내보내는 것을 전부 나열 | — |
| ② | public 최소화 | 각 심볼을 grep — **운영 코드** 호출처 0건이면 제거·비공개 후보 | 8장 |
| ③ | 시그니처 자기설명 | 이름·타입만으로 방향·단위·의미가 유추되는가 | 9장 |
| ④ | 계약 프로그래밍 | 사전/사후조건이 **일관되게** 있는가 | 1·2장 |
| ⑤ | 실패 방식 통일 | 같은 모듈에서 예외/빈 값 반환이 섞이지 않는가 | 5장 |
| ⑥ | 테스트 가능한 구조 | 의존성을 주입받는가 내부에서 만드는가 | 10장 |
| ⑦ | 테