Skip to main content

OMI-SPEC-320 Requirement Coverage

Specification: OMI-SPEC-320@0.2.0
Scope: the website repository's reference parser, schema validator, fixtures, and tests
Coverage status: complete traceability; partial conformance evidence

This register maps every normative REQ-FMT-NNN in the File Format specification to evidence or an explicit gap. Tested means the named reference behavior is exercised directly. Partial means there is relevant evidence, but at least one normative aspect remains untested. Untested means this repository has no executable evidence for the requirement. These labels do not claim that the Open Manuscript Studio producer, importer, exporter, or migrator conforms; their implementation and integration tests are not present in this repository.

The conformance runner checks that this register contains each requirement in the specification exactly once. It deliberately does not turn partial or untested requirements into a passing conformance result.

RequirementStatusCurrent evidenceRemaining evidence needed
REQ-FMT-001partialvalid-minimal.omi.json passes the structural validatorTest Studio producer output and all declared serialization rules
REQ-FMT-002untested—Consumer must identify format/version before reading manuscript fields
REQ-FMT-003partialfixture runner checks syntax, schema, selected semantic diagnosticsTest every declared profile and all semantic constraints
REQ-FMT-004untested—Migrator preservation, migration record, and equivalent-exposure tests
REQ-FMT-005partialvalid-history-extension.omi.json; parser preserves unknown JSON valuesEdit/save round trips and machine-readable loss-report behavior
REQ-FMT-006partialmalformed UTF-8 and JSON parser testsBOM recovery warning and producer no-BOM behavior
REQ-FMT-007testedduplicate and escape-equivalent member fixtures and parser tests—
REQ-FMT-008testedinvalid-root-array.omi.json—
REQ-FMT-009testedparser rejects unpaired surrogates and accepts a valid surrogate pairProducer-side Unicode guarantees
REQ-FMT-010partialparser test rejects NaN; JSON parser rejects non-JSON numeric tokensProducer serialization behavior and positive/negative infinity cases
REQ-FMT-011testedparser tests safe-integer boundary and rejection above it—
REQ-FMT-012partialtests reject empty and null required titlesExercise all nullable fields and producer omission/null behavior
REQ-FMT-013partialschema test rejects a timestamp without an offset; fixture tests timestamp orderRFC 3339 boundary cases and producer output
REQ-FMT-014partialschema test rejects a malformed language tagFull BCP 47 validity, recommended casing, and producer behavior
REQ-FMT-015partialtest rejects a relative asset URIOther URI fields, explicit relative-base policy, and consumer resolution
REQ-FMT-016partialnon-empty ID schema and duplicate-ID fixtureCross-version identity stability and manuscript-scope completeness
REQ-FMT-017untested—Deletion, tombstone, and ID non-reuse lifecycle tests
REQ-FMT-018testedvalid Core Snapshot and schema-required root membersProducer output across all Core Snapshot fields
REQ-FMT-019testedinvalid-timestamp-order.omi.jsonEqual instants and timestamp-offset equivalence cases
REQ-FMT-020partialinvalid-forbidden-secret.omi.json and recursive credential-key scanSession identifiers, private keys, local paths, and disclosure-policy cases
REQ-FMT-021untested—Assert Studio exports omit transient editor and account state
REQ-FMT-022testedpinned schema URI and invalid-schema-uri-mismatch.omi.jsonProducer generation against every supported format version
REQ-FMT-023partialmissing and unsupported version fixturesProducer version declaration and exact serialization-rule correspondence
REQ-FMT-024partialschema requires core-snapshot and unique profile tokensValidate required data for every additional claimed profile
REQ-FMT-025partialschema enforces exact semantic-version syntaxEnsure every governing specification is declared and matches serialized content
REQ-FMT-026untested—Multi-version consumer selects the declared version's schema and rules
REQ-FMT-027untested—Unsupported-major quarantine, original retention, and editable-state denial
REQ-FMT-028untested—Compatibility-policy decisions, unknown-data preservation, and version diagnostics
REQ-FMT-029partialparser test preserves JSON array orderStudio serialize/import ordering and prohibition on derived sorting
REQ-FMT-030untested—Portable scholarly representation and framework-independent recovery
REQ-FMT-031untested—Unknown block type lossless import/edit/export behavior
REQ-FMT-032partialunresolved annotation target fixture; typed target indexes in validatorType-incompatible cases for every reference kind
REQ-FMT-033untested—Durable-reference model and rejection of positional-only targets
REQ-FMT-034untested—Producer binary-size limits and asset externalization tests
REQ-FMT-035partialasset structure is schema-validated; fixture validation uses local resourcesAsset metadata resolution and proof that validation never fetches external assets
REQ-FMT-036partialinvalid-history-head-mismatch.omi.jsonSnapshot revision agreement and all three-way head cases
REQ-FMT-037partialduplicate addressable IDs are detected across historyComplete, partial, and shallow history boundary tests
REQ-FMT-038partialschema condition links history-exchange to history fieldsNegative fixture for omitted history/profile and provenance claim behavior
REQ-FMT-039partialparser preserves __proto__ as inert data without prototype mutationSecurity tests for markup, URLs, formulas, templates, and extension payloads
REQ-FMT-040testedtests cover byte, depth, member, array, string, and diagnostic limitsDeployment-specific limit selection and Studio integration
REQ-FMT-041partialvalidator uses one pinned local schema; test checks local-only schema referencesTrusted schema mapping and safe selection across supported versions
REQ-FMT-042untested—Producer emits consistent UTF-8, schema, format, profile, and dependency versions
REQ-FMT-043partialparser preserves array order and absent/empty/null valuesProducer serialization and round-trip reference stability
REQ-FMT-044partialcredential fields are rejected by the reference validatorProducer omits transient state and all secret categories
REQ-FMT-045untested—Digest/signature metadata and cross-canonicalization comparison behavior
REQ-FMT-046partialparser preserves Unicode scalar valuesImport/edit/export round trip without normalization or text rewriting
REQ-FMT-047testedfixture runner rejects expected-invalid documents with errorsEvery validation layer and declared profile
REQ-FMT-048testedrepeated validation returns stable diagnostics and orderingDeterminism across policy and extension-capability configurations
REQ-FMT-049partialtests assert JSON Pointer and requirement on unresolved-reference errorsRestricted-content redaction and diagnostic behavior for all error classes
REQ-FMT-050untested—Repair provenance, ordered change list, validation, and source retention
REQ-FMT-051partialextension schema constrains namespace keysProducer placement of non-core data and collision prevention
REQ-FMT-052partialparser preserves unknown values without interpreting themConsumer extension processing and presentation behavior
REQ-FMT-053untested—Warning on unknown unnamespaced members and non-destructive validation
REQ-FMT-054partialparser preserves member values, names, containing objects, and array positionsLossless preservation through actual edits and serialization
REQ-FMT-055untested—Stop-before-overwrite and authorization from a machine-readable loss report
REQ-FMT-056untested—Producer tests distinguish all format, schema, model, revision, container, and app versions
REQ-FMT-057untested—Repeated migration yields equivalent output and ordered steps under pinned options
REQ-FMT-058untested—Migrator refuses a lossless claim with losses or discarded unknown data
REQ-FMT-059untested—Migration tests reject version/schema relabeling as successful conversion
REQ-FMT-060untested—Container integration identifies exact logical format without inferred package rules
REQ-FMT-061untested—Container extraction preserves identities, order, references, history, and extensions
REQ-FMT-062untested—Import reports loss/approximation and preserves source provenance and meaning
REQ-FMT-063untested—Lossy export preserves the OMI source or immutable reference and reports unsupported features
REQ-FMT-064partialparser tests treat values as data and prevent prototype mutationRender/activation sanitization and authorization boundaries
REQ-FMT-065partialschema and fixture runner perform local-only validationInstrumented consumer test proving no network dereference under default policy
REQ-FMT-066untested—Export disclosure-profile tests covering manuscript and revision history
REQ-FMT-067partialdiagnostics use generic parse/secret messages without quoting source valuesAccess-policy-aware validation and migration log tests
REQ-FMT-068untested—UI and API tests prevent validity/checksum/generator from implying trusted authorship
REQ-FMT-069untested—Accessibility metadata preservation across producer and transformation workflows
REQ-FMT-070untested—Producer semantic checks prevent meaning from depending only on visual styling
REQ-FMT-071partialparser accepts multilingual Unicode and schema carries locale metadataStudio language metadata and bidirectional-script round trips
REQ-FMT-072untested—Locale-sensitive display/sorting never overwrites stored authorial values

Release interpretation​

This register provides complete traceability, not complete behavioral coverage: many requirements govern Studio producers, consumers, migration, container processing, and publication transformations absent from this website repository. Those remain release gates until their owning implementations and independent integration tests provide evidence. A change in a requirement's state requires updating this register and adding or revising the linked executable evidence in the same reviewed change.