扫描仓库找出不该喂给 AI 的噪音文件并生成忽略清单
30.7/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/28 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add WJDdidi-1/ai-context-doctor该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · tool
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 8 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件
查看扫描证据(共 10 处,展示前 10 条)
- 读取本地文件bin/ai-context-doctor.js:94
stats = fs.statSync(dir); - 读取本地文件bin/ai-context-doctor.js:95
fs.accessSync(dir, fs.constants.R_OK); - 读取本地文件bin/ai-context-doctor.js:131
return parseRules(fs.readFileSync(path.join(cwd, '.aiignore'), 'utf8')); - 读取本地文件lib/scan.js:153
children = fs.readdirSync(dir, { withFileTypes: true }); - 读取本地文件lib/scan.js:174
stats = fs.statSync(absolutePath); - 读取本地文件lib/aiignore.js:75
stats = fs.lstatSync(aiignorePath); - 读取本地文件lib/aiignore.js:90
existing = fs.readFileSync(aiignorePath, 'utf8'); - 写入本地文件lib/aiignore.js:98
fs.writeFileSync(aiignorePath, renderAiignore({ existing, added, created }), 'utf8'); - 读取本地文件lib/policy.js:19
const raw = JSON.parse(fs.readFileSync(path.join(cwd, POLICY_FILE), 'utf8')); - 写入本地文件lib/policy.js:35
fs.writeFileSync(
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
找出 AI 编码智能体不该读的文件,再把仓库发给它。
README
由 DeepSeek 最新模型翻译生成AI Context Doctor
English README
AI 编程助手会一个文件一个文件地读你的仓库。其中有些文件其实没用——构建产物、日志、lockfile、一个 40 MB 的数据文件。这个工具几秒钟就能把它们找出来,告诉你哪些该挡在 AI 之外。
npx ai-context-doctor
不用安装、不用登录、不需要 API key、不上传任何东西。它只看文件名和大小。
跑起来是什么样
下面是本项目自带的 demo 仓库的真实输出:
AI Context Doctor
Repo: demo-ai-context-noise-repo
Scanned: 8 files, 1.50 MB
AI Context Health: 22/100
Status: Too much noise for an AI coding agent
Context noise estimate:
78% likely noise
22% likely useful source context
Top context waste:
1. data/export.json 1.00 MB large file
2. dist/ 106.9 KB generated build output
3. package-lock.json 35.2 KB lockfile
展开完整文档(README 剩余 1 节)
AI Context Doctor
English README
AI 编程助手会一个文件一个文件地读你的仓库。其中有些文件其实没用——构建产物、日志、lockfile、一个 40 MB 的数据文件。这个工具几秒钟就能把它们找出来,告诉你哪些该挡在 AI 之外。
npx ai-context-doctor
不用安装、不用登录、不需要 API key、不上传任何东西。它只看文件名和大小。
跑起来是什么样
下面是本项目自带的 demo 仓库的真实输出:
AI Context Doctor
Repo: demo-ai-context-noise-repo
Scanned: 8 files, 1.50 MB
AI Context Health: 22/100
Status: Too much noise for an AI coding agent
Context noise estimate:
78% likely noise
22% likely useful source context
Top context waste:
1. data/export.json 1.00 MB large file
2. dist/ 106.9 KB generated build output
3. package-lock.json 35.2 KB lockfile
4. logs/dev.log 18.4 KB local log file
5. coverage/ 16.7 KB test coverage output
Review before sharing:
- .env.example environment template (usually safe to share)
- scripts/deploy.sh deployment script
Suggested .aiignore:
coverage/
dist/
.log
package-lock.json
Next step:
Run this before asking your coding agent to inspect a larger repo.
输出正文目前是英文,命令行参数也一样;本文件解释每一行是什么意思。
这份报告怎么读
| 这一行 | 意思 |
| Scanned: 8 files, 1.50 MB | 实际扫了多少内容。.git/ 和 node_modules/ 不扫。 |
| AI Context Health: 22/100 | 100 减去「命中了噪音规则的文件」占的体积比例。22 分表示 AI 要读的东西里大部分是噪音。 |
| Status: | 把分数翻译成一句话:85 分以上干净,60–84 有噪音,60 分以下噪音太多。 |
| Top context waste | 体积最大的五个噪音来源,以及各自被标出来的原因。 |
| Review before sharing | 看起来像凭证或部署脚本的文件。工具没有说它们一定是密钥,只是提醒你:把这个仓库贴进聊天窗口之前先看一眼。 |
| Suggested .aiignore | 可以直接复制进忽略文件的行。工具不会替你写。 |
拿它能干什么
- 在让 AI 读一个大仓库之前:先跑一遍,把建议的行贴进 .aiignore(或你所用助手的忽略配置),再跑一遍,看分数有没有变高。
- 刚 clone 下一个项目时:先看看里面有多少是自动生成的产物,免得 AI 一上来就读这些。
- CI 里:用 --json 拿到稳定的结构化结果,上下文健康度掉下去就让构建失败。
- 自己的工具里:require('ai-context-doctor') 可以直接调用同一套扫描。
- 在 DeepSeek Harness 里:装上 dsh-aiignore,会话打开工作区时会自动提醒 AI 哪些文件会浪费上下文,你不用记着去跑任何东西。
安装
零安装直接跑:
npx ai-context-doctor
或者装一次:
npm install -g ai-context-doctor
需要 Node.js 18 或更新版本。
用法
ai-context-doctor # 扫描当前目录 ai-context-doctor ../some-repo # 扫描另一个仓库 ai-context-doctor --json # 机器可读输出 ai-context-doctor --help ai-context-doctor --version
JSON 输出
npx ai-context-doctor ./some-repo --json
返回 repo、healthScore、status、noisePercent、usefulPercent、scannedBytes、scannedFiles、topNoise、review、suggestedAiignore;触发扫描上限时还会带 truncated: true。
如果传入的路径不是可读目录,--json 只会输出一个 JSON 对象(不会先打印横幅),并以退出码 1 结束,CI 可以直接解析失败原因:
{
"error": "not-a-readable-directory",
"message": "/path/you/passed is not a readable directory.",
"target": "/path/you/passed"
}
在代码里调用
const { scanRepository } = require('ai-context-doctor');
const report = scanRepository(process.cwd());
console.log(report.healthScore, report.topNoise);
scanRepository(root, { maxFiles, maxBytes }) 是同步的,没有任何依赖。传上限可以低成本扫超大目录,此时报告会带 truncated: true。
DeepSeek Harness 插件
dsh-aiignore 把同一套扫描封装成 Host 插件:会话打开工作区时,AI 会收到一条简短提示,说明哪些文件会浪费它的上下文;工作区干净时它什么都不说。
dsh plugin --profile web add dsh-aiignore
它声明了 engines.dsh: ">=0.2.0",Harness 会在安装前检查这个范围。源码、配置项与限制见 plugin/README.md。
什么算噪音
- 目录:dist/、build/、coverage/、.next/、.turbo/
- Lockfile:package-lock.json、pnpm-lock.yaml、yarn.lock
- 日志:.log
- 大文件:超过 1 MB、且没有被更具体的规则命中的单个文件
- 需要检查:看起来像凭证的文件名(.env、secrets.env、credentials.json、.pem、.key)以及路径里带 deploy 的文件。.env.example 会被识别成模板,标记为通常可以分享。
- 不遍历:.git/、node_modules/、.venv/、venv/、__pycache__/、vendor/
它不做什么
- 不调用任何 AI 服务,不需要 API key,不上传文件。
- 不修改你的仓库——不会写 .aiignore,也不会写别的文件。
- 不是 gitignore 检查器:它看的是「AI 会读到什么」,不是「git 跟踪什么」,所以被 git 忽略的文件照样会出现。
- 不是密钥扫描器。Review 列表基于文件名,没有扩展名的 id_rsa、粘在 config.js 里的密钥都会漏掉。
- 不统计 token,也不解析代码。分数是体积启发式:可以当真信号,不能当测量结果。
- 没有配置文件。上限只能通过 API 和 Harness 插件设置。
为什么建议 .aiignore 而不是 .gitignore
因为这是两个不同的问题。dist/ 在大多数项目里都被 git 忽略了,但一个不看 git 规则的助手照样会去读它。这个工具报告的是「AI 会读进去多少字节」,跟 git 怎么想无关。
隐私
全部在本地运行。工具只读取目录项和文件大小,不读文件内容,不建立网络连接,不存储任何东西。唯一会发到外面的数据,是你用 npm 安装它时 npm 自己发的。
开发
git clone https://github.com/WJDdidi-1/ai-context-doctor.git
cd ai-context-doctor
npm test # 单元测试与 CLI 测试
node bin/ai-context-doctor.js ./demo-ai-context-noise-repo
demo-ai-context-noise-repo/ 是一个故意做得很乱的仓库,随源码分发(不在 npm 包里),方便你直接试输出效果。
维护者:发布前看发布 checklist。发布在 CI 里通过 npm trusted publishing 完成,推 v tag 即触发,prepublishOnly 会先跑测试,坏包发不出去。
后续计划
- 未知参数给出明确报错,而不是当成目录名。
- 根据真实用户反馈改进噪音规则。
- 可选的 --fix:写出建议的忽略条目,但要你先看过 diff 再决定。
许可证
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
WJDdidi-1/ai-context-doctor
扫描仓库找出不该喂给 AI 的噪音文件并生成忽略清单
相关插件 · 工具 / 效率
破甲管控台kingcharleslzy-ai/dsh-purge
dsh-purge Community · DeepSeek Harness 社区维护版:宿主兼容、状态诊断、提示词管理、更新与本机备份回滚。基于小杨 / YuJunZhiXue 的 dsh-purge。
★ 4,330已汉化DeepSeek 客户端
74.5
网文长卷lingfengQAQ/webnovel-writer
基于 Claude Code 的长篇网文辅助创作系统,解决 AI 写作中的「遗忘」和「幻觉」问题,支持 200…
★ 7,826已汉化DSH
72.2
花束设计alchaincyf/huashu-design
一句话生成网页、原型、PPT 与信息图等可交付设计
★ 28,638已汉化DSH
71.7
多智能体协作HKUDS/AutoSwarm
AutoSwarm: Unify Your Agents. Unify Your Context (Codex · Claude Code · DeepSeek Harness · Muse · Grok · WorkBuddy· nanobot · and more)
★ 2,349已汉化DSH
71.6
Vox 拼贴视频生成Alisa0808/vox-director
🎬 Vox Director拼贴动效导演
★ 2,129已汉化DSH
71.4
Agent 演化引擎Q00/ouroboros
智能体 OS:智能体自己变聪明,我们只守住底线:面试准入、分阶段评估、带预算的进化循环。MCP 服务器,14 种运行时:Claude Code、Codex CLI、Gemini CLI、OpenCode、Copilot、Kiro 等。
★ 6,311已汉化DSH
71.4
这是你的仓库?认领条目