Deterministic production readiness gate for vibe-coded FastAPI repos.
Reason this release was yanked:
Sunsetted
Project description
VibeGate
VibeGate runs deterministic readiness checks for vibe-coded FastAPI repos and produces an evidence ledger plus a deterministic Fix Pack of remediation patches.
Current version: 0.1.0a2 (alpha).
Quickstart
- Install from PyPI (recommended for meaningful results)
pip install "vibegate[dev]==0.1.0a2"
Optional with pipx:
pipx install "vibegate[dev]==0.1.0a2"
Minimal install (will fail if required tools are not present on PATH):
pip install vibegate==0.1.0a2
- Initialize a repo
vibegate init .
- Verify tooling
vibegate doctor .
- Run the gate
vibegate check .
- Review artifacts
VibeGate writes vibegate.yaml, .vibegate/suppressions.yaml, and generates artifacts/
plus evidence/. The report, fix pack, and JSONL evidence ledger are the audit trail for
what ran and why it failed. artifacts/ and evidence/ are generated outputs and typically
should not be committed.
Developer install
python -m pip install -e ".[dev]"
Demo
Try the demos:
examples/fastapi-demo/(fails: a test expectation mismatch)examples/fastapi-demo-fixed/(passes)
Each demo includes a run_vibegate.sh script that runs python -m vibegate.cli check .
and prints where artifacts and evidence land.
Local dev
make install
make test
make lint
make format-check
make typecheck
make gate
Run the gate after install:
vibegate check .
# or, always works and is more explicit
python -m vibegate.cli check .
Dev
python -m pip install -e ".[dev]"
pytest
Continuous Integration
CI runs a fast Ubuntu job on every pull request targeting main, and runs a broader
OS matrix on pushes to main (plus manual workflow dispatches). Each job installs dev
dependencies, runs the test/check steps, and always uploads debugging artifacts from
artifacts/ and evidence/ to the workflow run's "Artifacts" section in GitHub Actions.
Expected output files
Defaults (can be overridden by vibegate.yaml):
artifacts/vibegate_report.mdartifacts/fixpack.jsonartifacts/fixpack.mdevidence/vibegate.jsonl
Configuration contract:
vibegate.yaml(validated againstschema/vibegate.schema.json)
Troubleshooting
If vibegate.yaml fails schema validation, regenerate it or fix the required fields:
vibegate init . --force
This overwrites the existing vibegate.yaml. Or fix the required fields listed in the schema errors.
If you are pasting commands into zsh and # comments break execution, enable interactive comments with setopt interactivecomments.
What runs
Baseline checks:
- Formatting:
ruff format --check - Lint:
ruff check --output-format json - Typecheck:
pyright --outputjson - Tests:
pytest -q - Dependency hygiene: lockfile required +
uv lock --checkwhen UV is detected - Config sanity: deterministic scanning for debug/uvicorn reload/cors/secret patterns
Optional when the tool is on PATH:
bandit(JSON output)gitleaks(JSON output)osv-scanneroffline only when a local DB snapshot is configured
Evidence & Fix Pack
Evidence is written as JSONL with run_start, tool_exec, finding, suppression_applied, and run_summary events. Each tool execution records argv, cwd, duration, exit code, and artifact hashes.
Fix Pack output (fixpack.json + fixpack.md) is deterministic and ordered by category: dependency hygiene → vulnerability → secrets → security → typecheck → lint → formatting → tests → config → runtime.
CLI
vibegate check [REPO_ROOT](defaults to.; exit 0 on PASS, 1 on FAIL, 2 on config error)vibegate init [REPO_ROOT](scaffoldvibegate.yaml,artifacts/,evidence/,.vibegate/)vibegate doctor [REPO_ROOT](report missing tools + version drift)vibegate fixpack(runs checks, emits fix pack only, still writes evidence)vibegate verify(alias ofcheck)vibegate prompt(stub)
How to add VibeGate to an existing FastAPI repo
- Add
vibegate.yamlat the repo root using the contract schema inschema/vibegate.schema.json. - Set
project.app_moduleto your ASGI entrypoint (e.g.app.main:app). - Commit a lockfile (
uv.lock,poetry.lock, orpdm.lock) and ensure it stays fresh. - Add
.vibegate/suppressions.yamlif you need to suppress known findings with justification and expiry. - Run
vibegate checklocally and in CI, and reviewartifacts/fixpack.mdfor remediation steps.
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 vibegate-0.1.0a2.tar.gz.
File metadata
- Download URL: vibegate-0.1.0a2.tar.gz
- Upload date:
- Size: 31.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d616538bf2e12e23f8e47725038b6280d1858a63319567db4f4eac1f79fe1f51
|
|
| MD5 |
be9c322450211054f93e38f26947fc7e
|
|
| BLAKE2b-256 |
519922698c5b3a1403b0d6845ef62aea0fd3a84df775d7c813fec99dc60b2dc4
|
File details
Details for the file vibegate-0.1.0a2-py3-none-any.whl.
File metadata
- Download URL: vibegate-0.1.0a2-py3-none-any.whl
- Upload date:
- Size: 29.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ea403095be9372a2d0643bc22c98fe82b95b5d38c6123b47cf8b3f772cc5418e
|
|
| MD5 |
02522e6c993e52992e165e90534582e3
|
|
| BLAKE2b-256 |
56c374e515ade1b927e130e656c4ab5b1b85c9c1f0981d48034124572cc63b7d
|