OVK is an open interoperability layer. Contributions should make formal methods tools easier to use in AI-agent engineering workflows.
- Schemas and validation logic
- Adapter manifests and implementations
- Property templates with clear engineering value
- End-to-end PR evidence examples
- Tests that prevent evidence dishonesty
- Benchmark fixtures for agent-authored PR verification
- Do not add a backend without a capability manifest.
- Do not return a bare boolean from an adapter.
- Do not collapse
unknown,error, orskippedintopass. - Do not claim generic verification without assumptions and limits.
- Prefer narrow, useful property templates over broad unverifiable claims.
- Keep OVK backend-neutral: every adapter must state what its pass/fail results mean.
- Read CURRENT_RELEASE_STATUS.md, ARCHITECTURE.md, and STATUS.md.
- Run release readiness checks:
pip install -e '.[dev]'
pytest
ovk release-preflight| Area | Location |
|---|---|
| CLI | ovk/cli.py |
| Core verification routing | ovk/core/kernel.py, ovk/core/router.py |
| Check-type evaluation | ovk/core/multi_lane.py |
| Release bundles | ovk/core/release_bundle.py |
| Evidence quality | ovk/core/evidence_quality.py, ovk/core/evidence_invariants.py |
| Planning | ovk/core/planner.py, ovk/core/change_detection.py |
| Diff parsing | ovk/core/diff_parser.py, ovk/adapters/workflow/, benchmarks/real_diffs/ |
| External adapters | ovk/adapters/{cedar,tla,kani,dafny,verus,lean,cbmc,alloy}/ |
| Core check adapters (five check types) | ovk/adapters/{opa,z3,infra,ci_secrets,deployment}/ |
| MCP | ovk/mcp_server.py, ovk/mcp_stdio.py |
| GitHub Action | action.yml |
| Schemas | schemas/ |
| Examples | examples/, examples/repair_loops/ |
| Benchmark | benchmarks/formal_pr_bench/, benchmarks/real_diffs/ |
- Define input schema in
schemas/. - Implement adapter under
ovk/adapters/. - Register in
ovk/core/multi_lane.py(evaluate_lane,LANE_ALIASES). - Add CLI command in
ovk/cli.py. - Add examples, regression fixture, and benchmark case.
- Update
ovk/core/release_metadata.pyand SCHEMA_INDEX.md. - Document in LANES.md.
- Add to
examples/verification_manifests/full_mvp.jsonif part of the standard five-check manifest.
pip install -e '.[dev]'
pytest
ruff check ovk tests benchmarks scripts
ovk release-preflightAn adapter must include:
capability.json(or manifest underadapters/)- implementation code under
ovk/adapters/ - tests and at least one fixture
- documentation of assumptions and limits
- normalized result mapping per ADAPTER_CONTRACT.md
A template must include:
- verification intent JSON under
templates/ - threat or engineering scenario
- expected backend class
- failure modes and anti-vacuity considerations
- example evidence fixture when possible
- Invalid input must not produce
allow. - Unknown and error states require human review.
- Use shared output helpers in
ovk/core/run_outputs.py. - Release artifacts must pass
ovk validate-outputs. - Update STATUS.md when the command surface changes.
- Run
python scripts/check_command_surface.pyafter CLI changes.
Before tagging, complete RELEASE.md checklists.