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.

DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins

@playform/ets-hook-dsh-edit-suggester

Ets Hook Dsh Edit Suggester

The edit-suggester hook: a DeepSeek Harness plugin that hooks the tools/post-execute waterfall and, when a modification call (write, edit, raw-write) lands on a file whose family carries a STANDARD COMPANION SET (the version lives in 36 manifests, 6 Apply

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

npx -y @deepseek-ai/dsh plugin --profile web add @playform/ets-hook-dsh-edit-suggester@0.2.1
READMECompatibilityVersions

Compatibility and provenance

Ets Hook Dsh Edit Suggester is published as @playform/ets-hook-dsh-edit-suggester and currently resolves to version 0.2.1. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
any
Release source
npm
Registry updated
11/4/2026

Versions

0.2.1stable
10/28/2026
0.2.0stable
10/25/2026
0.1.0stable
10/25/2026

Related plugins

Loading related plugins…

Latest
0.2.1
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
61.4 kB
Files
58
Surface
any
License
CC0-1.0
Source
npm
GitHub
★ 2
Weekly downloads
317
Security scan
✓ v0.2.1 scan passed
Last push
11/4/2026
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 developer-tools.

Cc Safety Netcc-safety-netA coding agent CLI hook - block destructive commands and secret file accessRemotedsh-remoteRemote-work assistant for DeepSeek Harness: connect SSH (password/key/agent/keyboard-interactive, multi-hop ProxyJump), list hosts from ~/.ssh/config, pick a remote workspace, operate on it with 21 rw_* tools, conflict-aware mirror sync, an embedded PTY tMattpocock Skills Deckdsh-mattpocock-skills-deck🌹 Includes 27 engineering and productivity skills from mattpocock/skills v1.3.2 upon installation, with no need to install skills manually. Built using 52 billion tokens, this plugin provides 10× development efficiency on top of the original skills and helps beginners get started with the skill suiBailian Kb Dshbailian-kb-dshBailian knowledge-base tools for DeepSeek Harness: kb_search and kb_chat over the DashScope RAG API, plus the bl CLI management skill.

README

@playform/hook-dsh-edit-suggester

v0.2.1 - UNPUBLISHED - plan: SEARCH-SUGGESTER-PLUGIN

The role

The modification-intent companion suggester for the DeepSeek Harness plugin family (the Classic release).

A DeepSeek Harness plugin that hooks the tools/post-execute waterfall for the modification tools (write, edit, raw-write).

When the edited path matches one of the convention families, it prepends ONE labeled additionalContexts note that names the standard companions the model has not touched yet: "this file rarely stands alone."

It is the second consumer of the pattern algebra of the search-suggester and of its two-consumer extraction trigger (SEARCH-SUGGESTER-PLUGIN.md sections 1.4 and 8).

Why

The evidence of the search-suggester shows that the edit is where the discovery happens: the model edited its way to the target sets that it never thought to open.

The convention of the repo is that a file rarely stands alone.

The version lives in 36 manifests, 6 Apply.ts files, the CHANGELOG and the prose, and a Config.ts edit must also land in the Config section of the README, SCHEME.md, the cordis.patch.yml row, and the byte-exact test.

The search consumer deliberately refuses to own the edit transform, and this consumer owns the NOTIFY side of it: it names the companions, never the change.

The families

Seven, in priority order: Version (0.85, because a wrong version companion set is costly), Config, Symbol, Test, Doc, Prose, Workflow.

Each family is a pack row: its path rules (regexes on the edited path with weights) and its standard companion set, where each companion is a path or glob with a prior and one reason phrase ("the Config section", "the byte-exact assertion", "the long tail").

A companion without a reason is not emitted.

The families are pack-driven: the built-in pack (the default of this monorepo) lives in @playform/ets-lib-dsh-pack and is projected here as the edit/ domain.

A repository that ships .dsh/pack.yml (or a user-layer pack at ~/.dsh/playform/workspaces/<slug>.yml) gets its OWN edit/ families, and a repository without a pack stays silent.

The gate

The same algebra as the search consumer: k = sigmoid(sum(weights) - 0.6), the candidate scoring over the pickable heuristics (see below), and the noise control (a cooldown, a dedupe, a per-turn cap, and the already-touched filter).

Companions that the model edited earlier this turn are dropped, and when nothing remains the verdict is an already-touched abstention.

Every abstention and suppression is a ledger line.

The learning layer (D8)

Every emitted note, and every gated silence worth learning from (low-confidence, already-touched), records a decision: the family, the companion rows with their six pickable heuristic values (scope, graph, prior, literal, history, accept), the effective weight table, the enabled list, and a pending outcome placeholder.

The record is logged (decided ...) and stored through the optional pattern service (ctx.get("pattern"), probed per use, never an inject).

Without that service it lives in a bounded in-memory fallback (storeLimit, default 512), which is per instance and documented as such.

The note opens a follow-through window counted in judged calls (never a timer).

A later call that names one of the companions of the note is an accept for that companion and its family (accepted <Family> <path>), and a window that reaches learnWindow judged calls untouched closes as a soft reject (rejected <Family> <n> companions).

Both fill the outcome of the decision record and move the learned accept rates.

The score is sum over the enabled heuristics of weight * value:

HeuristicValueDefault weight
scope1.00 - the call matched the family's path rules0.35
graph0.50 - the neutral graph-distance placeholder0.00
priorthe pack's prior for the companion0.25
literal0.50 - the neutral literal (no generated index)0.25
historythe learned per-companion accept rate (neutral 1/3)0.15
acceptthe learned per-family accept rate (neutral 1/3)0.00

The default row is exactly the PoC formula, and a missing store answers the neutral 1/3, so the default behavior is unchanged byte-for-byte.

A user can disable any heuristic (heuristics) or re-weight any of them (weights), and the decision record plus the decided line show the choice.

The delivery

One note, never a content replacement and never a claim of the Transform: the post-execute listener runs after the ccr and the normalize family and only adds additionalContexts.

The note carries the plugin's own source label ({kind: "edit-suggester", form: "notice", summary}).

The grep/read/bash calls are not judged, because this is the edit side of the family and it is disjoint from the trigger set of the search suggester.

The waterfall discipline

next() is always awaited first, and pass-through returns the downstream decision unchanged.

The whole transform is fail-open: an internal error logs a warning and the decision passes through, so a note never fails a tool call.

The configuration

See SCHEME.md for the full schema.

Every knob is volatile (hot-editable, no remount).

The learning layer adds learn, learnWindow, heuristics, weights, and storeLimit.

Ships disabled - enable by explicit ACTIVATE in the profile.

The plan

  • SEARCH-SUGGESTER-PLUGIN - the pattern algebra (sections 1.4 and 8, the second consumer).

License

CC0-1.0.