Output formats
Text for local work, JSON for scripts, SARIF for code scanning — three formats, each worth its weight.
Text
dollarlint found 8 issues (2 parsing, 6 validation) in 3 files after 180ms
invalid.json
/ required must have required property "enabled"
/name type expected string, received number
fixture.json
/ parse parse fixture.json: multiple JSON values
hint: This file contains content after the first JSON value; use .jsonl/.ndjson for line-delimited data, or exclude generated/test fixtures.
invalid.toml
/enabled type expected boolean, received string
Summary: 8 discovered, 7 validated, 1 skipped, 8 issues (2 parsing, 6 validation) in 180ms Text with locations
settings.json
3:11 type expected string, received number /name
4:12 minimum must be >= 1 /count
Without --locations, the first column is the JSON Pointer
location instead of a line and column.
Skipped Files
--show-skipped adds skipped-file groups to text output by reason,
class, and coverage signal. Large low-signal groups such as fixtures, lockfiles,
and data files are summarized with a sample and an omitted count so terminal
output stays readable; JSON output keeps the full per-file list.
Issue Hints
Issue hints add curated context to recurring validation and parsing
patterns without changing pass/fail behavior. The default auto
mode prints actionable hints and groups repeated hint patterns in human output.
Set --issue-hints off or output.issueHints = "off" for raw issues only, or use verbose to include rule IDs, confidence,
and source links.
Quiet text
--quiet keeps successful text output to a single pass line. On
failing runs, it still prints the headline and issue rows, but omits warnings,
skipped files, and the summary block.
JSON
dollarlint validate . --format json
JSON output gives you the full accounting: run root, summary counts,
numeric duration, per-file results, active issues, ignored issues, parsing
hints, structured issue-hint metadata, warnings, schema locations, and
source positions when available. The top-level $schema field declares
the JSON Schema for the report, and formatVersion versions this
machine-readable contract.
File and issue entries use path for the path relative to the validation
root; local file schemas under that root are reported as relative paths while
remote schemas remain URLs. Active findings live in
issues; ignored findings live in ignoredIssues.
Both arrays, plus warnings, are always present even when
empty. Each issue includes a category of parsing, validation, schema, or
coverage. The summary's issues object includes
total, parsing, validation, schema, and coverage counts, and durationNanos is the stable
numeric duration field.
Skipped file entries include skipReason, skipClass,
skipImportance, and skipDetail when DollarLint can
classify why a file was not validated. This separates low-value data or lockfile
skips from higher-signal unsupported project configuration and external schema
availability problems.
When an external catalog or remote schema cannot be compiled, DollarLint reports one grouped warning for the schema source and marks affected files as skipped instead of repeating a schema issue for every file that used the same broken external schema.
Files and issues produced from catalog inference may also include schemaMatch. This object records whether the catalog candidate was matched,
ignored, skippedLowConfidence, or skippedMissingEvidence, the matched catalog pattern, confidence, a human-readable reason, and
suggested config snippets such as [[schemas.associations]] or [[schemas.catalogs.ignore]].
Files and coverage issues for recognized config files without a usable
built-in or catalog schema may include schemaGap. The gap
names the config family, explains the current absence of schema support,
and links to the tool documentation when DollarLint knows one.
Inspect
dollarlint inspect . --format json
Inspect output is a discovery and association report, not a validation
report. It lists every discovered file, its associated schema or
none, the association source, and a human-readable reason.
Catalog-backed entries include schemaMatch and suggested config
snippets so you can turn inferred matches into explicit associations or catalog
ignore rules. Known unsupported configs include schemaGap
metadata and documentation links.
Bundle
dollarlint validate . --format bundle --locations --show-skipped --output dollarlint.bundle.json
Bundle output captures the JSON result, SARIF result, and styled text
output from one validation run. The top-level object has json, sarif, and styled keys; styled includes
both ANSI and plain text so tools can inspect the same terminal experience a
user would see. If styled skipped-file text was summarized, styled.truncated is true; the bundle's json result still contains
the full skipped-file detail.
Branch errors
[output]
branchErrors = "best"
Schemas that use oneOf or anyOf can produce many mutually
exclusive branch failures for one bad value. By default, DollarLint reports
the closest matching branch so the issue list stays focused. Set output.branchErrors = "all" in .dollarlint.toml when you need every failed branch leaf for
schema debugging or exact validator inspection.
SARIF
dollarlint validate . --format sarif --output dollarlint.sarif
SARIF output is built for GitHub code scanning and similar tools. SARIF is
generated only when --format sarif is requested. Source locations
are best-effort: when a precise range isn't available, DollarLint falls back
to the nearest file or parent object.
Warnings
Warnings are separate from validation issues. For example, a catalog
failure with schemas.catalogs.failure = "warn" appears as a warning
while explicit and configured schemas continue validating.