What it does
A maintainer installs Dispatch. When an issue or pull request is opened or edited, it:
- Normalises the item into a state
- Sends that state with a batch of typed questions in one request
- Gets back typed answers with calibrated probabilities — no text, no parsing
- Evaluates your rules against those answers to produce a plan
- Applies the plan, proposes it, or logs it silently — depending on mode and confidence
What it is not
- Not an LLM code reviewer. It classifies, scores, routes and flags. It does not read code semantically or write prose.
- Not autonomous. The default mode writes nothing. Destructive actions require explicit opt-in, per operation.
- Not vendor-locked. The provider is a port.
Why the model cannot write
Dispatch is built on a System One model, which returns typed decisions rather than text. Three consequences shape everything:
It cannot write a comment. All prose comes from templates in your repository. A bot that can only say things you wrote is a bot that cannot embarrass you.
Schema violations are impossible. The answer is always one of the options the question defined. There is no JSON parsing, no retry-on-malformed, and no validation layer, because there is nothing to validate.
Questions are evaluated in parallel and in isolation. Asking thirty costs 25 ms more at the median than asking one — measured, not assumed. So Dispatch decomposes: instead of "rate this PR", it asks about risk, test coverage and description quality separately, and your rule weighs them. Changing priorities is a number in a config file, not a prompt rewrite.
The three modes
| Mode | What happens | Leave it here until |
|---|---|---|
shadow | Decides and logs. Writes nothing. | You have read the log and agree with it |
suggest | One bot comment proposing changes | You stop disagreeing with the proposals |
auto | Applies labels and flags | — |
A new install starts in shadow, and that is enforced in the engine rather than in documentation. A bot that writes on install gets uninstalled.