# AI use cases for DSH Auto Review (PerryLink/dsh-auto-review)

Repo: [PerryLink/dsh-auto-review](https://github.com/PerryLink/dsh-auto-review) | Use cases: 3 | Page: https://dedupedai.com/use-cases/perrylink-dsh-auto-review/

dsh-auto-review is a DeepSeek Harness plugin that sends approval requests to a read-only second-model reviewer, which returns allow or deny verdicts with reasons and fails closed by default.

This file holds every use case of this repo. Each one starts with a "## " heading and ends with its URL.

- Let a second model approve routine bash and write requests: https://dedupedai.com/use-cases/perrylink-dsh-auto-review/ai-review-routine-bash-and-write/
- Trace why an approval was allowed or denied: https://dedupedai.com/use-cases/perrylink-dsh-auto-review/audit-approval-decisions-from-session-log/
- Block risky commands with rules and a stricter fallback: https://dedupedai.com/use-cases/perrylink-dsh-auto-review/block-risky-commands-with-config-rules/

## How to let a second model approve routine bash and write requests with DSH Auto Review

Repo: [PerryLink/dsh-auto-review](https://github.com/PerryLink/dsh-auto-review) | Difficulty: Intermediate | Time: 30 minutes | Basis: From the README

Install the reviewer so bash and write approvals get AI verdicts while other tools still go to a human.

**Who it is for:** A developer running DeepSeek Harness sessions who gets many approval prompts for routine shell and file writes and wants fewer interruptions.

**The problem:** Every bash or write request waits for a human answer, which slows routine work even when the action is safe.

**The outcome:** Bash and write requests are decided by a read-only reviewer with a stated reason, while every other tool, including edit, still goes to the human approval chain.

### Steps

1. Install the plugin from the git channel: `dsh plugin --profile web add github:PerryLink/dsh-auto-review`
2. If the install stops at native build scripts for koffi or node-pty, run `pnpm approve-builds`
3. Restart and verify the row: `dsh --profile web --dump-config | grep -A4 'id: auto-review'`
4. Start a session and run `/auto-review status` to confirm the plugin is active
5. Trigger a bash or write request and check that a verdict appears in `/auto-review status`

### Prompt to paste into your agent

```text
Using the repo PerryLink/dsh-auto-review, install it into the DeepSeek Harness profile <profile-name> with the git channel command from its README, then run dsh --profile <profile-name> --dump-config and confirm an entry with id auto-review is listed. Report the matching config lines and the output of /auto-review status. Verify that the toolsPolicy shows bash and write set to ai, and that edit is not set to ai unless the user asked for it.
```

### Caveat

Out of the box bash and write are AI-reviewed with no human in the loop, so review the shipped toolsPolicy before relying on it in sensitive projects.

Disclaimer: Third-party repos we don't own or vouch for. AI-generated use cases can be wrong: review everything and run at your own risk. Full text: https://dedupedai.com/disclaimer/

URL: https://dedupedai.com/use-cases/perrylink-dsh-auto-review/ai-review-routine-bash-and-write/

## How to trace why an approval was allowed or denied with DSH Auto Review

Repo: [PerryLink/dsh-auto-review](https://github.com/PerryLink/dsh-auto-review) | Difficulty: Intermediate | Time: 30 minutes | Basis: From the README

Rebuild each AI approval decision from the session log to check what the reviewer did.

**Who it is for:** A team lead or security-minded developer who needs to explain or review an approval that an AI reviewer allowed or denied.

**The problem:** When an agent action is approved or blocked automatically, it is hard to tell which evidence and which rule produced the decision.

**The outcome:** The reviewer's decision is traced from the session log through the events approval/asked, autoReview/verdict or autoReview/rejection, and approval/decided, with the reason attached.

### Steps

1. Install the plugin if it is not present: `dsh plugin --profile web add dsh-auto-review`
2. Run `/auto-review status` in the session to see recent verdicts and fallbacks
3. Open the session log and find the approval/asked event for the request you want to check
4. Follow the chain to the matching autoReview/verdict or autoReview/rejection event, then to approval/decided
5. Read the reviewer reason and riskLevel in the verdict and confirm the final decision matches it

### Prompt to paste into your agent

```text
Using the repo PerryLink/dsh-auto-review, locate in the session log of <session-id> the approval/asked event for the request named <request-id>, then follow it to the autoReview/verdict or autoReview/rejection event and the approval/decided event. Report the decision, the reviewer reason, and the riskLevel. Verify that the final approval/decided outcome matches the verdict, and flag any mismatch.
```

### Caveat

The audit chain depends on the session log keeping these events, and the README notes that allowUnmarkedAudit changes how hosts handle unmarked events, so check that setting before relying on the log.

Disclaimer: Third-party repos we don't own or vouch for. AI-generated use cases can be wrong: review everything and run at your own risk. Full text: https://dedupedai.com/disclaimer/

URL: https://dedupedai.com/use-cases/perrylink-dsh-auto-review/audit-approval-decisions-from-session-log/

## How to block risky commands with rules and a stricter fallback with DSH Auto Review

Repo: [PerryLink/dsh-auto-review](https://github.com/PerryLink/dsh-auto-review) | Difficulty: Advanced | Time: 45 minutes | Basis: From the README

Use riskRules, fallbackPolicy, and riskPolicy in cordis.yml to deny dangerous requests automatically.

**Who it is for:** An engineer who keeps DeepSeek Harness running on a shared repo and wants destructive commands blocked without a human answer.

**The problem:** A default setup may allow a command that matches a dangerous pattern, and a reviewer timeout may pass the request through.

**The outcome:** Requests that match a never rule are rejected with an auditable marker, and reviewer failures resolve through a chosen fallback policy.

### Steps

1. Open the profile patch that mounts the plugin row with id auto-review
2. Add riskRules entries with a pattern and policy: never for destructive shell commands
3. Set fallbackPolicy to delegate or keep the default rejected, and set reviewerTimeoutMs as needed
4. Set riskPolicy to a maxAutoAllow level that fits your risk tolerance
5. Restart, then run `dsh --profile web --dump-config | grep -A4 'id: auto-review'` to confirm the new values

### Prompt to paste into your agent

```text
Using the repo PerryLink/dsh-auto-review, edit the auto-review row in the cordis patch for profile <profile-name> to add a riskRules entry that sets policy never for the pattern <regex>, then verify with dsh --profile <profile-name> --dump-config that the entry is present. Report the final config block. Verify that the config is written in the profile patch and not in ~/.dsh/settings.yaml.
```

### Caveat

Changes must go in the profile patch that mounts the row, because the README states that ~/.dsh/settings.yaml has no effect on this plugin and gives no warning.

Disclaimer: Third-party repos we don't own or vouch for. AI-generated use cases can be wrong: review everything and run at your own risk. Full text: https://dedupedai.com/disclaimer/

URL: https://dedupedai.com/use-cases/perrylink-dsh-auto-review/block-risky-commands-with-config-rules/
