Contributing

Thanks for helping. This list is a curation, not a catalog. Every entry should be among the best resources on vericoding, with one sentence telling readers why it is worth their time.

Ground Rules

Scope

In scope is anything about writing code that comes with a machine-checked proof against a formal specification: languages, verifiers, proof assistants, verified systems, learning material, and research on AI that writes code, specifications, or proofs.

Out of scope:

Quality Bar

Type Requirements
Tool Public, documented, and installable. Commits or releases within the last 12 months. Not archived.
Paper Peer-reviewed at a recognized venue, or at least 25 citations, or introduces a benchmark or tool others use. Preprints under six months old need a clear reason to be listed.
Benchmark Public data, a documented size, and an evaluation harness or protocol.
Learning resource Current with the tool it teaches. Free, or marked 💰.
Essay A widely read argument or story about verified software by a practitioner or researcher. Not a product announcement.
Organization Verified software or AI vericoding is a primary focus, with a public description of the work.

Subsections are shortlists and aim for at most 15 entries. When a subsection is full, say which entry yours should replace and why. One in, one out.

Entry Format

Tools and other resources:

- [Name](https://project.example) - What it does and why it matters, in one sentence.

A tool entry may cite its defining paper at the end of the description, for example ([OOPSLA 2023 paper](https://doi.org/10.1145/3586037)).

Papers:

- [Exact Paper Title](https://arxiv.org/abs/2409.13082) - What it contributes, in one sentence. *OOPSLA 2025* · [Code](https://github.com/org/repo)

Essays use the paper format with a short venue tag such as Blog 2026.

Benchmarks go in the Benchmarks table. Keep it sorted by year, then by name, and realign the table with python3 scripts/align_tables.py README.md. The pre-commit hook does this for you.

Description rules:

Section headings start with an emoji, followed by an overview in italics: one short sentence with no commas or semicolons that adds something the heading does not. If you add or rename a section, update the table of contents to match; awesome-lint checks it.

Markers:

Ordering

Before Opening a Pull Request

  1. Install the hooks once with pip install pre-commit && pre-commit install, or run pre-commit run --all-files before pushing. The hooks run awesome-lint, align tables, and fix whitespace.
  2. Check the two entries next to yours. If one no longer meets the quality bar, fix it or say so in your pull request.
  3. Fill in the pull request template.

Maintenance

Three automated checks keep the list healthy, and a fourth publishes it:

Tools that are archived or inactive for more than a year are removed. Papers stay unless they are retracted or clearly superseded.

Mentioned in Awesome Vericoding

If your project is listed, you are welcome to add this badge to its README:

[![Mentioned in Awesome Vericoding](https://awesome.re/mentioned-badge.svg)](https://github.com/JGalego/awesome-vericoding)