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
pip 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vouqis_verify-0.1.0.tar.gz.
File metadata
- Download URL: vouqis_verify-0.1.0.tar.gz
- Upload date:
- Size: 11.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b928d414cdb94e59bf38e24e0b174a6fe87a25438fcbef33ee033cb96c98c126
|
|
| MD5 |
6d60485268094dbedc7af69611aad17c
|
|
| BLAKE2b-256 |
3b5211fff5f96dc204521b2cbfbd9f19eb7bd63b0d219c11428695ed2bc80cd7
|
File details
Details for the file vouqis_verify-0.1.0-py3-none-any.whl.
File metadata
- Download URL: vouqis_verify-0.1.0-py3-none-any.whl
- Upload date:
- Size: 9.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cd6a4c0c86826a8652260061d6b5fd81246804cfa0097c26b40648911d63e75e
|
|
| MD5 |
60a3bf05454badfe45f1b31428e57bfa
|
|
| BLAKE2b-256 |
4b2b8faa3f095e8301331bac5fa268a1c2cb97d3d54f2c27121e30adcfe62cfa
|