rejection-check:基于 DeepSeek Harness 的标书废标项检查插件

前言

写过投标文件的人都知道:标书内容做得再好,只要踩中招标文件里的某一条废标项,前面所有工作就白做了。常见的自查方式是把招标文件里的「无效投标」「废标项」条款整理成清单,再逐条回到几百页的投标文件里找对应内容,顺带检查错别字和前后不一致的地方。这个过程费时,而且靠人眼很容易漏。

DeepSeek Harness(DSH)的理念是「一切皆插件」:把一类任务的固定流程做成 bundle,安装后注册为技能,模型在 Harness 里就能按流程执行。本文介绍的 rejection-check 就是这样一个插件:上传招标文件和投标文件,它负责提取废标项条款、逐项检查风险、查错别字和逻辑不一致,最后生成检查报告。

这是什么

rejection-check 是 maike-china 维护的标书废标项检查工具,以 DeepSeek Harness 插件(bundle)形式分发,许可证为 MIT,package.json 中的版本号为 1.0.1。

它解决的问题很具体:解析招标/投标文件,从招标文件中提取「无效投标」与「废标项」条款,对投标文件做三轮风险检查,再加错别字与逻辑谬误检查,最后生成 PDF / HTML / Markdown 三种格式的检查报告。整个流程不需要外部 API Key,使用 DSH 自身模型,数据仅在本地分析,不上传第三方。

核心功能

  • 文档解析:支持 .docx / .pdf / .md / .txt 四种格式的招标文件和投标文件。
  • 废标项提取:自动从招标文件中提取「无效投标」和「废标项」条款,逐条引用原文,方便回溯核对。
  • 三轮风险检查:分析检查范围 → 逐项核查 → 合并定稿,输出结构化的风险项。
  • 错别字检测:自动识别投标文件中的错别字、别字和明显录入错误。
  • 逻辑谬误检查:检测投标文件中前后不一致的内容,例如人员名单、工期、金额、服务期限等。
  • 报告生成:一键生成 PDF + HTML + Markdown 三种格式的检查报告。
  • 无需 API Key:使用 DSH 自身模型,数据仅本地分析。

安装与启用

安装插件

从 GitHub 安装仓库最新 main 分支:

dsh plugin --profile <你的profile名> add github:maike-china/rejection-check

如果想避免后续推送悄悄改变实际运行的代码,可以锁定具体 commit:

dsh plugin --profile <你的profile名> add github:maike-china/rejection-check#<commit-sha>

首次对某个 profile 使用 dsh plugin 时,它会自动初始化该 profile(以 @deepseek-ai/dsh-base 作为第一个组合包),然后安装本插件并把它追加进 profile 的组合包列表。

验证与启动

确认配置层已生效,输出中应能看到 # == dsh-rejection-check 层:

dsh --profile <你的profile名> --dump-config

然后用该 profile 启动 Harness(Web UI 或 headless 均可):

dsh --profile <你的profile名> web

更新

更新到作者的最新代码:

dsh plugin --profile <你的profile名> update dsh-rejection-check

关于构建:本插件是纯 ESM + 运行时依赖(mammoth / pdf-parse / pdfkit),没有构建步骤。git 安装拉取的是源码,安装时自动装依赖,dsh.bundle 声明直接激活配置层,无需 prepare 脚本,也无需任何构建授权。

典型用法

1、用安装了本插件的 profile 启动 Harness(Web UI 或 headless)。

2、在对话框上传招标文件 + 投标文件,支持 .docx / .pdf / .md / .txt

3、输入指令,例如:

检查这两个文件的废标项

或者:

用废标项检查工具查一下

4、Harness 自动完成整个流程:解析 → 三轮检查 → 错别字 + 逻辑检查 → 生成报告。

5、获取生成的 废标项检查报告.pdf 文件路径,保存即可。

工作原理

插件本身是一个标准 DSH 组合包(bundle),几个关键文件各司其职:

  • package.json — 声明 dsh.bundle.patch,让 dsh plugin add 识别为可激活的 profile 层。
  • cordis.patch.yml — bundle 配置层,插入一行启用插件(- id: rejection-check)。
  • index.js — 插件入口(apply(ctx) + inject: ['skills']),启动时调用 ctx.skills.register()SKILL.md 注册为运行时技能,并把 resourceBase 指向插件目录,使 scripts/ 可被技能解析。
  • SKILL.md — 技能核心指令(frontmatter + 检查流程)。
  • scripts/parse.mjs — 文档解析器:用 mammoth 解析 .docxpdf-parse 解析 .pdf.md / .txt 直接读取,输出 UTF-8 纯文本工作文件,供后续三轮检查使用。
  • scripts/report.mjs — 报告生成器:读取 findings.json(rejection / typo / logic 三组结果),自动选择系统中的中文字体(覆盖 macOS / Windows / Linux 常见字体路径),用 pdfkit 生成 PDF,同时输出 HTML 与 Markdown。

适用场景与注意

适合两类人:一是需要在投标前自查废标风险的标书编写团队,用它把条款核对、错别字和前后一致性检查交给插件跑一遍;二是已经有 DSH 环境、想通过装插件扩展能力的用户,装完即用,不用改自己的流程。

使用前有几点需要注意:

  • 全程使用简体中文。
  • 不虚构投标文件中不存在的证据;证据不足时会标注「建议人工复核」。
  • 不因图片、扫描件、附件正文不可见而判定材料缺失,避免误报。
  • 系统中没有可用中文字体时,报告会回退为仅生成 HTML。
  • 报告末尾会提示:这是自动化辅助检查,正式投标请由专业人员复核。
  • 插件以当前 dsh 进程的权限运行,安装前请自行检查插件源码与许可证(本项目为 MIT)。
  • 一个细节:README 的打包示例中 tarball 文件名为 dsh-rejection-check-1.0.0.tgz,而 package.json 中的版本是 1.0.1,两处不一致,安装打包产物时以实际文件名为准。

结尾

rejection-check 把「提取废标项 → 逐项核查 → 查错别字和逻辑 → 出报告」这条固定流程做成了 DSH 插件,装进 profile 后上传两个文件就能跑完,且不依赖外部 API Key。对经常投标的团队来说,可以在正式提交前多一道机器自查;结果仍需人工复核,这一点插件在报告里也明确写了。

项目地址:

  • GitHub:https://github.com/maike-china/rejection-check
  • 社区插件目录:https://www.skillhub.cn/plugins/maike-china/rejection-check (独立社区站点,与 DeepSeek / 幻方无官方从属关系)
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye