🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

规则透镜 jackeyunjie/dsh-rule-lens

DeepSeek Harness
jackeyunjie49 天前有提交已提供中文文档扫描:含敏感能力

可视化规则加载与预算,硬拦截违规写入

30.7/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/18 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add jackeyunjie/dsh-rule-lens
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么[目录]—
dsh 原生插件 · security
暂无时间戳·判据 →
装得上吗[实装验证]!
实装验证未通过(dependency_conflict),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
数据截至 2026/11/02·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 49 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

⚠︎ 实装验证未通过(dependency_conflict · 2026/11/2) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
安装兼容性检查⚠ 装前注意

未发布到 npm registry,仅可从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包dsh-rule-lens(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=22 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/12 15:06:20

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件
查看扫描证据(共 18 处,展示前 17 条)
  • 写入本地文件
    lib/index.js:315
    mkdirSync(join(rt.dshHome, 'rule-lens'), { recursive: true })
  • 写入本地文件
    lib/index.js:316
    appendFileSync(join(rt.dshHome, 'rule-lens', 'boot.log'), JSON.stringify({ ts: new Date().toISOString(), ...record }) + '\n')
  • 读取本地文件
    lib/rules.js:75
    return (await stat(path)).isFile()
  • 读取本地文件
    lib/rules.js:83
    return (await stat(path)).isDirectory()
  • 读取本地文件
    lib/rules.js:100
    names = await readdir(dir)
  • 读取本地文件
    lib/rules.js:110
    const info = await stat(path)
  • 读取本地文件
    lib/rules.js:112
    const content = await readFile(path, 'utf8')
  • 读取本地文件
    lib/rules.js:164
    const content = await readFile(l1, 'utf8')
  • 读取本地文件
    lib/guard.js:120
    exists = (await stat(abs)).isFile()
  • 写入本地文件
    lib/log.js:26
    await mkdir(dir, { recursive: true })
  • 写入本地文件
    lib/log.js:33
    await appendFile(path, JSON.stringify(record) + '\n', 'utf8')
  • 读取本地文件
    lib/log.js:63
    text = await readFile(path, 'utf8')
  • 读取本地文件
    lib/store.js:32
    const parsed = JSON.parse(readFileSync(path, 'utf8'))
  • 写入本地文件
    lib/store.js:45
    await mkdir(dirname(path), { recursive: true })
  • 写入本地文件
    lib/store.js:47
    await writeFile(tmp, JSON.stringify(data, null, 2) + '\n', 'utf8')
  • 写入本地文件
    lib/store.js:48
    await rename(tmp, path)
  • 读取本地文件
    lib/panel.js:221
    content = await readFile(path, 'utf8')
扫描于 2026/11/4(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-home-paths@deepseek-ai/dsh-llm@deepseek-ai/dsh-settings@deepseek-ai/schemastery
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 规则加载可视化
  • 预算治理
  • 硬拦截违规写入

规则透镜(RuleScope Lens)— DSH 本地插件:可视化 AGENTS.md/rules 加载、治理预算、硬拦截、Lint、遵守率 | 为 DeepSeek Harness 提供规则可见性、预算治理与硬性防护

README

由 DeepSeek 最新模型翻译生成
dsh-rule-lens · 规则透镜 RuleScope 家族内核插件 · Every rule, in scope. · 让每条规则看得见、管得住、可审计 规则透镜面板:预算条 + 每个规则位置一行状态标记 + L5 预热开关 DeepSeek Harness(dsh 0.1.0-rc.6)本地插件:把分散在各层的规则文件看得清、管得住、可审计。 - 分层规则发现与注入:~/.agents/AGENTS.md、~/.agents/rules/、/.agents/rules/ 启动即注入;/rules/ 在该目录第一次被 read/write/edit 触达后按需注入(每目录每会话一次)。 - 写回防护:拦截对工作区内既有 .md 文件的全文覆写,引导模型改用 edit 定向修改。 - FORBID 硬规则:规则文件里写 FORBID: (如 FORBID: write .env)即成为硬拦截。 - 规则 Lint:超长 / 无禁令词 / 像教程 / 内容重复,四项体检。 - 注入日志 + 遵守率:~/.dsh/rule-lens/log.jsonl 与 compliance.jsonl,面板可导出。 - 面板:web profile 下访问 http://127.0.0.1:3080/rule-lens。
展开完整文档(README 剩余 1 节)
dsh-rule-lens · 规则透镜

RuleScope 家族内核插件 · Every rule, in scope. · 让每条规则看得见、管得住、可审计

规则透镜面板:预算条 + 每个规则位置一行状态标记 + L5 预热开关

DeepSeek Harness(dsh 0.1.0-rc.6)本地插件:把分散在各层的规则文件看得清、管得住、可审计。

- 分层规则发现与注入:~/.agents/AGENTS.md、~/.agents/rules/、/.agents/rules/ 启动即注入;/rules/ 在该目录第一次被 read/write/edit 触达后按需注入(每目录每会话一次)。
- 写回防护:拦截对工作区内既有 .md 文件的全文覆写,引导模型改用 edit 定向修改。
- FORBID 硬规则:规则文件里写 FORBID: (如 FORBID: write .env)即成为硬拦截。
- 规则 Lint:超长 / 无禁令词 / 像教程 / 内容重复,四项体检。
- 注入日志 + 遵守率:~/.dsh/rule-lens/log.jsonl 与 compliance.jsonl,面板可导出。
- 面板:web profile 下访问 http://127.0.0.1:3080/rule-lens。

零构建、纯 ESM、零运行时三方依赖(仅 @deepseek-ai/ peer 与 Node 内置模块)。

目录结构与责任边界

| 层 | 位置 | 责任方 | 生效时机 |
| 官方 | ~/.dsh/AGENTS.md、/AGENTS.md、/AGENTS.md | dsh-agent-instructions | 官方机制(本插件只读取状态用于面板展示,不重复注入) |
| L1 | ~/.agents/AGENTS.md | 插件 | 会话启动 |
| L2 | ~/.agents/rules/.md | 插件 | 会话启动 |
| 白名单 | ~/.cursor/rules/、/.cursor/rules/(以配置为准) | 插件 | 会话启动 |
| L4 | /.agents/rules/.md | 插件 | 会话启动 |
| L5 | /rules/.md | 插件 | 子目录首次被触达后 / 预热开启时启动注入 |

- 多文件按数字前缀排序(00-.md 先于 01-.md);窄覆盖宽,注入顺序 L1→L2→L4→L5。
- 预算默认 64KB:超限时从作用域最宽的文件开始淘汰(L1 先淘汰),淘汰会写日志并在面板告警(不静默丢弃)。

安装(本地开发挂载)

cd dsh-rule-lens
npm install # 安装 @deepseek-ai/ devDependencies,link 挂载时供 Node 解析 peer

挂载到 web profile(pnpm link 协议)
dsh plugin --profile web add link:"$PWD"

验证行已注入配置树
dsh --profile web --dump-config | grep -A3 rule-lens

之后正常启动 dsh --profile web(或 dsh web),打开面板 http://127.0.0.1:3080/rule-lens。

也可以用 overlay 方式临时挂载(--patch 时插件路径必须绝对路径):

/abs/path/to/overlay.patch.yml
- insert:
- id: rule-lens
name: 'link:///abs/path/to/dsh-rule-lens'

dsh --profile web --patch /abs/path/to/overlay.patch.yml

配置

权威存储双轨(详见 lib/store.js 头部注释):

- 全局开关 → ~/.dsh/settings.yaml 的 rule-lens 节(面板或手改 YAML 均可): rule-lens: writeGuard: true # 写回防护开关 budgetBytes: 65536 # 注入预算(字节)
whitelistDirs: ['.cursor'] # 白名单目录

- 工作区状态(L5 预热目录列表)→ ~/.dsh/rule-lens.json。

两类配置重启自动读取。

FORBID 硬规则写法

在任何被加载的规则文件(含官方 AGENTS.md)里写一行:

FORBID: write .env
FORBID: /secrets/
FORBID: bash rm -rf

- 工具名 glob 匹配 exec.name(write、bash、run_code…)
- 路径 glob 同时匹配:原始参数、解析后的绝对路径、工作区相对路径、~ 折叠路径
- 不跨 /, 跨 /;路径写 表示该工具一律禁止

文件说明

lib/index.js 宿主入口 apply(ctx):通道接线、会话状态、settings 双轨、面板挂载 lib/rules.js 发现 / 分层 / 数字前缀排序 / 64KB 预算淘汰 / system-reminder 拼接 lib/guard.js 写回防护 + FORBID 硬规则(tools/pre-execute,prepend 首位) lib/lint.js 规则 Lint 四项检查 lib/log.js log.jsonl / compliance.jsonl 追加与尾部读取 lib/store.js rule-lens.json(按工作区的预热目录列表) lib/panel.js /rule-lens 面板页与 JSON API

手动测试清单

1. echo "FORBID: write *.env" > ~/.agents/rules/00-test.md,开会话让模型写 .env → 应被 deny
2. 让模型 write 一个已存在的 .md → 应被 deny 且理由以「若确实需要全文重写,请先向用户说明理由并取得同意」结尾
3. mkdir -p src/foo/rules && echo "不要用 var" > src/foo/rules/00-style.md,让模型读 src/foo/x.js → 下一步应看到 L5 注入
4. 面板 /rule-lens:各层状态、预算条、Lint、遵守率、预热开关、日志下载逐项点一遍
预览分享卡片长什么样 ↓jackeyunjie/dsh-rule-lens
分享 · DeepSeek Harness Hub
jackeyunjie/dsh-rule-lens

可视化规则加载与预算,硬拦截违规写入

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部