| GITHUB_TOKEN | GitHub token | yes | — |
| PR_NUMBER | Pull request number | yes | — |
| REVIEW_PROVIDERS | Comma-separated provider list (e.g., "openrouter/model1,opencode/model2").
BEHAVIOR CHANGE (v0.2.0+):
- Previously: Defaulted to specific hardcoded providers
- Now: Defaults to empty string (enables dynamic discovery)
DEFAULT (empty): Enables dynamic provider discovery - automatically selects best free models
from OpenRouter API (if OPENROUTER_API_KEY set), OpenCode CLI, and hardcoded fallbacks.
Well-tested and recommended for most users.
CUSTOM: Override discovery with specific providers. Disables automatic fallback chain.
Use when you need specific models or want predictable provider selection.
| no | "" |
| FALLBACK_PROVIDERS | Comma-separated fallback providers used when primary providers fail.
DEFAULT (empty): Uses automatic fallback discovery (same mechanism as REVIEW_PROVIDERS).
CUSTOM: Override with specific fallback models.
Only used when REVIEW_PROVIDERS is also set (custom mode).
| no | "" |
| SYNTHESIS_MODEL | Model used for synthesis/prompts | no | openrouter/free |
| INLINE_MAX_COMMENTS | Maximum inline comments | no | 5 |
| INLINE_MIN_SEVERITY | Minimum severity for inline comments | no | major |
| INLINE_MIN_AGREEMENT | Providers required to agree | no | 2 |
| MIN_CHANGED_LINES | Skip if below this line count | no | 0 |
| MAX_CHANGED_FILES | Skip if over this file count | no | 0 |
| SKIP_LABELS | Comma-separated labels to skip | no | "" |
| PROVIDER_LIMIT | Limit number of providers to rotate | no | 6 |
| PROVIDER_RETRIES | Retries per provider | no | 2 |
| PROVIDER_MAX_PARALLEL | Maximum providers to run in parallel | no | 3 |
| DIFF_MAX_BYTES | Maximum diff bytes to send to providers | no | 120000 |
| RUN_TIMEOUT_SECONDS | Timeout per provider run | no | 600 |
| BUDGET_MAX_USD | Budget guard in USD | no | 0 |
| ENABLE_AST_ANALYSIS | Enable AST analysis | no | true |
| ENABLE_SECURITY | Enable security scan | no | true |
| ENABLE_CACHING | Enable caching of findings | no | true |
| ENABLE_TEST_HINTS | Enable test coverage hints | no | true |
| ENABLE_AI_DETECTION | Enable AI-generated code detection | no | true |
| INCREMENTAL_ENABLED | Enable incremental review (only review changed files on PR updates) | no | true |
| INCREMENTAL_CACHE_TTL_DAYS | Days to keep incremental review cache | no | 7 |
| LEARNING_ENABLED | Enable feedback learning system | no | true |
| LEARNING_MIN_FEEDBACK_COUNT | Minimum feedback count before adjusting confidence | no | 5 |
| QUIET_USE_LEARNING | Use learned confidence thresholds in quiet mode | no | true |
| QUIET_MIN_CONFIDENCE | Minimum confidence threshold for quiet mode filtering (0.0-1.0) | no | 0.5 |
| GRAPH_ENABLED | Enable code graph for dependency tracking | no | true |
| GRAPH_CACHE_ENABLED | Cache code graph between runs | no | true |
| GRAPH_MAX_DEPTH | Maximum depth for dependency traversal | no | 5 |
| GRAPH_TIMEOUT_SECONDS | Timeout for graph building in seconds | no | 10 |
| REPORT_BASENAME | Base name for JSON/SARIF reports | no | multi-provider-review |
| SKIP_TRIVIAL_CHANGES | Skip reviews for trivial changes (dependency locks, docs, config files, test fixtures) | no | true |
| SKIP_DEPENDENCY_UPDATES | Skip dependency lock file updates (package-lock.json, yarn.lock, etc.) | no | true |
| SKIP_DOCUMENTATION_ONLY | Skip documentation-only changes (*.md, docs/, README, CHANGELOG) | no | true |
| SKIP_FORMATTING_ONLY | Skip formatting-only changes (whitespace, indentation) | no | false |
| SKIP_TEST_FIXTURES | Skip test fixture changes (__fixtures__, __snapshots__, *.snap) | no | true |
| SKIP_CONFIG_FILES | Skip config file changes (.eslintrc, .prettierrc, .gitignore, .gitattributes, tsconfig.json) | no | true |
| SKIP_BUILD_ARTIFACTS | Skip build artifact changes (dist/, build/, *.min.js, *.map) | no | true |
| TRIVIAL_PATTERNS | Custom regex patterns for trivial files (comma-separated) | no | "" |
| PATH_BASED_INTENSITY | Enable path-based review intensity (opt-in feature) | no | false |
| PATH_INTENSITY_PATTERNS | JSON array of path patterns with intensities (e.g., [{"pattern":"src/auth/**","intensity":"thorough"}]) | no | "" |
| PATH_DEFAULT_INTENSITY | Default review intensity for files that don't match patterns (thorough, standard, light) | no | standard |
| DRY_RUN | Preview mode - run review without posting to GitHub | no | false |
| OPENROUTER_API_KEY | API key for OpenRouter | no | — |