Mandatory cross-review for design proposals and lessons-learned: auto-detects design doc writes and enqueues them (tier=review) into the task queue, delivers the external reviewer verdict back to the initiating session, and appends approved preventive measures to OPS-GUARDRAILS.md (append-only, conflict-checked).
Install
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:nicecx/dsh-design-review
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
Mandatory cross-review of design documents and lessons-learned with an external ops agent (e.g. Hermes). Any session that writes a design document automatically files a review-handoff request (type=design);
lesson_review_submitfiles type=lesson reviews whose approved measures are appended toOPS-GUARDRAILS.md.
Why
Design decisions and operational lessons should not live and die inside a single conversation. This plugin makes cross-review mechanized: a design document written in any DSH session is automatically submitted to the external ops agent (Hermes) for review; an incident's lesson is reviewed for preventability — and approved preventive measures are permanently appended to the guardrails file so the same class of mistake is not repeated.
It pairs with dsh-reset-handoff and dsh-auto-approver: reset → external executor, approval → external verdict, design/lesson → external cross-review. All three speak the same review-handoff protocol.
How it works
any session writes a design doc (*.design.md / DESIGN.md / PROPOSAL.md / keyword match)
→ dsh-design-review (tools/execute intercept, own-write exempt)
→ files review-handoff request.json (type=design, single-slot safe)
→ Hermes cron reviews (reads doc, checks files, runs tests)
→ verdict injected back into the originating session + doc header marker
lesson_review_submit(incident, rootCause, lesson, ...)
→ files type=lesson request
→ Hermes reviews preventability + same-class risk + guardrail conflict
→ approved → measure appended to ~/.dsh/OPS-GUARDRAILS.md (append-only, dated, git-revertible)
Install
dsh plugin --profile <profile> add github:nicecx/dsh-design-review
Configuration
- id: dsh-design-review
name: 'dsh-design-review'
config:
mode: 'advisory' # advisory | mandatory | off (default advisory)
patterns: # design-doc path patterns (narrow default)
- '**/*.design.md'
- 'DESIGN.md'
- 'PROPOSAL.md'
keywords: # content heuristic for .md first 40 lines
- 设计方案
- 技术方案
- 架构设计
- 'Design Proposal'
queueMode: 'skip' # skip (safe, default) | queue (explicit pending queue)
gitGate: false # mandatory extra: block git commit until approved (default off)
| mode | behavior |
|---|---|
advisory |
auto-submit + notify the session; non-blocking. Default. |
mandatory |
auto-submit + hard notice "review pending, hold implementation"; optional gitGate. |
off |
inert. |
Tools
| Tool | Purpose |
|---|---|
design_review_submit(title, docPath, changeFiles?, tests?) |
File a type=design review (auto-detection also fires on design-doc writes). |
lesson_review_submit(title, incident, rootCause, lesson, impact?, reproducible?) |
File a type=lesson review; approved measures append to OPS-GUARDRAILS.md. |
review_status() |
Latest request, verdict, queue length. |
Safety design
- Own-write exemption: the plugin's own doc-header markers never re-trigger interception (no infinite loop).
- Single-slot protection: never overwrites a pending
request.json;queueMode=skip(default) or explicitqueuewith a drain loop. - watchdog integration: the result poll is registered with
dsh-task-watchdog(not a bare setTimeout). - Guardrail append: append-only, dated, with incident ref + source; conflict detection against existing rules; file is git-tracked for rollback.
- fail-closed: 30 min without a verdict → marked
failed-review(never silently treated as approved).
License
MIT
联动(20260902-003 approved,独立部署·协议联动)
与 dsh-task-queue(队列中枢)联动:设计文档/lesson auto-submit 入队 review tier → 消费端出队 → 单槽检查写 request.json → Hermes 审核 → 结论按 sessionId 路由回发起会话;approved 守则追加 OPS-GUARDRAILS + 缺陷模式传播扫描。详见协作契约「二·五 架构总览」。
Links
More in this category
yjh051108/dsh-routing-suite★ 6997
One repository, three parts: a runtime injector for DSH plugin packages (inject, hot-reload, unload, promote a dev staging tool to the front, route self-heal, plus a settings-page plugin manager that lists, unloads and drags folders in to internalize), a task-aware reasoning-mode router agent preset (router-standard / router-spec / router-react), and a graded two-level task protocol whose six tools (commit_star, lock_stage, revise_do, edit_plan, mark_task, redteam_verdict) pin task state to disk. The injector implementation ships in-tree, so the install carries its own behaviour rather than a dependency list.
strukto-ai/mirage#dsh★ 3696
Swaps the filesystem and bash providers for a mirage virtual workspace: file tools and shell commands run over mounted resources (RAM, S3, Redis, Slack, Gmail, Notion, Postgres) instead of the host disk, with per-mount read/write/exec modes, per-command sandbox routing (monty, pyodide, quickjs in process; docker, e2b, daytona remote), and installed CLIs (git, gh, slack, linear, ntn, gws, or one you register) as head words in the virtual terminal.
first-fluke/oh-my-agent#dsh★ 1344
Runs project OMA checks before and after tool execution and when a turn tries to finish. Installs its OMA CLI dependency and initializes unconfigured projects on first use. Requires Node.js 22+; initial setup needs network access and project write access.
hust-open-atom-club/oh-dsh★ 322
Community distribution: TUI, desktop, and Web UI as one bundle with layered installation.
weijiafu14/pi2dsh★ 217
Pi Host ABI compatibility engine: after one install, unmodified Pi extensions from npm mount as native DSH plugins with `dsh plugin add <pi-package>`. Verified end to end on stock DSH with pi-mcp-adapter (full MCP manager: OAuth, resources, prompts, MCP Apps, elicitation, sampling), @tintinweb/pi-subagents, pi-code, pi-hermes-memory and pi-background-tasks; `pi2dsh inspect` reports a package's compatibility before installing.
Fishquito7/dsh-skill-mcp-panel★ 207
Manages DSH skills and MCP servers from the web settings: skill cards with hot enable/disable, workspace scopes, groups, batch migration and drag-and-drop import, plus stdio/HTTP MCP CRUD with connection tests, secret redaction and the unified dsh-panel CLI.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.