silo env validate checks an environment without running anything in it — the resources line up, and the TypeScript compiles.
It runs a real compile
This is the part that matters more than it sounds. Validation does not just check that files exist — it builds a TypeScript program over the environment and reports the diagnostics. Type-only imports are erased before execution, so an environment can load and run perfectly while being uncompilable. “It ran” is not evidence that it is correct..silo/tsconfig.json, written by silo init and never overwritten if you already have one. The validator and tsc -p .silo/tsconfig.json always agree, so there is no second source of truth about whether your environment is sound.
What it checks
Beyond compilation, validation catches the wiring mistakes that only show up mid-run:
A real example — scaffolding
VER-007 against a task that already has a grader:
Validate before you conclude anything
Make this the stopping condition when building an environment, rather than “the run worked”:In the SDK
--json, same checks. The CLI and the SDK are two interfaces over one implementation.
Exit codes
env validate exits non-zero when validation fails, so it drops straight into a pipeline:
Silo