DeepSeek Harness Hub
← 返回列表

仓库阅读地图he-yufeng/dsh-tool-reading-map

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

按优先级生成代码库地图,让智能体先读后改

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/15 · 已提供中文文档

DeepSeek Harness 的仓库阅读地图工具:在智能体编辑任何代码库之前,为其提供一份结构化、按优先级排序的代码库地图

综合分
29.8
GitHub 分
29.8
用户评分
★ Stars
0
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add he-yufeng/dsh-tool-reading-map
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-tools@deepseek-ai/dsh-util-values
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-tool-reading-map

一个用于 DeepSeek Harness(dsh)的 reading_map 工具插件。在 agent 编辑一个不熟悉的代码库之前,给它一份结构化的、按优先级排序的仓库地图,而不是让它逐个文件地摸索。

它做什么

一个面向模型的工具,reading_map:

- 按优先级排序的文件列表 —— 配置文件与入口文件优先,源代码先于文档,每个条目包含语言、角色(config / entrypoint / code / other)、行数、大小以及一段有长度限制的预览。配置文件和入口文件会完整保留。
- 诚实的覆盖情况说明 —— 每次运行都会报告存在多少候选文件、保留了多少、跳过了哪些目录,以及哪些文件因过大、二进制、压缩或超出文件数量上限而被丢弃。一份不完整的地图绝不会假装自己完整。
- 确定性 —— 扫描过程从不调用模型。它开销低、速度快,且重放时结果完全一致;当 agent 需要文字描述时,它会根据地图本身进行总结。

排序与跳过启发式规则移植自 RepoWiki 的扫描器,已在数千个仓库上经过实战检验。

安装

dsh plugin --profile  add github:he-yufeng/dsh-tool-reading-map

或从 npm 安装(发布后):

dsh plugin --profile  add dsh-tool-reading-map

启动该 profile 后,该工具会以内置工具之外的 reading_map 形式出现。

工具参考

| 参数 | 类型 | 必填 | 默认值 | 含义 |
|---|---|---|---|---|
| path | string | 是 | — | 要扫描的仓库根目录的绝对路径。 |
| max_files | number | 否 | 60 | 按优先级排序后保留的文件数(config > entrypoint > code > other)。 |
| preview_lines | number | 否 | 30 | 每个非配置、非入口文件保留的预览行数。 |
| max_file_size | number | 否 | 204800 | 单文件大小上限(字节);更大的文件会被计为过大并跳过。 |

结果是一个规范的 JSON 值:{ root, coverage: { candidates, kept, skippedDirs, oversizedCount, oversized, binaryCount, minifiedCount, priorityDropped }, files: [...] },因此它可以与 PTC 模式及其他工具链干净地组合。

哪些内容会被跳过,一张表说明:

| 跳过项 | 检测方式 |
|---|---|
| 依赖 / 构建目录 | node_modules、dist、build、vendor、.venv、target、各类缓存等(参见 src/scanner.ts 中的 SKIP_DIRS) |
| 资源与锁文件/二进制扩展名 | 图片、媒体、归档、字体、编译产物、.map、.min.js、.lock |
| 过大的文件 | 大于 max_file_size(会计数,并列出前三个的名称) |
| 二进制文件 | 前 8 KiB 内出现 NUL 字节 |
| 压缩后的源代码 | 单行超过 1000 个字符,或非空行 ≤5 行且最长行极长 |
| .gitignore 路径 | 根目录 .gitignore 的 glob 模式(按设计不支持否定模式) |

实际输出(针对 RepoWiki 仓库运行)

/path/to/RepoWiki 的阅读地图:保留了 60/78 个候选文件,跳过了 15 个目录,按优先级丢弃了 12 个。
- [config] .env.example (text, 14 lines)
- [config] frontend/package.json (json, 33 lines)
- [config] frontend/tsconfig.json (json, 22 lines)
- [config] frontend/vite.config.ts (typescript, 20 lines)
- [config] pyproject.toml (toml, 81 lines)
- [config] README.md (markdown, 181 lines)
- [config] src/repowiki/config.py (python, 94 lines)
- [entrypoint] src/repowiki/__main__.py (python, 6 lines)
- [entrypoint] src/repowiki/server/app.py (python, 158 lines)
- [code] frontend/src/App.tsx (tsx, 19 lines)
- [code] frontend/src/components/MermaidDiagram.tsx (tsx, 50 lines)
- [code] frontend/src/components/SettingsModal.tsx (tsx, 79 lines)
… 以及结构化结果中的另外 48 个。

本次运行中跳过的内容(如实说明):.git、.venv、dist、frontend/node_modules、每个 __pycache__,以及因超出上限而丢弃的 12 个较低优先级文件——全部都在 coverage 中列出,绝不会无声缺失。

开发
sh
npm install
npm run build     # tsc -> lib/
npm test          # vitest

目录结构:

src/
index.ts    # plugin entry: name / inject / apply
tool.ts     # reading_map tool definition
scanner.ts  # the walk, ranking, skip rules, and coverage accounting
test/
scanner.test.ts

在开发期间,通过补丁覆盖层(绝对路径)从检出目录加载它:
yaml
- insert:
- id: reading-map
name: /absolute/path/to/dsh-tool-reading-map/lib/index.js

pnpm dsh web --patch ./cordis.dev.yml

许可证

MIT

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群