Runs tests, typechecks, lint, format checks and builds in one call and reports each command with its real exit code, so a gate does not depend on reading raw terminal output.
check_run- run one or more commands, each through$SHELL -cin an absolute directory and its own process group with stdin closed. The result has a status line per command with its exit code, recognised test or lint totals and a failure excerpt, and names the command's full log under$XDG_DATA_HOME/cookbook/checks/(default~/.local/share/cookbook/checks/), kept 7 days.
Commands get the environment your interactive login shell has in that directory, so a version manager (proto, nvm, mise) picks the tool versions the repository pins. A long command reports progress every 15 seconds, which keeps Claude Code from aborting a quiet call.
None.
| Variable | Purpose |
|---|---|
SHELL |
The shell that runs each command and provides the environment |
XDG_DATA_HOME |
Base of the log directory (default ~/.local/share) |
- Claude Code: the bridge loads it (
isInClaudeCode: trueinsrc/modules/registry.ts). - OpenCode:
orchestratorandimplementerallowcheck_run(opencode.json). The read-only profiles do not, becausecheck_runruns any shell command.