ECOSYSTEM: @PLAYFORM 12 PLUGINS

Plugins

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.

Filter registry: 12 RESULTS

Core & Factory

2 PLUGINS
hook-dsh-core ROLE: CORE

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.

$ pnpm add @playform/hook-dsh-core
plugin-dsh-factory ROLE: FACTORY

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.

$ pnpm add @playform/plugin-dsh-factory

Governance

3 PLUGINS

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.

$ pnpm add @playform/hook-dsh-governor-package

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.

$ pnpm add @playform/hook-dsh-pinner-package

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.

$ pnpm add @playform/hook-dsh-governor-cargo

Normalize

7 PLUGINS - SIX STREAM FLAVORS + THE FILE TOOL

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.

$ pnpm add @playform/hook-dsh-normalize-dash

Hook @ DSH @ Normalize @ Quotes

The quotes flavor: maps the eight curly quote code points to their ASCII straight counterparts in model output streams.

$ pnpm add @playform/hook-dsh-normalize-quotes

Hook @ DSH @ Normalize @ Ellipsis

The ellipsis flavor: replaces the horizontal ellipsis (U+2026) with the plain ASCII three-dot sequence in model output streams.

$ pnpm add @playform/hook-dsh-normalize-ellipsis

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.

$ pnpm add @playform/hook-dsh-normalize-spaces

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.

$ pnpm add @playform/hook-dsh-normalize-invisible

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.

$ pnpm add @playform/hook-dsh-normalize-fullwidth

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.

$ pnpm add @playform/hook-dsh-normalize-file

Registered pipeline manifest plugins

ONTOLOGICAL REGISTRY

Deterministic transform pipeline sequence executing over the active PlayForm runtime.

SeqPlugin CoordinateOntology @-SentenceTarget RulesAction
01@playform/hook-dsh-coreHook @ DSH @ CoreSections • exclusions • suppression • policyACTIVE
02@playform/plugin-dsh-factoryPlugin @ DSH @ FactorySections • exclusions • suppression • policyACTIVE
03@playform/hook-dsh-governor-packageHook @ DSH @ Governor @ PackageManifest • chain pins • update stagesACTIVE
04@playform/hook-dsh-pinner-packageHook @ DSH @ Pinner @ PackageManifest • chain pins • update stagesACTIVE
05@playform/hook-dsh-governor-cargoHook @ DSH @ Governor @ CargoManifest • chain pins • update stagesACTIVE
06@playform/hook-dsh-normalize-dashHook @ DSH @ Normalize @ DashStream gate • single-pass transformACTIVE
07@playform/hook-dsh-normalize-quotesHook @ DSH @ Normalize @ QuotesStream gate • single-pass transformACTIVE
08@playform/hook-dsh-normalize-ellipsisHook @ DSH @ Normalize @ EllipsisStream gate • single-pass transformACTIVE
09@playform/hook-dsh-normalize-spacesHook @ DSH @ Normalize @ SpacesStream gate • single-pass transformACTIVE
10@playform/hook-dsh-normalize-invisibleHook @ DSH @ Normalize @ InvisibleStream gate • single-pass transformACTIVE
11@playform/hook-dsh-normalize-fullwidthHook @ DSH @ Normalize @ FullwidthStream gate • single-pass transformACTIVE
12@playform/hook-dsh-normalize-fileHook @ DSH @ Normalize @ FileStream gate • single-pass transformACTIVE

Where the family operates

THE HARNESS SEAMS

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:

SeamDeepSeek internalWho operates it
llm/stream (the model stream waterfall)@deepseek-ai/dsh-llm (type-only stream vocabulary)The six stream flavors
fs/observed + fs/write-intentctx.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.registerraw-write (normalize + govern flags); normalize-file
ctx.subprocessdsh-subprocess (fully-specified argv, no shell PATH drift)The cargo governor's cargo upgrade; the ncu bin mode
ctx.jobsThe jobs envelope (kind governor-update) + the detached fallbackThe two governors' update stages
The storage domainctx.get("storageDomain") - the package_governance v2 recordsFactory Journal; the normalize-file normalized events
Sessions / the ledgersThe durable ledger files ([<ISO>] <message>)All twelve, through the factory's Append

The smoke baseline

12 SUITES · 671 CHECKS · ALL PASS

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.

SuiteChecksSuiteChecks
hook-dsh-core14hook-dsh-normalize-dash132
plugin-dsh-factory34hook-dsh-normalize-quotes62
hook-dsh-governor-package78hook-dsh-normalize-ellipsis62
hook-dsh-pinner-package32hook-dsh-normalize-spaces62
hook-dsh-governor-cargo62hook-dsh-normalize-invisible62
hook-dsh-normalize-file71hook-dsh-normalize-fullwidth62

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 failure cases that shaped it

FOUND LIVE · FIXED · VERIFIED
The patch-layer config shadowing LIVE-FOUND · FIXED

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.

The same-observed-version guard race LIVE-FOUND · FIXED

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 P5 v2 storage open failure LIVE-FOUND · FIXED

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.

The cross-module re-processing bound BOUNDED BY DESIGN · VERIFIED LIVE

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).

The architecture in action

HOOKS · DELEGATIONS · INVERSIONS
Hooks HOOK POINTS

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).

Delegations DELEGATIONS

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.

Inversions INVERSIONS

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.