Skip to main content
Check that your schema operations have SDL descriptions. Compares against the most recent snapshot to detect regressions only — new operations missing descriptions or existing descriptions that were removed.

Usage

dino lint --tenant <id> [flags]

Flags

FlagTypeDefaultDescription
--tenantstringRequired. Tenant ID (or set in .dino.yml)
--envstringTenant defaultTarget environment
--format"markdown" | "json""markdown"Output format
--quietbooleanfalseSuppress stdout output
--snapshot-dirstring.dino/snapshotsDirectory for reading and writing snapshots
--fail-on-undocumentedbooleanfalseExit with code 1 if description regressions are found

How It Works

  1. Discover — Introspects the live API schema
  2. Load baseline — Reads the most recent snapshot from disk
  3. Audit — Compares current descriptions against the baseline
  4. Save snapshot — Writes the current schema as the new baseline
  5. Report — Outputs coverage stats and any regressions
The audit tracks three categories:
CategoryMeaning
New undocumentedOperations added since the last snapshot that have no SDL description
Description removedOperations that previously had a description but no longer do
Description addedOperations that gained a description since the last snapshot
On the first run (no previous snapshot), the command saves a baseline, reports current coverage, and exits with code 0. No regressions are possible without a baseline.

Examples

Check description coverage

dino lint --tenant acme --env staging
# SDL Description Audit — acme / staging

Coverage: 87% (142/163 operations documented)

## Regressions
  New undocumented: 2
    - Mutation createBulkImport
    - Query rawMetrics

  Descriptions removed: 0

## Improvements
  Descriptions added: 4
    - Query getUser
    - Query listTeams
    - Mutation updateProfile
    - Mutation deleteAccount

Result: FAIL (2 regressions)

CI gate for documentation

dino lint --tenant acme --env production --fail-on-undocumented
Returns exit code 1 when new undocumented operations are introduced or existing descriptions are removed. Use this to enforce documentation standards in CI.
- name: SDL description check
  run: dino lint --tenant acme --env production --fail-on-undocumented

JSON output

dino lint --tenant acme --format json
Pair dino lint --fail-on-undocumented with dino diff --fail-on-breaking in your CI pipeline to catch both schema breakage and documentation regressions.

Exit Codes

CodeMeaning
0No regressions, first run (baseline saved), or --fail-on-undocumented not set
1Regressions detected with --fail-on-undocumented, or command error