dsh-egm
Design-review gate for DeepSeek Harness, a DSH port of Google's Elephant-Goldfish Model: a context-rich Elephant session drafts the design, then fresh, zero-context, read-only Goldfish reviewers stress-test it before implementation. Registers the `egm` plugin id; install one EGM bundle per profile.
Install
dsh plugin --profile web add dsh-egm
Sandbox test results
| Stage | Result |
|---|---|
| 1 install | ✓ |
| 2 list | ✓ |
| 3 mount | ✓ |
| 4 boot | — |
Four stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).
README
<p align="center">
<img src="adapters/dsh/icon.svg?v=2" width="96" height="96" alt="dsh-egm mark: the elephant's front half and the goldfish's tail cut at the split">
</p>
<h1 align="center">🐘 dsh-egm 🐟</h1>
<p align="center">English  ·  <a href="docs/README.zh-CN.md">简体中文</a></p>
<p align="center"><strong>Design with an elephant. Review with a goldfish.</strong></p>
<p align="center">
<a href="#install">Install</a>  · 
<a href="#quickstart">Quickstart</a>  · 
<a href="#how-it-works">How it works</a>  · 
<a href="#what-this-plugin-adds">The plugin</a>  · 
<a href="#included-skills">Skills</a>  · 
<a href="#example-run">Example run</a>  · 
<a href="#feedback-and-support">Feedback</a>
</p>
<p align="center">
<a href="LICENSE"><img alt="License: Apache-2.0" src="https://img.shields.io/badge/license-Apache--2.0-blue.svg"></a>
<a href="https://github.com/dryw/dsh-egm/actions/workflows/ci.yml"><img alt="CI" src="https://github.com/dryw/dsh-egm/actions/workflows/ci.yml/badge.svg"></a>
<a href="https://dsh-plugin.org/plugins/dryw/dsh-egm"><img alt="Listed on dsh-plugin.org" src="https://dsh-plugin.org/badges/listed.svg"></a>
<a href="https://www.npmjs.com/package/dsh-egm"><img alt="npm: dsh-egm" src="https://img.shields.io/npm/v/dsh-egm"></a>
<img alt="DeepSeek Harness 0.2.x" src="https://img.shields.io/badge/DSH-0.2.x-4c1.svg">
</p>
<p align="center"><sub>Google's Elephant-Goldfish Model, adapted for DeepSeek Harness.</sub></p>
Meet the Elephant 🐘
The Elephant is your long-running design partner.
It explores your project, reads the relevant code, asks questions, and helps you work through alternatives. It keeps track of the decisions you've made and the reasons behind them. Together, you develop a design document.
But the Elephant has a problem. It remembers too much.
After hours of discussion, it understands what you meant, even when you haven't written it down. Ask the Elephant whether the design makes sense, and it might unconsciously fill in the gaps from your earlier conversation.
That's dangerous, because whoever implements the design next won't necessarily have that context.
We need someone who doesn't remember.
Meet the Goldfish 🐟
The Goldfish starts fresh.
It hasn't participated in your design discussions. It doesn't know why you chose a particular architecture or which requirements you explained but forgot to write down. It receives a self-contained review prompt, the design, and the reference material it needs. It can read and search permitted project files, but it doesn't inherit the Elephant's conversation.
Then it tries to understand what you've written.
Can it figure out how the system is supposed to work? Are the requirements unambiguous? Are failure cases accounted for? Do the interfaces fit together? And, most importantly, could someone build this correctly without having been part of the original conversation?
When the Goldfish discovers a problem, the Elephant helps you address it. You revise the document, review it again, and decide when it's ready.
The result isn't just a specification. It's project knowledge that can survive the conversation that created it.
Why bother?
AI coding assistants have three recurring failure modes:
1. Forget. Important decisions disappear when a conversation is compacted or restarted.
2. Assume. An assistant confidently implements requirements nobody actually agreed on.
3. Agree. An assistant reviewing its own design can quietly carry the same unwritten assumptions into the review.
The Elephant-Goldfish Model (EGM) separates the context-rich design conversation from independent, fresh-context criticism. dsh-egm brings that workflow to DeepSeek Harness as a native plugin.
It's useful when a feature, migration, or architectural change needs decisions before code. For a small, well-understood bug fix, your normal coding workflow is probably enough.
Install
You'll need:
- DeepSeek Harness 0.2.x, compatible with the package's declared range
>=0.2.1-rc.5 <0.3.0. - Node.js 22 or 24 (
>=22 <25; CI tests Node 22 and 24). If you're using the DSH 0.2.2 alpha line, its own requirement is Node 24.9 or newer.
Install the plugin into your Harness profile. The example uses web; substitute the profile you actually use.
dsh plugin --profile web add dsh-egm
Restart Harness, then check Settings → Plugins to confirm it's enabled.
The bundle declares the read-only egm-reviewer preset, but it does not create the host's agent-preset service. egm_reviewer needs a profile that composes an agentPresets registry resolving a valid default preset, plus an in-process spawn subagent provider. Harness web profiles already compose both. For a profile without a registry (for example headless), the package ships an opt-in patch: add --patch <installed package>/adapters/dsh/agent-presets.patch.yml when starting the profile. Without a registry egm_reviewer fails closed (the agent-presets service is not composed); the [host guide](docs/dsh.md#host-prerequisites-and-current-limit) lists the exact refusals and the observed effect of applying the patch to a profile that already has a registry. The package does not compose the registry automatically.
For local development, you can install from a checkout instead:
dsh plugin --profile web add /path/to/dsh-egm
Quickstart
Copy each slash command below into the Harness chat.
Imagine you're adding webhook delivery to an application. Before writing code, you need answers to questions like: What happens if delivery fails? What if the same event arrives twice?
1. Explore the idea.
/egm-brainstorm Add webhook delivery to this application.
The Elephant helps you explore requirements, alte
…(truncated)
Rendered from the README published on npm. Formatted only, not edited.
Versions
Published on npm::8,最后更新 2026-11-05