Evidence-driven company and job due-diligence for DSH: logs sources with evidence levels, adds evidence-bounded claims, verifies the legal entity against official registries, and renders a PROCEED/VERIFY/STOP report with a verification checklist and interview questions.
Install
# from npm (prebuilt)
dsh plugin --profile web add dsh-scout
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:MaxHou-infinity/dsh-scout
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
司察(Scout) — evidence-driven company & job due-diligence plugin for DeepSeek Harness.
dsh-scout helps an agent answer a concrete question:
Is this company and role worth taking to the next round, and what must I verify in the interview?
The plugin keeps facts, reported information, inference, unknowns, sources, and next actions separate. It starts conservatively at VERIFY until the company identity and high-impact claims are supported.
Naming
- Scout — a scout is sent ahead to reconnoiter a company and a role before you commit: background check, due diligence, evidence gathering, interview prep. The English package and repository name stays
dsh-scoutfor stable install references. - 司察 (sī-chá) — Chinese name: "司" echoes scout, "察" means to examine and reconnoiter, capturing the core function of evidence-driven company & role due diligence.
Current scope
This repository contains the first runnable, session-isolated slice:
scout_start: create an in-memory diligence case.scout_add_source: register a source.scout_ingest: batch-register collected research results (auto-infers source type and evidence level per URL, optionally drafting a claim per item; individual failures or rejected claims are isolated without aborting the batch).scout_search: run a web search through the DSH web provider and auto-register the result URLs as sources (type and evidence level inferred per URL).scout_add_claim: attach an evidence-bounded claim.scout_verify_identity: confirm the legal entity from anE3source.scout_verify_claim: promote a claim while retaining its prior evidence state.scout_report: render the current Markdown report (evidence summary counts, impact-sorted key evidence/risks/role hypotheses, a verification checklist, URL-linked source list, and interview questions).scout_questions: derive a deduplicated, prioritized interview question list from the case (up to 12 items).scout_compare: render a side-by-side comparison report for two to five cases (decisions, identity status, verified conclusions, open risks, and merged interview questions).scout_export: persist a case as the durable five-file export (case.json,sources.json,claims.json,events.jsonl,report.md) into a target directory (targetDiris optional; defaults to<scoutDir>/<caseId>).scout_import: restore a case from a five-file export directory and recompute its decision.
The first case fixture is Snapmaker HR Head. Its historical material is deliberately marked as E1 and is not treated as current verification.
Case state lives in memory by default and is isolated by DSH agent/session identity; scout_export / scout_import make a case durable across sessions through the five-file format with a replayable events.jsonl. Configurable storage is available via plugin config (scoutDir / autoPersist); scout_ingest handles batch source registration from collected search/page results and can draft claims from each item; scout_search runs the DSH web provider directly and auto-registers result sources; scout_compare renders side-by-side case comparisons. This repository does not yet claim the full product contract is complete.
Development
pnpm install
pnpm test
pnpm run check:release
The tests cover the conservative decision default, evidence-level constraints, identity verification, session isolation, report rendering, export/import round-trips, auto-persist, question generation, and tool cleanup on unload. check:release additionally packs the plugin, installs it into an isolated temporary DSH profile, verifies --dump-config, checks the mounted tools, and observes the Cordis unload disposer. The gate uses DSH_BIN or a local dsh binary when available; otherwise it downloads the exact official CLI version 0.1.2-rc.1 through npx.
Install into a DSH profile
The package is an installable DSH bundle:
dsh plugin --profile scout-demo add github:MaxHou-infinity/dsh-scout#<commit>
dsh --profile scout-demo --dump-config
Git installs fetch source and run prepare. pnpm may require an explicit allowBuilds entry for dsh-scout; only allow a pinned source you have reviewed. The current package targets DeepSeek Harness 0.1.2-rc.1, @deepseek-ai/dsh-tools 0.1.2-rc.1, and @deepseek-ai/cordis 4.0.2+.
Configuration (optional)
Configure dsh-scout in the DSH profile's cordis.patch.yml:
- id: dsh-scout
config:
scoutDir: /path/to/scout-cases # default export dir; cases land in <scoutDir>/<caseId>/
autoPersist: true # write the five files after every mutation (default false)
- Without
scoutDir,scout_exportwith notargetDirwrites to./dsh-scout/<caseId>/; - With
autoPersist: true, everyscout_start/scout_add_source/scout_ingest/scout_search/scout_add_claim/scout_verify_*persists automatically; a failed write does not break the main flow.
Design boundaries
- Its built-in
scout_searchonly turns search results into registered sources; it does not replace dedicated browser or MCP providers for deep retrieval. - It does not send applications, emails, or personal identity data to third parties.
- It does not turn funding, company self-description, or a job posting into verified success claims.
- It is not legal, investment, or medical advice.
See the product contract for the full MVP boundary and acceptance criteria.
Community
This is an independent community plugin for DeepSeek Harness. The repository uses the dsh-plugin, deepseek-harness, due-diligence, company-research, job-research, hr-tech, and evidence-based topics for discovery.
Links
More in this category
Tencent/WeKnora#dsh-weknora★ 31789
Four read-only tools over a WeKnora knowledge base: list knowledge bases, hybrid passage search, reassemble one document's chunks in order, and WeKnora's own cited RAG or ReAct-agent answer with a resumable session id.
superdesigndev/treg★ 4052
Tool catalog for agents: search ~2,600 external endpoints (SEO and SERP, backlinks, social, people and company enrichment, ad libraries, scraping) by the task you want done, read each one's parameters and per-call price, then call it with the credential injected server-side. Ships the skill plus an MCP row that stays disabled until TREG_TOKEN is set.
TencentCloudBase/CloudBase-AI-Toolkit#dsh-plugin★ 1130
Tencent CloudBase backend for DeepSeek Harness — scaffold and deploy full-stack apps from chat, render query results as table cards with paging, sorting and CSV export, preview a deployment on its domain, and call the CloudBase MCP toolset (`mcp__cloudbase__*`) with device-code login.
gitroomhq/postiz-agent#dsh-postiz★ 499
Connects DeepSeek Harness to Postiz over MCP: list connected social media channels, fetch per-platform posting rules, and schedule, draft, or publish posts to X, LinkedIn, Instagram, Facebook, Threads, TikTok, YouTube, Reddit, Bluesky, Mastodon, Discord, Slack, Telegram and more; adds a postiz workflow skill.
EthanYoQ/Invoice-Downloader#dsh-invoice-downloader★ 482
Local IMAP invoice download, OCR, archive, and Excel reimbursement summaries for DeepSeek Harness.
anysearch-team/anysearch-dsh★ 445
AnySearch-powered real-time web and vertical search provider for DeepSeek Harness.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.