Filed by the domain:ui execution seat (PM session session_013hfmP9hoMd3dJwTh85J4yB). ⛔ Recording, not claiming. Every entry below was measured by an agent in this repo within one working session, each independently, while doing unrelated work.
Why one card rather than three
These are three different mechanisms, but they share a failure mode that makes them worth collecting: each one silently changes a body after it was written, and the change is invisible unless the author reads the stored body back. Two of the three have already produced a body that reads as a measurement while saying something false.
1. The sanitizer eats angle-bracket content
Anything tag-shaped is stripped on save, including inside backticks.
⚠️Live harm, twice. On PR #6949 the first publish of a .d.ts before/after table came back with both columns reading z.ZodOptional — the generic parameters were eaten, so a table whose whole purpose was to show a type change rendered as before == before. A reader would have concluded, correctly from what was on screen, that nothing changed. On #6318 the same thing turned a Zod literal into z.literal(''), a sentence that reads as a claim about the empty string.
Mitigations that work, both in use:
- Write generics in words — "OPT of
z.ZodNever" — and say in the body why. - Read the stored body back to the tail and count angle-bracket hits after every publish.
⚠️ It also strips an HTML-comment marker alone on the first line of a comment body — first-line placement does not protect it (measured on #6172, where a report marker vanished and the report became invisible to a marker scan).
2. PATCH downgrades the session-URL footer to bare form
Editing a body rewrites _Generated by [Claude Code](https://claude.ai/code/session_…) down to the bare https://claude.ai/code form, losing the session reference. Already recorded elsewhere; included here so the three are in one place.
3. ⭐ PATCH appends a second footer unconditionally — new, measured today
A REST PATCH to a PR body appends a bare _Generated by [Claude Code] footer even when the submitted body already ends with one, yielding a duplicate.
Measured by full read-back: stored body differed from sent by exactly +58 bytes, and the unified diff was only those appended footer lines — no content eaten. ⇒ Distinct from (2), and distinct from (1): this one adds rather than removes.
Mitigation that worked: carry the session URL in body prose as a backticked code span rather than as a markdown link — it survived the PATCH verbatim.
Why this is worth fixing rather than living with
Every agent in this repo is instructed to publish measurements into issue and PR bodies, and several gates and reviews read those bodies as the record. A body that is silently altered after publication is a corrupted record that looks intact — and the two failure modes above have each already produced text that reads as evidence for a false statement.
Today the only defence is per-author discipline (read back, count brackets, spell generics in words), which is:
Possible directions, none chosen here
Provenance
Filed by the
domain:uiexecution seat (PM sessionsession_013hfmP9hoMd3dJwTh85J4yB). ⛔ Recording, not claiming. Every entry below was measured by an agent in this repo within one working session, each independently, while doing unrelated work.Why one card rather than three
These are three different mechanisms, but they share a failure mode that makes them worth collecting: each one silently changes a body after it was written, and the change is invisible unless the author reads the stored body back. Two of the three have already produced a body that reads as a measurement while saying something false.
1. The sanitizer eats angle-bracket content
Anything tag-shaped is stripped on save, including inside backticks.
.d.tsbefore/after table came back with both columns readingz.ZodOptional— the generic parameters were eaten, so a table whose whole purpose was to show a type change rendered as before == before. A reader would have concluded, correctly from what was on screen, that nothing changed. On #6318 the same thing turned a Zod literal intoz.literal(''), a sentence that reads as a claim about the empty string.Mitigations that work, both in use:
z.ZodNever" — and say in the body why.2. PATCH downgrades the session-URL footer to bare form
Editing a body rewrites
_Generated by [Claude Code](https://claude.ai/code/session_…)down to the barehttps://claude.ai/codeform, losing the session reference. Already recorded elsewhere; included here so the three are in one place.3. ⭐ PATCH appends a second footer unconditionally — new, measured today
A REST
PATCHto a PR body appends a bare_Generated by [Claude Code]footer even when the submitted body already ends with one, yielding a duplicate.Measured by full read-back: stored body differed from sent by exactly +58 bytes, and the unified diff was only those appended footer lines — no content eaten. ⇒ Distinct from (2), and distinct from (1): this one adds rather than removes.
Mitigation that worked: carry the session URL in body prose as a backticked code span rather than as a markdown link — it survived the PATCH verbatim.
Why this is worth fixing rather than living with
Every agent in this repo is instructed to publish measurements into issue and PR bodies, and several gates and reviews read those bodies as the record. A body that is silently altered after publication is a corrupted record that looks intact — and the two failure modes above have each already produced text that reads as evidence for a false statement.
Today the only defence is per-author discipline (read back, count brackets, spell generics in words), which is:
Possible directions, none chosen here
check:that scans recent agent-authored bodies for the tells (a table with identical before/after columns, a doubled footer).Provenance
inputTypefork #6949 and 53 in-repo schema files carry a registered ObjectUI type but failsafeValidateSchema#6318 bodies; marker case on finding(types): three more type names are declared twice with disagreeing shapes —FormField,MarkdownSchema,KanbanSchema— and one doc assertsFormFieldis declared once #6172col.name别名,而唯一在交付前解析列身份的生产者只有 RelatedList #5120's correction commit, read back byte-for-byte