DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

Research Report — DSH Plugin for DeepSeek Harness
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins

dsh-research-report

Research Report

Verifiable research-report engine for DeepSeek Harness: a content-addressed evidence ledger (claim 閳?snapshot binding, tamper-evident) plus versioned sealed reports where every claim carries a verification verdict and the manifest hash seals the directory

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add dsh-research-report@0.3.12
READMECompatibilityVersions

Compatibility and provenance

Research Report is published as dsh-research-report and currently resolves to version 0.3.12. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
any
Release source
npm
Registry updated
9/20/2026

Versions

0.3.12stable
9/19/2026
0.3.11stable
9/18/2026
0.3.10stable
9/12/2026
Show 16 more versionsCollapse versions
0.3.9stable
9/10/2026
0.3.8stable
9/9/2026
0.3.7stable
9/9/2026
0.3.6stable
9/7/2026
0.3.5stable
9/7/2026
0.3.4stable
9/4/2026
0.3.3stable
9/2/2026
0.3.2stable
9/2/2026
0.3.1stable
9/1/2026
0.3.0stable
8/26/2026
0.2.0stable
8/23/2026
0.1.4stable
8/23/2026
0.1.3stable
8/22/2026
0.1.2stable
8/21/2026
0.1.1stable
8/19/2026
0.1.0stable
8/19/2026

Related plugins

Loading related plugins…

Latest
0.3.12
DSH
*
HMR
Process restart
Tree shaking
Declares sideEffects: false
Unpacked size
765.9 kB
Files
88
Surface
any
License
Apache-2.0
Source
npm
GitHub
★ 0
Weekly downloads
702
View source ↗Project homepage ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue

Related plugins

More verified plugins in search-research.

Browser Skill Dsh Plugin@wxg-prc-cpg/browser-skill-dsh-pluginDeepSeek Harness tool plugin that exposes BrowserSkill browser automation (browser_* tools) to the modelWeknora@wxg-prc-cpg/dsh-weknoraWeKnora knowledge retrieval tools for DeepSeek Harness (dsh): semantic search, document reading and RAG/agent answers over your own knowledge bases.Free Searchdsh-free-searchFree web search for DeepSeek Harness: 13 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable/Firecrawl keyless; Parallel/Perplexity/SerpBase/DeepSeek with key) + time filtering + platform search + web_fetch, with web settings UI.Find Plugindsh-find-pluginFind DeepSeek Harness plugins inside the agent — live GitHub dsh-plugin topic search, ranked by stars.

README

📑 dsh-research-report

  • 1024 store channel: npm i -g dsh1024 once, then dsh1024 plugin --profile web add dsh-research-report (counts toward the deepseek1024.com install ranking).

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 dsh-v0.1.6-alpha.2 (verified 2026-09-18). npm dev/test line 0.1.6-alpha.2; peers >=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0. The compat matrix pins all three declared peer lines. On this line Session.append's third parameter is a SurfaceIntent for surface-eligible types only, so research-report/* events still do not land in the session log: the ledger journals are the durable source of truth and the audit mirror activates only once a host knows the vocabulary (the regression lock in test/events-gate.spec.ts pins that). 0.1.5-alpha.1 (adapted 2026-09-09): the session envelope keeps its ignorable field for stored-log read compatibility only - Session.append still cannot stamp it, so audit-gate behavior is unchanged. Verified 2026-09-11 against the published 0.1.5-rc.2 types (full local gate chain); the compat workflow pins both declared peer lines.
  • Node ^22.19.0 || >=24.0.0, ESM only ("type": "module").
  • Peer dependencies: @deepseek-ai/cordis ^4.0.2, @deepseek-ai/schemastery ^3.18.2, 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.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0.
  • 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 falsification log 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.

Quick start

git channel

# From a scratch profile (pins the commit; runs the self-contained `prepare` build)
dsh plugin --profile demo add "github:YOUR_ORG/dsh-research-report#<sha>"
# The profile's pnpm-workspace.yaml gains an allowBuilds entry for dsh-research-report on first add.

npm channel

dsh plugin --profile demo add dsh-research-report

Both channels install the bundle row (see cordis.patch.yml) into the profile's dsh.profile.bundles stack and take effect on restart.

Then, in a session:

