AI-powered CI quality gate

Nothing gets past
Cerberus.

Classifies flaky tests vs. real regressions. Catches performance degradation before it ships. Posts a plain-English quality report on every pull request.

cerberus-ci — ~/my-project
The Problem

CI is broken. You just stopped noticing.

Two silent killers erode your team's testing confidence every day.

Flaky tests erode trust

A test fails intermittently for reasons unrelated to the code change. Over time, engineers start ignoring red CI. Real regressions slip through because nobody trusts the signal anymore.

Average team: 15-25% flaky tests

Perf regressions are invisible

Functional tests check "does it work," but almost nobody gates a PR on "did this change make the checkout flow 300ms slower." By the time users complain, the regression is weeks old.

Avg detection time: 2-4 weeks
Before vs. After

Stop guessing. Start knowing.

See what changes when Cerberus guards your CI gate.

Flaky test detection
Manual triage — engineers guess from error messages
AI classifies flaky vs. regression with reasoning
Performance regressions
Invisible until user complaints (2-4 weeks later)
Caught at PR time with statistical comparison
Gate behavior
Depends on who's looking at the CI output
100% deterministic — same input, same output
API cost per run
N/A (no classification happening)
<1 API call average (cache + rules handle most)
PR feedback
Engineers manually write comments about test results
Auto-generated plain-English quality report
Historical visibility
Test results scattered across CI logs
SQLite DB with trends, baselines, and comparisons
Features

A full observability layer for your CI

Everything you need to trust your test suite and ship with confidence.

Three-tier classification

Core

Rules → cache → AI. Cheapest check first. Resolves ~40% of failures without any API call.

Deterministic gate

AI never makes the pass/fail decision. Gate behavior is 100% reproducible regardless of provider choice.

Performance regression

Statistical comparison against branch baselines. Flags >20% slowdowns before they ship.

Provider-agnostic AI

Claude default, OpenAI-compatible covers Ollama, Groq, OpenRouter, and more. Config change, not code change.

PR comments

Plain-English quality reports on every pull request. Deduplicated, updated in-place.

GitHub Action

One line: uses: EvertonSt/cerberus-ci-action@v1. Works with any test framework via JUnit XML.

Run comparison

Diff two runs side-by-side. See new failures, resolved issues, and performance deltas at a glance.

Trends analysis

Detect worsening flaky patterns across runs. See which tests need attention before they spiral.

Zero-cost mock mode

Full pipeline runs without any API key. Demo, test, and develop without external dependencies.

0
Tests passing
0%
Code coverage
0
CLI commands
0
AI providers
PR Feedback

Quality reports on every pull request

Plain-English analysis with flaky/regression classification, performance deltas, and AI reasoning.

🐕‍🦺
Cerberus CIcommented
just now
FAILEDQuality gate did not pass

1 regression detected in checkout.spec.ts:42 — assertion failure with clear expected vs. actual mismatch.

2 flaky tests detected (not blocking): login.spec.ts:18, search.spec.ts:7

Performance
checkout_page_load_ms: 842ms → 1,140ms (+35.4%)threshold: 20%
AI Analysis
The regression in checkout.spec.ts:42 appears to be a real code change effect — the assertion failure shows a clear expected vs. actual mismatch ("expected discount to be 20% but got 0%"), with consistent failures across the last 3 runs. The flaky failures in login and search show timeout patterns with mixed pass/fail history, characteristic of environment timing issues.
Classified using: claude:claude-sonnet-4-6
How It Works

Architecture that maps to the name

The three-headed dog guards the gate. Three tiers classify. Zero AI calls at gate time.

📄
Test Suite Output
JUnit XML / Playwright JSON
📥
cerberus ingest
Parse & store results
🗄️
SQLite Database
Historical run data
Three-Tier Classification Pipeline
📏
Rules
Deterministic, <1ms
💾
Cache
Signature lookup, <5ms
🤖
AI
Claude / OpenAI-compatible
~40% resolved~30% resolved~30% resolved
🚦
cerberus gate
Deterministic, 0/1 exit code
💬
PR Comment
Plain-English report
📌
Annotations
::error / ::warning
🔒
Exit Code
0 = pass, 1 = fail
Provider-Agnostic

Switch providers with one config change

Not vendor-locked. The OpenAI-compatible adapter covers 90% of the market.

🟠

Claude

Default provider. Native Anthropic SDK.

ai:
  provider: claude
  model: claude-sonnet-4-6
  api_key_env: ANTHROPIC_API_KEY
🟢

OpenAI / Any compatible

OpenAI, Groq, Ollama, LM Studio, DeepSeek...

ai:
  provider: openai-compatible
  base_url: http://localhost:11434/v1
  model: llama3
  api_key_env: null

Mock (Free)

Deterministic heuristic. Zero API cost.

ai:
  provider: mock
Quick Start

Up and running in 60 seconds

Works as a GitHub Action or CLI. Supports Playwright, Jest, Cypress, pytest — anything that outputs JUnit XML.

.github/workflows/ci.yml
yaml
- uses: EvertonSt/cerberus-ci-action@v1
  with:
    ai-provider: claude
    ai-api-key: ${{ secrets.ANTHROPIC_API_KEY }}
    github-token: ${{ secrets.GITHUB_TOKEN }}
    test-results-path: ./test-results/results.json

Guard your CI gate.

Install Cerberus today. Start trusting your test suite again.