DSH Hub

PerryLink/dsh-research-report

dsh-research-report

BundleWorkflow9 GitHub stars· updated 2026-08-26

Verifiable research-report engine for DeepSeek Harness: content-addressed evidence ledger (claim-snapshot binding, tamper-evident) plus versioned sealed reports with per-claim verification verdicts and a manifest-sealed directory.

Install

npx @deepseek-ai/dsh plugin --profile demo add "github:YOUR_ORG/dsh-research-report#<sha>"

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

dsh-research-report DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/dsh-research-report.svg)](https://dshhub.dev/plugins/dsh-research-report)

Paste this into your README. The star count updates with every catalog sync.

From the README

Excerpt from PerryLink/dsh-research-report, cleaned of badges and images.

📑 dsh-research-report

A verifiable research-report engine for DeepSeek Harness.

Every claim is bound to immutable evidence snapshots, verified byte-for-byte, and sealed into a versioned report whose manifest hash anyone can recompute.

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


Compatibility

  • DeepSeek Harness 0.1.1-rc.2 (peers pinned to 0.1.1-rc.2).
  • Node ^22.19.0 || >=24.0.0, ESM only ("type": "module").
  • Peer dependencies: @deepseek-ai/cordis ^4.0.1, @deepseek-ai/schemastery ^3.18.0, and @deepseek-ai/dsh-session, @deepseek-ai/dsh-tools, @deepseek-ai/dsh-system-prompt, @deepseek-ai/dsh-web, @deepseek-ai/dsh-jobs at 0.1.1-rc.2.
  • Optional siblings (never required): ctx.web providers for URL capture/gather, ctx.jobs for background assembly, ctx.dataQuality (dsh-data-quality) for dataset citation cross-checks.

What you get

  • Evidence ledger — a content-addressed snapshot store (<ledgerRoot>/objects/<sha256> + JSONL journals). The same content is stored exactly once; snapshots are immutable; every read recomputes the hash, so tampering or deletion is detected instead of trusted.
  • Claim ↔ evidence binding — claims register with the evidence ids they rely on; the ledger keeps the binding and every verification verdict (latest wins).
  • Byte-level verification — every number and quoted span in a claim must be locatable verbatim in the bound snapshots. No bound evidence, or no checkable literal, marks the claim unverified; bound evidence that cannot confirm or deny the claimed literals marks it insufficient; a label whose snapshot value differs (the claimed value absent) marks it disproven; tampered/missing snapshots mark it contradicted. No semantics, no embeddings — auditable byte checks.
  • Optional numeric bridge — when a claim cites a structured workspace dataset (CSV/JSON) and dsh-data-quality is mounted, citations are cross-checked with tolerances through its frozen verifyCitations contract; a dataset mismatch disproves the claim.
  • DOI evidence (zero network) — DOI origins are validated deterministically (10.xxxx/xxxx structure, a prefix whitelist, and a DOI character set); invalid DOIs fail loud. Optional journal/year metadata is accepted, and requireJournalMetadata gates academic DOI evidence only when enabled.
  • Versioned sealed reports<reportRoot>/<slug(topic)>/<YYYYMMDD-HHmmss>/report.md + manifest.json + verification.jsonl + disconfirmation.jsonl; the seal hash is the SHA-256 of the manifest, which itself carries the report hash, every evidence hash, and the hash of each audit journal.
  • Pre-delivery re-audit & seal interception — before sealing, every bound claim is re-verified offline and journaled to verification.jsonl; verdict drift, tampered/missing bound evidence, or a journal serialization failure blocks the seal (fail loud, no tunable).
  • Falsification ledger — every contradicted or disproven claim is recorded in disconfirmation.jsonl (claim + evidence references + reason) and listed in the report's 证伪记录 appendix.
  • Negative knowledge — a disproven claim is remembered by its content hash (disproofs.jsonl); the same text re-reported against unchanged evidence is forced back to disproven and only re-verifies once the evidence changes.
  • Read-only verifier loop — after sealing, a deterministic `verifySealedRepor

Related plugins