前言¶
在 DeepSeek Harness(DSH)裏處理陌生倉庫時,上下文窗口往往裝不下整庫文件,智能體又需要先知道「有哪些源文件、頂層符號大致在哪」。把整庫打包進上下文成本高,上語言服務器做精確跳轉又偏重。dsh-repo-map 走中間路線:用正則啓發式掃描源碼,輸出一份緊湊的倉庫地圖,供 DSH 做上下文定向;需要精確導航時可配合 dsh-code-intel,需要完整內容時可配合 dsh-repomix。
這是什麼¶
dsh-repo-map 是社區插件 lengrufeng2008/dsh-repo-map(維護者 lengrufeng2008),在 SkillHub 目錄中歸類爲「記憶」。項目自述爲:基於正則的緊湊倉庫地圖,列出源文件與頂層符號,用於 DSH 的上下文定向;不依賴 LSP,不做類型解析與調用圖。許可證 MIT,當前版本 0.1.0,要求 Node.js >= 20。
核心功能¶
根據 README 與 package.json 描述,插件能力可概括爲:
- 生成倉庫地圖:對指定目錄掃描,產出源文件列表及頂層符號(類、函數等,依語言啓發式而定)。
- CLI 獨立運行:提供
dsh-repo-map命令行入口(bin/dsh-repo-map.mjs),可在 DSH 外本地生成地圖。 - DSH 內調用:在 Harness 中通過自然語言指示使用
repo_map處理當前倉庫(見下文示例)。 - 可選導出 JSON:命令行支持
--json與--output,便於腳本或二次消費。
明確不包含的能力(README「Limits」):
- 非語法級解析器,僅爲正則啓發式,可能有漏檢或誤匹配。
- 僅頂層符號,不含方法級細節、調用圖、引用關係或類型信息。
- 不進行網絡請求。
安裝與啓用¶
DSH 採用「一切皆插件」的擴展方式;SkillHub(skillhub.cn)是社區插件目錄,與 DeepSeek / 幻方無官方從屬關係。該插件在目錄頁標註爲可安裝,版本 v0.1.0。
在 SkillHub 插件頁「發送給 DeepSeek Harness 安裝」流程中,向 Harness 說明安裝 lengrufeng2008/dsh-repo-map 即可;Harness 會讀取後端安裝計劃後執行安裝。安裝前建議自行查看 GitHub 倉庫 源碼與 MIT 許可證。插件在 DSH 進程權限下運行,安裝前應確認你信任該來源。
若僅需本地 CLI(不經過 DSH 插件包),可在克隆或下載倉庫後於項目根目錄用 Node 20+ 執行 README 中的命令(見下一節)。
典型用法¶
命令行¶
在倉庫根目錄執行(路徑 . 表示當前目錄):
node bin/dsh-repo-map.mjs . --json --output map.json
限制掃描文件數量示例:
node bin/dsh-repo-map.mjs . --max-files 300
第一條命令將地圖以 JSON 寫入 map.json;第二條在文件過多時控制上限,避免地圖過大。
在 DSH 中使用¶
README 給出的 Harness 側提示示例:
Use repo_map on this repository.
可在對話中改用中文等價表述,核心是請求對當前倉庫生成並使用 repo map 做定向,而非拉取全庫或啓動 code intel。
開發與測試¶
維護者提供的測試命令:
npm test
對應 package.json 中 node --test test/*.test.mjs。
適用場景與注意¶
適合:快速熟悉中等規模倉庫的文件佈局與頂層符號;在 DSH 對話開始前或並行步驟中注入輕量結構信息;離線、無 LSP 環境。
不適合:需要跳轉到定義、查引用、類型推斷或調用鏈分析時,應使用 dsh-code-intel;需要把大量源文件原文塞進上下文時,應使用 dsh-repomix。
注意:地圖質量取決於正則規則與各語言寫法,不能替代編譯器或 LSP 的語義理解。插件與 CLI 均在本地運行、無網絡,但 DSH 插件安裝後仍隨 Harness 進程權限訪問工作區文件,請僅安裝你審查過的插件。
結尾¶
dsh-repo-map 用正則生成緊湊的源文件與頂層符號地圖,幫助 DSH 在不全文加載倉庫的情況下建立方向感。詳情與源碼見 GitHub:lengrufeng2008/dsh-repo-map;安裝與分類信息見 SkillHub 目錄頁:skillhub.cn/plugins/lengrufeng2008/dsh-repo-map。