Skip to main content

AVERA

Your agent opened 14 pull requests today. Which one broke a test that used to pass?

Green CI proves nothing failed. AVERA proves nothing regressed.

PyPI License Python Dependencies

Give AVERA two test runs — before and after. It names every test that passed before and fails now, rules a verdict, and returns an exit code your pipeline already understands. Deterministic: same inputs, same verdict, on any machine. No LLM in the decision.


30 seconds, zero config

pip install avera-gate     # the command it installs is `avera`

avera check --baseline main.xml --current pr.xml
#
# AVERA Check
# Verdict:  confirmed_regression
# Introduced failures (1): pkg.tests.test_thing
# Gate [general.v1]: block         (exit 1 — fails the CI step)

That is the whole product. No config file, no project setup, no account, no network call.

Zero dependencies. AVERA's engine is pure Python standard library — installing it adds nothing to your lockfile and cannot conflict with anything already in your CI image.

The PyPI distribution is named avera-gate (plain avera was taken by an unrelated package). The import package and the CLI command are both avera.

Works with anything that emits JUnit / xUnit XML (pytest, jest, go test, JUnit, …). Add --json for machines; the exit code drops into any pipeline.

First run on a noisy repo? Use --report-only. It prints the verdict but always exits 0, so the build is never failed. On a single diff, a flaky test that flips pass→fail looks identical to a real regression — advisory mode lets you see what AVERA flags before you let it block anything. Switch on the hard gate once you trust it. (Action: report_only: true.)

Install from source instead
git clone https://github.com/mikheil-galoian/avera && cd avera
pip install -e .

Does it actually work? Reproduce it yourself.

AVERA ships a public blind-replay benchmark of real regressions. AVERA is given only the before/after test results — no hint where the bug is — and must catch it.

AVERA_PY=python3 ./benchmark/reproduce.sh
# PASS  toolz-f0831e7  -> confirmed_regression / block

