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/plugin-dsh-normalize-file

Plugin Dsh Normalize File

The file-content normalizer flavor: a DeepSeek Harness plugin that registers the normalize family's `normalize-file` tool - the read → count → write pipeline over files ALREADY on disk, beyond the tool layer. One agent-chosen file per call: the target's c

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

npx -y @deepseek-ai/dsh plugin --profile web add @playform/plugin-dsh-normalize-file@0.2.1
READMECompatibilityVersions

Compatibility and provenance

Plugin Dsh Normalize File is published as @playform/plugin-dsh-normalize-file 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
36.9 kB
Files
28
Surface
any
License
CC0-1.0
Source
npm
GitHub
★ 2
Weekly downloads
274
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.

Better Sidebardsh-better-sidebarBetter Sidebar for DSH — file tree, editor, changes, tasks and side chat in one column, separate for every conversation. Also exposes a service other plugins use to register sidebar tabs and file viewers.Client Ui Git Graph@linxin666/dsh-client-ui-git-graphExternal dsh web GUI plugin: a blank-session git branch selector + Git graph, with real host-side git operations and guards, as a dsh profile bundleSsh@linxin666/dsh-sshRemote SSH operations for the dsh web GUI: host config store (~/.dsh/dsh-ssh.json, import from ~/.ssh/config), a persistent ssh2 connection pool with jump-host support, exec / PTY web terminal / SFTP transfer / local port-forward tunnels / cluster executiUpdate@linxin666/dsh-updateSelf-update plugin for the dsh web GUI: probes npm for newer family releases and runs the owning profile's pnpm update in place, from a sidebar trigger beside the settings seat with a release-notes panel

README

@playform/plugin-dsh-normalize-file - The file-content normalizer

Version 0.1.0 - UNPUBLISHED (the npm bootstrap tier 2-planned / 3-candidates).

Plan: SCHEME.md.

The role

The file-content normalizer is a DeepSeek Harness plugin that registers the normalize-file TOOL of the normalize family: the read → count → write pipeline over files ALREADY on disk, beyond the tool layer.

One agent-chosen file per call: the plugin reads the content of the target, applies the family's SIX transforms with a per-character count, and writes the rewritten content back only when N > 0, through the ONE shared write executor of the factory, which covers the resolve-side read, the fs/write-intent waterfall, the standing sandbox policy, writeText, and the root-context fs/observed present emit.

The six transforms are the Dashes/Quotes/Ellipsis/Spaces/Invisible/Fullwidth tables of the core through the shared Replace/ReplaceMap replacers, which is the same chain that raw-write applies under normalize: true.

N = 0 writes NOTHING, which is the no-op no-write rule.

The rewrite is explicit, visible in a diff card that shows the before and the after, and opt-in by construction, because this is the first LISTENER-LESS flavor of the family: it has no llm/stream and no fs/observed, and the background-rewrite posture of the design report is deliberately deferred, because that posture would break the old_string contract of the edit tool.

The surfaces

KindNameWhat
toolnormalize-fileThe tool the plugin registers (Context.tools.register) - one file per call.
toolnormalize-overpassThe human command (registered through the factory's commands seam): arms a one-shot overpass.
listenertools/post-executeThe tool-results overpass arm (registered with prepend: true).
listeneragent/pre-stepThe batch overpass arm.
configSchemastery Config schemaThe exported Config (the minimal shared block + the module's own fields).
configledger fileThe module's own ledger, SEPARATE from the family's logs (one log per module).

The configuration

FieldTypeDefaultMeaning
logbooleantrueLedger enabled - write the durable log file (volatile).
logFilestring~/.dsh/playform/plugin-dsh-normalize-file.logThe file-flavor ledger, SEPARATE from the family's logs (volatile; overrides the minimal shared block's empty default).
replacementstring-The dash replacement - the transform's ONLY knob (ASCII hyphen-minus by default; volatile: the next tool call picks it up with no remount).
scopesobject(see leaves)Granular scope gates, ALL volatile as one object (live toggling, no remount): one leaf change commits one update whose whole object the refresh listener re-reads.
scopes.conversationbooleantrueThe conversation/text/block-end gate.
scopes.reasoningbooleantrueThe reasoning sub-gate.
scopes.toolInputbooleanfalseThe tool-call arguments arm.
scopes.toolResultsbooleanfalseThe tools/post-execute arm.
scopes.filesbooleantrueThe normalize-file tool itself - the ONLY arm this tool flavor has; off means the tool returns the unchanged changed: false result with no read, no write, no ledger line.
scopes.batchbooleanfalseThe agent/pre-step arm.
toolResultsExemptstring[]["read", "edit", "raw-write", "normalize-file", "ccr_retrieve", "subagent", "ask_user_question"]Tool-results exemption list (volatile): a tool result whose exec name is listed passes through by identity.

All fields are volatile, so hot edits commit WITHOUT remounting the plugin.

The other five scopes are inert in this flavor but stay present in the schema, so one patch override drives the whole family.

The ledger

plugin-dsh-normalize-file: activated (replacement=-, logFile=~/.dsh/playform/plugin-dsh-normalize-file.log)
plugin-dsh-normalize-file: normalized N char(s) in <path>
plugin-dsh-normalize-file: command "normalize-overpass" registration skipped (the mount continues): <cause>

The factory's Append writes these lines, and the durable file line is [<ISO>] <message>.

apply() writes the activation line, and the count line follows only a successful N > 0 write, so a no-op writes no line and a failed read or an aborted call writes none either.

Each N > 0 write also journals one normalized record into the shared package_governance v2 domain.

The build and the tests

  • Build: pnpm --config.verify-deps-before-run=false --dir Classic/packages/plugin-dsh-normalize-file run prepublishOnly
  • Smokes: node Classic/packages/plugin-dsh-normalize-file/Target/Test/<Folder>/Test.js
    • Config-And-Registration - 18 checks
    • Error-Paths - 10 checks
    • No-Op-Rule - 11 checks
    • Overpass - 29 checks
    • Presenters - 8 checks
    • Read-Write-Pipeline - 24 checks
    • Volatile-Live-Flip - 12 checks

The plan

SCHEME.md.