DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

Review Squad — DSH Plugin for DeepSeek Harness
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins
R

dsh-review-squad

Review Squad

Parallel multi-role code review squad: one /review command dispatches four read-only reviewer subagents for security, correctness, tests, and style, with each assigned its own model and thinking intensity, then aggregates a structured report grouped by severity.

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add github:luomeii/dsh-review-squad#aaa6d1fb1e6e6007822ae5580202f7a0c7055452
READMECompatibilityVersions

Compatibility and provenance

Review Squad is published as dsh-review-squad and currently resolves to version 0.1.1. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
github
Registry updated
8/30/2026

Versions

0.1.1stable
8/30/2026

Related plugins

Loading related plugins…

Latest
0.1.1
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
web
License
MIT
Source
github
GitHub
★ 0
Weekly downloads
0
Last push
9/20/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue

Related plugins

More verified plugins in developer-tools.

Web App@deepseek-ai/dsh-web-appThe dsh browser-surface bundle: the web patch layer over dsh-base plus the runtime glue plugin (frontend dist serving, web-surface prompt, bash runtime variables, URL line)Sdk Minimal@deepseek-ai/dsh-sdk-minimalThe standalone minimal SDK profile bundle: JSON-RPC, one DeepSeek adapter, persistent shell, and JSONL sessionsSdk App@deepseek-ai/dsh-sdk-appThe dsh SDK profile bundle: stdio JSON-RPC serving and process lifecycle over dsh-baseSubagent Codex@deepseek-ai/dsh-subagent-codexOne-shot Codex subagent provider over the official app-server protocol

README

dsh-review-squad

中文说明

A parallel multi-role code review squad for DeepSeek Harness.

One /review command dispatches independent reviewer subagents — security, correctness, tests, and style — that gather evidence themselves (read the diff, trace callers, check conventions) in strict read-only mode, and merges their work into one severity-grouped report. Each reviewer can optionally run on its own model: put your strongest model on security and a cheap fast model on style.

Why

