Surfaced by the round-trip failure classifier (#211, PR #217).
What
footnote and level are each dropped in 373 failing files, but neither appears in data/api.features.xml. Because the classifier cross-references that index to decide whether a drop is "expected" (support="none") or a bug (support="full"/"partial"), files whose only blockers are untracked elements fall into the unknown bucket — the classifier can't categorize what it can't look up. This is a measurement blind spot, not an mx::api code bug.
What to do
Run the api-feature-audit skill to add footnote and level (and any other untracked-but-dropped elements it finds) to data/api.features.xml with the correct support level. Once tracked, the classifier can fold these files into B (drop-only, if support=none) or flag them as bugs (if support=full/partial), shrinking the unknown bucket.
Repro
make dump-api-roundtrip && make classify-api-roundtrip 2>warnings.txt
grep "footnote" warnings.txt # "unclassified FAIL (missing=[... 'footnote' ...])"
grep 'name="footnote"' data/api.features.xml # no match
References
Surfaced by the round-trip failure classifier (#211, PR #217).
What
footnoteandlevelare each dropped in 373 failing files, but neither appears indata/api.features.xml. Because the classifier cross-references that index to decide whether a drop is "expected" (support="none") or a bug (support="full"/"partial"), files whose only blockers are untracked elements fall into theunknownbucket — the classifier can't categorize what it can't look up. This is a measurement blind spot, not an mx::api code bug.What to do
Run the
api-feature-auditskill to addfootnoteandlevel(and any other untracked-but-dropped elements it finds) todata/api.features.xmlwith the correct support level. Once tracked, the classifier can fold these files into B (drop-only, if support=none) or flag them as bugs (if support=full/partial), shrinking theunknownbucket.Repro
References