Preface¶
Anyone familiar with writing bid documents knows that no matter how good the content is, if you step on a disqualification clause in the bidding document, all previous work is in vain. The common self-check method is to organize the “Invalid Bid” and “Disqualification Clause” items from the bidding document into a list, then go back to the hundreds of pages of the bid document one by one to find the corresponding content, checking for typos and inconsistencies along the way. This process is time-consuming and relies on the human eye, making it easy to miss things.
The philosophy of DeepSeek Harness (DSH) is “Everything is a plugin”: making a fixed workflow for a type of task into a bundle. After installation, it is registered as a skill, and the model can execute according to the workflow within Harness. The rejection-check introduced in this article is such a plugin: upload the bidding document and the bid document, and it is responsible for extracting disqualification clauses, checking risks item by item, checking for typos and logical inconsistencies, and finally generating a check report.
What is this¶
rejection-check is a bid document disqualification clause checking tool maintained by maike-china, distributed as a DeepSeek Harness plugin (bundle) with an MIT license and version 1.0.1 in package.json.
It solves a very specific problem: parsing bid/tender documents, extracting “Invalid Bid” and “Disqualification Clause” items from the bidding document, performing three rounds of risk checks on the bid document, adding typo and logical fallacy checks, and finally generating a check report in PDF / HTML / Markdown formats. The entire process does not require an external API Key, uses the DSH’s own model, and data is analyzed locally only, without being uploaded to third parties.
Core Features¶
- Document Parsing: Supports four formats for bidding documents and bid documents:
.docx/.pdf/.md/.txt. - Disqualification Clause Extraction: Automatically extracts “Invalid Bid” and “Disqualification Clause” items from the bidding document, quoting the original text item by item for easy traceability.
- Three-Round Risk Check: Analyze the scope of inspection → check item by item → finalize and merge, outputting structured risk items.
- Typo Detection: Automatically identifies typos, homophones, and obvious data entry errors in the bid document.
- Logical Fallacy Check: Detects inconsistencies in the bid document, such as personnel lists, project duration, amounts, service periods, etc.
- Report Generation: One-click generation of check reports in PDF + HTML + Markdown formats.
- No API Key Required: Uses the DSH’s own model; data is analyzed locally only.
Installation & Activation¶
Install Plugin¶
Install the latest main branch from GitHub:
dsh plugin --profile <your-profile-name> add github:maike-china/rejection-check
If you want to avoid the latest code silently changing what actually runs later, you can lock a specific commit:
dsh plugin --profile <your-profile-name> add github:maike-china/rejection-check#<commit-sha>
When using dsh plugin for a profile for the first time, it will automatically initialize that profile (using @deepseek-ai/dsh-base as the first combined package), then install this plugin and append it to the profile’s combined package list.
Verification & Launch¶
Confirm that the configuration layer is active; you should see the # == dsh-rejection-check layer in the output:
dsh --profile <your-profile-name> --dump-config
Then launch Harness using that profile (Web UI or headless works):
dsh --profile <your-profile-name> web
Update¶
Update to the author’s latest code:
dsh plugin --profile <your-profile-name> update dsh-rejection-check
Regarding build: This plugin is pure ESM + runtime dependencies (mammoth / pdf-parse / pdfkit), with no build steps. The git install pulls source code, dependencies are installed automatically during installation, dsh.bundle declares the configuration layer to be activated directly, no prepare script is needed, and no build authorization is required.
Typical Usage¶
- Launch Harness (Web UI or headless) using the profile that has this plugin installed.
- In the chat dialog, upload the bidding document + bid document, supporting
.docx/.pdf/.md/.txt. - Input a command, for example:
检查这两个文件的废标项
Or:
用废标项检查工具查一下
- Harness automatically completes the entire process: parsing → three-round checks → typo + logic checks → generate report.
- Get the path of the generated
废标项检查报告.pdffile and save it.
How it Works¶
The plugin itself is a standard DSH bundle (bundle), with several key files performing their respective duties:
package.json— Declaresdsh.bundle.patch, allowingdsh plugin addto recognize it as an activatable profile layer.cordis.patch.yml— bundle configuration layer, inserting a line to enable the plugin (- id: rejection-check).index.js— plugin entry point (apply(ctx)+inject: ['skills']), callingctx.skills.register()at startup to registerSKILL.mdas a runtime skill, and pointingresourceBaseto the plugin directory soscripts/can be parsed by the skill.SKILL.md— skill core instructions (frontmatter + check process).scripts/parse.mjs— document parser: usesmammothto parse.docx,pdf-parseto parse.pdf,.md/.txtare read directly, outputting UTF-8 plain text working files for subsequent three-round checks.scripts/report.mjs— report generator: readsfindings.json(rejection / typo / logic three groups of results), automatically selects common Chinese fonts in the system (covering macOS / Windows / Linux common font paths), usespdfkitto generate PDF, while outputting HTML and Markdown.
Applicable Scenarios & Notes¶
Suitable for two types of people: one is bid writing teams that need to self-check for disqualification risks before bidding, using this to let the plugin run through clause verification, typos, and consistency checks; the other is users who already have a DSH environment and want to extend capabilities by installing plugins, which works immediately after installation without modifying their own workflow.
A few notes before use:
- Use Simplified Chinese throughout.
- Do not fabricate evidence that does not exist in the bid document; if evidence is insufficient, mark “Suggest manual review”.
- Do not judge missing materials due to invisible images, scanned copies, or attachments to avoid false positives.
- When there are no available Chinese fonts in the system, the report will fall back to generating only HTML.
- The end of the report will prompt: This is automated auxiliary checking; please have professionals review for formal bidding.
- The plugin runs with the permissions of the current dsh process; please check the plugin source code and license yourself before installing (this project is MIT).
- A detail: In the README packaging example, the tarball filename is
dsh-rejection-check-1.0.0.tgz, while the version inpackage.jsonis 1.0.1; when installing the packaged artifact, the actual filename takes precedence.
Closing¶
rejection-check turns the fixed process of “extracting disqualification clauses → checking item by item → checking typos and logic → generating report” into a DSH plugin. After installing it into a profile, you can run it by uploading two files, and it does not rely on external API Keys. For teams that bid frequently, this adds an extra layer of machine self-check before formal submission; results still require manual review, which the plugin explicitly states in the report.
Project Address:
- GitHub: https://github.com/maike-china/rejection-check
- Community Plugin Directory: https://www.skillhub.cn/plugins/maike-china/rejection-check (Independent community site, no official affiliation with DeepSeek / Huanfang)