Skill
Community

code-explorer

Install
1
Install the plugin
$
npx claudepluginhub aimskr/aims-claude-toolkit --plugin aims-toolkit

Want just this skill?

Then install: npx claudepluginhub u/[userId]/[slug]

Description

코드 탐색, 실행 흐름, 아키텍처 분석, 의존성 분석, 코드베이스 이해, 심볼 분석, 레퍼런스 추적 - Traces execution paths, maps architecture layers, and navigates symbols using LSP (Grep fallback). Use when exploring unfamiliar code, understanding feature implementations, or mapping dependencies. Do NOT use for making code changes (use feature-development or refactor-cleaner).

Tool Access

This skill uses the workspace's default tool permissions.

Skill Content

Code Explorer - Deep Codebase Analyst

Trace and understand feature implementations across codebases using LSP and standard tools.

Tool Priority (LSP 기본 사용)

LSP 플러그인 설치 완료 (pyright, typescript-lsp, jdtls-lsp, swift-lsp). 항상 LSP 도구를 우선 사용한다.

LSP 도구 operations:

  1. goToDefinition — 심볼 정의로 이동
  2. findReferences — 심볼의 모든 참조 검색
  3. workspaceSymbol — 워크스페이스 전체 심볼 검색
  4. hover — 타입/문서 정보 조회
  5. goToImplementation — 인터페이스/추상 메서드 구현체 탐색
  6. incomingCalls — 이 함수를 호출하는 모든 함수 검색
  7. outgoingCalls — 이 함수가 호출하는 모든 함수 검색
  8. documentSymbol — 파일 내 모든 심볼 목록

LSP 도구 호출 예시:

LSP(operation: "goToDefinition", filePath: "src/service/user.py", line: 15, character: 10)
LSP(operation: "findReferences", filePath: "src/service/user.py", line: 15, character: 10)

Fallback (LSP 에러 시에만): LSP 도구가 에러를 반환한 경우에만 Glob → Grep → Read 순서로 대체. LSP 시도 없이 Grep부터 사용 금지.

Analysis Process

1. Structure Overview (LSP: workspaceSymbol / documentSymbol)
   ↓
2. Entry Point Discovery (LSP: goToDefinition / findReferences)
   ↓
3. Code Flow Tracing (LSP: incomingCalls / outgoingCalls → call chain)
   ↓
4. Architecture Mapping (layers, patterns, dependencies)
   ↓
5. Report with file:line references

1. Feature Discovery

  • Find entry points (APIs, UI components, CLI commands)
  • Locate core implementation files
  • Map feature boundaries and configuration

2. Code Flow Tracing

  • Follow call chains from entry to output
  • Trace data transformations at each step
  • Identify all dependencies and integrations
  • Document state changes and side effects

3. Architecture Analysis

  • Map abstraction layers (presentation → business logic → data)
  • Identify design patterns and architectural decisions
  • Document interfaces between components
  • Note cross-cutting concerns (auth, logging, caching)

Output Format

Entry Points

TypeLocationDescription
APIsrc/api/users.py:45GET /users endpoint

Execution Flow

1. [Entry] src/api/users.py:45 - get_users()
   ↓ validates request params
2. [Service] src/services/user_service.py:30 - list_users()
   ↓ applies business rules
3. [Repository] src/repositories/user_repo.py:55 - find_all()
   ↓ builds query
4. [Response] returns domain objects

Key Components

ComponentFileResponsibility
Servicesrc/services/x.pyBusiness logic
Repositorysrc/repositories/x.pyData access

Dependencies

  • Internal: module → module relationships
  • External: libraries and frameworks

Observations

  • Strengths: what's well designed
  • Issues/Tech Debt: problems found
  • Essential Files: ordered list for further reading

Principles

  1. LSP 도구를 기본으로 사용 (goToDefinition, findReferences, incomingCalls 등). 에러 시에만 Grep fallback
  2. Always include file:line references
  3. Trace complete flow, not just surface level
  4. Identify patterns, not just code
  5. Note both strengths and issues

What to Avoid

  • Using Read directly without understanding structure first
  • Reading entire files indiscriminately
  • LSP 시도 없이 바로 Grep/Glob부터 사용하는 것

Completion

실행 흐름 분석 리포트(Entry Points + Execution Flow + Key Components + Dependencies)가 file:line 참조와 함께 전달되면 완료.

Troubleshooting

LSP 도구가 에러 반환: 해당 파일 타입의 LSP 서버가 지원되지 않는 경우. Glob → Grep → Read로 fallback. "LSP 미지원 파일 타입 — Grep fallback" 1줄 고지. Codebase too large to trace completely: Start from the specific entry point the user cares about. Trace one flow end-to-end rather than mapping everything. Dynamic dispatch makes tracing difficult: Search for string patterns (route registrations, event handlers, DI bindings) that wire dynamic calls. Document as "dynamic dispatch — runtime-dependent" in the report.

Stats
Stars0
Forks0
Last CommitMar 17, 2026

Similar Skills