Skip to content

tld validate

View Markdown

tld validate is your quality gate. It checks the workspace structure, verifies that referenced symbols still exist in source, and flags diagrams whose metadata is older than the file’s last Git commit.

Terminal window
tld validate
  • Missing elements: a connector references an element that doesn’t exist
  • Duplicate refs: two elements with the same key
  • Invalid types: an element kind that isn’t recognized
  • Circular parent references: a diagram that’s its own ancestor
  • Broken view references: connectors pointing to views that don’t exist
  • Stale symbols: an element points at a file or symbol that moved or disappeared
  • Outdated diagrams: metadata is older than the source’s latest commit

A clean workspace prints a summary:

✓ Workspace valid: 42 elements, 12 views, 35 connectors

The validation level controls how strict checks are. Set it globally or override per run:

Terminal window
tld validate --strictness 1 # Minimal
tld validate --strictness 2 # Standard (default)
tld validate --strictness 3 # Strict — checks labels, descriptions, naming
tld validate --strictness 3 --verbose

After structural validation, tld validate runs the architectural linter and prints a summary grouped by rule code:

Architectural Warnings (Level 2: Standard)
CODE RULE VIOLATIONS
ARC001 Isolated Object 1
ARC002 High Density 1

Pass a rule code to see its full detail, including every violating element and how to fix it:

Terminal window
tld validate ARC001

Known codes: ARC001–ARC007, ARC101–ARC103, ARC201–ARC203. See Linting Rules for what each one means.

Outdated diagrams are warnings by default. In CI, make them fail the build:

Terminal window
tld validate --strict

--strict exits non-zero when any diagram is outdated, so stale architecture docs break the build instead of slipping through.

Suppress specific rule codes in workspace config:

.tld/.tld.yaml
validation:
exclude_rules: [ARC002]
FlagDefaultWhat it does
--strictnessconfig / 2Override validation level [1-3]
-v, --verbosefalseShow full architectural warning output
--strictfalseExit non-zero when outdated diagrams are detected