CyanoOrg
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 16, 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-alpha.1 local development. DSH host pinned to
@deepseek-ai/dsh@0.1.0-rc.6. Not published.
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). - 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
# Run the plugin in a real dsh checkout (after packaging exists):
# cordis.yml entry —
# - id: norm
# name: './packages/dsh-norm-spec' # or published package name
# config:
# launch:
# command: <bridge-binary>
# args: ["serve", "--payload", <sealed-payload>]
Until packaging exists, the plugin resolves its runtime from
DSH_NORM_BRIDGE and DSH_NORM_PAYLOAD environment variables.
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–D006docs/planning/status.md— live development stateROADMAP.md— milestone plan
License
MIT