前言¶
在 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。