That case is commit f0831e7 in the real pytoolz/toolz library (later reverted in PR #551). Given only the two result sets, AVERA independently identified the introduced failure (test_isiterable, pass→fail), ruled confirmed_regression, and returned gate=block under every domain policy. See benchmark/ — and add your own case.


The problem it closes

A passing CI run only proves no expressed test failed — not that nothing regressed. When prod breaks after a green merge, there is no machine-checkable record of what regressed or why the merge was allowed; teams reconstruct it by hand after an incident.

With AI agents now generating PRs faster than anyone can review them, "the suite was green" and "that test is just flaky" are exactly how genuine pass→fail regressions slip through. AVERA gives the reviewer a deterministic separator — proven introduced regression vs everything else — and a tamper-evident trail behind every gate decision.


What AVERA does not do

Stated plainly, because overclaiming is the failure mode this project avoids:

  • It does not catch a regression that no test exercises — that needs fault-injection / mutation analysis, not the gate.
  • It does not decide flaky vs real — that stays a human call.
  • It does not decide your release — it produces auditable evidence; a human signs off. No LLM in the decision path.
  • It is not a certified/qualified tool. Its output is designed to be independently re-checkable by a human (inspectable manifest, hash-chained audit, re-derivable integrity root).

Supported domains & standards

The same deterministic engine, calibrated per domain via policy-as-data. Verdict assignment is a proven-total decision table.

Domain Standard Status
Software / CI / DevOps plain pass/fail CI, AI-PR triage ✅
Automotive (ADAS, BMS) ISO 26262 ✅
Aviation (avionics) DO-178C ✅
Railway (signaling, control) CENELEC EN 50128 ✅
Medical devices IEC 62304 / ISO 14971 ✅
Space / flight software NASA NPR 7150.2 / NASA-STD-8739.8 ✅

Pick a policy with --policy <name> (general, automotive, aviation, railway, medical, space, ai_agent).


Core capabilities

  • Zero-config check — avera check (two JUnit files → verdict + gate), for plain pass/fail CI.
  • Regression triage — baseline vs current comparison; fail-closed classification (unknown status → treated as failure, never hidden).
  • Deterministic gate — policy-as-data per domain; same inputs → same verdict → same evidence root, on any machine.
  • Evidence manifest — content-addressed integrity_root binding the whole artifact set.
  • Immutable audit log — SHA-256 hash-chained, with an optional keyed (HMAC) tamper-evident mode.
  • Sign-off — bound to the manifest root; fails closed if verification is skipped.
  • Requirement coverage proof — traceable from change → test → requirement (regulated domains).
  • REST API & GitHub Action — for CI/CD integration (see below).

Architecture

src/avera/
├── adapters/   — artifact format adapters (JUnit, CSV, simulation, logs, CANoe)
├── compare/    — baseline vs current comparison (fail-closed status taxonomy)
├── classify/   — regression classification + proven-total verdict spec
├── gates/      — deterministic gate, policy-as-data (policies/*.json)
├── evidence/   — content-addressed evidence manifest (integrity_root)
├── audit/      — hash-chained SHA-256 audit log (optional keyed HMAC)
├── signoff/    — sign-off state machine bound to the manifest root
├── domains/    — per-domain profiles (avionics, powertrain, space, …)
├── mutation/   — fault-injection / mutation-based confidence lens
└── api/        — FastAPI REST endpoint

benchmark/      — public blind-replay regression benchmark (reproduce.sh)
fixtures/       — reference scenarios across domains
docs/           — verdict spec, hardening report, dev principles, GTM
tests/          — unit + cross-domain fixtures + exhaustive verdict-spec proof

Quick start (full evidence pack)

git clone https://github.com/mikheil-galoian/avera
cd avera
pip install -e ".[demo]"

# Run the live demo shell
./start_demo.sh                      # → http://localhost:8501

# Or analyze a full evidence pack
avera analyze --project fixtures/bms-fast-charge --out reports

Or try the hosted demo preview — no install: 👉 https://avera-production.up.railway.app (Read-only preview of the Streamlit shell — not full self-service.)


GitHub Action

AVERA ships as a reusable GitHub Action, in two modes.

Zero-config — gate plain pass/fail CI with two JUnit files, no evidence pack:

# .github/workflows/avera-verify.yml
name: AVERA
on: [pull_request]

jobs:
  verify:
    runs-on: ubuntu-latest
    steps:
      - uses: mikheil-galoian/avera@v1
        with:
          baseline: main-junit.xml   # known-good results (e.g. from main)
          current: pr-junit.xml      # this PR's results
          policy: general            # or space / automotive / aviation / …
      # The job fails when the gate blocks (a confirmed regression).

Full working example (runs base + PR, then gates): examples/github-action-zero-config.yml. How to produce the baseline in CI (run-both / cached / nightly): docs/CI_BASELINE_PATTERN.md. Verified on pytest, jest, and go JUnit output (tests/test_format_breadth.py).

Full evidence pack — the canonical artifact set for regulated review:

      - uses: actions/checkout@v4
      - uses: mikheil-galoian/avera@v1
        with:
          project_path: evidence/my-change
          fail_on_release_blocking: 'true'

Inputs: project_path (required), output_path, policy, fail_on_release_blocking, fail_on_regression, expected_verdict. Outputs: verdict, risk, confidence, gate_status, report_path, manifest_path, integrity_root, audit_log_path.

Examples: examples/github-action-usage.yml, examples/github-action-minimal.yml.


REST API

Served with uvicorn avera_api.main:app.

uvicorn avera_api.main:app --host 0.0.0.0 --port 8000

# Full canonical artifact set + deterministic gate status + integrity_root
curl -X POST http://localhost:8000/evidence-pack \
  -H "Content-Type: application/json" \
  -d '{"project": "fixtures/bms-fast-charge", "policy": "automotive"}'

/evidence-pack returns verdict, risk, confidence, the deterministic gate_status, the evidence-manifest integrity_root, a decision summary, and the on-disk paths of every canonical artifact.


Docker

docker pull ghcr.io/mikheil-galoian/avera-cli:latest
docker run --rm \
  -v "$PWD/fixtures/bms-fast-charge:/workspace" \
  -v "$PWD/reports:/reports" \
  ghcr.io/mikheil-galoian/avera-cli:latest \
  analyze --project /workspace --out /reports --memory /reports/avera-memory.jsonl

Multi-arch (linux/amd64, linux/arm64). Pinned tags: latest, vX.Y.Z, sha-<short>.


Design partner program

Looking for engineering teams — running ordinary CI, or in automotive, aviation, railway, medical, or space — who want a narrow pilot with their own artifacts.

The pilot is simple: one software change · one artifact family you already export · one 2-week review session. No infrastructure changes, no process disruption.

📩 Contact: mgaloyan79@gmail.com · 🔗 Demo: avera-production.up.railway.app


License

Apache 2.0 — see LICENSE


AVERA Engineering — engineering truth, preserved as evidence.

Metadata

Release files for avera-gate 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for avera-gate 0.1.1
File Size Uploaded
avera_gate-0.1.1.tar.gz 226.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for avera-gate 0.1.1
File Interpreter ABI Platform
avera_gate-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 404.0 kB

Release files / avera_gate-0.1.1.tar.gz

Download URL avera_gate-0.1.1.tar.gz
Size 226.5 kB
Tags Source
SHA-256 checksum
How to use checksums
cfb61b86a2bb118f45792d924a63dcbfb6df874faa746aae4e28128c6a79014b
BLAKE2b-256 checksum
How to use checksums
ca479a5575e50f937470fb7b04b7657ff712d6e82f355f3f8f4ea6abc0281a4c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.6

Release files / avera_gate-0.1.1-py3-none-any.whl

Download URL avera_gate-0.1.1-py3-none-any.whl
Size 177.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
73b32b34ed44dff9e1a334953c524c8951ccb38cc05038a086fb5bb49dcb2fc0
BLAKE2b-256 checksum
How to use checksums
d426b3fae61bf49b8e8da889f4cbbbf81c1158d13d5a6c3027b02f4b0635a352
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.6

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page