docs/current_docs/extending/how-dagger-works/checks.mdx
A check is a function that validates a workspace.
Checks have no required arguments. That is what lets Dagger run them as a standing project signal: locally, in CI, and in Cloud.
A good check answers a question a developer cares about:
The check should fail with a clear next step.
Checks validate the caller's project.
SDK tests validate the module implementation.
Both matter. Keep them separate:
A good check is:
Checks should reuse public functions when that makes the contract clearer.
A check cannot require arguments. Use defaults instead:
If it cannot run without required arguments, it is a normal function.
Cloud autocheck runs workspace checks for pull requests once the workspace is connected.
A module does not need special CI code. It needs checks that are clear, portable, and deterministic.
Next: Cache.