deepseek-harness/docs/rfc
Tianyi Cui 11a29fdefe feat(invariants): dev-mode event-contract assertions + session-log freeze (RFC 005 pt 3, RFC 008)
New @deepseek-ai/dsh-invariants plugin (pure listeners, off in prod) asserts
the event taxonomy at runtime — seq monotonicity, turn/step nesting, a
tool/result needs a prior tool/call (NOT the converse), legal agent/status
transitions — and deep-freezes logged event data so mutating history throws.
Seeded sessions are checked + frozen on session/created.

The real RFC 008 fix is always-on: deriveMessages now structured-clones the
content it emits, so the loop's sanctioned request/adapter mutation can no
longer reach back and rewrite the append-only log. The pervasive
DeepReadonly<T> type flip is rejected (compile-only, high-noise, castable) —
recorded in ADR 0012, which folds in RFC 008. Wired into both demos.
2026-06-13 23:25:12 +08:00
..
001-property-based-testing.md docs: unwrap hard-wrapped Markdown to one line per paragraph 2026-06-13 20:27:04 +08:00
002-mutation-testing.md docs: unwrap hard-wrapped Markdown to one line per paragraph 2026-06-13 20:27:04 +08:00
003-deterministic-and-stress-testing.md docs: unwrap hard-wrapped Markdown to one line per paragraph 2026-06-13 20:27:04 +08:00
004-architectural-conformance.md docs: unwrap hard-wrapped Markdown to one line per paragraph 2026-06-13 20:27:04 +08:00
005-runtime-validation-and-error-taxonomy.md feat(invariants): dev-mode event-contract assertions + session-log freeze (RFC 005 pt 3, RFC 008) 2026-06-13 23:25:12 +08:00
006-doc-sync-and-api-reports.md docs: unwrap hard-wrapped Markdown to one line per paragraph 2026-06-13 20:27:04 +08:00
007-supply-chain-and-vendor-drift.md docs: unwrap hard-wrapped Markdown to one line per paragraph 2026-06-13 20:27:04 +08:00
008-immutable-public-surfaces.md feat(invariants): dev-mode event-contract assertions + session-log freeze (RFC 005 pt 3, RFC 008) 2026-06-13 23:25:12 +08:00
README.md feat(invariants): dev-mode event-contract assertions + session-log freeze (RFC 005 pt 3, RFC 008) 2026-06-13 23:25:12 +08:00

RFCs

Proposals for substantial future work — reviewed before implementation, unlike ADRs (which record decisions already made). Each RFC groups a related set of ideas from the quality/robustness proposal (2026-06-11); statuses move proposed → accepted → implemented (then usually graduate to an ADR).

# Title Status
001 Property-based testing for protocol-shaped code proposed
002 Mutation testing as the coverage counterweight proposed
003 Deterministic tests + replay invariant fixture + race stress proposed
004 Architectural rules: dependency-cruiser, adapter conformance kit proposed
005 Runtime arg validation, structured error taxonomy, dev-mode invariants partially implemented
006 Doc-sync enforcement and API extractor reports proposed
007 Supply chain checks and vendor drift verification proposed
008 Deep-readonly public surfaces implemented (revised)