| github-token | GitHub token used to fetch the PR diff and post the review comment. Defaults to `github.token`. Needs `pull-requests: write` scope to post the comment.
| no | ${{ github.token }} |
| pr | PR number. Auto-detected from `GITHUB_REF` on `pull_request` events. Set explicitly for other triggers (workflow_dispatch, schedule).
| no | "" |
| team | Multi-persona mode. Comma-separated list of `persona:count` pairs.
Built-in personas: quality, security, performance, architecture, regression-test, test-value. Custom personas can be added via `.github/reviewers/*.{yml,yaml}` in the target repo.
Each persona runs in parallel as its own session; a coordinator then synthesizes all outputs into a single verdict (CAN MERGE / CONDITIONAL MERGE / CANNOT MERGE) and posts one PR comment.
Example: `quality:1,security:1,performance:1`
Count >1 is accepted for spec compatibility with opencode-actions but currently runs as 1.
| no | "" |
| persona | Single-persona mode (used when `team` is empty). Runs one reviewer with no coordinator and no PR comment (output goes to step summary only). Default "quality".
| no | quality |
| skip-coordinator | Skip the coordinator synthesis step. Only affects team mode. When true, the verdict output falls back to persona severity vote.
| no | false |
| language | Output language for review prose (summary, findings, suggestions). Accepts short codes (zh, en, ja, ko, fr, de, es, ru) or full names (中文, English, 日本語). Default "zh" (中文). The verdict keywords (CAN MERGE / CONDITIONAL MERGE / CANNOT MERGE) always stay in English uppercase — they are parsed by machine and never translated.
| no | zh |
| litellm-url | Base URL of a LiteLLM proxy or any OpenAI-compatible chat completions endpoint. Trailing `/v1` is optional. Example: `https://llm.example.com` or `https://llm.example.com/v1`.
| no | "" |
| litellm-api-key | API key for the LiteLLM / OpenAI-compatible endpoint. | no | "" |
| model | Model id to request from the endpoint. Defaults to `deepseek-v4-flash`. Change this if your proxy routes a different model name.
| no | deepseek-v4-flash |
| fallback-models | Comma-separated fallback model ids to try when the primary model fails permanently (non-transient error). Tried in order; first success wins. Default "mimo-v2.5". Set to empty string to disable fallback.
| no | mimo-v2.5 |
| sessions-root | Directory used to persist per-PR review sessions across runs (the resume cache). Defaults to a runner-temp path; override to point at a mounted volume if you skip `actions/cache`.
| no | "" |
| working-directory | Repository checkout path for the reviewer's read/grep tools. Defaults to `github.workspace`.
| no | "" |
| timeout-seconds | Per-reviewer hard timeout in seconds. On expiry the attempt fails and, if the error is transient (network blip), retries. Set 0 to disable (not recommended). Default 600.
| no | 600 |
| max-attempts | Max attempts per reviewer. A transient upstream error triggers a fresh-session retry with exponential backoff + jitter. Default 3.
| no | 3 |
| retry-backoff-ms | Base milliseconds for exponential backoff between retries. Backoff = base * 2^(attempt-1) + jitter[0, base]. Default 1000.
| no | 1000 |
| diff-exclude | Comma-separated glob patterns for additional files to exclude from the review diff (e.g. "*.generated.ts,vendor/**"). Lock files are always excluded automatically. Patterns without "/" match the file basename; patterns with "/" match the full file path (gitignore convention).
| no | "" |
| diff-max-size-kb | Maximum diff size in kilobytes after filtering. If exceeded, only the leading file sections are kept and a truncation notice is appended. Default 200 (200 KB) �� large enough for normal PRs but small enough to stay under LLM proxy body limits (HTTP 413). Set 0 to disable.
| no | 200 |
| diff-include-build-artifacts | Keep build artifacts (dist/, build/, out/, lib/, .next/, *.min.js, …) in the review diff instead of excluding them by default. Defaults to "false" — generated output has no review value and is the usual cause of HTTP 413 when a repo commits its bundle (this one does). Set "true" only if you genuinely review generated files.
| no | false |
| fail-on-severity | Control the action exit code based on review severity. Allowed values: "none" (default — always exit 0), "blocking" (exit 1 if blocking issues found), "warning" (exit 1 if warning or blocking issues found). Fail-closed: unparseable coordinator output or a missing reviewer forces failure whenever the gate is armed.
| no | none |
| include-pr-context | Fetch PR metadata (title, body, comments, prior reviews) and prepend it to every reviewer's prompt, so reviewers see *why* the PR exists and what humans/bots already said — not just the diff. Self-authored comments (from this agent) are filtered out to avoid feedback loops. Default "true". Needs the github-token to have pull-requests: read (the default github.token has it). Set "false" to disable.
| no | true |
| style-guide | Path to a repository style-guide file. When set, this file is used instead of auto-detecting STYLE_GUIDE.md, .github/STYLE_GUIDE.md, docs/style-guide.md, or .github/style-guide.md. The guide is appended to the prompts of the `style` and `quality` personas (and any custom persona with `use-style-guide: true`).
| no | "" |
| skip-related-context | Skip the related-files context computation. When enabled (default), the action builds an import graph over the repo and pushes the files that import the PR's changed files (reverse edges) into every reviewer's prompt, so reviewers see the blast radius without grepping. Set "true" to disable and review the diff only.
| no | false |