Hook @ DSH @ Core
The pure, dependency-free commonalities of the family: the section lists, the exclusion segments, the suppression composer, the policy loader, the refusal guard and the normalize/Stream machinery.
The twelve TypeScript plugins of the DeepSeek Harness Plugin Family, each one a verified, smoke-arbitrated bundle. The release identity follows the reversed hierarchical naming - the "@-sentence" identity: the scope stays @playform, and the family/type marker leads, so a plugin name reads as a sentence about what it is.
Hook @ DSH @ Core
The pure, dependency-free commonalities of the family: the section lists, the exclusion segments, the suppression composer, the policy loader, the refusal guard and the normalize/Stream machinery.
Plugin @ DSH @ Factory
The family's first service: the ledger, the exclusion match, the discovery, the keep-list union, the gate set, the version-guarded fenced write, the refresh, the detached contained continuation, the State builder, the wiring, the effects, the schema factory and the probe-once seam.
Hook @ DSH @ Governor @ Package
The silent package.json governor: hooks fs/observed, rewrites chain-governed pins to the effective registry's resolved versions, and runs the update stage as a detached, contained continuation.
Hook @ DSH @ Pinner @ Package
The silent package.json version pinner: hooks fs/observed and deterministically rewrites every ranged dependency version to its static version, protected by a pin-policy keep-list.
Hook @ DSH @ Governor @ Cargo
The Cargo.toml governor: the Rust-sided flavor of the package governor - surgical chain-pin rewrites on the raw TOML lines and cargo upgrade driven through the subprocess seam.
Hook @ DSH @ Normalize @ Dash
The dash flavor: normalizes the unicode dash family to ASCII hyphen-minus in model output streams, mirroring the hermes regex at the injection point hermes lacks.
Hook @ DSH @ Normalize @ Quotes
The quotes flavor: maps the eight curly quote code points to their ASCII straight counterparts in model output streams.
Hook @ DSH @ Normalize @ Ellipsis
The ellipsis flavor: replaces the horizontal ellipsis (U+2026) with the plain ASCII three-dot sequence in model output streams.
Hook @ DSH @ Normalize @ Spaces
The spaces flavor: normalizes the unicode space family (Zs minus the ASCII space) to the plain space in model output streams.
Hook @ DSH @ Normalize @ Invisible
The invisible flavor: removes the zero-width/invisible character family (soft hyphen, zero-width spaces and joiners, bidi controls, BOM) from model output streams.
Hook @ DSH @ Normalize @ Fullwidth
The fullwidth flavor: maps the entire FULLWIDTH FORMS range (U+FF01-U+FF5E) to its ASCII half-width counterparts in model output streams.
Hook @ DSH @ Normalize @ File
The file-content normalizer: the normalize-file tool - the read, count, write pipeline applying all six transforms to a file already on disk, writing only when something changed.
Deterministic transform pipeline sequence executing over the active PlayForm runtime.
| Seq | Plugin Coordinate | Ontology @-Sentence | Target Rules | Action |
|---|---|---|---|---|
| 01 | @playform/hook-dsh-core | Hook @ DSH @ Core | Sections • exclusions • suppression • policy | ACTIVE |
| 02 | @playform/plugin-dsh-factory | Plugin @ DSH @ Factory | Sections • exclusions • suppression • policy | ACTIVE |
| 03 | @playform/hook-dsh-governor-package | Hook @ DSH @ Governor @ Package | Manifest • chain pins • update stages | ACTIVE |
| 04 | @playform/hook-dsh-pinner-package | Hook @ DSH @ Pinner @ Package | Manifest • chain pins • update stages | ACTIVE |
| 05 | @playform/hook-dsh-governor-cargo | Hook @ DSH @ Governor @ Cargo | Manifest • chain pins • update stages | ACTIVE |
| 06 | @playform/hook-dsh-normalize-dash | Hook @ DSH @ Normalize @ Dash | Stream gate • single-pass transform | ACTIVE |
| 07 | @playform/hook-dsh-normalize-quotes | Hook @ DSH @ Normalize @ Quotes | Stream gate • single-pass transform | ACTIVE |
| 08 | @playform/hook-dsh-normalize-ellipsis | Hook @ DSH @ Normalize @ Ellipsis | Stream gate • single-pass transform | ACTIVE |
| 09 | @playform/hook-dsh-normalize-spaces | Hook @ DSH @ Normalize @ Spaces | Stream gate • single-pass transform | ACTIVE |
| 10 | @playform/hook-dsh-normalize-invisible | Hook @ DSH @ Normalize @ Invisible | Stream gate • single-pass transform | ACTIVE |
| 11 | @playform/hook-dsh-normalize-fullwidth | Hook @ DSH @ Normalize @ Fullwidth | Stream gate • single-pass transform | ACTIVE |
| 12 | @playform/hook-dsh-normalize-file | Hook @ DSH @ Normalize @ File | Stream gate • single-pass transform | ACTIVE |
Every plugin operates inside the DeepSeek Harness through a fixed set of seams - the model stream waterfall, the filesystem events, the tool layer, the subprocess seam, the jobs envelope, the storage domain and the session ledger. This is where the twelve live, and the DeepSeek internals they work through:
| Seam | DeepSeek internal | Who operates it |
|---|---|---|
| llm/stream (the model stream waterfall) | @deepseek-ai/dsh-llm (type-only stream vocabulary) | The six stream flavors |
| fs/observed + fs/write-intent | ctx.fs - dsh-fs (local, sandbox, observation-policy) | The three governance hooks; the write executor behind every tool write |
| The tool layer (write / edit / str_replace_editor + the registered tools) | dsh-tool-fs; ctx.tools.register | raw-write (normalize + govern flags); normalize-file |
| ctx.subprocess | dsh-subprocess (fully-specified argv, no shell PATH drift) | The cargo governor's cargo upgrade; the ncu bin mode |
| ctx.jobs | The jobs envelope (kind governor-update) + the detached fallback | The two governors' update stages |
| The storage domain | ctx.get("storageDomain") - the package_governance v2 records | Factory Journal; the normalize-file normalized events |
| Sessions / the ledgers | The durable ledger files ([<ISO>] <message>) | All twelve, through the factory's Append |
The smokes are the arbiter: every suite loads the REAL built Target of its bundle and asserts the ledger strings byte-identically. The Effect-TS tree is held to the same bar - its swap-in happens only after its own smokes prove parity with these numbers.
| Suite | Checks | Suite | Checks |
|---|---|---|---|
| hook-dsh-core | 14 | hook-dsh-normalize-dash | 132 |
| plugin-dsh-factory | 34 | hook-dsh-normalize-quotes | 62 |
| hook-dsh-governor-package | 78 | hook-dsh-normalize-ellipsis | 62 |
| hook-dsh-pinner-package | 32 | hook-dsh-normalize-spaces | 62 |
| hook-dsh-governor-cargo | 62 | hook-dsh-normalize-invisible | 62 |
| hook-dsh-normalize-file | 71 | hook-dsh-normalize-fullwidth | 62 |
The smokes prove the mechanics; the live battery proves the wiring - every defect below was found live, not by the smokes, which is exactly why both exist.
The bundle cordis.patch.yml patch config REPLACES the entry config wholesale - the schema defaults (mutationTools) were shadowed in deployment, so the raw-write's fs/observed never triggered the chain. Solved: add raw-write to the three patch layers, and verify the LIVE effective config from the bundle layers - the Config inspect provider projects the schema, not the resolved config.
In the multi-step direct-govern fold every step wrote with the SAME observed version - only the first write could succeed, the later steps failed the stale-version check silently. Solved: the sequential fold awaits each step's chain, and the chain pass stats the target before its write (the fresh-version pattern) - the fold converges in any step order.
The package_governance v2 domain open failed SILENTLY against the v1 file (the exact-equality version check) - the silence made it undiagnosable. Solved: per-record layout + compatibleVersions [1] (76 v1 records auto-migrated) + backup-and-skip for invalid records + a loud failure line - live-confirmed on the next boot.
A governed write re-fires fs/observed - the interlock re-enters the listeners by design. Kept safe by construction: the Stash idempotence gate turns self re-entries into no-ops, the P3/U2 refresh re-emits with the same actor, and the live battery proves the re-pass is bounded and self-canonicalizing (governed + pinned converge).
Where the family attaches: the llm/stream waterfall wrap (next() first, options untouched, per-chunk), the fs/observed listeners (sync, after content is on disk, fired by the tool layer only), and the tool registrations into the agent's toolset (raw-write, normalize-file).
Who does the work: the factory's Direct-govern steps (per basename, the raw-write govern selection), the core's Dispatch/Settle envelope builder (a new update stage reduces to a child runner plus strings), the subprocess seam for the external tools, and the Effect-TS services mirroring the same seams.
Who owns what: the Dependencies injection builders (every collection, child stage and string injected), the module-owned ledger strings (the byte-identical contract), the consumers bring their own metal while the factory pours the mold, and the smokes as the arbiter after every change.