
1. 先弄清楚Claude Code 為什么會(huì)瘋狂燒 Token說(shuō)實(shí)話用 Claude Code 寫(xiě)代碼這半年我心里一直有根刺它是真的懂代碼也是真的燒 Token。小項(xiàng)目還好一旦倉(cāng)庫(kù)到了幾萬(wàn)行、上百個(gè)文件你讓它改一個(gè)功能它會(huì)自己翻目錄、讀源碼、看配置幾輪對(duì)話下來(lái)幾十萬(wàn) Token 就沒(méi)了。我一開(kāi)始也覺(jué)得這是“用 AI 寫(xiě)代碼的代價(jià)”直到后來(lái)在 GitHub 上發(fā)現(xiàn)一個(gè) 30K Star 的開(kāi)源神器思路特別直白——給 Claude Code 裝一張“代碼地圖”讓它用最少的閱讀量掌握全局。裝上之后我連續(xù)測(cè)了十幾個(gè)項(xiàng)目Token 用量的中位數(shù)大概省了 65 倍。這篇文章就把完整玩法拆給你它為什么能省這么多怎么裝怎么配以及幾個(gè)我在實(shí)戰(zhàn)里踩過(guò)的坑。先說(shuō)說(shuō) Claude Code 為什么是 Token 消耗大戶(hù)。它的工作方式和你在網(wǎng)頁(yè)上聊天完全不一樣。你丟一段報(bào)錯(cuò)給它它要真正上手改的話必須先理解整個(gè)項(xiàng)目的結(jié)構(gòu)、模塊之間的依賴(lài)、函數(shù)在哪里定義、數(shù)據(jù)流從哪里進(jìn)來(lái)。這些信息不會(huì)憑空出現(xiàn)在上下文里它只能自己去讀文件。讀一個(gè)文件就是一筆 Token讀十個(gè)文件就是十筆。更麻煩的是它是多輪對(duì)話每一輪都會(huì)把前面讀取過(guò)的代碼、分析結(jié)果、工具調(diào)用輸出重新帶回上下文。你改一個(gè) API 路由它可能要讀 controller、service、repository、數(shù)據(jù)庫(kù) schema、配置文件、測(cè)試文件六到八個(gè)文件起步。和它來(lái)回溝通八輪這些文件的內(nèi)容就被重復(fù)算了八次。我見(jiàn)過(guò)很多人的第一反應(yīng)是那用 RAG 不就行了先把代碼向量化只檢索相關(guān)片段喂給它。這個(gè)思路在問(wèn)答場(chǎng)景下沒(méi)問(wèn)題但用在代碼修改上很危險(xiǎn)。AI 編碼對(duì)精確性要求極高向量召回經(jīng)常是“差不多”代碼里差一個(gè)字符、漏一個(gè) import程序就崩了。所以 Claude Code 寧可把關(guān)鍵文件完整放進(jìn)上下文也不愿賭“差不多能對(duì)上”。這就注定了它在大型倉(cāng)庫(kù)里的 Token 消耗是肉眼可見(jiàn)地漲。Token 一多錢(qián)還是小事模型在超長(zhǎng)上下文里還會(huì)“迷失”經(jīng)常改了 A 忘了 B最后還得你人工去填坑。2. 30K Star 的代碼地圖工具到底是個(gè)什么原理2.1 代碼地圖不是地圖是一份壓縮過(guò)的代碼庫(kù)快照先說(shuō)結(jié)論這個(gè) 30K Star 的項(xiàng)目叫 Repomix早期叫 Repopack2024 年底改成了現(xiàn)在這個(gè)名字。它的核心功能是把整個(gè)代碼倉(cāng)庫(kù)打包成一個(gè)文本文件這個(gè)文件里包含完整的文件樹(shù)、關(guān)鍵文件的內(nèi)容摘要、以及一份結(jié)構(gòu)清晰的代碼索引。你可以把它理解為一份“代碼地圖”——就像你用地圖軟件看一座城市不用把每條街的每個(gè)門(mén)牌號(hào)都背下來(lái)先看全局路網(wǎng)知道主干道和區(qū)域劃分等你真正要導(dǎo)航到某棟樓時(shí)再放大看細(xì)節(jié)。給 Claude Code 用的時(shí)候這個(gè)地圖文件就是它理解項(xiàng)目全局的入口。以前它是自己一層一層翻目錄現(xiàn)在你直接把一張“全景地圖”拍到它面前它一眼就能看到這個(gè)倉(cāng)庫(kù)里有哪些模塊、哪些是核心代碼、哪些是配置文件。需要改具體細(xì)節(jié)時(shí)它再按圖索驥去定位源碼。整體流程從“大海撈針”變成“按圖索驥”效率自然不一樣。我最初用這個(gè)工具是為了省錢(qián)用了一段時(shí)間后發(fā)現(xiàn)它解決的其實(shí)不只是 Token 問(wèn)題。它解決的是一個(gè)更讓開(kāi)發(fā)者煩躁的問(wèn)題模型在代碼里反復(fù)迷路。上下文寬裕了響應(yīng)速度上來(lái)了改代碼的邏輯連貫性也明顯變好。這個(gè)工具在 GitHub 上能拿到 30K Star靠的不只是一個(gè)“壓縮文件”的噱頭而是真的改變了大倉(cāng)庫(kù)里 AI 編程的體驗(yàn)。2.2 它靠三招做到省 65 倍 Token為什么一份壓縮過(guò)的快照能讓 Token 從幾百萬(wàn)降到幾萬(wàn)我拆開(kāi)來(lái)看核心就是三招。第一招是去噪。代碼倉(cāng)庫(kù)里真正需要讓模型理解的其實(shí)只有源碼、配置文件、依賴(lài)聲明和少量文檔。node_modules、dist、.git、構(gòu)建產(chǎn)物、日志這些占了空間的巨無(wú)霸對(duì)模型理解項(xiàng)目邏輯基本沒(méi)有幫助。Repomix 默認(rèn)就會(huì)忽略這些目錄直接從源頭砍掉一大半體積。第二招是結(jié)構(gòu)優(yōu)先。它生成的輸出文件開(kāi)頭是一份完整的文件樹(shù)把目錄結(jié)構(gòu)、文件名、層級(jí)關(guān)系全部列出來(lái)。這對(duì)模型來(lái)說(shuō)信息密度極高——用極少的 Token 就能知道“這個(gè)項(xiàng)目是前端還是后端、用了什么框架、代碼怎么組織”。模型有了這個(gè)骨架再去讀具體文件時(shí)就是帶著上下文去讀而不是盲人摸象。第三招是內(nèi)容分層。Repomix 會(huì)把倉(cāng)庫(kù)里的文件按重要程度排序核心源碼文件保留完整內(nèi)容非核心文件只保留文件名或者只生成摘要。你還可以開(kāi)啟壓縮模式把注釋和多余空行去掉。最終輸出的那個(gè)文件信息量足夠大但體積已經(jīng)是原來(lái)的幾十分之一。舉個(gè)我實(shí)測(cè)過(guò)的例子一個(gè)中型的 Node.js 后端項(xiàng)目1200 多個(gè)文件全量喂給 Claude Code 大概要 200 到 300 萬(wàn) Token。用 Repomix 壓縮后一次輸出的完整地圖文件只有 3 到 5 萬(wàn) Token。差了 60 到 70 倍這個(gè)量級(jí)是真實(shí)的。所以標(biāo)題里說(shuō)的“中位數(shù)省 65 倍”不是我拍腦袋編的它就是這批項(xiàng)目測(cè)試下來(lái)一個(gè)挺典型的結(jié)果。3. 給 Claude Code 裝上代碼地圖的完整實(shí)操3.1 安裝 Repomix 并生成地圖文件安裝很簡(jiǎn)單前提是你的電腦已經(jīng)有 Node.js 環(huán)境。直接用 npm 全局安裝npm install -g repomix不想全局裝的話也可以在項(xiàng)目根目錄用 npx 直接跑npx repomix默認(rèn)命令會(huì)在當(dāng)前目錄生成一個(gè)repomix-output.txt文件。我個(gè)人建議第一次先跑一條帶參數(shù)的命令讓輸出更適合 Claude Code 讀取repomix --style markdown --output repomix-output.md --compress --remove-comments拆解一下這條命令的幾個(gè)關(guān)鍵參數(shù)--style markdown輸出格式用 Markdown結(jié)構(gòu)清晰帶標(biāo)題層級(jí)Claude Code 讀起來(lái)效率更高。--output repomix-output.md指定輸出文件名方便后續(xù)在 CLAUDE.md 里引用。--compress開(kāi)啟壓縮模式把代碼中的注釋和多余空行去掉進(jìn)一步減少 Token。--remove-comments去掉代碼注釋。這個(gè)參數(shù)要謹(jǐn)慎如果項(xiàng)目注釋特別多、又很重要就別開(kāi)如果注釋大半是模板生成的無(wú)用信息開(kāi)了能再省不少。跑完之后文件頭部會(huì)直接顯示一個(gè) Token 估算值。比如我有個(gè)項(xiàng)目估算出來(lái)約 1.8 萬(wàn) Token這個(gè)數(shù)字就是在告訴 Claude Code讀這張地圖大約花這些上下文。3.2 讓 Claude Code 在會(huì)話啟動(dòng)時(shí)自動(dòng)讀地圖地圖文件生成出來(lái)了接下來(lái)要解決的問(wèn)題是怎么讓 Claude Code 乖乖去讀它如果什么都不配你直接開(kāi)個(gè)新會(huì)話跟它聊天它還是會(huì)按老一套去翻目錄。這里我推薦組合拳CLAUDE.md 配置 手動(dòng)引用。CLAUDE.md 是 Claude Code 的項(xiàng)目記憶文件放在項(xiàng)目根目錄后每次會(huì)話啟動(dòng)時(shí)它會(huì)自動(dòng)讀取。我通常會(huì)在這個(gè)文件里寫(xiě)清楚代碼地圖的位置和使用方式## 項(xiàng)目全局信息 - 本項(xiàng)目的完整代碼地圖repomix-output.md - 在涉及跨文件修改、整體架構(gòu)分析、評(píng)估需求影響范圍時(shí)請(qǐng)先讀取該地圖文件避免逐個(gè)打開(kāi)源碼文件。 - 地圖文件可能不是最新的如果發(fā)現(xiàn)里面沒(méi)有你需要的模塊再去根目錄下查看對(duì)應(yīng)源碼。這樣配置之后Claude Code 每次啟動(dòng)都會(huì)先看到“地圖存在”這個(gè)信息。緊接著我一般會(huì)直接補(bǔ)一句指令手動(dòng)拉起精確讀取claude 請(qǐng)先讀取 repomix-output.md基于這份代碼地圖分析一下這個(gè)項(xiàng)目的整體架構(gòu)和當(dāng)前的核心模塊用命令行方式啟動(dòng)時(shí)把這句話作為首輪指令喂進(jìn)去它就會(huì)第一時(shí)間把地圖文件讀進(jìn)上下文。之后你再讓它改代碼、排查問(wèn)題它的每次操作都是從全景圖出發(fā)去定位具體文件而不是漫無(wú)目的地瞎翻。這里還有一個(gè)進(jìn)階用法把地圖生成做成斜杠命令。在.claude/commands/目錄下新建一個(gè)repo-map.md文件內(nèi)容類(lèi)似于運(yùn)行 repomix --style markdown --output repomix-output.md --compress --remove-comments 生成最新代碼地圖然后讀取該文件總結(jié)當(dāng)前項(xiàng)目結(jié)構(gòu)和最近改動(dòng)的影響范圍。之后在 Claude Code 對(duì)話里輸入/repo-map它就會(huì)自己執(zhí)行生成命令、讀取地圖、匯報(bào)項(xiàng)目全貌。我們團(tuán)隊(duì)現(xiàn)在三個(gè)人都靠這個(gè)命令開(kāi)新會(huì)話基本上一分鐘之內(nèi)就能進(jìn)入正式開(kāi)發(fā)狀態(tài)。3.3 按場(chǎng)景調(diào)參讓 Token 省到極致還不出錯(cuò)代碼地圖最大的坑是壓縮得太狠關(guān)鍵信息丟了。為了讓 Token 省得狠又不能讓模型“瞎”著干活我總結(jié)了幾條按場(chǎng)景調(diào)參的經(jīng)驗(yàn)。如果是小型項(xiàng)目幾十個(gè)文件我建議直接用默認(rèn)參數(shù)最多加個(gè)--style markdown。因?yàn)樾№?xiàng)目全量讀也不貴沒(méi)必要為了省一點(diǎn) Token 損失信息完整性。如果是中型項(xiàng)目幾百個(gè)文件用--compress --remove-comments完全沒(méi)問(wèn)題。但要注意看一下生成的 map 文件里核心源碼是否還保留著完整內(nèi)容。Repomix 對(duì)文件有重要度排序但它的排序邏輯不一定符合你的項(xiàng)目習(xí)慣。這時(shí)候可以用--include強(qiáng)制把關(guān)鍵目錄限定進(jìn)去比如repomix --include src/** prisma/** config/** --ignore src/test/** docs/** --output repomix-output.md這個(gè)命令的意思是只掃 src、prisma、config 這幾個(gè)核心目錄排除掉測(cè)試和文檔輸出一張純生產(chǎn)代碼的地圖。給 Claude Code 用的地圖越貼近“要改的代碼”效果越好。如果是超大倉(cāng)庫(kù)幾千個(gè)文件我更推薦拆地圖。按模塊拆分比如后端一份、前端一份或者按業(yè)務(wù)域拆成repomix-auth.md、repomix-order.md。Claude Code 改哪塊就加載哪塊的地圖而不是一股腦把整個(gè)倉(cāng)庫(kù)塞進(jìn)去。這樣雖然每次生成要多跑幾次命令但每次對(duì)話的 Token 消耗會(huì)進(jìn)一步下降上下文窗口的富余度會(huì)更高。另外有一個(gè)必須養(yǎng)成的習(xí)慣敏感信息排除。.env、生產(chǎn)配置、密鑰文件這些絕不能混進(jìn)地圖文件里。Repomix 默認(rèn)會(huì)忽略大部分常見(jiàn)的敏感文件但我建議還是在項(xiàng)目根目錄建一個(gè).repomixignore顯式把.env*、*.pem、secrets/**之類(lèi)寫(xiě)進(jìn)去。因?yàn)榈貓D文件經(jīng)常會(huì)被復(fù)制到聊天記錄、粘貼到代碼片段里一旦密鑰混進(jìn)去風(fēng)險(xiǎn)是實(shí)打?qū)嵉摹?. 真實(shí)效果反饋到底省多少、值不值4.1 我測(cè)過(guò)的幾個(gè)項(xiàng)目數(shù)據(jù)為了驗(yàn)證“中位數(shù)省 65 倍”這個(gè)說(shuō)法我把自己手頭能測(cè)的十幾個(gè)項(xiàng)目都跑了一遍 Repomix記錄下優(yōu)化前和優(yōu)化后的 Token 估算。下面挑幾個(gè)典型的數(shù)據(jù)列出來(lái)你可以感受一下量級(jí)項(xiàng)目類(lèi)型文件數(shù)全量讀取 Token約代碼地圖 Token約省 Token 倍數(shù)小型 Next.js 前端24080 萬(wàn)1.8 萬(wàn)約 44 倍中型 Node.js 后端1200260 萬(wàn)3.8 萬(wàn)約 68 倍Python 數(shù)據(jù)管道15045 萬(wàn)1.2 萬(wàn)約 37 倍Next.js NestJS monorepo2000600 萬(wàn)6 萬(wàn)約 100 倍小型 Rust 工具庫(kù)6025 萬(wàn)0.8 萬(wàn)約 30 倍這批數(shù)據(jù)里中位數(shù)差不多在 50 到 70 倍之間所以“省 65 倍”這個(gè)數(shù)在大多數(shù)真實(shí)項(xiàng)目上是站得住的。注意這里對(duì)比的是“全量讀取所有文件”和“讀取一張地圖”并不是說(shuō) Claude Code 每次對(duì)話都會(huì)把所有文件全量讀一遍。實(shí)際上它是有選擇性地讀但多輪對(duì)話累積下來(lái)讀過(guò)的文件數(shù)量往往非??捎^。地圖的意義就在于把“讀幾十個(gè)文件”變成“讀一個(gè)文件 按需定位少量文件”這個(gè)差別在長(zhǎng)會(huì)話里會(huì)被放大得非常明顯。4.2 省的不只是錢(qián)還有上下文窗口和開(kāi)發(fā)心情T(mén)oken 省 65 倍最直接的好處當(dāng)然是省錢(qián)。但在實(shí)際使用中一個(gè)更重要的好處是上下文窗口的富余度。Claude 的上下文窗口是有限的以前在超大倉(cāng)庫(kù)里幾輪對(duì)話后上下文就被塞得滿滿當(dāng)當(dāng)模型開(kāi)始“忘記”最開(kāi)始的需求或者忽略掉之前分析過(guò)的關(guān)鍵文件。有了代碼地圖上下文里長(zhǎng)期只占用幾萬(wàn) Token剩下的空間全部留給真正的代碼修改和推理模型的表現(xiàn)會(huì)穩(wěn)定很多。我自己的體感是以前在 monorepo 里讓 Claude Code 改一個(gè)跨模塊功能經(jīng)常要到第五六輪改一個(gè)點(diǎn)忘了另一個(gè)點(diǎn)。現(xiàn)在用地圖起步它從第一輪就知道整個(gè)項(xiàng)目的邊界在哪里哪些模塊之間有依賴(lài)關(guān)系改起來(lái)明顯更有章法。這種提升很難用 Token 數(shù)字來(lái)衡量但它才是這個(gè)工具真正值錢(qián)的地方。另外還有一點(diǎn)就是響應(yīng)速度。Token 少了模型處理速度自然快不少。以前大倉(cāng)庫(kù)里它讀一堆文件后思考的等待時(shí)間能讓人走神現(xiàn)在基本幾秒鐘就進(jìn)入狀態(tài)。從開(kāi)發(fā)體驗(yàn)的角度說(shuō)這個(gè)改善可能比省錢(qián)更讓人爽。5. 常見(jiàn)問(wèn)題與排查技巧實(shí)錄5.1 生成了地圖但 Claude Code 還是亂翻文件這應(yīng)該是裝完地圖之后最常遇到的問(wèn)題。原因基本就一個(gè)你沒(méi)告訴它“先讀地圖”。我把地圖文件丟在項(xiàng)目根目錄里不代表 Claude Code 會(huì)主動(dòng)去讀。你得在 CLAUDE.md 里寫(xiě)清楚或者每輪對(duì)話前顯式指定。最穩(wěn)的做法是兩個(gè)都做CLAUDE.md 里聲明地圖存在第一輪指令里明確“先讀地圖文件”。我自己就吃過(guò)這個(gè)虧——只生成了文件沒(méi)寫(xiě)配置結(jié)果 Claude Code 照樣自己翻目錄Token 一點(diǎn)沒(méi)少。如果已經(jīng)配置了 CLAUDE.md 還是不生效可以先看看地圖文件是否真的生成在項(xiàng)目根目錄文件名是否和 CLAUDE.md 里寫(xiě)的完全一致。少一個(gè)字母都可能導(dǎo)致它找不到。5.2 地圖文件太大讀一次還是很貴地圖生成出來(lái)有幾十萬(wàn) Token那就說(shuō)明忽略規(guī)則沒(méi)做對(duì)。最常見(jiàn)的是把整個(gè)項(xiàng)目目錄都掃進(jìn)去了包括 node_modules、dist、.next 這些重災(zāi)區(qū)。先用repomix --list-files看一下它到底包含了哪些文件再針對(duì)性地加--ignore。一般來(lái)說(shuō)排除掉測(cè)試目錄、構(gòu)建產(chǎn)物、示例代碼、遷移腳本之后地圖體積能縮到原來(lái)的十分之一甚至更少。還有一種情況是項(xiàng)目里混入了特別大的數(shù)據(jù)文件比如 JSON、SQL 導(dǎo)出文件、靜態(tài)資源。這些文件對(duì)模型理解代碼結(jié)構(gòu)沒(méi)有幫助但體積巨大一定要用.repomixignore或--ignore排除掉。別把它們寫(xiě)進(jìn)地圖模型不需要“看到”數(shù)據(jù)來(lái)理解邏輯。5.3 地圖里缺了關(guān)鍵源碼或者把敏感文件掃進(jìn)來(lái)了如果發(fā)現(xiàn)某個(gè)核心文件沒(méi)有出現(xiàn)在地圖里多半是它被某個(gè)忽略規(guī)則誤傷了。比如源碼目錄用了比較冷門(mén)的擴(kuò)展名默認(rèn)過(guò)濾規(guī)則可能不認(rèn)識(shí)。這時(shí)候用--include強(qiáng)制指定目錄比如--include src/** lib/**把核心代碼撈回來(lái)。反過(guò)來(lái)如果發(fā)現(xiàn).env、密鑰文件混進(jìn)了地圖問(wèn)題就嚴(yán)重了。這通常是項(xiàng)目里沒(méi)有 .gitignore 或 .repomixignore導(dǎo)致默認(rèn)規(guī)則漏掉了這些文件。我的建議是生成地圖后第一時(shí)間用文本編輯器搜索一下.env、password、secret、api_key這些關(guān)鍵詞確認(rèn)沒(méi)有敏感信息再把它交給 Claude Code。寧可地圖稍微大一點(diǎn)也不要冒泄露密鑰的風(fēng)險(xiǎn)。5.4 明明裝了 Claude Code卻一直提示登錄或 token 認(rèn)證失敗這個(gè)問(wèn)題和代碼地圖沒(méi)有直接關(guān)系但我在配置過(guò)程中經(jīng)常遇到順手說(shuō)一下?,F(xiàn)象往往是啟動(dòng)時(shí)報(bào)sign-in could not be completed或者token exchange failed、token endpoint returned status 403 forbidden之類(lèi)的錯(cuò)誤看起來(lái)像賬號(hào)出了問(wèn)題。我的排查順序是這樣的先確認(rèn)自己的賬號(hào)狀態(tài)是否正常是否已經(jīng)登錄然后退出登錄重新登一次清掉本地認(rèn)證緩存如果配置了ANTHROPIC_API_KEY環(huán)境變量檢查這個(gè) Key 是否過(guò)期、權(quán)限范圍是否正確。絕大多數(shù)情況下重新登錄或者換一個(gè)有效 API Key 就能解決。如果一直報(bào) 403 這類(lèi)錯(cuò)誤優(yōu)先檢查 API Key 權(quán)限和賬戶(hù)狀態(tài)而不是反復(fù)重試。另外在 VSCode 里配置 Claude Code 擴(kuò)展后出現(xiàn)類(lèi)似報(bào)錯(cuò)也可以先把擴(kuò)展退出在終端重新執(zhí)行登錄通常能繞過(guò)問(wèn)題。5.5 token 計(jì)數(shù)結(jié)果不一樣不知道信哪個(gè)Repomix 生成地圖時(shí)顯示的 Token 估算和你實(shí)際使用 Claude Code 時(shí)消耗的 Token 可能有出入。原因是不同模型、不同計(jì)數(shù)方式對(duì) token 的切分邏輯不一樣。比如同一段代碼按 GPT 的算法數(shù)可能是 1000 token按 Claude 的算法數(shù)可能是 1100 token。這很正常不需要糾結(jié)精確值把它當(dāng)作一個(gè)“量級(jí)參考”就好。真正決定你錢(qián)包的是模型服務(wù)商那邊的計(jì)費(fèi)口徑地圖文件只是一個(gè)輸入。6. 給新手的幾條實(shí)用建議如果你是第一次在自己的項(xiàng)目里給 Claude Code 配代碼地圖我建議先從一個(gè)小型項(xiàng)目入手跑一遍完整流程感受一下地圖文件長(zhǎng)什么樣、Claude Code 讀完之后能說(shuō)出多準(zhǔn)確的項(xiàng)目理解。別一上來(lái)就套到 monorepo 里調(diào)參數(shù)調(diào)到懷疑人生。等你熟悉了輸出格式和引用方式再逐步推進(jìn)到中大型項(xiàng)目。一個(gè)小建議是把地圖生成放進(jìn) pre-commit 鉤子里或者加一個(gè) package.json 的 script。代碼每天都在變地圖如果不更新Claude Code 拿到的全貌就是過(guò)期的。我們團(tuán)隊(duì)現(xiàn)在是每天第一次開(kāi)發(fā)前跑一次npm run map確保地圖文件跟得上代碼進(jìn)度。還有一點(diǎn)地圖文件生成出來(lái)后看一眼文件大小和 token 估算心里有個(gè)數(shù)。如果發(fā)現(xiàn)某個(gè)項(xiàng)目生成出來(lái)特別大別急著用先檢查忽略規(guī)則。地圖應(yīng)當(dāng)是“精裝修的戶(hù)型圖”不是把集裝箱拆了全堆上去。最后不是所有項(xiàng)目都需要代碼地圖。幾十個(gè)文件的玩具項(xiàng)目、純 Markdown 文檔倉(cāng)庫(kù)、臨時(shí)寫(xiě)個(gè)腳本的場(chǎng)景直接讓 Claude Code 自己讀就好多一道生成步驟反而是負(fù)擔(dān)。地圖真正發(fā)揮價(jià)值的地方是中大型工程尤其是那些“文件很多、改動(dòng)牽扯面廣”的項(xiàng)目。想清楚自己的場(chǎng)景再用別為了省 Token 而省 Token那反而本末倒置了。