pgup-ai/J-Bot Code Review

Agentic PR review via opencode serve + SDK, with gated inline posting.

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Stale
License
None
namedescriptionrequireddefault
providerLLM provider. Defaults to opencode when unset.no""
modelProvider model id, optionally prefixed as provider/model. Uses provider default if unset; required for openai-compatible.no""
sdk-engineSDK routing: auto uses pi when its catalog has the selected model, otherwise opencode; opencode pins every SDK session to opencode.no""
opencode-api-keyOpenCode API key. Used when provider or aux-provider is opencode/opencode-go.no""
deepseek-api-keyDeepSeek API key. Used when provider or aux-provider is deepseek.no""
openai-api-keyOpenAI API key. Used when provider or aux-provider is openai.no""
openai-compatible-api-keyAPI key for provider openai-compatible. Kept separate from the direct OpenAI key.no""
openai-compatible-base-urlBase URL for provider openai-compatible, including any required API version path.no""
anthropic-api-keyAnthropic API key. Used when provider or aux-provider is anthropic.no""
gemini-api-keyGemini API key. Used when provider or aux-provider is google.no""
openrouter-api-keyOpenRouter API key. Used when provider or aux-provider is openrouter.no""
nvidia-api-keyNVIDIA API key. Used when provider or aux-provider is nvidia.no""
zai-api-keyZ.AI API key. Used when provider or aux-provider is zai-coding-plan.no""
kimi-api-keyKimi API key. Used when provider or aux-provider is kimi-for-coding.no""
xai-api-keyxAI API key. Used by xai, or by grok when grok-auth is empty.no""
fireworks-api-keyFireworks AI API key. Used when provider or aux-provider is fireworks-ai.no""
mimo-api-keyXiaomi MiMo Token Plan API key (tp-… / sk-…). Used when provider or aux-provider is xiaomi-token-plan-sgp.no""
devin-windsurf-api-keyDevin/Windsurf API key. Used when provider or active aux-provider is devin.no""
commandcode-access-keyCommandCode CLI access key. Used when provider or active aux-provider is commandcode.no""
cursor-api-keyCursor API key. Used when provider or active aux-provider is cursor.no""
poolside-api-keyPoolside API key. Used when provider or active aux-provider is poolside.no""
qoder-tokenQoder personal access token. Used when provider or active aux-provider is qoder.no""
codex-authCodex CLI auth: the contents of ~/.codex/auth.json. Used when provider or active aux-provider is codex.no""
cline-authCline CLI auth: the contents of ~/.cline/data/settings/providers.json. Used when provider or active aux-provider is cline or cline-pass.no""
grok-authGrok Build CLI account auth: the contents of ~/.grok/auth.json. Preferred over xai-api-key when grok is selected.no""
kilo-authKilo CLI auth: the contents of ~/.local/share/kilo/auth.json. Used when provider or active aux-provider is kilo.no""
enable-context7Enable Context7 MCP documentation lookup for external API/SDK/framework/workflow changes. Use auto, true, or false.noauto
context7-api-keyOptional Context7 API key for reliable MCP documentation lookup in CI.no""
github-tokenToken to read the PR and post the review.yes${{ github.token }}
thread-resolution-tokenOptional token used to resolve addressed review threads and minimize completed reviews. Falls back to github-token when unset.no""
pr-numberPull request number for manual workflow_dispatch runs.no""
dry-runLog the review body and inline comments without posting to GitHub.nofalse
max-findingsMaximum number of findings to post or log. Use 0 for no limit.no0
min-severityMinimum severity to include: P0, P1, P2, P3, or nit.nonit
include-prior-commentsInclude prior PR review comments in the review context.notrue
enable-guideline-passRun a dedicated guideline-compliance review session when repository guidelines are discovered.notrue
aux-modelModel for auxiliary sessions (addressed-thread check, guideline compliance, finding verification). Uses aux-provider/JBOT_AUX_PROVIDER when set, otherwise the main provider. Uses the main model when unset.no""
aux-providerOptional provider for aux-model. Defaults to provider/JBOT_REVIEW_PROVIDER when unset.no""
review-passesTotal review passes (1-3). Passes beyond the first add focused recall lenses (interactions, then integrity) in parallel on the aux model; findings are merged and deduped. Each extra pass costs roughly one extra model session — cheap on paid tiers, but adds queue time on throttled free tiers. Default 1; raise to 2-3 for maximum recall.no1
verify-findingsAdversarially verify blocking findings in a dedicated session before posting: refuted findings are dropped, uncertain ones demoted to advisory.notrue
time-budget-minutesWall-clock target in minutes (0 = no budget). Derives per-session timeouts; an auxiliary session over its share fails open (degrades only itself), while a main review shard that still fails after its retry aborts the run rather than posting partial coverage.no30
review-shardsParallel shards for the main review. 1 = no sharding, one full-diff session (default). 0 = auto from diff size, capped at 4. N = pin N shards. Sharding only speeds up review on providers that serve concurrent sessions; on free/throttled tiers the shards serialize on one API key, so 1 is the better default. Either way the review covers the complete diff. Raise it (and pair with max-concurrent-sessions) only on paid tiers with real concurrency, or for very large PRs where smaller per-shard context helps depth.no1
dynamic-fanoutScale recall-supplement fan-out (extra lenses + the guideline pass) to diff risk/size; false forces the full requested fan-out on every PR.notrue
model-optionsJSON object of provider options for the main model. Native providers default to {"reasoningEffort":"medium"}; Poolside uses {"reasoningEffort":"default"} to leave reasoning provider-managed; custom providers default to {} because arbitrary endpoints may reject unknown options. Aux-model sessions are unaffected.no
prompt-cacheEnable opencode prompt caching (provider setCacheKey). Parallel shards and re-reviews share an identical prompt prefix, so caching cuts input-token cost on models that honor it; models marked unsupported omit the cache key. Per-session cache hits are logged.notrue
skip-doc-onlySkip the full LLM review when a PR changes only documentation, prose, or diagram assets (.md, .mdx, .markdown, .rst, .adoc, .txt, .pdf, .svg, .drawio, .dio, .excalidraw, .mmd, .puml, .plantuml). The reaction is left unchanged (a docs push does not change the verdict, so a prior clean reaction stays and an open-findings PR stays reaction-less); a single code/config file forces a full review. Deterministic, no model call.notrue
max-concurrent-sessionsMax model sessions in flight at once (default 3; 0 = unlimited). Throttled provider tiers serialize concurrent requests on one key upstream; capping on our side keeps session deadlines measuring model time, not queue time. Set 2 on tight free tiers, or 0 for unlimited on paid concurrent tiers.no3
review-telemetryEmit per-finding disposition + per-session telemetry to .jbot-review/telemetry.jsonl (default true). Near-zero overhead: in-memory tagging plus one post-review write. Set false to disable.notrue
evidence-quotesAsk each finding to carry a verbatim quote of the changed line it flags (default true). Grounds finding verification and lets a would-be-orphaned finding be re-anchored. Set false to keep the pre-F12 prompt.notrue
fail-on-errorFail the workflow when the review cannot complete.notrue

no outputs