Validate Information Architecture contracts per ADR-054. Use when authoring or reviewing IA sections in package.yaml, checking render_as declarations, or enforcing coverage levels.
Level 0 — Pointer Only (Forbidden for Tier-1)
render_as declarationLevel 1 — Render Type Declared (Forbidden for Tier-1)
render_as but complex types don't enumerate internal fieldsLevel 2 — Fully Specified (Required for Tier-1)
table requires columns with field paths and headerscard-list requires card with title and fields (each with path and render_as)nested-object requires fields with explicit sub-fields and their render_as types| render_as | Typical Schema Type | Description |
|---|---|---|
paragraph | string | Plain text block |
list | array of strings | Unordered bullet list |
ordered-list | array of strings | Numbered list |
table | array of objects | Rows and columns with column definitions |
key-value-pairs | object with scalar values | Label: value layout |
card-list | array of objects | Cards with title + sub-field rendering |
nested-object | object | Named properties as labeled sub-sections |
render_as: paragraph default applies only to scalar string fieldsobject or array):
render_as MUST be explicitly declaredrender_as: paragraph on a complex type is INVALID (test failure)render_as on a complex type is INVALID (test failure)information_architecture:
version: 2
sections:
overview:
label: "Overview"
binds:
- path: architecture_summary
render_as: nested-object
fields:
- path: title
render_as: paragraph
- path: style
render_as: paragraph
- path: key_decisions
render_as: list
- path: risks
render_as: table
columns:
- field: risk
label: "Risk"
- field: impact
label: "Impact"
- field: mitigation
label: "Mitigation"
render_as values are in pinned vocabularyrender_as (not paragraph, not missing)table binds have columns with field + labelcard-list binds have card with title and fields (each with path + render_as)nested-object binds have fields with path + render_as