Filed unassigned, recording only. Measured by the domain:devx @ objectui dev on objectui#5442 / PR #5774, 2026-08-23, and reported to the PM seat (objectui#5748) rather than filed by the dev itself. Independently corroborated by the PM against a second PR — see below.
The behaviour
Editing a pull request's body (a PATCH, as opposed to the original create) does not rewrite an existing attribution footer. It appends a fresh bare_Generated by [Claude Code](https://claude.ai/code)_ block, leaving whatever footer the author wrote untouched. One per edit.
Measured across three payloads on PR objectui#5774:
| action | footers in the body afterwards |
|---|
| body sent with 1 footer | 2 |
| attempt to normalise the appended one | 3 |
| final cleanup: strip all, re-add one session-URL footer | 2 (mine, then a freshly appended bare one) |
That last row is the floor, not a fix: any further edit adds another. The dev stopped there rather than looping.
Independent corroboration the PM already held
This is not a single observation. PR objectui#5755 — a different card (#5459 + #5712), a different dev, earlier the same day — has a body ending in exactly the same doubled shape, read straight out of the API:
---
_Generated by [Claude Code](https://claude.ai/code/session_0124Qg8rLvpXnQDwCmpKUmaJ)_
Session-URL form, then a bare one. And PR #5774's body at creation time (before any PATCH) carried exactly one footer. So the pattern separates cleanly: create → one footer; each subsequent body edit → one more.
Why it is worth recording rather than shrugging at
AGENTS.md's footer rule is accurate but incomplete. It records that the session-URL form "survives both paths" — which held, and is the property the rule exists to guarantee. It does not say that the PATCH path accretes a bare footer per edit. An agent following the rule exactly will still produce a body with a growing stack of footers, and will reasonably read its own doubled footer as its own mistake.- It burns edits on a fix that cannot converge. The measurement above is what an agent trying to "clean up" its footer produces: 1 → 2 → 3. Without this written down, every agent that notices the duplicate re-derives that loop from scratch, and some will keep going.
- It is cosmetic today and misleading tomorrow. A PR body revised several times ends in a column of identical footers, which reads as sloppiness in exactly the artifact humans review.
What this is NOT
⛔ Not a claim that the session-URL footer is being stripped — it is not; that half of the rule holds. ⛔ Not specific to one repo, one card, or one dev: two PRs, two devs, two cards, same shape.
Candidate direction (⛔ not choosing — this is agent-tooling, not repo code)
Either make the PATCH path rewrite-in-place like the create path, or — if the append is deliberate — record it in AGENTS.md's footer rule so agents stop treating the duplicate as their own bug and stop trying to normalise it. The second is nearly free and removes the wasted-edit loop even if the first never happens.
⛔ Deliberately not anchored to a domain:* lane. AGENTS.md is governed surface and the behaviour lives in the harness, not in either repo's code, so which lane carries it — if any — is triage's judgement.
Related
- objectstack#11248 — a killed dev's claim passes every half-state predicate. Same session, same class: a recorded rule describing a mechanism accurately but incompletely.
- objectstack#11251 — a premise-first STOP behaved as advisory.
Filed unassigned, recording only. Measured by the
domain:devx@ objectui dev on objectui#5442 / PR #5774, 2026-08-23, and reported to the PM seat (objectui#5748) rather than filed by the dev itself. Independently corroborated by the PM against a second PR — see below.The behaviour
Editing a pull request's body (a PATCH, as opposed to the original create) does not rewrite an existing attribution footer. It appends a fresh bare
_Generated by [Claude Code](https://claude.ai/code)_block, leaving whatever footer the author wrote untouched. One per edit.Measured across three payloads on PR objectui#5774:
That last row is the floor, not a fix: any further edit adds another. The dev stopped there rather than looping.
Independent corroboration the PM already held
This is not a single observation. PR objectui#5755 — a different card (#5459 + #5712), a different dev, earlier the same day — has a body ending in exactly the same doubled shape, read straight out of the API:
Session-URL form, then a bare one. And PR #5774's body at creation time (before any PATCH) carried exactly one footer. So the pattern separates cleanly: create → one footer; each subsequent body edit → one more.
Why it is worth recording rather than shrugging at
AGENTS.md's footer rule is accurate but incomplete. It records that the session-URL form "survives both paths" — which held, and is the property the rule exists to guarantee. It does not say that the PATCH path accretes a bare footer per edit. An agent following the rule exactly will still produce a body with a growing stack of footers, and will reasonably read its own doubled footer as its own mistake.What this is NOT
⛔ Not a claim that the session-URL footer is being stripped — it is not; that half of the rule holds. ⛔ Not specific to one repo, one card, or one dev: two PRs, two devs, two cards, same shape.
Candidate direction (⛔ not choosing — this is agent-tooling, not repo code)
Either make the PATCH path rewrite-in-place like the create path, or — if the append is deliberate — record it in
AGENTS.md's footer rule so agents stop treating the duplicate as their own bug and stop trying to normalise it. The second is nearly free and removes the wasted-edit loop even if the first never happens.⛔ Deliberately not anchored to a
domain:*lane.AGENTS.mdis governed surface and the behaviour lives in the harness, not in either repo's code, so which lane carries it — if any — is triage's judgement.Related