evidence_add({ origin: "docs/market.md", title: "Market snapshot" })     # → ev-1a2b3c4d5e6f
research_report({ topic: "示例行业概览", sections: [...], claims: [...], evidenceRefs: ["ev-1a2b…"] })
ledger_query({ claimId: "c1" })                                          # bindings + verdict

Install & uninstall

dsh plugin --profile demo add dsh-research-report       # install
dsh plugin --profile demo remove dsh-research-report    # uninstall

Verify the row mounts: dsh --profile demo --dump-config | grep dsh-research-report.

Configuration

All tunables are Schemastery Config fields; invalid values fail the profile load loudly. Relative roots resolve against the harness working directory (the workspace).

KeyDefaultDescription
enabledtrueMaster switch; false mounts nothing.
ledgerRoot.research-ledgerEvidence-ledger directory (objects + JSONL journals).
reportRootresearch-reportsSealed-report root (versioned per topic and timestamp).
maxEvidenceBytes2097152Hard cap on one evidence snapshot's UTF-8 bytes.
maxEvidencePerReport200Hard cap on evidence items bound into one report.
fetchTimeoutMs20000Deadline (ms) for one ctx.web fetch during capture.
requireJournalMetadatafalseWhen true, DOI-typed evidence must carry a journal name and publication year at registration (fails loud otherwise).

Tools & surfaces

  • evidence_add({ origin, content?, title? }) — register one evidence snapshot. With content the text is stored verbatim; without it a URL origin is fetched through ctx.web and a workspace-relative path is read from disk (reads never escape the workspace). Returns the evidence id and SHA-256 hash.
  • research_report({ topic, title?, sections, claims, evidenceRefs, gather?, depth?, background? }) — assemble and seal a report: validate (unregistered claim references are rejected loudly), verify every claim, render report.md with visible markers, write manifest.json, and return the seal hash. gather: true runs ONE search round over ctx.web and returns captured candidate evidence plus an explicit gap list — it never auto-assembles. background: true returns { kind: 'background', jobId } over ctx.jobs.
  • ledger_query({ claimId? | evidenceId? }) — read-only binding/verdict queries; evidence is re-hashed on read so a tampered or missing snapshot is reported explicitly. With no id, returns a ledger summary.
  • ctx.researchReport.assemble(request) — the frozen service surface for sibling plugins (see src/service.ts; gated byte-for-byte by scripts/verify-frozen-contract.mjs).

Permissions & data

dsh-research-report consumes only public seams: ctx.tools, ctx.systemPrompt, and optionally ctx.web / ctx.jobs / ctx.dataQuality (looked up at call time, never injected). It writes only inside the configured ledger and report roots (both default to workspace-local directories), reads workspace files only inside the workspace, and reaches the network exclusively through the harness web seam — never a direct fetch. Evidence snapshots are immutable and content-addressed; claim registrations are immutable; verdicts are append-only.

