Netsuke reports failures at the earliest stage that can identify them:
- YAML failures include locations when the parser provides them.
- Schema failures identify unknown or malformed fields.
- Jinja failures identify missing variables or invalid helpers.
- IR failures report missing rules, duplicate outputs, and cycles before Ninja starts.
- Ninja failures retain the subprocess exit status and output.
Human diagnostics include remediation hints where one is available. JSON mode exposes the same information as fields.
Terminal human-mode configuration-load events emitted by config_err_to_exit
include structured operation and error_category fields. operation is
diag_mode_resolution for the early diagnostic preference phase or
config_merge for the full configuration-merge phase; error_category is io,
validation, or parse. Paths and display text are never recorded. JSON mode
preserves the diagnostic document as the machine-readable failure output.
The --verbose flag enables diagnostic tracing, successful timing summaries,
and the final metrics snapshot described in
Diagnose configuration selection. It is
suppressed in JSON mode so stderr remains parseable.