| name | map |
| description | 產出 codebase 語意符號地圖(classes、functions、interfaces、types 的精確 file:line 位置)。適合在大型重構前或接手陌生 codebase 時使用。 |
| disable-model-invocation | true |
| context | fork |
Map — Codebase Symbol Map
觸發條件
- 開始大規模重構前,需要精確的符號位置
- 接手陌生 codebase,需要快速建立心智地圖
- 避免 Grep 在註解/字串中找到誤報
- 與
prime skill 搭配:prime 讀 README,map 產出符號索引
執行方式
python3 ~/.claude/skills/map/scripts/symbol_map.py
python3 ~/.claude/skills/map/scripts/symbol_map.py /path/to/project
腳本會:
- 自動偵測語言(TypeScript / JavaScript / Python / Rust / Go)
- 提取所有 exported 符號與精確
file:line
- 輸出 markdown 地圖至
~/.claude/codebase-maps/<project>_symbols.md
輸出格式範例
# Codebase Symbol Map
**Project**: `my-project`
**Languages**: typescript
**Files**: 42 | **Symbols**: 183
## Classes
| Symbol | Location |
|--------|----------|
| `AuthProvider` | `src/auth/provider.ts:15` |
## Functions
| Symbol | Location |
|--------|----------|
| `formatDate` | `src/utils/date.ts:42` |
產出後的使用方式
地圖生成後,直接引用精確位置:
- 「讀
src/auth/provider.ts:15 確認 AuthProvider 的介面」
- 「
src/utils/date.ts:42 的 formatDate 需要修改」
不再需要猜測或用 Grep 反覆搜尋。
支援語言
| 語言 | 提取符號類型 |
|---|
| TypeScript | function, class, interface, type, const, enum |
| JavaScript | function, class, const, module.exports |
| Python | class, def, TypeVar |
| Rust | pub fn, pub struct, pub enum, pub trait |
| Go | exported func, struct, interface (大寫開頭) |
Gotcha
- 腳本路徑:確認
~/.claude/skills/map/scripts/symbol_map.py 存在(在 workspace 的 .claude/skills/map/scripts/ 目錄中)
- 輸出目錄:地圖存於
~/.claude/codebase-maps/,非 workspace 目錄,不會被 git 追蹤
- 大型 codebase:超過 1000 個檔案時產出可能較大;用
head -100 先看摘要
- 動態語言:Python 只提取頂層 class/def,不含動態建立的符號
- 更新時機:每次大規模重構後重跑更新地圖