Removes kilo, kimi, kimi-code, copilot, windsurf, augment, trae, qwen, hermes, cline, codebuddy and pi end to end: capability descriptors, installer branches and converters (bin/install.js 14.9k -> 11.2k lines), TypeScript converters, hook surfaces and runtime homes, review lanes qwen/kimi-code, the two pi migrations, Kimi payload normalization in the hook guards, dead hostBehaviors vocabulary, launcher home probes, fixtures, runtime-specific tests and the prose that presented them as supported. Installer output for the six kept runtimes is byte-identical to before the prune. The Kimi tool-vocabulary tests in workflow-guard, read-guard and read-injection-scanner are left in place pending a decision.
172 lines
7.1 KiB
Markdown
172 lines
7.1 KiB
Markdown
# How to set up cross-AI review
|
||
|
||
**Goal:** Configure which AI reviewers participate in plan review, run a review of a planned phase, and use the feedback to converge on a plan with no HIGH-severity concerns.
|
||
|
||
**Prerequisites:** The phase has been planned (`{phase}-PLAN.md` files exist in `.planning/phases/`). At least one external AI CLI is installed and authenticated.
|
||
|
||
---
|
||
|
||
## Decide which reviewers to use
|
||
|
||
MSD Core can route review requests to any combination of: Claude (separate session), Codex CLI, CodeRabbit, OpenCode, Cursor, Antigravity CLI, Ollama, LM Studio, and llama.cpp.
|
||
|
||
That list is not fixed. Each of those is a declared reviewer lane, and a capability can ship its own — see [Ship a reviewer lane in your capability](ship-a-reviewer-lane.md). To see exactly which lanes your installation has, run `msd-tools review-lane sections`.
|
||
|
||
Each reviewer runs the same structured prompt against your `PLAN.md` files independently. Because different models have different blind spots, multi-reviewer consensus catches more issues than any single reviewer.
|
||
|
||
**If you have no external CLIs installed yet**, install at least one:
|
||
|
||
```bash
|
||
# Antigravity CLI (free with Google credentials)
|
||
curl -fsSL https://antigravity.google/cli/install.sh | bash
|
||
|
||
# Codex CLI
|
||
npm install -g @openai/codex
|
||
```
|
||
|
||
---
|
||
|
||
## Set default reviewers (optional)
|
||
|
||
By default, `/msd-review` runs all detected CLIs. To pin a subset as project defaults:
|
||
|
||
```bash
|
||
/msd-config --integrations
|
||
```
|
||
|
||
The integrations wizard covers API keys, code-review CLI routing, and the `review.default_reviewers` list. Set the list to the reviewers you want as the no-flag default — for example `["codex","claude"]`.
|
||
|
||
Alternatively, set it directly with `msd-tools`:
|
||
|
||
```bash
|
||
msd config-set review.default_reviewers '["codex","claude"]'
|
||
```
|
||
|
||
For the full integration settings schema (API keys, model overrides per reviewer, local server host addresses), see [Configuration](../CONFIGURATION.md).
|
||
|
||
If you need multiple independent reviewer voices from the same adapter, configure `review.reviewer_instances` and add those instance names to `review.default_reviewers`. Instance names run only through `review.default_reviewers`; they are not valid `/msd-review` flags. See [Reviewer instances](../CONFIGURATION.md#reviewer-instances) for the schema.
|
||
|
||
---
|
||
|
||
## Run a review
|
||
|
||
### Standard review (uses your configured defaults or all detected CLIs)
|
||
|
||
```bash
|
||
/msd-review --phase 3
|
||
```
|
||
|
||
MSD invokes each reviewer in sequence, collects structured feedback (Summary, Strengths, Concerns at HIGH/MEDIUM/LOW, Suggestions, Risk Assessment), and writes the combined output to `.planning/phases/03-.../03-REVIEWS.md`.
|
||
|
||
### Select a single reviewer for a one-off run
|
||
|
||
```bash
|
||
/msd-review --phase 3 --agy
|
||
/msd-review --phase 3 --codex
|
||
/msd-review --phase 3 --cursor
|
||
```
|
||
|
||
Any explicit flag overrides both the `--all` default and `review.default_reviewers` for that run.
|
||
|
||
### Run every available reviewer in parallel
|
||
|
||
```bash
|
||
/msd-review --phase 3 --all
|
||
```
|
||
|
||
`--all` always overrides config and runs the full detected set, including any configured local model servers (Ollama, LM Studio, llama.cpp).
|
||
|
||
### Local model server reviewers
|
||
|
||
If you run Ollama or LM Studio locally, they are included automatically with `--all` when the server is reachable. You can also target them explicitly:
|
||
|
||
```bash
|
||
/msd-review --phase 3 --ollama
|
||
/msd-review --phase 3 --lm-studio
|
||
```
|
||
|
||
Configure the host addresses and model selection under `review.*` keys via `/msd-config --integrations` if the defaults (`localhost:11434` / `localhost:1234`) do not apply.
|
||
|
||
---
|
||
|
||
## Read the review output
|
||
|
||
The `{padded_phase}-REVIEWS.md` file contains:
|
||
|
||
- Individual reviews from each reviewer with severity-classified concerns
|
||
- A **Consensus Summary** section that synthesises concerns raised by two or more reviewers — start here for the highest-priority signal
|
||
- A **Divergent Views** section for areas where reviewers disagreed
|
||
- `models:` and `model_sources:` frontmatter maps — the resolved model each reviewer actually ran under, and how that value was determined
|
||
|
||
### Which model produced a review
|
||
|
||
Compare two reviewers' verdicts only after checking what actually produced each one — `models:` in the frontmatter gives the model per reviewer, and `model_sources:` gives the mechanism that recovered it.
|
||
|
||
If a reviewer's entry reads `unknown`, pin it: set `review.models.<slug>` for that lane (the key suffix is not always the lane's slug — Antigravity's is `review.models.agy`) so the next run records `pinned`. See [Code-review CLI routing](../CONFIGURATION.md#code-review-cli-routing) for the full key table.
|
||
|
||
Some `unknown` values are expected, not a bug to chase: lanes that accept no model at all (`cursor`, `coderabbit`), and any lane whose CLI didn't disclose one on this run. `pinned` is a certain value; `banner` and `transcript` are recovered from third-party CLI output and can degrade to `unknown` after an upstream release changes that output.
|
||
|
||
A `models:` entry like `gpt-5.6-sol (reasoning=high)` is not a formatting quirk: the `(reasoning=<level>)` suffix reflects a reasoning effort MSD itself applied to that lane, driven by your `effort.*` config — not the CLI's own default.
|
||
|
||
---
|
||
|
||
## Incorporate feedback into the plan
|
||
|
||
Once you have reviewed the output, replan incorporating the feedback:
|
||
|
||
```bash
|
||
/msd-plan-phase 3 --reviews
|
||
```
|
||
|
||
The planner reads `REVIEWS.md` and adjusts the plans to address the concerns before saving.
|
||
|
||
---
|
||
|
||
## Automate the plan–review–replan loop
|
||
|
||
For phases where you want to iterate until all HIGH-severity concerns are resolved, use the convergence loop:
|
||
|
||
```bash
|
||
/msd-plan-review-convergence 3
|
||
```
|
||
|
||
This runs `plan-phase → review → replan → re-review` up to three cycles (default). The loop exits when the HIGH-concern count reaches zero.
|
||
|
||
### Convergence with a specific reviewer
|
||
|
||
```bash
|
||
/msd-plan-review-convergence 3 --codex
|
||
/msd-plan-review-convergence 3 --agy
|
||
```
|
||
|
||
### Convergence with all reviewers and a higher cycle cap
|
||
|
||
```bash
|
||
/msd-plan-review-convergence 3 --all --max-cycles 5
|
||
```
|
||
|
||
**Stall detection:** if the HIGH-concern count is not decreasing across cycles, MSD warns you. When the cycle cap is reached with open HIGH concerns, an escalation gate asks whether to proceed or review manually.
|
||
|
||
---
|
||
|
||
## Conditionals: which reviewers to choose
|
||
|
||
| Situation | Recommended approach |
|
||
|-----------|---------------------|
|
||
| You have Antigravity already installed | `--agy` is always a good starting reviewer |
|
||
| You want free multi-reviewer coverage | `--agy` (Google credentials) + `--claude` |
|
||
| Your project is OpenAI-heavy | add `--codex` for an OpenAI-model perspective |
|
||
| You want to avoid API costs entirely | configure Ollama with a local model and use `--ollama` |
|
||
| You need maximum coverage before a release | `/msd-plan-review-convergence N --all` |
|
||
| You're iterating quickly and want fast feedback | pick one CLI: `/msd-review --phase N --agy` |
|
||
|
||
---
|
||
|
||
## Related
|
||
|
||
- [Verify and ship](verify-and-ship.md)
|
||
- [Ship a reviewer lane in your capability](ship-a-reviewer-lane.md) — add a reviewer MSD does not ship with, by declaring it in a capability manifest
|
||
- [Configuration](../CONFIGURATION.md)
|
||
- [Commands](../COMMANDS.md)
|
||
- [docs index](../README.md)
|