智能体会去改那些本不该手动编辑的文件。它们会把版本号直接打进 pnpm-lock.yaml,修掉 user.pb.go…
32.2/100
综合分
3
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/25 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add acus9345/dsh-protect-generated-files该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · security
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 7 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(unknown · 2026/10/29) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh@deepseek-ai/dsh-agent@deepseek-ai/dsh-fs@deepseek-ai/dsh-llm@deepseek-ai/dsh-session@deepseek-ai/dsh-tools@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
DeepSeek Harness 插件,阻止智能体手动改锁文件和生成代码,并告诉它该怎么重新生成。
README
由 DeepSeek 最新模型翻译生成dsh-protect-generated-files
智能体会去改那些本不该手动编辑的文件。它们会把版本号直接打进 pnpm-lock.yaml,修掉 user.pb.go 里的错别字,或者「纠正」Prisma 生成客户端里的类型。改完看着没问题,直到下一次 pnpm install 或 protoc 跑起来把它冲掉;更糟的是,锁文件和 package.json 对不上,你得花一下午才能理清。
这个 DeepSeek Harness 插件会拒绝针对生成文件和锁文件的 write、edit 调用,也会拒绝用 shell 原地改它们(sed -i、perl -pi、> file、tee file)。
展开完整文档(README 剩余 1 节)
dsh-protect-generated-files 智能体会去改那些本不该手动编辑的文件。它们会把版本号直接打进 pnpm-lock.yaml,修掉 user.pb.go 里的错别字,或者「纠正」Prisma 生成客户端里的类型。改完看着没问题,直到下一次 pnpm install 或 protoc 跑起来把它冲掉;更糟的是,锁文件和 package.json 对不上,你得花一下午才能理清。 这个 DeepSeek Harness 插件会拒绝针对生成文件和锁文件的 write、edit 调用,也会拒绝用 shell 原地改它们(sed -i、perl -pi、> file、tee file)。它不会只回一句「不行」,而是告诉模型这个文件该怎么改: dsh-protect-generated-files blocked this edit to db/query.sql.go: its header says it is generated (// Code generated by sqlc. DO NOT EDIT.). A hand edit will be overwritten the next time it is regenerated, or leave it out of sync with its source. Instead: edit the SQL queries/schema and run sqlc generate. 安装 dsh plugin --profile web add dsh-protect-generated-files 这里用的是 web 配置档,也就是你用 dsh web 启动的浏览器界面。如果你用别的方式跑 DSH,就换成 headless(脚本和 CI)或 acp(编辑器集成)。每个配置档各管一份插件列表,所以你用到的每个配置档都要加一遍。装完立刻生效。卸载用 dsh plugin --profile web remove dsh-protect-generated-files。 从克隆仓库安装 想试本地改动,就打个 tarball 再装: git clone https://github.com/acus9345/dsh-protect-generated-files cd dsh-protect-generated-files npm install npm pack dsh plugin --profile web add ./dsh-protect-generated-files-0.2.0.tgz 它怎么判断一个文件是生成的 有三种方式会把文件标记出来。 锁文件,按文件名识别。 package-lock.json、pnpm-lock.yaml、yarn.lock、bun.lock(b)、deno.lock、Cargo.lock、go.sum、poetry.lock、uv.lock、pdm.lock、Pipfile.lock、Gemfile.lock、composer.lock、mix.lock、pubspec.lock、Podfile.lock、flake.lock、gradle.lockfile、packages.lock.json、conan.lock。每一种都配了对应包管理器的正确命令,比如「用 cargo add / cargo update -p <crate> 改依赖」。 已知的输出路径。 Protobuf 输出(.pb.go、_pb2.py……)、Dart build_runner 输出、.Designer.cs、压缩文件和 source map,以及 node_modules/、__generated__/、.venv/、site-packages/ 里的任何东西。构建输出目录(dist/、target/、.next/、vendor/ 等)只有在紧挨着 package.json、Cargo.toml、go.mod 这类项目清单文件时才算数,所以碰巧叫 target 的源码目录不会被误伤。 文件头会说明一切。 它读取文件前 15 行,查找 Code generated ... DO NOT EDIT、@generated、DO NOT EDIT、auto-generated、This file was generated、<auto-generated>,或者 Generated by <tool> 注释。如果文件头说这个文件可以编辑(「edit freely」「safe to edit」),或者是有条件的 DO NOT EDIT without ...,那就不算。当文件头提到它认识的工具时,提示里也会点名那个工具:protoc/buf、Prisma、GraphQL Codegen、OpenAPI generators、sqlc、go generate、Drizzle、Alembic 等等。「Generated by hand」和「generated by ChatGPT」不算。 文件头检查只对已经存在的文件生效。文件名和路径规则也覆盖新文件,因为从零手写一个 lockfile 同样是错的。 在 Windows 上,DSH 通过 PowerShell 执行命令,所以它还会盯着 Set-Content、Add-Content、Out-File 和 Tee-Object。 什么时候手动编辑是对的 这种情况确实存在:解决 lockfile 的合并冲突,或者上游还没修,先在 vendored 代码里打个一行的热修复。模型会被告知可以重复一次完全相同的调用以确认,这次会放行。如果你想自己批准这些操作,用 mode: ask。如果某个目录看起来像生成的,但其实是手工维护的,把它加进 ignore。 设置 最简单的办法:打开 DSH 侧边栏里的 Plugins,点击 dsh-protect-generated-files,改你要改的,然后按 Save。它会在下一次工具调用时生效,不用重启。 或者往 ~/.dsh/profiles/<profile>/cordis.patch.yml 里加一行这样的配置,想对所有配置档生效就加到 ~/.dsh/cordis.patch.yml。没写的键保持默认值。 - id: protect-generated-files config: mode: deny # or ask for an approval prompt extraGlobs: # your own generated paths, each with the hint the model gets 'src/api/client/': 'edit openapi.yaml and run npm run gen:api' ignore: ['vendor/'] # never treat these as generated defaultGlobs: true # false: only lockfiles, headers and extraGlobs headerLines: 15 guardShell: true # also watch sed -i / perl -pi / > / tee allowIdenticalRetry: true # false: a refusal is final shellTools: [bash, pwsh] # pwsh is the shell DSH uses on Windows extraGlobs 是最值得设置的。告诉模型哪个脚本能重新生成你的代码,它就不用猜了。 开发 npm install npm test # detector unit tests npm run test:e2e # real dsh runs against a scripted local model, no API key needed 安装测试会运行 dsh plugin add,这需要 pnpm 在你的 PATH 里。 MIT 协议。作者 acus9345。欢迎在 issues 里提 bug 和想法。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
acus9345/dsh-protect-generated-files
智能体会去改那些本不该手动编辑的文件。它们会把版本号直接打进 pnpm-lock.yaml,修掉 user.pb.go…
相关插件 · 安全 / 权限
智能体逆向工程morluto/rea
用智能体逆向工程任何东西,从应用行为到原生二进制。
★ 415,267已汉化DSH
73.3
智能体集群框架ruvnet/ruflo
面向 Claude Code 与 Codex 的智能体元基座meta-harness。
★ 80,414已汉化MCP
71.9
WorkBuddy 模型接入corrinehu/dsh-workbuddy-connect
2026 年 10 月 20 日起,WorkBuddy…
★ 1,604已汉化DSH
71.7
破甲一键通z91772524-ai/pojia-next
十五个 AI…
★ 967已汉化DSH
71.6
AI 代理虚拟终端strukto-ai/mirage
Mirage 是给 AI 智能体用的虚拟终端:一层 shell,统管数据、命令行和运行时。Unix…
★ 3,756已汉化DSH
70.8
Agent 操作层agentic-os-org/ANOLISA
ANOLISA(Agentic Nexus Operating Layer & Interface System Architecture)|智能体操作系统,带运行时、安全、可观测性,以及 Tokenless 响应压缩,降低 token 用量与成本。
★ 649已汉化DSH
70.7