DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

youchen-yc /

youchen-yc/dsh-security-judge

Verified

代码安全防御规则评审判官:自动识别做代码的会话,按《代码安全防御架构规则》强制评审并门禁,需要 1/2/多种架构推荐与冲突检查,发布含 SBOM 与签名。

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@f3f74cbc

代码安全防御规则评审判官(dsh-security-judge)

审核正在写代码的会话有没有按《代码安全防御架构规则》v1.0(强制性规则)做代码安全防御、 加入了哪些代码安全防御架构、这些架构之间会不会冲突;用户授权后,未通过评审的代码任务不能算完成。

它做什么

  1. 自动识别所有活跃会话,判断哪些会话正在做代码(写入/编辑代码文件、构建/测试命令、项目特征), 非代码会话不评审。
  2. 推荐代码安全防御架构:按技术栈(Android / 服务端 / Web / 桌面 / IoT / AI)与项目特征, 给出这个程序需要几种核心架构(1 种 / 2 种 / 多种)、分别属于哪个层面、为什么需要。
  3. 检查架构冲突:对推荐架构、会话声明的架构、代码里实际出现的反模式做两两冲突检查 (硬冲突 / 重叠 / 张力),每条都带处理建议;未登记处理结论会阻断评审。
  4. 规则评审:按 A–J 十组 72 条规则(L1 强制 54 条、L2 基线 12 条、L3 建议 6 条)评审:
    • 代码类规则用自动检查扫描本会话写入/编辑过的代码文本,命中即违规;
    • 文件类规则检查本会话是否改到对应文件(锁文件、SBOM、混淆配置、签名材料等);
    • 其余规则要求会话 AI 在 security_judge 工具里逐条提交证据;
    • L1 不可豁免;L2/L3 由用户在面板登记豁免理由(180 天有效)。
    • J 组(分发与可迁移性):检测到要产出安装包时强制做真实分发自检——包清单/入口/资源/bundle patch/绝对路径/依赖可安装性, 保证评审合格的安装包发给别人也装得上、用得了(详见 lib/dist.js)。
  5. 提醒与门禁(需要用户授权):
    • 首次检测到写代码时向会话注入评审提醒;
    • 评审未通过 = 不合格,不合格必须重做,默认合格为止:每个回合收尾时,如果代码会话不合格, 就拦截「算完成」,要求继续修复/补齐架构/提交评审,直到 verdict=pass(合格);
    • 默不设重做次数上限(maxEnforcePerSession=0);用户可自行设保护阈值,或随时在面板 「暂停强制重做」(暂停后结论仍是不合格,只是暂停自动催办)。
  6. Web 面板:侧栏「代码安全评审判官」入口,展示授权状态、所有会话、推荐架构与「需要几种」、 架构冲突、规则进度、失败/缺失项、规则目录、架构目录、冲突矩阵与设置。

权限边界(底层逻辑,不可修改)

  • 本插件权限低于用户最高权限,只用于代码安全防御规则与架构的评审。
  • 可以:读取/汇总会话里已经产生的代码与工具痕迹;授权后向代码会话注入评审提醒、拦截未通过评审的代码任务。
  • 不能:修改代码、修改配置、代替用户做决定、读取与代码安全防御无关的内容。
  • 授权必须由用户给:未授权时插件只读观察,不注入、不拦截。授权入口在面板的「授权」卡, 需要用户两次确认;插件自己不能授权自己。

安装

1. 插件市场(推荐)

DSH Plugins → Discover 搜索「代码安全防御规则评审判官」或 dsh-security-judge,一键安装。 条目数据:data/plugins/youchen-yc__dsh-security-judge.yml(awesome-dsh-plugin 仓库)。

2. GitHub Release 预构建包

从 Releases 下载 dsh-security-judge-1.5.3.tgz,在 DSH 里用 plugin_manager 的 install_bundle 指向该 tarball。

3. 从 GitHub / Gitee 源码

git clone https://github.com/youchen-yc/dsh-security-judge
git clone https://gitee.com/youchen-yc/dsh-security-judge    # Gitee 镜像
plugin_manager install_bundle  target: <克隆目录的绝对路径>

4. npm

