Skip to content
Docs
Esc
↑↓navigate↵open⌘Jpreview
On this page

Approvals

This page covers approval.json: how deepgym qa --approve records that an environment folder passed, what the file holds, and how deepgym check tells when the folder has changed since.

deepgym qa ./word_stats --mutants --mode docker --approve --by "Jane Doe"
deepgym check ./word_stats   # fails once the files no longer match the approval

When it is written

--approve --by NAME writes approval.json once QA passes with at least one rerun and every check you asked for (--mutants, --model) passed. Checks that didn’t run are listed with it, never counted as passed.

QA runs on a private copy of the folder, so the hashes describe exactly the files it tested. The folder must be self-contained: no symlinks, and no support files outside it.

What it holds

  • The full QA report.
  • A sha256 and the permission bits of every file in the folder, and the permission bits of every directory, hidden ones too, so even a .DS_Store Finder adds makes it stale. approval.json itself and the folder’s top-level .git are left out.
  • The deepgym version and the time.
  • The lint warnings from deepgym check, under lint and marked "advisory": true: information for the reader, never evidence that the verifier isolates the solution.

It is written once, read-only. Delete it to approve again.

Checking an approved folder

deepgym check fails when the files no longer match the approval, Harbor task folders included. approval.json is unsigned: it records what was tested, and check confirms the files still match that record, not who wrote it.