Security boundaries

  • Tamper-evidence by construction — every snapshot read recomputes SHA-256 against the index; a mismatch verifies the bound claims contradicted and ledger_query reports integrity: tampered/missing.
  • Workspace confinement — local evidence reads resolve against the workspace root and refuse escapes (both sides are path.resolved before comparison).
  • Fail-loud configuration — invalid bounds throw at mount; unregistered claim references, unknown evidence ids, and id/content conflicts throw at assemble.
  • No credential handling, no hidden network — URL capture rides ctx.web (provider selection, error taxonomy, and any SSRF policy stay with the deployment's web providers).
  • Reversible registrations — every contribution goes through ctx.effect() / register(), so uninstall and hot reload are clean.

Known limitations

  • Byte-level, not semantic — the built-in check locates number/quote literals verbatim; paraphrased claims without a checkable literal verify as unverified, and a true claim whose number is absent while its label appears with a different value reads contradicted. This is a deliberate v1 choice (auditable beats clever).
  • Session events are adaptive — the plugin declares typed research-report/evidence, research-report/verify, and research-report/seal session events, but the 0.1.5-alpha.1 Session.append still exposes no ignorable option and no plugin event-registration surface, so appends activate only when the host build knows the types (otherwise the persistence layer would refuse the log on restore). The ledger journals are always the durable source of truth.
  • Default profiles mount no fetch provider — the shipped dsh-base mounts search only, so URL capture fails loud (WEB_UNAVAILABLE/WEB_PROVIDER_UNAVAILABLE) until a fetch provider is configured; search-based gather lists uncaptured sources in the gap list.
  • Single-workspace scope — ledger and report roots resolve against the harness working directory at mount; multi-workspace deployments should configure absolute roots per profile.

Verifier CLI

The standalone dsh-research-verify binary (bundled as lib/cli.js, zero @deepseek-ai imports) audits any sealed report directory without mounting the plugin:

dsh-research-verify --report <dir> [--seal <sha256>] [--ledger <dir>] [--format json|sarif]
  • --report <dir> — the sealed report directory (manifest.json + report.md + the audit journals).
  • --seal <sha256> — the expected seal hash to compare the recomputed manifest hash against. Omitted = the recomputed hash is reported without comparison.
  • --ledger <dir> — the evidence ledger root (objects/<sha256> + index.jsonl) enabling per-claim byte-level re-checks. Omitted = claim re-checks are skipped honestly.
  • --format — json (default) or sarif (SARIF 2.1.0).

It recomputes the seal hash (SHA-256 of manifest.json), the report.md hash, and the audit-journal hashes, re-runs the byte-level + integrity check for every claim, and exits non-zero when any performed check fails. The same verifySealedReport / buildVerificationReport / renderSarif / renderVerificationJson functions are exported from the package for library use.

Development

pnpm install
pnpm run typecheck && pnpm run typecheck:ci
pnpm test
pnpm run build
pnpm run verify:self-contained && pnpm run verify:artifacts
node scripts/check-readme-sync.mjs
node scripts/verify-frozen-contract.mjs
pnpm pack
  • typecheck resolves @deepseek-ai/* through the installed 0.1.5-rc.2 peers; typecheck:ci clears skipLibCheck and enables verbatimModuleSyntax against the published types. Both must stay green.
  • Tests use the real Context/Session/ToolRuntime/LocalJobRegistry/WebRuntime from the 0.1.5-rc.2 peers; only network backends are scripted providers registered through the real ctx.web registries.
  • Release: node scripts/release.mjs <x.y.z> (bumps, stamps CHANGELOG, re-runs the gate, commits + tags; never pushes).

Topics

dsh, dsh-plugin, deepseek-harness, cordis, research, evidence-ledger, verifiable-report, audit, citation-verification

Contributors

  • PerryLink — original author and maintainer: plugin architecture, evidence ledger, byte-level verification, sealed reports, five-language documentation, CI and release automation.

PerryLink DSH Plugin Family

This project is one of the 40 DeepSeek Harness plugins maintained by PerryLink. If this one helps you, the others likely will too:

PluginOne-liner
dsh-auto-reviewSecond-model auto-review on the approval chain, fail-closed by default
dsh-background-agentsDurable background child agents with a Web UI sidebar, messaging and interrupt
dsh-budgetCost governance for DeepSeek Harness: budgets, carbon, and latency in one panel.
dsh-checkpoint-rewindClaude Code /rewind-equivalent: snapshots, session forks, one-shot restore
dsh-claude-moveMigrate Claude Code sessions, memory, skills and CLAUDE.md into DSH
dsh-clickCross-platform native desktop control for DeepSeek Harness — Windows first.
dsh-composer-historyTerminal-style input history for the web composer: arrows, Ctrl+R search
dsh-data-qualityDataset quality checks and citation cross-checks (the optional numeric bridge consumed here)
dsh-defendPrompt-injection, jailbreak, and secret-leak defense for DeepSeek Harness.
dsh-doublecheckEngineering-discipline guard: requirements grill, test gates, adversary review
dsh-drawUnified static-image generation routing for DeepSeek Harness.

Install from the DSH Desktop Market

All PerryLink plugins are browsable in the built-in DSH Desktop Market: Market → Sources → add source → paste https://perrylink-dsh-catalog.perrylink.workers.dev/catalog-source.json → select it. Installation still goes through the Market's npm-identity verification and your confirmation.

License

Apache-2.0 — see LICENSE.

  • Read-only verifier loop — after sealing, a deterministic verifySealedReport fallback (zero network, zero model) recomputes the seal and audit hashes and re-checks every claim, writing the machine check to verifier-note.md; when ctx.jobs is mounted a read-only verifier job is also spawned (the model review is an enhancement, never a replacement).
  • Standalone verifier CLI — dsh-research-verify --report <dir> [--seal <sha256>] [--ledger <dir>] [--format json|sarif] recomputes the seal hash + per-claim re-checks from the sealed directory alone and prints a JSON envelope or a SARIF 2.1.0 document (see Verifier CLI).
  • Session-anchored evidence — evidence_add accepts an optional sessionRef (sessionId + eventRange, validated loud); the anchor is stored, rendered in Appendix B, and registered in the manifest and verification.jsonl. Session-anchored evidence verifies honestly as unverified (session-anchored evidence requires a manual check against the session log).
  • Honest gaps — unverified, insufficient, contradicted, and disproven claims keep a visible [未核实] / [证据不足] / [与证据矛盾] / [已证伪] marker in the report body and are listed in Appendix A. Nothing is silently passed.
  • No deep-research loop — retrieval orchestration is deliberately reused: ctx.web for search/fetch, ctx.jobs for long runs. Planning and synthesis stay with the model (or an upstream plugin).
  • dsh-fastRead-only performance diagnostics for DeepSeek Harness.
    dsh-fund-researchDeterministic research reports for Chinese public mutual funds
    dsh-githubGitHub PR/issues integration for DSH, every write gated by approval
    dsh-industry-researchIndustry research orchestration that seals its deliverables through this plugin's ctx.researchReport.assemble
    dsh-libraryLocal document knowledge base for DeepSeek Harness.
    dsh-local-aiLocal-model (Ollama) integration for DeepSeek Harness.
    dsh-lsp-actionsLSP diagnostics, formatting, completion, code actions and rename over language servers
    dsh-maskPII masking middleware: anonymize at the model boundary, restore at the display layer
    dsh-mcp-panelRead-only MCP runtime panel: /mcp command + Settings tab with status, tools and errors
    dsh-mementoApproval-gated cross-session memory: ctx.memory seam + SQLite + memory tool
    dsh-observeOpenTelemetry and Langfuse observability exporter for DeepSeek Harness.
    dsh-output-stylesClaude Code outputStyles-equivalent runtime style switching
    dsh-permission-rulesClaude Code-style declarative allow/deny/ask permission rules with audit
    dsh-personal-directivePersonal directive injector with top-bar toggle (framework edition)
    dsh-plugin-guidePlugin-development knowledge base as an on-demand agent skill
    dsh-plugin-doctorZero-dependency static + sandbox smoke detector for DSH plugins
    dsh-reachMulti-channel approval/question bridge: WeChat/Telegram/Feishu, session console
    dsh-scoreMulti-dimensional quality scoring for DeepSeek Harness plugins.
    dsh-session-pinPin sessions in the Web sidebar with durable ordering
    dsh-session-syncCross-device session sync for DeepSeek Harness — a dedicated git mirror of your session store.
    dsh-skill-pack-securitySecurity-audit skill pack: secret scan, dependency and supply-chain review
    dsh-talkVoice-first session loop for DeepSeek Harness: talk to it, hear it answer.
    dsh-test-driveIsolated install-and-smoke test drives for DeepSeek Harness plugins.
    dsh-ticktickTickTick/Dida365 task bridge: session-header panel + 11 tools
    dsh-translateVendor parameter translation and deterministic JSON repair for DeepSeek Harness.
    dsh-wechatWeChat ↔ DSH bridge (Tencent iLink bot): text/image/file/voice, approvals in chat
    dsh-autotierAutomatic strong/cheap model-tier routing with deterministic risk guards and a /tier command
    dsh-catalogDSH Desktop Market standard catalog source for the PerryLink family
    dsh-cert-mcpRead-only MCP server exposing the certification registry: grades, snapshots and five-dimension evidence
    dsh-kitOne-command starter pack that installs the core family
    dsh-plugin-certificationCommunity certification registry with repro-checkable grades and badges
    dsh-plugin-kitShared zero-runtime-dependency toolkit for the PerryLink DSH plugins
    dsh-plugin-portalZero-dependency static portal rendering the whole plugin family as one page
    dsh-plugin-upgrade-015Merged 0.1.3-alpha.1 → 0.1.5-rc.1 upgrade corridor card plus a zero-dependency seam scanner
    dsh-team-roomsCross-session team rooms: shared message bus, task board and timeline