逐行核对资格条件表是否填写完整并提示差异
30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/8 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add PerryLink/dsh-bid-qual-check该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · tool
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 27 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(unknown · 2026/11/4) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件
查看扫描证据(共 1 处,展示前 1 条)
- 读取本地文件samples/quickstart/run.mjs:7
const material = await readFile(join(here, 'input', "BQ-001-unsafe.json"), 'utf8')
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-package-manifest@deepseek-ai/dsh-tools@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 逐行核对资格条件表
- 提示填写差异
- 不作定性结论
投标人资格条件核对表:依据《中华人民共和国招标投标法》《中华人民共和国招标投标法实施条例》(1999年8月30日通过,2017年12月27日修正、国务院令第613号)。仅提示差异,不作出定性结论。
README
由 DeepSeek 最新模型翻译生成dsh-bid-qual-check — 投标人资格条件核对表检查
dsh-bid-qual-check 读取一份投标人资格条件核对表——表头加上每个资格条件一行——检查这张表自身的闭环:每个条件是否记录了自己的要求,投标人的实际情况是否记录在案,证明材料是否附上,核对结论是否出自你的词表,否决项是否把情况、证明材料和结论一并记录,表里是否写明了项目名称和投标人,条件编号是否唯一,要求内容列里是否还留着没替换的占位符。
它能回答什么
| 你问 | 它答 |
| 某一行 资格条件 和 要求内容 都空着,会报出来吗? | 会。BQ-001 要求每一行这两列至少填一列,两列都空就报出该行。它只检查有没有写东西,不判断这个条件是否合法、是否本来就该设——那属于对招标文件本身的审查。 |
| 某个条件的 投标人情况 列空着,证明材料 也没有。 | 两条发现:BQ-002 报出 投标人情况(actual)为空的行,BQ-003 报出 证明材料(evidence)为空的行。两条都只检查单元格有没有填,不判断实际情况是否满足条件,也不判断材料是否有效、是否在有效期内、是否与原件一致——那需要原件和评标委员会来定。列存在但每个单元格都空,仍然逐行报出;材料里没有这一列,规则进 skipped,而不是悄悄放过。 |
| 某一行 核对结论 列空着,BQ-004 会报吗?
展开完整文档(README 剩余 1 节)
dsh-bid-qual-check — 投标人资格条件核对表检查
dsh-bid-qual-check 读取一份投标人资格条件核对表——表头加上每个资格条件一行——检查这张表自身的闭环:每个条件是否记录了自己的要求,投标人的实际情况是否记录在案,证明材料是否附上,核对结论是否出自你的词表,否决项是否把情况、证明材料和结论一并记录,表里是否写明了项目名称和投标人,条件编号是否唯一,要求内容列里是否还留着没替换的占位符。
它能回答什么
| 你问 | 它答 |
| 某一行 资格条件 和 要求内容 都空着,会报出来吗? | 会。BQ-001 要求每一行这两列至少填一列,两列都空就报出该行。它只检查有没有写东西,不判断这个条件是否合法、是否本来就该设——那属于对招标文件本身的审查。 |
| 某个条件的 投标人情况 列空着,证明材料 也没有。 | 两条发现:BQ-002 报出 投标人情况(actual)为空的行,BQ-003 报出 证明材料(evidence)为空的行。两条都只检查单元格有没有填,不判断实际情况是否满足条件,也不判断材料是否有效、是否在有效期内、是否与原件一致——那需要原件和评标委员会来定。列存在但每个单元格都空,仍然逐行报出;材料里没有这一列,规则进 skipped,而不是悄悄放过。 |
| 某一行 核对结论 列空着,BQ-004 会报吗? | 不会——BQ-004 只检查写出来的值,空单元格跳过。它的 values 列表出厂为空,所以开箱即用时规则会把自己报进 skipped;等你在 values 里配好本机构的词表(比如 符合 / 不符合 / 需澄清),值不在表里就逐行报出。它检查的是值在不在你的词表里,不是结论对不对,任何值都不会让投标无效。规则上限为 info,因为词表由你所在机构自己定。 |
| 某一行 是否否决项 单元格写着 是,但 投标人情况 或 证明材料 缺失。 | BQ-005 要求:凡是 是否否决项 单元格匹配所配标记(默认 是、Y、yes、true、否决项、√)的行,投标人情况、证明材料、核对结论 必须齐全,缺什么就报出该行和缺失项。哪些条件算否决项,完全来自招标文件和这一列,绝不来自内置清单。如果没有任何一行带这类标记,规则会把自己报进 skipped,而不是放过——它也从不判定投标是否该被否决。 |
| 登记表的表头写明了招标编号,但没写项目名称和投标人。 | BQ-006 报告一次表头,并指出缺了什么:project(项目名称)或 bidder(投标人名称)。它只检查表头是否声明了这两方——不检查招标编号,也不检查核对日期;把判定词表加进这条规则也没用,因为那由 BQ-004 的 values 控制。 |
| 这份登记表是从模板复制来的:两行的编号都是 3,还有一个 要求内容 单元格仍写着 待填。 | BQ-007 报告重复的 序号(比较时忽略空白,所以 3 和 3 是同一个编号);如果没有任何一行带编号,它就把自己记进 skipped,而不是判定通过。BQ-008 报告 要求内容 里残留的占位符——【、】、{{、}}、XXX、待填、待补充、TBD、示例,以及它 terms 列表里的其余项,你可以自行收窄。两项检查都是字面匹配:都不判断要求本身对不对,一条确实引用了 XXX 的要求也会被报告。 |
遵循的标准
| 文件 | 编号 | 引用它的规则 |
| 《中华人民共和国招标投标法》 | 1999年8月30日通过,2017年12月27日修正(全国人大常委会《关于修改〈中华人民共和国招标投标法〉、〈中华人民共和国计量法〉的决定》),本法自2000年1月1日起施行 | BQ-001, BQ-002, BQ-003, BQ-004, BQ-006, BQ-007, BQ-008 |
| 《中华人民共和国招标投标法实施条例》 | 国务院令第613号(2011 年 12 月 20 日公布,2017 年 3 月 1 日修订,自 2012 年 2 月 1 日起施行) | BQ-005 |
边界: 这个插件检查一份投标人资格条件核对表,看它是否满足清单能承担的闭环——每条条件都记录了要求内容和投标人的实际情况,证据已附上,判定取自你的词表,通过/不通过项三项齐全,表格写明了项目和投标人,编号不重复,没有占位符残留。它不判定投标人是否合格、资格是否不通过、投标是否应被否决。那是资格评审委员会的判断,依据证据原件和招标文件的条件作出。
⚠️ 相信报告里的引文之前,先读这段
这个插件规则包里的每一条 excerpt 都明说了:没有拿到条款原文。 制度依据在《中华人民共和国招标投标法》(尤其是关于资格条件和投标人资格的条款)、《招标投标法实施条例》,以及每份招标文件自己的资格条件里。核验环节拿不到逐字条款原文,所以规则包没有转述引文,而是在 excerpt 字段里直接写明这一缺口,把诚实的推理放进 note。因此每条规则都是 warn 或 info,并有测试断言:没有任何规则声称自己拥有并不存在的引文。拿到原文后,必须做两件事:把每条 excerpt 换成真实条款,并把 kind 提升为 direct。
有两个判断属于你,不属于插件。哪些条件算通过/不通过项,完全取决于招标文件,所以 BQ-005 读的是核对表自己的「是否否决项」列,而不是任何内置清单;把某项标记为通过/不通过的值可以配置。而且判定结论词表默认是空的——什么都不配置时,BQ-004 会把自己报成 skipped。一条发现从不说某份投标无效;它只说某个单元格是空的,或某个值不在你的词表里。
兼容性
| 层面 | 状态 |
| Harness | 对等版本范围 >=0.1.2-rc.1 <0.2.0 \|\| >=0.2.0-0 <0.3.0 —— 已验证同时接受 0.2.0-rc.2 和 0.2.1-alpha.1。故意不声明 engines.dsh:它没有读取方,也无法拒绝宿主 |
| Node | ^22.19.0 || >=24.0.0 |
| 平台 | 全部(纯 ESM;无原生代码、无网络、不调用模型) |
| 工具模式 | 在 native、ptc 和 both 下都能用;投标人较多时用 ptc |
它做什么
注册 bid_qual_check 工具。它读取一份资格审查登记表——包头部加上每个条件一行——套用带版本号的规则包,返回一份报告。
| 规则 | 检查内容 | 严重级别 | 依据类型 |
| BQ-001 | 每个条件都记录了自己的要求 | warn | direct |
| BQ-002 | 每个条件都记录了投标人的实际情况 | warn | direct |
| BQ-003 | 每个条件都附了证明材料 | warn | direct |
| BQ-004 | 判定结论来自你的词表(默认关闭) | info | local |
| BQ-005 | 通过/不通过项记录了情况、证明材料和判定结论 | warn | principle |
| BQ-006 | 表格写明了项目名称和投标人 | warn | principle |
| BQ-007 | 条件编号唯一 | warn | principle |
| BQ-008 | 要求内容列里没有未替换的占位符 | warn | principle |
安装
dsh plugin --profile <name> add dsh-bid-qual-check
dsh --profile <name> --dump-config | grep 'dsh-bid-qual-check'
配置
| 键 | 类型 | 默认值 | 说明 |
| rulesFile | string | rules/bid-qual-check.yaml | 规则包路径,相对于包根目录 |
| disabledRules | string[] | [] | 要停止运行的规则 id;每个都会出现在 skipped 里 |
| onlyRules | string[] | [] | 只运行这些规则 id;留空则运行全部规则 |
| skipNotes | string | "" | 追加到每条 skipped 原因后面的备注 |
| timeoutMs | number | 120000 | 协作式工具超时预算 |
几个值得了解的规则级参数:
- BQ-004 values —— 你的判定结论词表,例如 [符合, 不符合, 需澄清]。留空表示不检查。
- BQ-005 conditionValues —— 你的「是否否决项」列里把某项标记为通过/不通过的值,默认是 [是, Y, yes, true, 否决项, √]。
- BQ-008 terms —— 要查找的占位符。
材料格式
工具接受 JSON 或 YAML:
project: 某某工程施工招标 tenderNo: ZB-2026-018 bidder: 某某建设有限公司 rows:
- { 序号: '1', 资格条件: 施工资质等级, 要求内容: 建筑工程施工总承包二级及以上,
投标人情况: 持有建筑工程施工总承包二级资质,证书在有效期内, 证明材料: 资质证书复印件,资格文件第 12 页, 核对结论: 符合, 是否否决项: 是, 核对人: 李工 } 列名匹配不区分大小写,并忽略空格、下划线和连字符;登记表自己的列名会保留,所以每条发现都会指出它读取的是哪一列。
规则来源
规则数据放在 rules/bid-qual-check.yaml。规则包的头部完整说明了引用缺口,每条规则的 note 会重复其中与该规则相关的部分。加载时的守卫通常要求「摘录必须是至少八个字符的真实引用」,但它分不清引用和描述——所以这个规则包靠头部、每条规则的 note,以及一个测试来兜底,该测试断言每个 excerpt 都承认这个缺口。
故障排查
- BQ-004 或 BQ-005 报告自己被跳过。 判定词表为空,或者没有任何一行被标记为通过/不通过项。这两者都取决于你的项目,插件不会替你猜。
- BQ-002 在我认为显而易见的情况下触发。 实际位置单元格为空,意味着「未检查」,而这是资格登记表绝不能出现的情况。把位置记下来,哪怕它显而易见。
- BQ-005 在通过/不通过项缺少证据时触发。 这正是检查本身:一个通过/不通过项如果三项记录不全,事后就无法自证。
- BQ-008 在我逐字复制的要求上触发。 单元格里确实有 XXX 或 待填 这个词。收窄 terms,或者修正登记表。
- 插件装上了,但工具始终不出现。 检查 main 是否指向 lib/index.mjs,以及 pnpm run build 是否生成了它;main 写错会让加载器静默跳过入口。
- dsh plugin add 以不兼容为由拒绝这个包。 peer 范围覆盖 0.1.x 和 0.2.x;如果你的运行时不在其中,显式授予豁免: dsh plugin --profile <name> allow-version dsh-bid-qual-check@0.1.0 --dsh-version <runtime> --accept-risk
- check 报告 manifest-peers 失败。 静态检查器比对的是一个硬编码的 peer 范围,它早于 0.2 系列。运行时会在安装时强制校验 peer 兼容性,所以声明的范围才是正确的;这是 dsh-plugin-dev 中已知的上游问题。
开发
pnpm install
pnpm run typecheck # tsc --noEmit
pnpm test # vitest, the shared table-plugin suite plus paired fixtures
pnpm run build # tsdown -> lib/index.mjs + lib/index.d.mts
node ../scripts/sync-shared.mjs dsh-bid-qual-check # refresh src/shared from ../_shared
这个插件是纯数据的:src/model.ts 声明表结构,共享工具包提供读取器和检查引擎,规则包声明每一项检查。
许可证
Apache License 2.0 © 2026 dsh-bid-qual-check contributors。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
PerryLink/dsh-bid-qual-check
逐行核对资格条件表是否填写完整并提示差异
相关插件 · 工具 / 效率
破甲管控台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
这是你的仓库?认领条目