PyGate is a deterministic Python CI gate that wraps Ruff, Pyright, and pytest and can escalate with structured evidence.
- running one fail-fast gate over Python lint, typecheck, and test output
- generating machine-readable artifacts for follow-up agents or humans
- attempting bounded deterministic repair before escalating
- replacing Ruff, Pyright, or pytest
- unbounded auto-fixing
- semantic code repair beyond deterministic lint-safe edits
pip install -e ".[dev]"
pygate --help
pygate summarize --input demo/artifacts/failures.json
pytest -q
ruff check src/ tests/
pyright src/pygate run: writes.pygate/failures.jsonand.pygate/run-metadata.jsonpygate summarize: writes.pygate/agent-brief.jsonand.pygate/agent-brief.mdpygate repair: writes.pygate/repair-report.jsonor.pygate/escalation.json
- gate results are normalized into a stable schema
- deterministic repair stops within the configured budget
- escalation artifacts explain what blocked automatic completion
- required underlying tools are not installed in the target environment
- users expect PyGate to invent fixes for semantic failures
- downstream automation ignores the escalation codes and retries blindly
- keep artifact schemas aligned with the Pydantic models
- keep the repair loop bounded and explicit
- keep CLI examples in README runnable against demo artifacts