dsh-taste-loop
Taste-loop plugin for DeepSeek Harness (DSH, host-only): a self-service taste protocol for domain agents — record judgments, propose versioned rule revisions, and reach independent-session quorum consensus, with human arbitration for disputes.
Tools
| Tool | Purpose |
|---|---|
taste_rules |
Registered rules + proposal states (effective / pending_review / needs_arbitration) |
taste_case |
Deterministic case ID — the same judgment point always maps to the same ID |
taste_record |
Record a taste judgment into the verifier inbox |
taste_queue |
Snapshot of the human arbitration / settlement queue |
taste_update |
Self-service rule lifecycle: propose / list / blind / endorse / resolve |
Self-service rule lifecycle
- Any domain agent creates or revises a versioned rule proposal (
taste_update propose). History is append-only JSONL; nothing auto-activates. - Two independent DSH sessions (distinct from the proposal author;
ctx=decision:contexts never count) endorse the same revision → it becomes the domain'seffectiveversion. Consensuseffectiveand humanratifiedare always reported separately. - Two independent dissenting sessions →
needs_arbitration. The previous effective version stays in force while the dispute is frozen. - A human arbiter (see
arbiterSessionIds) resolves the dispute; every resolution appends a claim and a resolution row.
Security boundary: HTTP gateway callers (self-reported X-Market-Client) may write ordinary judgments, but can never propose shared rules, endorse, or resolve — only native DSH session identities are trusted for shared-rule operations. Proposal/endorsement/resolution ledgers are serialized with crash-recoverable file locks.
Install
From a local checkout (recommended for now):
dsh plugin --profile web add /path/to/dsh-taste-loop
From GitHub source: the prepare script builds lib/, but @deepseek-ai/* peers resolve only inside a DSH profile — a standalone pnpm add github:NelsonLongxiang/dsh-taste-loop outside a DSH profile may fail typecheck.
Configuration (cordis.patch.yml)
- id: taste-loop
config:
verifierRepo: 'D:path oerifier-repo' # required
inboxHome: 'D:path oinbox' # optional
host: 127.0.0.1 # taste-mcp HTTP face
port: 9810
arbiterSessionIds: [] # DSH session IDs allowed to resolve disputes
Development
pnpm install && pnpm build && pnpm verify && pnpm drift
No comments yet. Be the first to write one.