Skip to content

Static checks ​

Static checks (<language>) is the job a consumer sees in CI when any of the four source-scanning checks fails. It bundles those checks as steps of one job per language, because each is a sub-second scan that parses source text — no suite runs, no dependencies install, no build compiles — so they share a single checkout and a single CLI download. This page is the entry point for the job: which step went red, which check that step is, and where its full record lives.

Why one job ​

The four checks share everything expensive: a checkout, a node setup, and the CLI. Each scan reads source and parses it, so a check's step finishes in well under a second. Running them as steps of one job turns five sub-second scans into one job's worth of setup instead of five jobs each repeating the same checkout. The toolchain-heavy checks — unit-coverage and mutation — install, provision, and build, so each gets its own job.

The steps ​

StepCheckAsksRuns
Check colocated testcolocated-testDoes a unit test exist for every source file?always
Check co-change vs <base>colocated-test (co-change)Does a changed source change its test with it?pull requests (Python, TypeScript)
Check one function per fileone-function-per-fileDoes each source file hold one substantial function?always
Check unit lintunit-lintDoes every unit test mock every collaborator?always
Lint integration testsintegration-lintDoes every integration test run first-party code for real?always

A step skipped by gates is absent from the job; a step whose language isn't present is skipped. Steps run with !cancelled(), so a step that follows a failed one still runs and reports its own result — one job surfaces every violation rather than stopping at the first.

When the job runs ​

Always, one job per detected language with sources under source. The gates input gates the whole job: if gates names none of colocated-test, unit-lint, one-function-per-file, integration-lint, the job is skipped entirely. Naming any one of them runs the job, and each step applies its own language-membership condition — a language present for colocated-test but with no integration suite still runs the colocated step and skips the integration-lint step.

When Static checks goes red ​

The job's name in CI is Static checks (<language>). A red step names the check and the offending file in its log. Open the red step to see which check failed, then that check's page carries the per-language behavior, the exact rule, the exemption that lifts it, and the configuration keys that tune it.

Configuration ​

The job takes no input of its own. Its steps read the shared config file, and each check's exemption names and keys live on that check's page. The one input that changes whether the job runs at all is gates.

Learn more ​