| name | repo-scan |
| description | 크로스 스택 소스 코드 자산 감사 도구입니다. 모든 파일을 분류하고, 포함된 서드파티 라이브러리를 탐지하며, 모듈별로 실행 가능한 4단계 판정을 제공하고, 인터랙티브 HTML 리포트를 생성합니다. |
| origin | community |
repo-scan
생태계마다 패키지 매니저는 있지만, C++, Android, iOS, Web 전체를 가로질러 실제로 무엇이 내 코드이고, 무엇이 서드파티이며, 무엇이 죽은 짐인지 알려주는 도구는 드뭅니다.
사용 시점
- 큰 레거시 코드베이스를 인수받아 구조 개요가 필요할 때
- 대형 리팩터링 전에 핵심, 중복, 폐기 대상을 파악할 때
- 패키지 매니저 선언이 아니라 소스에 직접 포함된 서드파티 의존성을 감사할 때
- 모노레포 재구성을 위한 아키텍처 의사결정 기록을 준비할 때
설치
mkdir -p ~/.claude/skills/repo-scan
git init repo-scan
cd repo-scan
git remote add origin https://github.com/haibindev/repo-scan.git
git fetch --depth 1 origin 2742664
git checkout --detach FETCH_HEAD
cp -r . ~/.claude/skills/repo-scan
어떤 에이전트 스킬이든 설치 전에는 소스를 검토합니다.
핵심 기능
| 기능 | 설명 |
|---|
| 크로스 스택 스캔 | C/C++, Java/Android, iOS(OC/Swift), Web(TS/JS/Vue)를 한 번에 스캔 |
| 파일 분류 | 각 파일을 프로젝트 코드, 서드파티 코드, 빌드 산출물로 태깅 |
| 라이브러리 탐지 | 50개 이상의 알려진 라이브러리(FFmpeg, Boost, OpenSSL 등)와 버전 추출 |
| 4단계 판정 | Core Asset / Extract & Merge / Rebuild / Deprecate |
| HTML 리포트 | 드릴다운 탐색이 가능한 다크 테마 인터랙티브 페이지 |
| 모노레포 지원 | 요약 + 하위 프로젝트 리포트를 포함한 계층형 스캔 |
분석 깊이 단계
| 단계 | 읽는 파일 수 | 사용 사례 |
|---|
fast | 모듈당 1~2개 | 매우 큰 디렉터리의 빠른 인벤토리 |
standard | 모듈당 2~5개 | 의존성과 아키텍처 점검을 포함한 기본 감사 |
deep | 모듈당 5~10개 | 스레드 안전성, 메모리 관리, API 일관성 추가 검토 |
full | 모든 파일 | 병합 전 종합 리뷰 |
동작 방식
- 저장소 표면 분류: 파일을 열거한 뒤 프로젝트 코드, 포함된 서드파티 코드, 빌드 산출물로 태깅합니다.
- 포함 라이브러리 탐지: 디렉터리 이름, 헤더, 라이선스 파일, 버전 마커를 조사해 번들된 의존성과 가능한 버전을 식별합니다.
- 모듈별 점수화: 파일을 모듈 또는 서브시스템 단위로 묶고, 소유권, 중복, 유지보수 비용을 기준으로 4단계 판정을 부여합니다.
- 구조적 리스크 표시: 죽은 산출물, 중복 래퍼, 오래된 벤더 코드, 추출/재구축/폐기해야 할 모듈을 지적합니다.
- 리포트 생성: 간결한 요약과 모듈별 드릴다운이 가능한 인터랙티브 HTML 결과를 제공합니다.
예시
파일 수 5만 개 규모의 C++ 모노레포에서:
- FFmpeg 2.x(2015년대 버전)가 아직 프로덕션에 있는 것을 발견
- 같은 SDK 래퍼가 3번 중복된 것을 발견
- 커밋된
Debug/ipch/obj 빌드 산출물 636MB 식별
- 분류 결과: 프로젝트 코드 3MB, 서드파티 596MB
모범 사례
- 첫 감사는
standard 깊이로 시작합니다.
- 모듈 100개 이상인 모노레포는
fast로 빠른 인벤토리를 먼저 만듭니다.
- 리팩터링 대상 모듈은
deep으로 점진적으로 파고듭니다.
- 하위 프로젝트 간 중복 탐지를 위해 교차 모듈 분석 결과를 검토합니다.
링크