이 스킬은 Bun이 필요합니다. 스크립트는 bun:sqlite를 사용합니다.
주어진 코드 위치에서 해당 위치에 도달할 수 있는 모든 진입점까지의 호출 체인을 추적합니다.
지원 언어: CodeGraph가 인덱싱한 모든 언어 (C#, Java, Kotlin, Go, TypeScript, JavaScript, Rust, C, C++, Vue, JSX, TSX, Terraform, Helm YAML 등)
입력: 심볼 이름, 파일 경로 또는 file:line 참조. 예시:
FindToolNameCollisionsToolsMappingExtensions.cs:145src/services/auth.ts:89CheckCertificate
요구 사항: CodeGraph가 이 프로젝트에 인덱싱되어 있어야 합니다 (.codegraph/ 디렉토리가 존재해야 함). 없을 경우 사용자에게 codegraph init을 먼저 실행하도록 안내하세요.
단계
1. 스크립트 실행
스크립트는 이 스킬의 기본 디렉토리에 있는 scripts/find-call-chain.ts입니다. 프로젝트 폴더에서 실행하세요. 현재 폴더에서 .codegraph/를 찾기 때문입니다:
bun <skill-base-directory>/scripts/find-call-chain.ts "<input>"
전체 출력을 사용자에게 그대로 보여주세요.
2. 여러 심볼 일치
스크립트가 "Multiple symbols matched"를 출력하면 표시된 후보 목록을 나열하고 사용자가 원하는 심볼에 대해 file:line 참조로 다시 실행하도록 요청하세요.
3. 심볼을 찾을 수 없음
스크립트가 "No symbol found"로 종료되면:
- 다른 철자나
file:line참조를 시도해 보세요. - CodeGraph가 최신 상태인지 확인하세요:
codegraph index
터미널 노드 감지 (스크립트에 내장됨 — LLM 판단 불필요)
스크립트는 다음 조건에서 브랜치 탐색을 중단합니다:
| 조건 | 예시 |
|---|---|
kind = route (CodeGraph 네이티브) | 모든 프레임워크의 라우트 노드 |
| 언어 이름 패턴 일치 | *Controller (C#/Java), *Activity (Kotlin), main (Go/Rust/C), *Page/*Route (TS/JS) |
| 호출자를 찾을 수 없음 | 호출 그래프의 리프 노드 |
| 깊이 제한 (6홉) | 트리에서 ⚠ depth cap으로 표시됨 |
| 사이클 감지 | 트리에서 ⟳ cycle로 표시됨 |