aliasunder/umm-actually

LLM PR review via OpenRouter — one consolidated review, inline findings

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Stale
License
None
namedescriptionrequireddefault
github_tokenToken used to fetch the diff and submit the review (a GitHub App installation token keeps the bot identity)yes
openrouter_api_keyOpenRouter API keyyes
modelOpenRouter model slug exactly as listed on openrouter.ai/models, e.g. anthropic/claude-sonnet-4-6noanthropic/claude-sonnet-4-6
fallback_modelModel to retry with if the primary model fails the structured-output ladderno""
max_findingsCap on posted findings, highest severity first. Empty = uncapped (all validated findings post)no""
severity_thresholdMinimum severity to post: low | medium | high | criticalnolow
conventions_fileRepo-relative path to the conventions file included in the promptnoAGENTS.md
phasesReview phases to run. V1 supports: combinednocombined
context_budget_tokensApproximate token budget for prompt context (file contents + diff — conventions have a separate cap)no80000
trace_related_filesInclude related files in the prompt — import-tracing for caller regressions, and doc-mention scanning for staleness detectionnotrue
priority_docsComma-separated repo-relative paths always included in review context (empty = disabled)noREADME.md
max_scan_filesMaximum files to walk during workspace scan for related file and doc detectionno5000
max_scan_bytesMaximum byte size of a single file to include in the workspace scanno262144
max_related_filesMaximum import-traced related files to include in review contextno8
max_related_docsMaximum mention-matched documentation files to include in review context (excludes priority docs)no4
cost_summaryWrite a per-run cost report (model, prompt/completion tokens, USD) to the workflow step summarynotrue
pr_numberPR number override — required only when the triggering event does not identify a PR directlyno""
namedescription
findings_countNumber of new findings successfully posted this run (after threshold, cap, and cross-run dedup; findings whose post failed are excluded and re-report on the next run)
review_urlURL of the submitted review; empty when no review was posted
model_usedModel that produced the accepted response
skipped_reasonNon-empty when the review was skipped (e.g. diff too large)