jstm agent conform prints one merged report. This page explains every part of it.
Human output
Conformance: spec <id>— the spec pack you were checked against, asv05@<hash>. The hash pins the exact spec content.lanes: …— which lanes ran.ranmeans it completed.did_not_runmeans it was filtered out or failed.- One block per flag:
[severity] RULE_ID (target) id=…followed by an indented rationale. The fullidis printed so you can copy it into--ignore <id>. - The verdict line:
PASSorFAIL, a per-lane count, how many flags were ignored, and the exit code.
Anatomy of a flag
Every flag, human or JSON, has the same fields.
The
id is deliberately keyed on stable structure, not wording. A semantic judge may rephrase its rationale run to run, but the rule, target, and violation class stay put — so the id stays put, and so does any acknowledgement you’ve made.
Severity
Severity comes from the lane’s default, which a spec rule can override:schemadefaults toerror, because it is authoritative.judgeandspec_conflictdefault towarning, because they are advisory, unless the rule sets an override. The lifecycle spec conflict is one such override, aterror.
--fail-on threshold, which defaults to error, affect the exit code. Warnings are always visible but non-fatal by default.
JSON output
--json emits the full report as a single JSON line, for CI and tooling.
flags— the active, un-ignored flags that count toward the verdict.ignored— flags suppressed by an acknowledgement. Only populated when you pass--show-ignored. Excluded fromsummarycounts and the exit code.summary— per-lane active counts plusignored.lane_errors— if a lane crashed, its error type is recorded here and the lane showsdid_not_runinlanes_run.
Exit codes
With
--fail-on none, flags become purely advisory: the run exits 0 regardless of severity, and only a degraded required lane still forces 1.
See also
- Acknowledging flags — suppressing flags you’ve decided about.
jstm agent conform— every flag.