GitHub Actions
.github/workflows/theformalera.yml
theformalera / verify a required check under branch protection. A kernel that fails verification can no longer be merged.
Inputs
Outputs
With
runner: local, the action installs theformalera[triton,engine] and caches .theformalera/cache, .theformalera/lemmas/local and the spec cache between runs. The reports and the proofs are uploaded as the theformalera-report artifact.
The pull-request comment
kernels/attn_decode.py:39 under Files changed.
GitLab CI
.gitlab-ci.yml
THEFORMALERA_TOKEN as a masked CI/CD variable. The theformalera-verify job runs on merge requests, on the default branch and on schedules. It publishes SARIF as a SAST report, keeps the reports and proofs as artifacts, and posts the summary to the merge request when GITLAB_API_TOKEN is set. Override THEFORMALERA_LEVEL and THEFORMALERA_RUNNER to change the level and run mode.
Buildkite
.buildkite/pipeline.yml
Any other CI
The action is a thin wrapper around three commands:verify exits with status 0 only when the policy passes. --report-dir writes the JSON report, SARIF, the Markdown comment and an HTML report; see Reports.
Pre-commit
Run the quick level on the kernels staged for commit:.pre-commit-config.yaml
What triggers re-verification
A kernel is verified again when any of these change: its source or the@triton.jit helpers it calls, its annotation, the locked spec version, the engine version, or the relevant settings in theformalera.toml. Comments and formatting do not change the lowered IR, so they do not trigger a new proof.
On the nightly run, UNKNOWN results are retried when new lemmas for their node have appeared, and spec security advisories for the locked versions are reported.