Finale: Five Engineering Views — What Should We Copy?
Five harnesses’ design-philosophy master table, plus a minimum copy list and a scale-trap list
THE QUESTION THIS PAGE ANSWERS
ANSWER FIRSTFinale: Five Engineering Views — What Should We Copy?
Five harnesses’ design-philosophy master table, plus a minimum copy list and a scale-trap list
Make the claim earn its place. Use this page as a decision aid, not a definition to memorize. Connect the idea to one real task, one observable result, and one failure that would change your mind.
Write one question you could answer with evidence after trying this idea.
A conclusion that sounds complete but leaves the key assumption untested.
Play first, then the lecture. Below are the main mechanisms from the whole series as checkable cards — each tagged with the problem it solves and its prerequisite mechanisms. Pick what your project needs like ordering dishes; the right side builds your architecture list live: missing deps go red, scale traps warn whether you can afford them. Hit Play for a typical foot-gun-then-fix walkthrough.
The series dissects DSH, but every lesson compares with others. For the finale, put all five on one table. Three dimensions: source of truth (where the authoritative copy of conversation state lives), extension model (how third parties add capability), safety reliance (what keeps you from blowing up).
After the table, remember one thing: none of the five is right or wrong — only stance. Claude Code’s circuit-breaker numbers come from real bills; Grok’s static composition buys compile-time certainty; Codex writes distrust into the OS layer; OpenCode puts swappable models first. DSH’s peculiarity is ranking provability above “nice to use” — a runtime stance, and the root of its doc and test bulk.
The series covered ~30 mechanisms; most bind to DSH’s plugin framework. Five are pure ideas you can take and use:
- Event-log source of truth. Conversation state lives in one append-only event sequence; the message array is always derived from it. One JSONL file plus a fold function is the minimal build — recovery and replay come free (details in Model-visible ⟺ logged).
- Three input semantics. Messages users send while the agent works get three explicit fates — queue, interject, interrupt — as interface semantics. Without this layer, input timing is Schrödinger’s state.
- Dual-path compaction. Active pressure probing and passive overflow recovery hang separately — different events, conditions, failure semantics (see Compaction Dual Paths).
- Provenance auth. Every chunk entering context carries a source tag; high-privilege ops only trust trustworthy sources. Instructions hidden in tool results cannot impersonate the user.
- Monotone Guard. Dangerous releases like retry and recovery always demand monotonically increasing evidence (generation numbers, counters) — never a plugin’s word alone.
What the five share: they are interface-semantics decisions, independent of language or framework. A weekend builds the rough cut; the rest is polish.
Conversely, three things DSH piled up with dedicated-team headcount — individuals and small teams will go sideways if they copy:
- A 219-package plugin tree. Everything Is a Plugin means every capability splits into Service Definition, Provider, and Consumer roles, with README, tests, and doc pairing. DSH has 49 package groups and 268 READMEs. For the same need in your project, a plugins folder plus conventions is enough.
- Bilingual three-file doc pairing. Each doc is English, Chinese, plus a
.i18n.yamlrecording both blob hashes — change one side without reconfirming the pair and CI goes red. Beautiful discipline; cost starts at 2× per doc change. - Per-file 100% coverage gate. Every source file needs 100% line coverage. DSH’s own proposed note (
2026-06-11-mutation-testing) admits coverage only proves code ran. Without AI-scale test writing capacity, the gate just pushes “runs but never asserts” fake tests.
Copy mechanisms, not the frameworkThe five copyables are interface semantics; the three traps are infrastructure. Test: does the design still hold if you delete the framework? If yes, copy it.
Scale is cost — and a team’s self-proof18k lines of docs, 684 active and archived notes, per-file coverage gates — keeping them requires AI capacity plus someone owning the gates. What it proves is investment more than necessity.
What’s unfinished is honest tooDSH puts unfinished work in black and white: pre-release posture, no format compatibility promise, MCP bridges only one capability, no interactive TUI. To judge a project’s maturity, see if it dares publish that table.
The finale doesn’t hype the hero. DSH is a developer preview; section 2 at the top of root AGENTS.md states the pre-release stance:
SCHEMA_VERSION; dsh-session keeps SESSION_FORMAT_VERSION at 0 with no compatibility promise.(Roughly: remove this section at the first tagged release. With no external consumers, prefer the correct foundation over compatibility shims; backends reject old on-disk formats; session format version stays at 0 with no compatibility promise.) Source: deepseek-harness-master repo root
AGENTS.md lines 5–7, verified on 2026-08-13
On MCP, only tools are bridged; Resources and Prompts are explicitly deferred — packages/mcp/mcp-client/README.md line 111: “Tools are the only bridged MCP capability — Resources and Prompts have no harness consumer and are deferred.” Product entry points are only Web UI and headless (apps/ has just cli and web) — no interactive TUI like Claude Code or Grok Build. These three aren’t black marks; they’re trade-offs: don’t pour the second floor before the foundation sets.
One last piece that’s easy to skip — and best explains DSH’s motive. Its four product modes are four preset config files; minimal mode’s core config is just these lines:
# The `minimal` agent preset: a fixed-prompt, two-tool coding-agent composition.
#
# The persona is the complete system prompt, so global identity, Web orientation,
# tool guidance, and later assembly listeners cannot add prompt text. Runtime
# context snapshots are suppressed for this preset, and the model composes only
# persistent `bash` and `str_replace_editor`. Context compaction is absent.
- id: persona
name: '@deepseek-ai/dsh-persona'
config:
text: You are a helpful software engineer assistant.
complete: true
includeRuntimeContext: false
apps/cli/config/agent-presets/minimal/agent.cordis.yml, verified on 2026-08-13. Code blocks keep the original source text.Read what this config does: the System Prompt is one sentence and marked complete — no plugin can add text; runtime context is suppressed; tools are only bash and str_replace_editor; no compaction. Every harness-side variable is wrung to the minimum. Root BENCHMARK.md recommends running this minimal variant via the Python SDK for benchmarks, with an independent workspace and session per task.
That explains one motive for DeepSeek building a harness: a model vendor needs a standardized, reproducible, compaction-free measuring instrument for its own models — and happened to ship a general runtime. Anthropic built Claude Code so the model serves the product; half of DeepSeek’s DSH is to measure the model itself. Different stance, different engineering view. Looking ahead, agentic RL training and model eval will only grow hungrier for replayable, provable harnesses — likely where DSH’s heavy-mechanism path pays off first.
The control group’s finales corroborate: Grok series Engineering retrospective & evidence boundary and Coding Agent design workbench answer the same questions from a Rust monolith angle — read both sides and the five engineering views line up.
Architecture-review your own project with the buffet
Go back to the top demo and check against your real project: mark what you already have, leave gaps empty. Read the red warnings on the right — find at least one missing-dep combo (e.g. retry logic with no monotone evidence). Then answer: how little code to fill the gap? If more than a week, you should copy a lower layer first.
The handoffs inside “Interactive demo · Design-decision buffet”
“Play first, then the lecture.” shows that an Agent is not defined by the model alone. Each handoff between model, context, tools, state, permissions, and people affects both progress and recovery.
Write the state before adding capability
Starting from “The series dissects DSH, but every lesson compares with others.”, split the workflow into starting state, next action, tool result, state update, and stop condition. Debugging then means finding the first lost piece of information or authority instead of saying vaguely that the model “got worse”.
- Three input semantics. Messages users send while the agent works get three explicit fates — queue, interject, interrupt — as interface semantics. Without this layer, input timing i…
- Dual-path compaction. Active pressure probing and passive overflow recovery hang separately — different events, conditions, failure semantics (see Compaction Dual Paths )
- Provenance auth. Every chunk entering context carries a source tag; high-privilege ops only trust trustworthy sources. Instructions hidden in tool results cannot impersonate the us…
A happy path is not reliability
Use “Go back to the top demo and check against your real project: mark what you already have, leave gaps empty.” to replay one successful and one failed run. Record the context, tool result, and owner at each turn; the workflow is maintainable when a second person can follow it without the original builder.
From “Interactive demo · Design-decision buffet” to “Five engineering views · one master table”
“Interactive demo · Design-decision buffet” grounds the problem in “Play first, then the lecture. Below are the main mechanisms from the whole series as checkable cards — each tagged with the problem it solves and its prerequisite mechanisms. Pick what your project needs like o…”. “Five engineering views · one master table” then moves it toward “The series dissects DSH, but every lesson compares with others. For the finale, put all five on one table. Three dimensions: source of truth (where the authoritative copy of conversation state lives), extension…”. Together, they show that the lesson is not just a conclusion to remember, but a claim with conditions.
Carry the judgment into the next situation
When analyzing an Agent, trace state, action, tool result, and next step in order. Each handoff should explain where information came from, who confirmed it, and where failure stops.
- “Interactive demo · Design-decision buffet”: Play first, then the lecture. Below are the main mechanisms from the whole series as checkable cards — each tagged with the problem it solves and its prerequisite mechanisms. Pick what your project needs like o…
- “Five engineering views · one master table”: The series dissects DSH, but every lesson compares with others. For the finale, put all five on one table. Three dimensions: source of truth (where the authoritative copy of conversation state lives), extension…
- “The closing point”: Bilingual three-file doc pairing. Each doc is English, Chinese, plus a .i18n.yaml recording both blob hashes — change one side without reconfirming the pair and CI goes red. Beautiful discipline; cost starts at…
The final “The closing point” brings the discussion to “Bilingual three-file doc pairing. Each doc is English, Chinese, plus a .i18n.yaml recording both blob hashes — change one side without reconfirming the pair and CI goes red. Beautiful discipline; cost starts at…”. The useful thing to carry forward is knowing which judgments must be revisited when input, scale, or risk changes.
I turned one judgment from this article into a small experiment I could run today. Knowing what to observe next is more useful than simply remembering the conclusion.
After reading this, I first looked for the conditions behind the idea instead of copying the method into a project. That order made the later trade-offs much clearer.
When this judgment reaches real work, which constraint should be added first? I am curious which step matters most between reading and the first practical attempt.
No discussion on this article yet.