feedback.md: a description is sent back to say something else, never to be emptied (#453)
The graphical-key shield added for #347 is keyed on the reason a rejection gives —
"do not send it back AS INVENTED TEXT" — and the same deletion arrived under the
other rule. On acir-p073 the extraction emitted each legend swatch as
<dt><img alt="Dark solid fill"> States ranking in the top 12 on personal
income</dt>; the verify pass answered "since the adjacent <dt> text already
conveys the meaning, these decorative swatch images should use alt='' to avoid
redundant announcement, per the redundancy rule in the agent contract"; the
correction obeyed, and the shipped fragment is <li><img alt=""> States ranking in
the top 12 on personal income</li>. The label names the category and the deleted
alt named which pattern carries it, so the mapping is the half that went, while
the same page's map description still names "the dotted pattern" and "the
cross-hatched pattern" to a reader with nothing to attach them to. The container
change in that pair is not this defect: a separate problem in the same verdict
said "a <dl> with empty <dd> elements is malformed ... would be better represented
as a list or a table", which is correct and is the remedy the page took.
The other case is the cover: the one arm that complied with page.md's cover clause
had its appearance-only alt refused because "the cover text is also transcribed in
the surrounding HTML" — the transcription that clause asks for, offered as the
evidence against it.
So feedback.md now refuses the second door as well, and states the asymmetry
without ranking itself above anything: a description that says too much costs a
reader noise, one that is emptied costs them the content, the correction pass is
single-shot, and page_corrected records a page that did what it was asked. The
review's first round caught that an earlier draft opened "This matters more than
the other notes because", which put this rule above the two clauses in the same
block that keep a true report coming; the sentence now stands on its own and the
pin is anchored from its capital so a comparison cannot come back quietly.
Bounded by the census. Across every round log on disk 9 of 3,132 problems propose
an empty alt, and 7 of the 9 are correct or harmless: three graphics omitted
entirely, two existing alt="" leaving a link nameless, one doubled attribute whose
empty second occurrence wins, one figure/figcaption mismatch offering "decorative"
as one branch. Those stay reportable — a description may be sent back to say
something different, and alt="" stays proposable where the contract itself puts
the image in its decorative case. What is refused is alt="" as the remedy for a
description judged redundant.
Not measured after the change: spend is halted, so the evidence is the verdicts'
own text and the delivered HTML on both sides of a correction, and the pins prove
the clauses cannot be reworded away — not that a given model now behaves.
Seven pins in test/feedback-prompt.test.ts, one mutation-checked, and the
calibration doc records the recurrence beside the #347 paragraph it extends.
Two review rounds, both approving; every note from the first is fixed or answered
from the round log, including one arithmetic error of mine in the census
enumeration.
Closes #452
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>