Skip to main content

21. Validation is a rule engine, and conformance is a profile of it

Date: 2026-09-13

Status​

Accepted. Amended by 36 on 2026-09-26: the engine and the structural profile live in the core, the PDF/A and PDF/UA profiles in the AdCodicem.Pdf.Conformance satellite, and rule identifiers follow the grammar that record gives.

Context​

Repair, conformance and every later guarantee are expressed in terms of findings. Two validators with two vocabularies would mean two answers to "is this document sound?".

Decision​

Validation lands immediately after reading (M02), as the structural profile of a rule engine whose findings carry stable identifiers. PDF/A and PDF/UA arrive later (M20) as further profiles, not as a separate validator.

Consequences​

  • Consequence — rule identifiers are public API from the day they ship, and docs/website/docs/reference/validation-rules.md documents them.

Recorded as D20 before this project adopted Architecture Decision Records; the identifier still appears in commit messages and in CLAUDE.md.