Skip to main content

Spec navigation index

A cross-reference table for porters and reviewers. Each row links a language/evaluation section to the ADR(s) that define it and to the conformance fixtures that validate it. Use this when you want to answer "where is the binding text on X?" without grep.

The fixture column shows the lowest-numbered fixture(s); see coverage.md for the full ADR ↔ fixture matrix.

SurfaceSpec sectionGoverning ADRsSample fixtures
Template blocks {{ ... }}language.md "Template Blocks"001
Source columns [Col]language.md "Source Columns"001, 002
Source-prefixed brackets Source[Col]language.md "Source Columns"; evaluation.md "External Data Sources"ADR-0012069, 070, 071
Literals (string / number / boolean)language.md "Literals"011, 012
Operators (=, !=, >, <, >=, <=, +, -, *, /, &)language.md "Operators"ADR-0009058, 059, 061
Comparison algorithmlanguage.md "Comparison Algorithm"ADR-0009, ADR-0017059–064, 087, 088
Canonical string formlanguage.md "Canonical String Form"ADR-0009, ADR-0017061–063, 087
IF()language.md "IF"ADR-0008055–058
IFEMPTY()language.md "IFEMPTY"ADR-0007050, 051
XLOOKUP()language.md "XLOOKUP"ADR-0013074–078
Aggregates (SUM/COUNT/AVERAGE/MIN/MAX)language.md "Aggregates"ADR-0007, ADR-0012052, 070, 091
ROUND() / ABS()language.md "Numeric Functions"005, 016
TEXT()language.md "Text Formatting"011, 012, 016
ROW()language.md "Row and Date Functions"037
TODAY()language.md "Row and Date Functions"ADR-0001023
@filterlanguage.md "Filter"ADR-0007 (membership), ADR-0009 (comparison)003, 035, 054
@sortlanguage.md "Sort"ADR-0009, ADR-0016036, 083, 084
@toplanguage.md "Top"036
@repeat rightlanguage.md "Repeat Right"004
@sourcelanguage.md "Source"; evaluation.md "External Data Sources"ADR-0012071, 072
@joinlanguage.md "Join"; evaluation.md "External Data Sources"ADR-0014079–082
Group keyslanguage.md "Group Keys"ADR-0016015, 085, 086
Empty valuesevaluation.md "Empty Values"ADR-0007050–054
Truthinessevaluation.md (cross-ref)ADR-0008055–058
Reserved sheets (dunder)evaluation.md "Reserved Sheets"ADR-0011094
__config__evaluation.md "Template Configuration"ADR-0011most
__inputs__evaluation.md "Inputs"ADR-0010, ADR-0011065–068
__sources__evaluation.md "External Data Sources"ADR-0011, ADR-0012069–073
__lists__evaluation.md "List Sheets"ADR-0007, ADR-0011053, 054
Source value modelevaluation.md "Source Value Model"ADR-0017087–090
Source data model (zero rows, header reads)evaluation.md "Source Data Model"028–031
Cell text extractionevaluation.md "Cell Text Extraction"013, 014
Single-expression cells / numFmt coercionevaluation.md "Single-Expression Cells"ADR-0003008–010
Output filenamesevaluation.md "Output Filenames"ADR-0002006, 007, 019, 020
Errors (catalog)evaluation.md "Errors"ADR-0015017–022, 067, 072–082, 091
Resource limitsevaluation.md "Resource Limits"(implementation-defined; no fixtures)
Render phasesevaluation.md "Render Phases"002
Orderingevaluation.md "Ordering"ADR-0016083–086
Stage 2 OOXML canonicalizationconformance/runner-protocol.md "Stage 2"ADR-0006024–027, 093
Dynamic conformance assertionsconformance/runner-protocol.md "Dynamic"ADR-0005023
Excel version compatibility(informational)ADR-0022(no fixtures; authoring guidance)
Operator coercion + Excel-default principlelanguage.md "Arithmetic"ADR-0023100, 101
Function arity (normative table)language.md "Functions" arity tableADR-0024102, 103
Division by zero → #DIV/0! error celllanguage.md "Arithmetic"ADR-0025106
Multiple @filter compose with ANDlanguage.md "Filter"(no ADR; spec line)104
{{ }} whitespace insignificantlanguage.md "Template Blocks"(no ADR; spec line)105
Empty value lifecycle (cell + group key)evaluation.md "Source Data Model" + "Output Filenames"ADR-0026107, 108
Reserved column names + directive validationevaluation.md "Source Data Model" + "Directives"ADR-0027109, 110, 111
Literal syntax constraints (string + number)language.md "Literals"ADR-0028112, 113
Directive composition + source edge semanticsevaluation.md "External Data Sources" + "Source Data Model"ADR-0029114, 115, 116, 117
Unicode normalization (none applied)language.md "Comparison Algorithm"ADR-0030118
Output filename collision is an errorevaluation.md "Output Filenames"ADR-0031119
Niche limits and workbook pass-throughevaluation.md "Source Data Model" + "Cell Evaluation"ADR-0032120

Implementation-defined boundaries

XTL 0.1 deliberately leaves these areas to implementations. Choosing differently across two ports does NOT make either one non-conformant. See ADR-0021 for the full catalog.

AreaXTL 0.1 position
Memory / streaming modelimplementation-defined
Sync vs. async API shapeimplementation-defined
Native Excel formula in sourcerequired: read cached result, error if missing
Native Excel formula in templateimplementation-defined (typically pass-through)
TEXT() formats outside the core tableimplementation-defined extension
Merge-cell preservation under row expansionrequired (above/below); implementation-defined inside the data block
__config__ author-defined keysrequired: accessible via {{ __config__[key] }}
Empty source (zero rows)implementation-defined output, no error
Sheet-name collision after sanitizationimplementation-defined
Empty template block {{ }}error
Non-template, non-reserved sheets in inputimplementation-defined (typically pass-through)

Deferred surfaces

These are NOT in 1.0. The deferral ADR explains why and what a future spec MUST address before adding the surface.

SurfaceStatusDeferral ADR
Date arithmetic (EOMONTH, EDATE, DATEDIF, …)deferredADR-0019
Locale-aware collationdeferredADR-0020
Multi-@join, left-join, multi-row matchesdeferredADR-0014 (out-of-scope section)
XLOOKUP wildcard / approximate / reversedeferredADR-0013 (out-of-scope section)
Cross-writer Stage 2 gaps (default attrs, color hex case, namespace prefixes)deferredADR-0006 amendment