@deepseek-ai/dsh-thesis
Manifest validdsh-thesis governed local thesis context bundle for DeepSeek Harness
dsh-thesis
English | 中文
dsh-thesis is a DeepSeek Harness plugin for thesis-assisted writing. The repository and installable package are named dsh-thesis and @deepseek-ai/dsh-thesis, respectively; its DSH bundle id is thesisflow. General-purpose writing skills can handle local parts of thesis writing, but context limits often prevent them from reliably maintaining project-wide rules and global state.
Install
Install the repository into a DSH profile, then restart that profile:
dsh plugin --profile web add https://github.com/haoyuan-sjtu/dsh-thesis.git
The installed package declares dsh.bundle.patch, so DSH adds its patch layer to the selected profile automatically. To install it in the headless profile, replace web with headless.
Before restarting the profile, set THESISFLOW_PROJECT_CONFIG in the environment that launches it to the existing absolute path of thesisflow.yaml. The included cordis.patch.yml adds the plugin row and does not invent a project or registry path.
The project file contains non-sensitive metadata and a project-relative registry path:
projectId: thesis-2026-example
language: zh-CN
field: computer-science
chapterIds: [ch1, ch2, ch3]
defaultScope: project
privacyPolicy: project_confidential
contextTokenBudget: 1200
registryPath: .thesisflow/registry.json
The loader rejects missing required fields, absolute or parent-traversing registry paths, unsupported scope/privacy values, nested YAML that it cannot validate, and a registry with a permission, schema, JSON, checksum, lock, or migration failure.
Approval commands remain disabled unless the Host supplies principalResolver in the plugin configuration. The resolver receives { agent, commandId, signal } and must return the Host-verified local subject as { id, role: "project_owner", verified: true }; returning no subject or any other value fails closed. The resolver must read the Host's authenticated session state, never user text or model output.
principalResolver is a runtime function supplied by the embedding Host; it is not read from an environment variable, project YAML, or free-form command text. The shipped patch intentionally omits it, so a profile using only the patch can retrieve approved context but cannot write candidates or change record state.
Governance contract
New records are always written as quarantine. Only a Host-verified actor with { verified: true, role: "project_owner", id } can create candidates, approve, reject, revoke, delete, or restore. Free text, model output, and an unverified actor cannot change state. Approval requires provenance, content, and owner confirmation for citation_fact and evidence_claim; provenance, owner confirmation, and a review deadline for project_rule and latex_constraint; provenance and owner confirmation for advisor_feedback; and owner confirmation for chapter_state, terminology, and writing_decision.
The DSH human command surface exposes /thesisflow-capture <JSON candidate>, /thesisflow-review-queue, /thesisflow-review <JSON action>, and /thesisflow-route <task description>. Capture and review commands require the verified principal and use structured JSON; free text such as I approve is rejected. These are human-facing commands, not model tools. The review queue redacts restricted summaries and source details.
Retrieval starts from an empty set and requires the exact project id, approved status, local/project scope, allowed privacy, valid review and expiry deadlines, complete evidence, and task relevance or project-wide priority. Candidates are sorted deterministically and selected as complete records until the configured token budget is reached. Records are never partially truncated. Corruption, lock timeout, permission failure, checksum failure, and audit failure return no injected context.
The model sees one plugin-sourced user message containing JSON reference data with record ids, types, bounded summaries, chapters, task kinds, evidence reference ids, and an uncertainty label. The payload says that embedded text is non-executable. It does not contain original evidence, private conversations, credentials, or file paths. The model has no registry operation or approval tool.
Every request produces retrieval and injection/not-injected audit events. Approvals, rejections, revocations, conflict detection, deadline transitions, write failures, read failures, restoration, and logical deletion are also audited. Revocation increments the record version and excludes the record on the next request without a profile restart.
Limits
The MVP supports only one local project, local and project scope, and public, project_confidential, and restricted storage classifications. Restricted records are never injected. /thesisflow-route classifies the task and returns PaperSpine and academic-research suggestions, required inputs, expected outputs, and missing materials; it never executes a skill or promotes its output. There is no web UI, team/user scope, cloud synchronization, external command execution, school submission, or Humanize integration.
Verification
From this directory, run npm ci, npm run check, and npm pack --dry-run. The tests cover C0–C3, three-repeat deterministic selection, evidence rejection, quarantine, conflicts, deadline filtering, malicious summaries, next() ordering, revocation blocking, human commands, principal fail-closed behavior, task routing, and the real Cordis Loader export and mount path when the target DSH source is available.
Comments
Loading…
From the same category
DeepSeek Harness plugin for Reactive Resume: bridges your resumes and job applications into a Harness session over MCP.
★ 41.7k
↓ 270/wk
MIT
Aug 24, 2026
dsh plugin --profile web add dsh-plugin-reactive-resumeby Tencent
Let AI agents use your real, logged-in browser without interrupting your work. CLI + extension for browser automation across any shell-capable AI agent.
★ 8.1k
↓ 7k/wk
MIT
TypeScript
Sep 30, 2026
dsh plugin --profile terminal add @wxg-prc-cpg/browser-skill-dsh-pluginby yjh051108
dsh-routing-suite — injector + router-standard kit: install the runtime injector first, then the task-aware reasoning-mode router preset (measured P1-P23).
★ 7k
MIT
JavaScript
Sep 18, 2026
dsh plugin --profile web add @dsh-external/dsh-super-injectorby Q00
Agent OS: the agent gets smarter on its own. We just hold the line: Interview-gated, staged evaluation, budgeted evolution loop. MCP server, 14 runtimes: Claude Code, Codex CLI, Gemini CLI, OpenCode,
★ 6.2k
MIT
Python
Oct 4, 2026
by dsh-market
The plugin market inside DeepSeek Harness — browse, search, one-click install · DSH 可视化插件市场
★ 5.4k
↓ 164.4k/wk
MIT
TypeScript
Oct 3, 2026
dsh plugin --profile web add dshmarketby superdesigndev
OpenRouter for agent tools. Join community here: https://discord.gg/6mQYYfFMAn
★ 4.1k
NOASSERTION
Python
Oct 4, 2026
dsh plugin --profile web add treg-dsh