DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Terse — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins

@sagmans/dsh-terse

Terse

DeepSeek Harness 插件,让代理输出在不牺牲质量的前提下尽可能简洁、精炼、干净。始终启用,仅追加。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add @sagmans/dsh-terse@0.2.1
README兼容性版本

兼容性与来源证明

Terse 以 @sagmans/dsh-terse 发布,当前版本为 0.2.1。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
any
发布来源
npm
Registry 更新时间
2026/10/18

版本

0.2.1stable
2026/10/14
0.2.0stable
2026/9/30
0.1.0stable
2026/9/24
最新版
0.2.1
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
73.4 kB
文件数
20
Surface
any
许可证
MIT
发布源
npm
GitHub
★ 0
周下载
13
最近提交
2026/9/30
查看源码 ↗项目主页 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

README

dsh-terse

Mandatory, always-on terseness for DeepSeek Harness agents. Compresses everything an agent emits and everything it reads, without replacing the deployment's system prompt and without giving up answer quality.

There is no mode and no off switch. Mounting the row is the enabling act.

What it does

LayerExtension pointEffect
L1 constitutionsystemPrompt.sectionA static, cache-stable rule set that makes every reply compressed.
L2 standing remindersystemPrompt.contextA durable <system-reminder> snapshot that survives compaction, where a system-only rule fades.
L3 drift nudgetools/post-execute -> additionalContextsA one-line reminder that rides a tool result and catches a reply that ran long. Capped per turn; cannot loop.
L4 input shapingtools/post-execute contentCollapses repeated lines and elides the middle of oversized tool output, with a locator so the original is one call away.
L5 enforcementsystem-prompt/assembleAsserts the constitution survived assembly; logs a loud warning if it did not. Never rewrites peer contributions.
L6 coverageper-session stateCadence and reply observations keyed by the session object, so a resumed or forked session starts clean.

Why it does not hurt quality

Compression is aimed at the chat mouth, never at meaning or at durable artifacts:

  • Never cut negations, quantifiers, numbers, units, code, identifiers, paths, commands, or exact error strings. These are the token classes whose loss flips semantics.
  • Never fake terseness. Invented abbreviations and arrows cost the same tokens and hurt clarity; if the terse form is not shorter than plain, plain wins.
  • Full prose returns for security warnings, irreversible-action confirmations, order-sensitive multi-step sequences, and anywhere compression would create ambiguity.
  • Code is never judged as drift, so a long implementation is never punished.
  • Tool output is only elided reversibly, never lossy on errors, and the locator lets the agent pull the original back.

Those choices are measured in benchmark/README.md; their design record is a local working artifact, not a shipped doc.

Install

The plugin is one row, and it peers on the harness window >=0.1.5-rc.1 <0.3.0; the releases verified for it are listed in dsh.compatibility.dshReleases of package.json. Add it to a profile:

dsh plugin --profile <name> add @sagmans/dsh-terse

Or insert it directly in the profile's cordis.patch.yml:

- insert:
    - id: terse
      name: '@sagmans/dsh-terse'

The shipped row is in cordis.patch.yml.

Configuration

Every field is optional; the shipped defaults are the product.

FieldDefaultMeaning
constitutionshipped textReplaces the L1 rule set.
standingshipped textReplaces the L2 reminder; empty suppresses it.
shapingtrueWhether L4 runs.
driftsee belowL3 thresholds.
shapingConfigsee belowL4 bounds.
interface DriftConfig {
  maxReplyTokens: number           // 220  reply length above which the prose budget is exceeded
  minReplyTokensToJudge: number    // 60   floor below which no reply is judged
  maxProseRatio: number            // 0.72 prose ratio above which a long reply is padding
  minJudgeableProseRatio: number   // 0.4  below this the reply is code, never judged
  idleStepsBeforeNudge: number     // 14   steps with no nudge before the anti-drift backstop fires
  maxNudgesPerTurn: number         // 2    hard cap on nudges, and so on their extra steps
}

interface ShapingConfig {
  maxResultChars: number   // 12000 threshold above which a result may be elided
  headChars: number        // 3000  head kept
  tailChars: number        // 1500  tail kept, where error trails live
  duplicateRunMin: number  // 4     repeated lines before a run collapses
}

Development

pnpm install --frozen-lockfile
pnpm run typecheck
pnpm test
pnpm run build

A profile loads dist/, not src/; run pnpm run build before dogfooding a linked profile.

Try it in the TUI

scripts/dogfood/run-terse-from-worktree.sh clones the real ~/.dsh to a scratch directory, mounts this checkout on the real tui profile inside the clone, and launches it. Every composition input is present — your other bundles, the profile patch, settings, themes, credentials — while every write goes to the throwaway clone.

./scripts/dogfood/run-terse-from-worktree.sh              # clone, build, launch
./scripts/dogfood/run-terse-from-worktree.sh --no-launch  # set up, print the command
./scripts/dogfood/run-terse-from-worktree.sh --status     # show what the clone runs
./scripts/dogfood/run-terse-from-worktree.sh --with-sessions
./scripts/dogfood/run-terse-from-worktree.sh --clean      # remove the clone

What to look for on the surface: the status line shows injected … terse:standing … when the layer is live. Ask a short factual question (expect one line), ask for code inline (expect the full implementation, no elision), and ask something safety-critical (expect full prose). Those three cases are the contract; if the code case is trimmed, that is a bug.

Benchmark

benchmark/benchmark.sh measures this plugin against a control profile that lacks it. See benchmark/README.md; the neutral home is mandatory, because a profile whose global instructions already ask for brevity makes the control terse too.

License

MIT.

Git hooks

Checks run in tracked local Git hooks instead of push/PR CI. Run scripts/setup-hooks once after cloning; it points this clone's core.hooksPath at .githooks. Each hook runs the generic checks first (sign-off and commit message format, a gitleaks secret scan, and signed, signed-off commits on push), then this repository's checks in .githooks/<hook>.d/ in name order. Install gitleaks first. Every check must pass before you push; never use --no-verify. Pre-push checks test exactly each pushed commit: in place only when it is the clean, unmodified checkout, otherwise in a temporary worktree of that commit.

This repository's checks:

  • pre-commit: staged whitespace and conflict-marker check.
  • pre-push: npm audit signatures, pnpm run check, pnpm audit --audit-level high.