Skip to main content

CI for AI-generated code — measures production readiness, not just correctness

Project description

QualBench — CI for AI-Generated Code

AI Cost Tracking

AI Cost AI Model

This project uses AI-generated code. Total cost: $3.1500 with 21 AI commits.

Generated on 2026-06-29 using openrouter/deep/deep-v4-pro


Correct code is not the same as mergeable code. eslint + code review, but for AI. Add to your pipeline in 2 minutes.

License: Apache 2.0 Dataset: v0 CI


60 seconds to your first score

pip install qualbench
qualbench quickstart

No config, no API keys. QualBench evaluates your current diff and prints a Quality Score.

Add to CI in 2 minutes

# .github/workflows/qualbench.yml
name: QualBench
on: [pull_request]
jobs:
  quality-check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: semcod/qualbench-action@v1
        with:
          tool: prollama
          fail_on_score: 70

Every AI-generated PR gets a quality review comment. Set fail_on_score and the pipeline fails if quality is below your threshold.

🧠 QualBench Review

Quality Score: 78/100

  ❌ Complexity increased (+12%)
  ⚠ Security: 1 new medium-severity finding
  ✔ Tests pass, no regressions

Verdict: needs_review

CI/CD Examples

GitHub Action (recommended)

# .github/workflows/qualbench.yml
name: QualBench
on: [pull_request]
jobs:
  quality-check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: semcod/qualbench-action@v1
        with:
          tool: prollama
          fail_on_score: 70

GitLab CI

# .gitlab-ci.yml
qualbench:
  stage: test
  image: python:3.12-slim
  before_script:
    - pip install qualbench
  script:
    - qualbench run --tool prollama --json --fail-on-score 70
  only:
    - merge_requests

Azure DevOps

# azure-pipelines.yml
steps:
  - task: UsePythonVersion@0
    inputs:
      versionSpec: '3.12'
  - script: |
      pip install qualbench
      qualbench run --tool prollama --json --fail-on-score 70
    displayName: 'QualBench Quality Check'

Jenkins

// Jenkinsfile
stage('Quality Check') {
    steps {
        sh '''
            pip install qualbench
            qualbench run --tool prollama --fail-on-score 70
        '''
    }
}

CircleCI

# .circleci/config.yml
version: 2.1
jobs:
  quality:
    docker:
      - image: python:3.12-slim
    steps:
      - checkout
      - run: pip install qualbench
      - run: qualbench run --tool prollama --fail-on-score 70
workflows:
  quality-check:
    jobs:
      - quality

The problem

AI coding tools resolve 70–80% of benchmark tasks. But most AI-generated PRs are not mergeable without human fixes. Every existing benchmark asks "do tests pass?" — nobody asks "would a senior developer approve this PR?"

Six dimensions of production readiness

Dimension What it measures Weight
Correctness All tests pass, no regressions 25%
Mergeability Would a senior dev merge this? (1–5) 25%
Security New vulnerabilities introduced 15%
Code quality Complexity delta, dead code 15%
Iterations Attempts to reach acceptable output 10%
Cost efficiency USD per successful patch 10%

Verdicts: ready_to_merge (≥85), needs_review (65–84), not_merge_ready (<65).

CLI

qualbench run --tool prollama          # score current diff
qualbench run --tool prollama --json   # portable JSON output
qualbench run --mode cheap             # lowest-cost models
qualbench quickstart                   # first score in 60 seconds
qualbench compare my_tool              # vs leaderboard
qualbench info                         # dataset summary
qualbench doctor                       # check dependencies

One portable format everywhere

CLI, API, GitHub Action — same JSON schema. See docs/schema.md.

Adding your tool

cp runners/template.py runners/my_tool.py
# Implement run() → return portable schema
qualbench run --tool my_tool
# Submit PR with results

License

Licensed under Apache-2.0.

Status

Last updated by taskill at 2026-04-25 13:46 UTC

Metric Value
HEAD c199cf4
Coverage
Failing tests
Commits in last cycle 26

Repository received a mix of fixes, refactors and configuration updates: tests were hardened (mocks added), a JSON test fix was applied, many vallm/style issues and magic numbers were addressed, and release-related features (v0.3.0, Supervisor AI, new runners) were added. PyQual configuration thresholds and gates were adjusted and documentation/TODOs were updated after a PyQual run.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qualbench-0.3.2.tar.gz (340.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

qualbench-0.3.2-py3-none-any.whl (22.9 kB view details)

Uploaded Python 3

File details

Details for the file qualbench-0.3.2.tar.gz.

File metadata

  • Download URL: qualbench-0.3.2.tar.gz
  • Upload date:
  • Size: 340.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for qualbench-0.3.2.tar.gz
Algorithm Hash digest
SHA256 63b8533bdc18de68e1d1e9c1ad8b159525b9b147d6c2b144a6dec61e22a6fd23
MD5 e0c652b87fdd6303f12e0d6b55d7f68c
BLAKE2b-256 67ae14b764a1543eaa919c3a2c4a8ef8aa81565b5fd7968f547bf7e7a06f5062

See more details on using hashes here.

File details

Details for the file qualbench-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: qualbench-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 22.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for qualbench-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 5d2b5c456cd8322af4b28c647561314e1d66d0d7abe139597bae694ade7d6540
MD5 8acd4309b3acfa680d87e6471f4f86e5
BLAKE2b-256 06f836a9f7b183aa4edf32591f3cea27c1458789fb491f5624d9f5af44497823

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page