# werkrevisor host config for reviewing werkdock (mi/werkdock) on git.javagil.de. # It holds only what the host decides; the review rules are in the .werkrevisor.toml of werkdock. # The release build of werkrevisor installs it on the host with each version (PR#124). [model] # An economy model suffices, since Jev decides and the model only advises (PR#40): # on 4 heads with 10 known findings, MiniMax M3 found as many as Sonnet 5.5 for a tenth of the cost, but needs minutes. id = "openrouter/minimax/minimax-m3" # Operator-maintained prices in USD per 1M tokens. input_price_usd_per_mtok = 0.30 output_price_usd_per_mtok = 1.20 # Longer prompts degrade the review even within the context window. max_context_tokens = 150000 # Includes reasoning tokens: MiniMax M3 wrote up to 47050 in 211 reviews, and with 32000 it once answered nothing (PR#84). max_output_tokens = 64000 # "low" and "none" missed a review on 1 of 4 heads each. reasoning_effort = "medium" # On 2026-10-08 some calls hung for over 700 s; the maker of the model first, others when it fails. provider_order = ["minimax"] # A call took up to 242 s; Werkator's ai-review build allows 15 minutes for 2 calls. timeout_seconds = 300 max_retries = 1 # MiniMax reported at most 2 % more prompt tokens than o200k_base counted. token_count_factor = 1.05 [budget] # A review with 2 calls of 150000 input and 64000 output tokens costs at most about 0.24 USD. max_usd_per_review = 0.25 min_key_remaining_usd = 0.50 [gate] # Branch protection requires one approval from {bot, human_reviewers}; see the README. yellow_gate = "approval" human_reviewers = ["mi"] assessment_context = "ai-review/assessment" # Only a PR whose title changed from "WIP: " to one without gets a review; the bot then schedules the merge, # so a GREEN PR merges at once and a YELLOW or ORANGE one with the human approval. require_wip_transition = true automerge = true [engine] # "llm": the LLM review alone; "classifier": Jev alone, no LLM; "combined": Jev, then the LLM with Jev's hints. mode = "combined" # Jev decides with [path_judge] scope = "all"; the model only advises, so an economy model suffices. model_role = "advises" [classifier] endpoint = "https://api.typesafe.ai/v1/systemone" model = "jev-latest" # Operator-maintained price in USD per 1M input tokens; Jev's output is free. input_price_usd_per_mtok = 0.042 # Jev reads about 32000 tokens of state; a larger unit is not sent and makes the review YELLOW. max_state_chars = 60000 max_units = 80 timeout_seconds = 20 [path_judge] # Jev judges every changed file: only a change that touches security or weakens the checks waits for a human. judge = "jev" scope = "all" [excerpt] # An economy model selects the lines of an excerpt; on 4 measured heads it never found less than the fixed window. select = "model"