Skip to main content

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.0a1 (alpha).

Quickstart

  1. Install locally
pipx install -e .
# or
uv tool install -e .
  1. Initialize a repo
vibegate init .
  1. Verify tooling
vibegate doctor .
  1. Run the gate
vibegate check .
  1. Review artifacts

Artifacts land in artifacts/ and evidence in evidence/. The report, fix pack, and JSONL evidence ledger are the audit trail for what ran and why it failed.

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.md
  • artifacts/fixpack.json
  • artifacts/fixpack.md
  • evidence/vibegate.jsonl

Configuration contract:

  • vibegate.yaml (validated against schema/vibegate.schema.json)

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 --check when 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-scanner offline 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] (scaffold vibegate.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 of check)
  • vibegate prompt (stub)

How to add VibeGate to an existing FastAPI repo

  1. Add vibegate.yaml at the repo root using the contract schema in schema/vibegate.schema.json.
  2. Set project.app_module to your ASGI entrypoint (e.g. app.main:app).
  3. Commit a lockfile (uv.lock, poetry.lock, or pdm.lock) and ensure it stays fresh.
  4. Add .vibegate/suppressions.yaml if you need to suppress known findings with justification and expiry.
  5. Run vibegate check locally and in CI, and review artifacts/fixpack.md for remediation steps.

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

vibegate-0.1.0a1.tar.gz (63.6 kB view details)

Uploaded Source

Built Distribution

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

vibegate-0.1.0a1-py3-none-any.whl (28.7 kB view details)

Uploaded Python 3

File details

Details for the file vibegate-0.1.0a1.tar.gz.

File metadata

  • Download URL: vibegate-0.1.0a1.tar.gz
  • Upload date:
  • Size: 63.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for vibegate-0.1.0a1.tar.gz
Algorithm Hash digest
SHA256 73787a9c684cd8cb5b2a1ff190a2cdcede3bbfa3a3e1831917479fde5c5544d1
MD5 c029e76fd0eb41c798647ad41bab0b7f
BLAKE2b-256 15c3a01a15a959e5d968a2d3cde5c27393b9fbbda37c827060b37610baea4f05

See more details on using hashes here.

File details

Details for the file vibegate-0.1.0a1-py3-none-any.whl.

File metadata

  • Download URL: vibegate-0.1.0a1-py3-none-any.whl
  • Upload date:
  • Size: 28.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for vibegate-0.1.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 976b377f8e87c1e3bedef6ec6781316c052dd2de0d4b31b0e8f11221aa040983
MD5 1ead3901a9255f42bf2309d2efc8f968
BLAKE2b-256 f19c9880f21c2172303b0e44d5b30023a7d8904e85d9050d96f040674844b079

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