Skip to main content

Verify every AI change before it reaches production

Project description

Vouqis Verify

Verify every AI change before it reaches production.

Vouqis Verify runs automatically on every pull request that touches your AI code. It executes your existing evaluation suite, generates a deployment review, and comments on the PR so your team can make an informed merge decision.

## Vouqis Verify

## What Changed

| | |
|---|---|
| `prompts/` | ✓ 1 file changed |
| `src/agents/` | — no change |
| Evaluation | ✅ PASS |
| Duration | 4,231ms |
| Exit code | `0` |

## Recommendation

⚠️ MERGE WITH WARNING — Confidence: Medium

## Why

• Evaluation command completed successfully.
• AI behavior files changed — human review recommended.
• Existing tests cannot determine behavioral impact.

Changed: `prompts/system.txt`

---
Did this report change your merge decision?
✅ Yes, I merged because of it · ⚠️ Yes, I delayed or blocked · ➖ No, confirmed · ❌ No, not useful

Quickstart

1. Install

pip3 install vouqis-verify

2. Initialise

vouqis init

This creates a vouqis.yml in your current directory.

3. Configure

# vouqis.yml
eval_command: pytest tests/eval/ -v   # any command — pytest, promptfoo, braintrust, custom script
baseline: main
ai_paths:
  - prompts/
  - src/agents/
  - config/models/

4. Add the GitHub Action

# .github/workflows/vouqis-verify.yml
name: AI Change Verification

on:
  pull_request:
    branches: [main]

jobs:
  verify:
    runs-on: ubuntu-latest
    permissions:
      pull-requests: write

    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Verify AI changes
        uses: vouqis/vouqis-verify@v0.1.0
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}

That's it. Every PR that touches your AI paths now gets a deployment review.


How it works

Push commit
  ↓
GitHub Action triggers
  ↓
vouqis verify
  ├── Detects changed AI files (git diff vs baseline)
  ├── Runs your eval_command
  └── Generates deployment review
        ↓
        PR comment posted
        ↓
        Engineer reads recommendation → merges or blocks

Vouqis does not run your evals for you. It runs the command you already have. This means it works with any evaluation framework: pytest, promptfoo, braintrust, a custom shell script, or nothing at all — just exit 0 or exit 1.


CLI reference

vouqis init               Generate a default vouqis.yml
vouqis verify             Run evaluation and generate deployment review
  --config PATH           Config file (default: vouqis.yml)
  --base BRANCH           Base branch to diff against (overrides config)
  --pr INT                PR number (set automatically in GitHub Actions)
  --repo OWNER/REPO       GitHub repository (set automatically in GitHub Actions)
  --token TOKEN           GitHub token (set automatically in GitHub Actions)
  --no-comment            Skip posting the PR comment
vouqis doctor             Validate config and environment
  --config PATH           Config file to validate (default: vouqis.yml)
vouqis --version          Print version and exit

Configuration reference

# eval_command: shell command to run your evaluations
#   exit 0  → PASS
#   exit 1+ → FAIL
eval_command: pytest tests/eval/ -v

# baseline: branch to compare against for detecting AI file changes
baseline: main

# ai_paths: directories or file prefixes that contain AI-related code
#   Only changes to these paths affect the confidence rating.
#   The eval command runs regardless.
ai_paths:
  - prompts/
  - src/agents/
  - config/models/

# timeout_seconds: kill the eval command if it runs longer than this
timeout_seconds: 300

# feedback_url: link in the PR comment for 👍/👎 feedback
#   Defaults to https://vouqis.tech/verify-feedback
# feedback_url: https://forms.gle/yourform

Confidence levels

Verdict Confidence When
✅ SAFE TO MERGE High Eval passed, no AI files changed
⚠️ MERGE WITH WARNING Medium Eval passed, AI files changed
❌ BLOCK MERGE High Eval failed

Local testing

# Install in dev mode
cd packages/verify
pip install -e ".[dev]"

# Run tests
pytest

# Simulate a verify run (without posting a PR comment)
vouqis verify --no-comment

# Test against a specific base branch
vouqis verify --base develop --no-comment

Supported evaluation frameworks

Vouqis Verify runs any shell command. Examples:

# pytest
eval_command: pytest tests/eval/ -v

# promptfoo
eval_command: promptfoo eval --config promptfooconfig.yaml

# braintrust
eval_command: braintrust run evals/

# custom script
eval_command: ./scripts/run-evals.sh

# multiple steps
eval_command: pytest tests/unit/ && pytest tests/eval/

Feedback

After each PR review, the comment includes 👍 / 👎 links. Click them to tell us whether the recommendation was useful. This is how we validate the product.

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

vouqis_verify-0.1.1.tar.gz (11.4 kB view details)

Uploaded Source

Built Distribution

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

vouqis_verify-0.1.1-py3-none-any.whl (10.0 kB view details)

Uploaded Python 3

File details

Details for the file vouqis_verify-0.1.1.tar.gz.

File metadata

  • Download URL: vouqis_verify-0.1.1.tar.gz
  • Upload date:
  • Size: 11.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for vouqis_verify-0.1.1.tar.gz
Algorithm Hash digest
SHA256 c9c9af6ae41b014a7a79af1f6310c8cb4dc2f4f0a8b7bdb13474d59ca8402267
MD5 ba1843c5aa0159761ff265fc602ade4f
BLAKE2b-256 9cb853e3440720101c0df153a096d34d9e629a39b2706f4438f2b0fe47fe7424

See more details on using hashes here.

File details

Details for the file vouqis_verify-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: vouqis_verify-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 10.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for vouqis_verify-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8918da8ea10ba0a8dd993d1e47655dfb7d210ed9f4980b77fef38877d0f1e0f4
MD5 05cecce6cbd0cf0a78eb03ff04fe4bf5
BLAKE2b-256 e8b903c5810de0acb9d8122e2bcabe175c2cc89177a04a7dc6971a8111e39e55

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