DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

PerryLink /

PerryLink/dsh-bid-health-check

Verified

读 RequirementsPack 与投标文件,报告哪些要求看起来有响应、哪些没有、哪些根本定位不到。

★ 0 Stars0 Forks3 IssuesN/A Community rating0 Confirmed installs
View on GitHubProject homepage
READMESource: main@b040da97

dsh-bid-health-check — Bid health check

English · 简体中文 · Español · Português · हिन्दी

dshfind

dsh-bid-health-check reads a RequirementsPack (produced by dsh-tender-requirements) and a bid document, and reports — requirement by requirement — where the bid appears to answer, where the match is weak, and where nothing could be located.

The honest form of that question is narrower than "is the bid complete". The tool can locate a paragraph that appears to answer a requirement, or fail to locate one. It cannot know whether the located paragraph actually satisfies it, and it certainly cannot conclude that an unlocated requirement is unanswered.

Install

dsh plugin --profile <name> add dsh-bid-health-check
dsh --profile <name> --dump-config | grep 'dsh-bid-health-check'

What it looks like

Workflow diagram for dsh-bid-health-check: document → rule pack → findings.

Workflow overview: document → rule pack → findings.

Boundary: three sentences this tool does not say. It does not say "the bid is complete"; it says which requirements it could locate text for. It does not say "not located means missing" — the bid may answer in a table, an appendix, or different words. And it does not say "responded means compliant" — that needs a person to read the paragraph. It cannot read tables, scanned pages or attachments, so responses there are not counted at all.

What it answers

  • Which requirements have a bid paragraph that plausibly answers them?
  • Which matches are only a shared phrase, and therefore need a person to look?
  • Which requirements have no located response, so a human can check them by hand?
  • Which requirements cannot be checked at all because the tender side is still unresolved?

Standards it follows

No clause is cited as the basis of a finding, because this package locates text rather than checks compliance.

Two rules come from the spec's design instead:

  • A rejection clause is a condition, not a sentence. No bid says 「我方同意被拒收」, so a rejection clause can never be scored responded — only weak, with a reason explaining that the located paragraph should be reviewed as evidence.
  • Queue C passes through. A requirement the tender side could not extract reliably is reported as blocked by the pack, not graded against the bidder.

Compatibility

Surface Status
Harness peer range >=0.1.2-rc.1 <0.2.0 || >=0.2.0-0 <0.3.0
Node `^22.19.0
Platforms all (pure ESM; no native code, no network, no model call)

What it does

For each requirement the tool measures the longest substring it shares with each bid paragraph. Four characters was too loose — 「投标截止时间」 matched on the shared 「投标」 — so a title overlap must reach five characters to count. On a tie the longer paragraph wins, because a heading such as 「第三章 投标保证金」 shares the label with the body that actually states the amount.

An overlap found only in the requirement's quote (not its title) is capped at weak: sharing text with the clause that contains a requirement is not evidence the requirement is met.

Configuration

Key Default Meaning
rulesFile rules/bid-health-check.yaml 规则库路径

Material format

Two inputs:

Argument Meaning
pack The RequirementsPack JSON (or YAML with an items array)
file The bid document, .docx

Paragraphs come from dsh-table-ingest; tables in the bid are not read by this version.

Rule sources

Quotations live in the pack that this tool consumes, not here.

Known limits, all of them visible in the report: only paragraphs are read, so a response inside a table, a scanned page or an attachment is not counted. Matching is by shared substring, so a paraphrased response is reported as not located. And a located paragraph is a pointer for a human, not a verdict.

Troubleshooting

  • The plugin installs but the tool never appears: check that main resolves to lib/index.mjs and that pnpm run build produced it.
  • dsh plugin add rejects the package: the peer range covers 0.1.x and 0.2.x; outside it, grant an explicit exemption.
  • A rule did not run: read the skipped array.

Development

pnpm install
pnpm run typecheck
pnpm test
pnpm run build
node ../scripts/sync-shared.mjs dsh-bid-health-check

PerryLink DSH Plugin Family

This project is part of the DeepSeek Harness plugin family from PerryLink. The roster stays collapsed below so every README keeps a short first screen; expand it to see every row and its status.

Expand all plugins
Plugin Status
dsh-aqua-input-check
dsh-archive-check
dsh-auto-review
dsh-autotier
dsh-bid-ca-precheck
dsh-bid-qual-check
dsh-cert-mcp
dsh-checkpoint-rewind
dsh-click
dsh-composer-history
dsh-contract-stance
dsh-customs-doc-check
dsh-data-quality
dsh-demurrage-ledger
dsh-doublecheck
dsh-drill-script-check
dsh-eia-guide-check
dsh-emergency-plan
dsh-essay-rubric-check
dsh-evidence-check
dsh-export-ctl-check
dsh-fast
dsh-fmea-table-check
dsh-forecast-penalty
dsh-fund-research
dsh-github
dsh-gongwen-flow-check
dsh-gongwen-word-check
dsh-guard-plan-qc
dsh-hazchem-check
dsh-hazplan-check
dsh-hidden-risk-map
dsh-hs-classify
dsh-icd-rule-check
dsh-industry-research
dsh-lawcite-adapter
dsh-laya
dsh-lc-doc-check
dsh-learning-gap-check
dsh-library
dsh-local-ai
dsh-lsp-actions
dsh-mask
dsh-mcp-panel
dsh-medrec-qc
dsh-memento
dsh-nsfc-form-check
dsh-nurse-record-check
dsh-observe
dsh-origin-rvc-check
dsh-ota-review-check
dsh-output-styles
dsh-paper-doc-adapter
dsh-permission-rules
dsh-permit-report-check
dsh-pipeline-check
dsh-pleading-draft
dsh-plugin-doctor
dsh-plugin-guide
dsh-plugin-kit
dsh-plugin-upgrade
dsh-policy-brief-draft
dsh-power-loss-split
dsh-power-ticket-check
dsh-ppap-check
dsh-protest-deadline
dsh-railway-window
dsh-repair-order-qc
dsh-research-report
dsh-review-reply-check
dsh-rulefile-check
dsh-safety-brief-check
dsh-score
dsh-session-sync
dsh-site-log-check
dsh-skill-pack-security
dsh-soe-decision-check
dsh-soilwater-check
dsh-sop-sync-check
dsh-spc-gbt-adapter
dsh-talk
dsh-tender-extract
dsh-tender-matrix
dsh-test-drive
dsh-ticktick
dsh-translate
dsh-warranty-calc
dsh-budget 🧊 FROZEN — see the repo README
dsh-claude-move 🧊 FROZEN — see the repo README
dsh-defend 🧊 FROZEN — see the repo README
dsh-draw 🧊 FROZEN — see the repo README
dsh-reach 🧊 FROZEN — see the repo README
dsh-background-agents 🚫 RETIRED — see the repo README
dsh-session-pin 🚫 RETIRED — see the repo README
dsh-team-rooms 🚫 RETIRED — see the repo README

License

Apache License 2.0 © 2026 dsh-bid-health-check contributors.

—/ 5

No ratings yet

Verified DSH bundle

Commit b040da97f748

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