Existing dsh git plugins stop at diff viewers and worktree cleanup. Review is the workflow other agent ecosystems keep voting for with their stars (Claude Code's official security review, compound-engineering, Superpowers), and dsh's subagent registry — parallel spawned children, per-child model routing, tool filters — is exactly the right primitive for it.

Install

# into a profile (default profile is `web`)
dsh plugin --profile web add dsh-review-squad

Or straight from a GitHub checkout:

dsh plugin --profile web add github:<owner>/dsh-review-squad

Requires dsh ≥ 0.1.1-rc.2 (the base bundle with spawn subagent provider and tool-str-replace-editor — both ship in @deepseek-ai/dsh-base).

Use

Slash command (you)

/review                          # full squad on uncommitted changes (git diff HEAD)
/review staged                   # staged changes only
/review commit abc1234           # one commit
/review path src/lib             # one path
/review security tests           # only these reviewers
/review --style                  # everyone except style
/review stop                       # stop this session's running review jobs
/review watch the retry logic    # extra focus text for every reviewer

Tool (your agent)

The model gets a code_review tool and can run the squad on its own work before calling a task done:

parametermeaning
scopediff (default) · staged · commit:<sha> · path:<dir-or-file>
focusextra concerns for every reviewer
reviewerscomma-separated keys, --key excludes

Background execution

/review runs the squad as a background job by default (commandBackground: true): the command returns instantly with a job id, so the chat input is never locked while the reviewers work. When the job settles, the session agent is notified; read the report with job_output (or just ask the model "read the review job result"). Set commandBackground: false (settings.yaml review-squad: section) to wait inline instead. The code_review tool always runs foreground.

The report

# Code review report — uncommitted changes
Reviewers: security, correctness, tests, style · findings: 5

| severity | count |
|---|---|
| CRITICAL | 1 |

## CRITICAL
- **SQL injection in user lookup — `src/db/users.ts:42` *(security)***

## Reviewer verdicts
- **security**: Would block merging: yes, because of the injection.
...

Failed reviewers are reported per-reviewer (stop reason + diagnostic + partial output) instead of dragging the whole run down. Reports are deterministically aggregated — no extra LLM call — and hard-capped (maxReportChars, INFO→LOW→MEDIUM sections dropped first).

How it works

/review ──┐
          ├──► engine: pick reviewers ──► ctx.subagents.start("spawn", …) × N (parallel)
code_review ┘                                    │ per reviewer:
                                                 │  · prompt = persona + evidence guide + read-only rules + output format
                                                 │  · agentOptions = optional per-reviewer provider/model/effort
                                                 │  · toolFilter.deny = str_replace_editor, write, edit, subagent, subagent_fork
                                                 ▼
                                    results collected (timeout + cancel per reviewer) ──► deterministic merge

Reviewers are spawned dsh children: fresh context, their own tools, your workspace. They find the evidence themselves — git diff, reading files, tracing code — which is what makes the review deep instead of a prompt over a diff. Read-only is enforced twice: prompt discipline and a toolFilter deny list.

Configuration

Override the review-squad row from a later patch layer (~/.dsh/profiles/<profile>/cordis.patch.yml or a --patch overlay). Patch rows replace whole configs — restate everything you keep.

fielddefaultmeaning
providerspawnctx.subagents provider used for reviewers
commandNamereviewslash command name
toolNamecode_reviewtool name
toolFilterDeny['str_replace_editor','write','edit','subagent','subagent_fork','workflow','ralph','send_message','web_search']tools reviewers lose — includes every delegation tool (they must not spawn anything) and web search (cost); unknown names are healed automatically
timeoutMs600000per-reviewer wall-clock budget
maxConcurrent2reviewers run in batches of this many (gentler on API limits)
maxReportChars24000report hard cap
languageendescriptive text language (severity/file/line markers stay English so parsing works)
reviewersbuilt-in fourthe squad (see below)

Custom squad — the "strong brain, cheap hands" pattern

- id: review-squad
  name: dsh-review-squad
  config:
    language: zh
    reviewers:
      - key: security
        role: Security reviewer
        instructions: Hunt for injection, authz gaps, committed secrets, unsafe crypto.
        agentOptions:
          provider: deepseek-official
          model: deepseek-v4-pro
          reasoningEffort: max
      - key: style
        role: Style reviewer
        instructions: Naming, duplication, complexity, conventions.
        agentOptions:
          provider: my-cheap-gateway
          model: glm-4.6-flash

agentOptions needs a provider that supports the agentOptions subagent capability (the built-in spawn provider does).

Settings page (Web UI)

The plugin ships its own "Review Squad" section in the dsh web Settings page: edit each reviewer's model route (provider / model / reasoning effort / max tokens), report language, timeout, report budget, and the tool deny list. Saving goes through dsh's settings.update channel into the review-squad: section of settings.yaml and applies live (no restart).

Runtime overrides — settings.yaml (hot-reloaded)

Every field except the structural ones (commandName/toolName) can also be changed without restarting dsh via the review-squad: section of $DSH_HOME/settings.yaml (~/.dsh/settings.yaml). Values there override the bundle config at every invocation:

# ~/.dsh/settings.yaml
review-squad:
  language: zh
  timeoutMs: 300000
  reviewers:
    - key: security
      role: Security reviewer
      instructions: Hunt for injection, authz gaps, committed secrets, unsafe crypto.
      agentOptions:
        provider: deepseek-official
        model: deepseek-v4-pro
        reasoningEffort: max
    - key: style
      role: Style reviewer
      instructions: Naming, duplication, complexity, conventions.
      agentOptions:
        provider: my-cheap-gateway   # any provider configured on the Models page
        model: glm-4.6-flash

Omit the section to fall back to the bundle config. (The bundle-config reviewers example in the patch layer above does the same thing at load time; prefer settings.yaml for day-to-day tuning.)

Compat notes (verified)

  • Verified end-to-end on dsh 0.1.1-rc.2 (Windows, deepseek-v4-flash): real dispatched reviewer via spawn, per-reviewer agentOptions routing honored by the in-process driver, findings parsed and aggregated from real model output.
  • On 0.1.1-rc.2 the spawn provider does not declare the agentOptions capability (it is honored at the driver level). The plugin pre-checks capabilities.agentOptions and, if a runtime rejects the route, retries the reviewer on the session's model and states that in the report — per-reviewer routing degrades loudly, never breaks the run.
  • toolFilterDeny names are validated fail-loud by dsh; the defaults all exist in the base bundle on 0.1.1-rc.2.
  • Overriding the plugin row from a --patch overlay or profile cordis.patch.yml uses the direct row form (- id: review-squad + config:), not - insert: (inserting a second row with the same id fails the boot).

Development

pnpm install
node --test            # 70 unit/integration tests, no dsh runtime needed

Smoke-test the composition without a running server:

dsh plugin --profile dshrs-dev add ./dsh-review-squad
dsh --profile dshrs-dev --dump-config | grep review-squad

Note: while another dsh web instance is running, a second instance can hang at boot (shared $DSH_HOME); stop the first one before booting the dev profile — or point DSH_HOME at a scratch directory for fully isolated runs.

Submit to awesome-dsh-plugin

docs/awesome-entry.yml is the ready-made YAML entry (category git). Fill in your owner, add the dsh-plugin topic to your repo, and follow the one-entry-per-PR rules of awesome-dsh-plugin.

Feedback & contact

Found a bug or want a feature? Open an issue or start a discussion. For direct contact: luomeiy@outlook.com · https://github.com/luomeii

License

MIT