Tools — Validator

ICF Validator

Paste or type an ICF document and validate it instantly. Powered by the official icf.js library (ICF spec v1.1) running entirely in your browser — nothing is uploaded. The same engine the apps use, plus an extra authoring hint.

document.icf 0 lines
Awaiting input
    What it checks

    Full ICF validation, in real time

    Every diagnostic here is produced by icf.js itself — the official parser and validator, not a reimplementation. On top of it, the validator layers one extra editor hint — a directive line missing its @ — that the library leaves to your discretion.

    Schema & field counts

    Builds the declared schema and checks every data row against its leaf field count — flagging FIELD_COUNT_MISMATCH.

    Hierarchy & markers

    Catches rows on container nodes, rows without an owner, unknown nodes, and the wrong row marker — WRONG_ROW_MARKER: = for singletons vs - for collections.

    Field lists

    Detects unclosed [ brackets, duplicate field lists, and lists with no owning node.

    Text blocks

    Tracks <<TAG … TAG>> preformatted blocks and reports any that are never closed.

    Directives & sections

    Validates section order, record attributes, multiple @schema id= blocks and master types.

    References & primary objects

    Resolves Type:Id references — record-local primary= objects first, then @masters, including master-to-master foreign keys — flagging UNRESOLVED_MASTER_REFERENCE and UNRESOLVED_PRIMARY_REFERENCE.

    Annotations (v1.1)

    Parses !indexes, !defaults, !constraints, !expressions and row !overrides — flagging unknown, misplaced or malformed annotations.

    Constraints (v1.1)

    Validates required and unique declared in !constraintsREQUIRED_FIELD_MISSING and UNIQUE_CONSTRAINT_VIOLATION, as non-fatal warnings.

    Indentation & versions

    Warns on tab indentation and on documents declaring a newer ICF version than 1.1.

    Privacy: validation is 100% client-side. The ICF you paste never leaves your browser — no network request is made with your content.