map
產出 codebase 語意符號地圖(classes、functions、interfaces、types 的精確 file:line 位置)。適合在大型重構前或接手陌生 codebase 時使用。
SKILL.md.claude/skills/map/SKILL.md
GitHubMap — Codebase Symbol Map
觸發條件
- 開始大規模重構前,需要精確的符號位置
- 接手陌生 codebase,需要快速建立心智地圖
- 避免 Grep 在註解/字串中找到誤報
- 與
primeskill 搭配:prime 讀 README,map 產出符號索引
執行方式
# 在專案根目錄執行(輸出存於 ~/.claude/codebase-maps/)
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,不含動態建立的符號
- 更新時機:每次大規模重構後重跑更新地圖