Modified metadata assessment
Revision metadata can be assessed through Catalogue::check(CheckRequest::new().assessment(Assessment::ExpandedModified)) or esdieff check --assessment expanded-modified-v1 .... The immutable esdieff.expanded.modified/1 inventory contains the unchanged eight areas of esdieff.initial/1 and modified-date-time/1. Initial requests continue to check ordinary Information strings without interpreting modified date content. Complete full-baseline membership remains unavailable. This boundary follows ADR 0021: Explicit modified metadata assessment.
The ninth area checks info.modified directly, independently of reference composition. Its normative RFC 9880 Appendix A production is full-date ["T" partial-time "Z"]: four ASCII year digits, Gregorian month/day, optional hour/minute/second with a dot-plus-digits fraction, and UTC Z termination. ABNF literals admit lowercase t/z under RFC 5234 Section 2.3. Numeric offsets, including +00:00, space separators and date-free clock forms fall outside this metadata grammar. Data sample conventions remain separate under ADR 0018: Civil date and time sample conventions.
Catalogue scope checks every supplied document. Selected scope checks every root and each distinct source needed by surviving composition once, including mandatory target-root chains. Dependency metadata uses the same source preflight and modified scanner without independently assessing unrelated Information qualities or definitions. Candidate uncertainty or unfinished dependency discovery prevents a roots-only NotApplicable conclusion. Effective construction and inspection request no metadata-date assessment. This scope follows ADR 0023: Supplied global composition and dependency scope.
Years 0000 through 9999 use Gregorian arithmetic, including the four/100/400 leap-year rule. Hours are 00..23, minutes 00..59 and seconds 00..60 subject to exceptional-second meaning. Fractions keep every digit. Checking introduces no library year range, host date/timezone, fixed fractional precision, version-string scheme, SPDX requirement or live source retrieval. Source bytes, escapes and unrelated exact numbers remain unchanged.
Dated exceptional seconds reuse the recorded IERS C72 knowledge and byte identities in the civil-time contract. A possible adjustment minute is UTC 23:59 on the final Gregorian day of any month, following RFC 3339 Section 5.7. Second 60 elsewhere is a definite error without consulting leap knowledge. At possible slots within the inclusive interval 1972-01-01 through 2026-12-31, recorded insertions admit 60 and other dates reject 60; no negative adjustment is recorded, so 59 is established. At possible slots outside that interval, 59 and 60 remain undetermined. Seconds 00..58 need no leap knowledge. Snapshot expiry does not extend the recorded interval.
Reports include optional baseline.temporal_knowledge when the interval or insertion facts are consulted, including an outside-interval query. Its id, inclusive from/through, transition_sha256 and bulletin_sha256 fields identify the actual knowledge used. This record is separate from vocabulary-registry knowledge and survives omission of every diagnostic and coverage row. Merely having the snapshot available does not mean a check used it.
Report::assessment_area_status("modified-date-time/1") exposes semantic status independently of presentation. An expanded request returns Field::Present(AssessmentStatus::Assessed), NotApplicable or Undetermined. Assessed includes established errors. NotApplicable requires reliable absence across every requested document. Any needed unavailable source, member identity, text, critical meaning, leap fact or work makes the one aggregate area Undetermined while independent definite findings remain. Initial and inspection return Absent. Full binds modified work to M012 and full.metadata/1, preserving the producing condition ID while the standalone expanded area is outside Full membership. requested_coverage() sums to nine for expanded modified, eight for Initial and13 for Full.
Shared source preflight establishes critical-feature context and reliable Information/member identity before dependent conclusions. Its early metadata pass records existing metadata.string exactly once for reliable nonstring modified. Later unrelated work exhaustion or omitted detail cannot erase that aggregate error or its semantic area status. Unknown critical meaning defers dependent conclusions. Definite findings refer to original source pointers/spans; unsupported text, needed knowledge and exhausted work yield operational incompleteness. The finite check/report/pointer controls follow ADR 0013: Shared workflow and report guarantees.
| Code | Meaning and basis |
|---|---|
metadata.modified_syntax | RFC finding: the decoded text is outside the modified production. |
metadata.modified_calendar | RFC finding: a Gregorian date field is impossible. |
metadata.modified_clock | RFC finding: a clock field is outside its range. |
metadata.modified_exceptional_slot | RFC finding: second 60 is outside a possible UTC adjustment slot. |
metadata.modified_leap_second | RFC finding: recorded knowledge establishes no insertion at this possible slot; the basis also identifies the knowledge snapshot. |
metadata.modified_knowledge_unavailable | Operational incompleteness: a possible adjustment slot needs facts outside the recorded interval. |
metadata.modified_unavailable | Operational incompleteness: decoded modified text or needed capability is unavailable. |
Critical/member uncertainty and work exhaustion retain their shared conditions. Exhaustion of modified’s own text work reports operation.limit with assessment_unit:"modified-date-time/1"; ordinary source structural limits keep their existing attribution. A nonstring retains metadata.string; it does not acquire a duplicate modified-syntax finding. These conditions explain one aggregate ninth area rather than creating one requested unit per source or finding.