dsh-norm-spec
plugin for norm-spec: session-scoped .norm convention injection, post-edit validation, and native norm tools.
- Stars
- 0
- Language
- Rust
- Created
- Aug 16, 2026
- Updated
- Aug 18, 2026
Introduction
dsh-norm-spec
DeepSeek Harness (dsh) Cordis plugin adapter for norm-spec
conventions: per-session .norm convention injection and soft post-edit
convention validation, backed by the canonical Rust engine.
Status: 0.1.0 stable, published to npm as
@cyanoorg/dsh-norm-spec.
DSH host supported: @deepseek-ai/dsh@0.1.0-rc.6.
Install
dsh plugin add @cyanoorg/dsh-norm-spec --profile <name>
That is all: the package ships a sealed upstream norm-spec payload and a
native bridge, resolved at runtime from the installed tree — no PATH
lookups, no environment variables. Platform binaries arrive through npm
optionalDependencies (darwin-arm64, darwin-x64, linux-x64,
win32-x64); npm selects the matching one automatically.
What it does
- Starts one verified
dsh-norm-bridgechild per DSH agent session (agent/session-start) against a sealed upstream norm-spec payload. - Injects collected
.normconventions atagent/pre-stepas one durable<system-reminder>user message, SHA-1 digest-suppressed, most-specific first — the same injection idiom as dsh's ownagent-instructions. - After successful
write/edittool calls, appends bounded strict validation feedback throughtools/post-execute(soft feedback; never blocks or reverts). - Registers native
norm_validate/norm_collect/norm_scantools and onedsh-norm-specskill so the model can inspect conventions on demand. - Never writes custom session event types; never falls back to a
normonPATH.
Local development
# Rust gates
cargo fmt --check
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo test --workspace --all-features
# TypeScript
npm install
npm run typecheck
npm test
Development may override the packaged runtime resolution with
DSH_NORM_BRIDGE and DSH_NORM_PAYLOAD environment variables;
packaged installs never use them. Release procedure (five-package
publish, dist-tag policy, post-publish verification) lives in
docs/RELEASE-SOP.md.
Documentation
docs/ARCHITECTURE.md— Rust/TypeScript boundary and DSH host surfacedocs/BRIDGE-PROTOCOL.md—dsh-norm-spec/bridge/v1process contractdocs/decisions.md— decision records D001–D011docs/RELEASE-SOP.md— release and publish proceduredocs/planning/status.md— live development stateROADMAP.md— milestone plan
License
MIT