# omp-advisor [oh-my-pi](https://github.com/can1357/oh-my-pi)'s **advisor** for the DeepSeek Harness (DSH). A second model reads every step the main agent takes and adds notes inline: a quiet aside, a concern, or a hard blocker. It runs on its own context and can use its own model, so it catches what the main agent misses while focused on the task. ## How it works - **When it reviews:** after each completed step (the agent's message, tool calls and tool results). It gets a compact digest of the conversation: the task at the head, the latest steps at the tail, and long tool output clipped. The digest also lists the advice it already gave, so it doesn't repeat itself. - **What it answers:** `{"verdict": "ok" | "note" | "concern" | "blocker", "message": "…"}`. `ok` is the common case, and nothing is shown. - **How advice reaches the agent:** - **note / concern** is appended to the agent's next request as a system reminder. - **blocker** gets the same reminder, marked *stop and address this*. If it arrives as the agent tries to end its turn, the advisor **steers** the agent into one more step to deal with it. - **Cost to the main loop:** reviews run in the background and add no latency, unless you set `blocking: true`. - **Subagents:** skipped by default (`skipSubagents`). Blockers are for real damage or clear wrong turns: destructive commands, secret leaks, pushing broken code, ignoring explicit instructions, going in circles. Concerns cover likely bugs, wrong assumptions, unverified claims, or a much better approach. ## Installation ```bash dsh plugin --profile web add git+https://git.rizzy.dev/DSH-Plugins/omp-advisor.git ``` Or in the Web UI, go to **Settings → Plugins → Install**. For development, use `link:` to a clone. Restart DSH afterwards; new sessions are advised automatically. ## Configuration ```yaml - id: omp-advisor config: enabled: true provider: '' # advisor model route; empty = same as the agent model: '' # e.g. provider: omni, model: claude-haiku-4-5 for a cheap fast reviewer reasoningEffort: '' # optional effort for the advisor model minLevel: note # lowest verdict delivered: note | concern | blocker everyNSteps: 1 # review every Nth step blocking: false # true = wait for each review before the next request maxDigestChars: 24000 maxToolResultChars: 1500 timeoutMs: 60000 skipSubagents: true ``` To pause it, disable the plugin in **Settings → Plugins → OMP Advisor**. ## Tests `npm test`: verdict parsing, injection, ok-silence, blocker steering, minLevel and duplicate suppression (mocked model).