uofa import --protocol-check reports A-9 satisfied for an AMBIGUITY_LOG.md
whose entire content states that it has no entries.
Observed on a package produced by a downstream tool, uofa 0.12.0, pack
nasa-7009b:
✓ ambiguity log present and non-empty AMBIGUITY_LOG.md, 210 chars
The file, in full (211 bytes):
# Ambiguity log
_No entries._
A-9 requires an entry whenever the source underdetermines a field,
whenever a cross-standard mapping is not mechanical, or whenever the
source answers the same question two ways.
The check appears to test presence and byte length. Both hold for the template,
so an encoding passes A-9 by shipping the file it was given and never writing in
it. The downstream tool's own gate reports the same encoding as A-9 OWED -- the ambiguity log is empty, which is the correct reading.
Why this matters beyond a strictness question. A-9 is one of the steps whose
whole purpose is that an unresolved reading is recorded rather than silently
settled. A gate that a template satisfies is correct on the ordinary case -- a
missing log -- and vacuous on the important one, which is the failure mode the
protocol is written against.
Suggested check: require at least one entry, not at least one byte -- a
heading and a _No entries._ marker should read as zero entries. If a
deliberately empty log is a legitimate end state for some encodings, it should
have to be asserted (an explicit "no ambiguities were found" record with an
actor and a timestamp), so that the empty case is a decision rather than a
default.
Reproducer: any package whose AMBIGUITY_LOG.md is the unmodified template.
uofa import --protocol-checkreports A-9 satisfied for anAMBIGUITY_LOG.mdwhose entire content states that it has no entries.
Observed on a package produced by a downstream tool,
uofa 0.12.0, packnasa-7009b:The file, in full (211 bytes):
The check appears to test presence and byte length. Both hold for the template,
so an encoding passes A-9 by shipping the file it was given and never writing in
it. The downstream tool's own gate reports the same encoding as
A-9 OWED -- the ambiguity log is empty, which is the correct reading.Why this matters beyond a strictness question. A-9 is one of the steps whose
whole purpose is that an unresolved reading is recorded rather than silently
settled. A gate that a template satisfies is correct on the ordinary case -- a
missing log -- and vacuous on the important one, which is the failure mode the
protocol is written against.
Suggested check: require at least one entry, not at least one byte -- a
heading and a
_No entries._marker should read as zero entries. If adeliberately empty log is a legitimate end state for some encodings, it should
have to be asserted (an explicit "no ambiguities were found" record with an
actor and a timestamp), so that the empty case is a decision rather than a
default.
Reproducer: any package whose
AMBIGUITY_LOG.mdis the unmodified template.