npm 上最新版本为 1.5.3(https://www.npmjs.com/package/dsh-security-judge);1.6.0 需重新授权 npm token 后发布。

plugin_manager install_bundle  target: dsh-security-judge

5. 本地目录

plugin_manager install_bundle  target: F:\DSH1.0\security-judge

安装后侧栏出现「代码安全评审判官」,插件列表里出现「代码安全防御规则评审判官」。

使用

会话内口令:检查审核评审该会话

在任意已有会话里对 AI 说:

检查审核评审该会话

评审判官会自动受理(也识别「评审这个会话的代码」「代码安全防御评审」「review this session」等说法):

  • 回看该会话最多 2000 条历史事件(超过 24 小时的旧代码工作也会找回来),把该会话做的软件 / 插件 / 代码纳入评审;
  • 面板对应会话显示「用户已要求评审」;已授权时会向该会话注入受理通知,未授权时只读受理、不注入;
  • 不合格就要求该会话按规则重做,直到合格;确实没有代码工作时如实提示不涉及。

面板里每个会话的「评审该会话」按钮走同一套受理逻辑。

  1. 打开面板 → 「授权」卡 → 请求用户授权 → 确认授权。
  2. 在设置里选模式:
    • advisory 只提示:只记录评审结论,不打断;
    • remind 提醒:不合格时向代码会话注入提醒;
    • block 阻断(默认):不合格的代码任务不能算完成,会一直要求重做到合格(需要授权)。 重做上限默认 0 = 合格为止;如担心死循环可设一个阈值,或点会话里的「暂停强制重做」。
  3. 会话 AI 通过 security_judge 工具自检与提交:
    • action=status:本会话的代码识别、推荐架构、冲突、评审状态;
    • action=checklist:适用规则逐条状态;
    • action=architectures:这个程序需要几种架构、有哪些冲突;
    • action=submit:提交证据 { architectures?, rules: { "A-02": { verdict:"pass", evidence:"…" } }, notes? };
    • action=conflict-ack:登记架构冲突处理结论;
    • action=authority:查看/请求用户授权。

评审结论怎么算

  • 通过:范围内每条 L1 都自动通过或带证据通过;L2 全部满足或已豁免;所有架构冲突已登记处理结论。
  • 不合格:任何 L1 自动命中违规、L1/L2 缺证据、冲突未登记、L1 被尝试豁免。 不合格必须重做;只有重新提交并得到 verdict=pass 才算合格。
  • 失效:合格之后又写了新代码,评审自动失效,需要重新提交并再次合格。

连续不合格后的「教学模式」

连续 2 次不合格后,评审判官不再只喊「重做」,而是开始教该会话 AI 怎么做:

  • 回合收尾拦截时,在提醒后面附带教学单:先修哪个自动命中项、每个问题怎么改(改哪个文件、换成什么库/配置)、 哪些规则要按什么判定标准补证据、补哪个核心架构怎么落地、架构冲突怎么登记、分发自检问题怎么修;
  • 教学单里带可直接照抄的 action=submit 提交格式(rules / evidence / architectures);
  • 会话 AI 也可以随时调用 security_judge action=coach 获取完整教学计划(结构化 + 中文文本);
  • 面板对应会话显示「已进入教学模式」。

教学单不会代替评审:改完仍要提交,直到 verdict=pass(合格)。

数据与隐私

  • 扫描只读取会话事件(工具名、文件路径、写入的代码文本片段)和会话的工作目录文件名,不读与代码无关的文件内容。
  • 持久化只有三样:授权状态、设置、评审历史(80 条),位置:$DSH_PROFILE_DIR/security-judge-data/state.json (没有 profile 时用 ~/.dsh/security-judge-data/)。
  • 会话扫描与代码片段是内存态,不落盘。
  • 面板接口鉴权:每次加载生成随机页面令牌,只注入当前页面;写操作(授权/撤销/设置/评审/豁免/冲突登记等 POST) 必须带 x-security-judge-token,缺失/错误 401;跨站 Origin 一律 403。只读 GET 不要求令牌(同源页面直接读, 跨站读取被浏览器同源策略挡住)。令牌不落盘、不写日志、不出现在响应里。 残余风险:能读取本机页面 HTML 的本机进程仍可拿到令牌,这属于本机进程权限问题,不在插件可隔离范围内。

已知边界

  • 自动检查是启发式规则匹配,只覆盖规则里可判定的部分;不能被自动判定的规则必须由会话 AI 提交证据, 面板不会替它编造证据。测试 / 夹具文件(路径含 test、spec、fixtures 等)会被自动检查跳过, 避免测试数据里的弱哈希样本被当成生产代码违规。
  • 面板只展示「正在运行」或「最近 30 分钟内做过代码」的会话;更早的旧会话不追溯评审。
  • 拦截的实现是「在回合收尾时把评审要求再推进会话一步」,不是撤销会话日志;默认合格为止、 不设次数上限;担心死循环可在设置里设阈值,或在面板「暂停强制重做」(暂停后仍是不合格)。
  • 架构冲突矩阵来自《代码安全防御架构资料汇编》;冲突处理结论由用户/会话 AI 判断并登记,插件只负责检查与提醒。
  • 分发自检是静态包结构检查(清单/入口/资源/补丁/绝对路径/依赖),不替代「在另一台机器实际安装一次」; 插件自身提供 dist/ 下的可分发 tarball 与干净目录验证记录,可按同样方式验证其他项目。
  • Host 插件的代码更新需要重启 DSH 才会加载新模块;面板界面在页面刷新后使用新客户端资源。

规则与架构来源

  • 《代码安全防御架构规则》v1.0(2026-10-28):A–I 九组 67 条,含 L1/L2/L3 与豁免条款; 本插件在此基础上补充 J 组「分发与可迁移性」5 条(按用户的发布要求)。
  • 《代码安全防御架构资料汇编》(2026-10-28 核对版):判据层、理论层、骨架层、方法层、 供应链安全、AI 层、后量子、授权换代、运行时、合规。

文件

  • index.js:Host 入口(工具、系统提示、HTTP 接口、事件装配)。
  • lib/core.js:会话跟踪、授权门禁、面板状态、工具动作。
  • lib/engine.js:代码识别、架构推荐、冲突检查、规则评审、提醒文本。
  • lib/catalog.js:规则目录、架构目录、冲突矩阵、自动检查模式。
  • lib/dist.js:分发包自检(包清单/入口/资源/bundle patch/绝对路径/依赖可安装性)。
  • lib/store.js:授权/设置/历史持久化。
  • lib/httpapi.js:面板接口。
  • client.js:Web 面板。
  • test/selftest.mjs:引擎自测(node test/selftest.mjs)。
—/ 5

No ratings yet

Verified DSH bundle

Commit f3f74cbc5ee4

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout