codemap
번들된 스크립트를 실행하세요. 호출할 때마다 작업 트리를 새로 읽어 컴팩트하고 정렬된 맵을 출력합니다. 절대로 아무것도 쓰지 않습니다.
${CLAUDE_SKILL_DIR}/scripts/codemap --ext php,blade.php --dir app
${CLAUDE_SKILL_DIR}/scripts/codemap --ext css,scss --symbols
${CLAUDE_SKILL_DIR}/scripts/codemap --ext ts,tsx --dir src --symbols --max 150
옵션: --ext (쉼표로 구분, 점 불필요), --dir, --symbols, --max (출력 라인 상한, 기본값 300), --exclude REGEX (반복 가능).
출력 예시:
# codemap: 12 files in 3 dirs (dir: app, ext: php, via rg)
Http/Controllers/
UserController.php: class UserController, fn index, fn store
사용 시기
- 하나 이상의 유형에 속하는 모든 파일이 필요하지만 파일 위치를 모를 때.
- 무엇을 정의하는지 알아보기 위해 여러 파일을 읽으려던 참인 경우: 먼저
--symbols옵션으로 실행하고 실제로 필요한 파일만 읽으세요. - 서브 에이전트가 낯선 영역에서 작업을 시작할 때: 해당 디렉토리의 codemap을 전달하여 처음부터 검색하지 않도록 하세요.
사용하지 말아야 할 시기
- 파일 이름이나 정확한 패턴을 알고 있을 때: Glob을 사용하세요.
- 파일 내부의 텍스트가 필요할 때: Grep을 사용하세요.
- 심볼의 정의나 참조가 필요하고 LSP 플러그인이 활성화되어 있을 때: LSP 도구를 사용하세요.
주의 사항
- ripgrep 또는 git을 사용할 수 있으면
.gitignore가 존중됩니다.vendor/,node_modules/, 빌드 출력물, 축소된 파일 및 소스 맵은 항상 건너뜁니다. - 심볼은 파서가 아닌 라인 기반 패턴에서 추출됩니다: 최상위 PHP 클래스/함수, JS/TS
export, Python 최상위class/def, Gotype/func, CSS 사용자 정의 속성(개수로 표시), SCSS/Less 믹스인. 이것을 목차로 취급한 후, 필요한 파일을 읽으세요. - 출력이
# ... truncated로 끝나면--max를 크게 올리는 대신--dir,--ext또는--exclude로 범위를 좁히세요.