Dry-run review
The aicr review command runs a single review without the long-running
server. With --dry-run it prepares and runs the full review pipeline but
skips every output channel, so you can validate the LLM, agent, and sandbox
without spamming a PR or IM channel. This page expands on the
dry-run section of Quick start.
For the complete CLI command reference, see CLI commands.
When to use dry-run
Section titled “When to use dry-run”- Validating that LLM credentials, the agent CLI, and the sandbox are wired up before opening the server to webhooks.
- Iterating on prompts, skills, or model choice without publishing.
- Reproducing a review locally from a checkout.
Dry-run does not publish to any channel, regardless of outputs.routes.
A non-dry-run review without a matching output route is recorded as skipped
with skipReason="no_output_publisher" — that is routing, not a dry run.
Running a dry-run
Section titled “Running a dry-run”export AICR_LLM_API_KEY=sk-xxx
node packages/cli/dist/index.js review \ --config example/config.yaml \ --repo "my-org/my-repo" \ --provider gitea \ --source-root . \ --dry-run| Flag | Description |
|---|---|
--config <path> |
Path to the config YAML file |
--repo <ref> |
Repository reference (e.g. owner/repo) |
--provider <name> |
Trigger provider kind from the config schema (gitea, github, gitlab, p4, svn) |
--trigger <name> |
Trigger name |
--reason <text> |
Review reason |
--source-root <path> |
Source root directory to review |
--base-prompt <path> |
Path to a base system prompt template (overrides the workspace prompt file) |
--changed-file <path> |
Changed file (repeatable) |
--base-sha <sha> |
Base revision SHA |
--head-sha <sha> |
Head revision SHA |
--url <url> |
PR / MR / commit URL |
--author-username <u> |
Author username |
--author-email <e> |
Author email |
--dry-run |
Run without publishing to output channels |
--max-prompt-tokens <n> |
Maximum prompt token budget |
--provider selects which trigger profile’s VCS adapter and filters apply.
--source-root points at the local checkout; combine it with --changed-file
(or --base-sha / --head-sha) to scope the diff.
Reading the result
Section titled “Reading the result”A dry-run prints the resolved review summary, the list of reported problems (if any), and the skip reason when the review was skipped. Common skip reasons:
| Skip reason | Meaning |
|---|---|
lgtm |
No actionable problems found |
no_reviewable_code |
Nothing reviewable in the change |
no_output_publisher |
No output route matched (non-dry-run only) |
no_problems_suppressed |
All selected summary channels suppress zero-problem results |
output_dispatch_failed |
Every dispatch attempt failed |
If the dry-run reports problems, the LLM and pipeline are healthy. If it
errors with AgentContextOverflowError, enable llm.model_catalog or set a
context_window override — see Troubleshooting.
Next steps
Section titled “Next steps”Once dry-run is clean, wire up your first webhook to let real VCS events drive reviews.