PROBLEM: When CI goes red, a developer opens four jobs of logs and starts sorting. Is this flaky? Infrastructure? A dependency that moved? Or did I actually break something? Most of the time is spent on that triage, not on the fix. Worse, teams learn to ignore red builds, because most red builds are noise — and the one real regression hides inside it. SOLUTION: TriSolver is a pipeline: ingest, split, triage, route, dispatch, verify. Each stage does the job it is actually suited to. Splitting a log is a parsing problem, so parsing code does it — one failure unit per failing test or step, across pytest, jest/vitest and go test, with a step-level fallback. The same failure across six matrix legs collapses into one unit, because that is one bug, not six. Deciding what a failure IS is judgement under uncertainty, so Jev does it. Each unit becomes one state with three typed questions: a Choice for category (regression / flaky / infra / dependency / config), a Noul for whether the PR's changed files caused it, and a Score for severity. Jev returns calibrated probabilities, not prose. Deciding what to DO is policy, so deterministic code does it, and every branch is readable. Flaky gets a rerun and a quarantine label. Infra pings the platform team. Dependency drift goes to whoever owns the lockfile. Crucially, confidence gates automation: below 65% nothing is automated and a human looks, which is where it would have gone anyway. Only a high-confidence regression attributed to the PR reaches Bob, as a self-contained brief — the failure, the implicated files, the diff, and the project's own CONTRIBUTING or runbook. Then Jev verifies Bob's patch before any human sees it, with Nouls for "does this address the failure", "does it touch unrelated files", and "does it skip, delete or weaken a test". An independent, model-free read of the diff runs alongside. Either signal blocks alone. TARGET USERS: Teams whose CI is red often enough that triage is a daily tax — and anyone letting agents propose fixes, who needs those fixes checked. WHY IT IS DIFFERENT: Most "AI fixes your CI" tools send the whole log to one model and hope. TriSolver separates judgement from policy, so the automation is auditable and the thresholds are tunable. And it assumes its own agent might cheat: deleting the failing test is the well-known way to make CI green, and TriSolver catches it automatically, twice, by two independent mechanisms. EFFECTIVENESS: Validated against real failed runs in psf/requests, pydantic/pydantic, urllib3/urllib3 and encode/httpx, plus a purpose-built sandbox repo running on a self-hosted runner that produces one failure of each category in a single build. 75 tests.
Category tags: