ICF — the language
| Version | Status | Published | Changes |
|---|---|---|---|
| ICF 1.1.1 | Stable — current | 2026-08-21 | Clarification patch of 1.1: adds Scope (§80), Security Considerations (§81), Implementation Limits (§82) and Conformance (§83). No change to document validity or interpretation; all 1.1 section numbers preserved. |
| ICF 1.1 | Superseded by 1.1.1 | 2026-06-27 | Schema annotations (!indexes/!defaults/!constraints/!expressions), row !overrides, primary objects, multiline value rows, comment lines, reserved object names, a normative processing model, an abstract data model and a formal EBNF grammar. Backward compatible with 1.0 documents. |
| ICF 1.0.1 | Superseded by 1.1 | 2026 | Editorial clarifications of 1.0. No change to valid interpretation. |
| ICF 1.0 | Superseded by 1.1 | 2026 | Initial publication: schema-driven documents, masters, records, text blocks, checksums. |
ICX — the companion index
| Version | Status | Published | Changes |
|---|---|---|---|
| ICX 1.2 | Stable — current | July 2026 | Optional Tags and Summary index fields, tagindex[] / summaryindex[] inverted structures, @sourcebytes, and the harness usage flow. Clarifies that an ICX @version is the ICX spec version. |
| ICX 1.1 | Superseded by 1.2 | July 2026 | Aligned ICX with ICF language policy: indentation rules and reserved object names apply; shared structure renamed index[] → recordindex[]. |
| ICX 1.0 | Superseded by 1.2 | 2026 | Initial publication: per-record byte ranges, checksums, shared index[] structure. |
ICF ↔ ICX compatibility
| ICF version | Compatible ICX version(s) |
|---|---|
| ICF 1.0 | ICX 1.0 |
| ICF 1.1 | ICX 1.1, ICX 1.2 |
ICX is optional and derived — see the ICX specification for the relationship in full.
Versioning policy
Specification versions follow a semantic lifecycle:
- Patch (e.g. 1.0 → 1.0.1) — clarifications and corrections that do not change what documents are valid or how they are interpreted.
- Minor (e.g. 1.0 → 1.1) — backward-compatible additions. Documents valid under the earlier version remain valid and mean the same thing.
- Major — potentially incompatible changes. None have been published.
A version moves through Working Draft → Release Candidate → Stable. Once Stable, its version-specific URL is immutable: the published document is never silently changed. Implementations declare the version they target (see @version in the specification), and the parser compatibility rules define how newer minor versions are handled by older readers.
Errata
No errata have been published. When needed, corrections to stable specifications will be listed here with stable identifiers (ICF-ERR-NNN / ICX-ERR-NNN), the affected version and section, and their impact — rather than editing the published text.