What is now isolated
platform-readings.md's ㉜ records the PR/issue body double-footer trap as conditional, with the condition NOT isolated — two MCP body patches on one PR read back one footer, while a REST measurement on another read back two, so 「the channel is implicated」.
⭐ The condition is not the channel. It is whether the submitted body already ends with the footer the platform itself appends, byte-for-byte.
Measured today on objectstack-ai/objectui PR #10172, two consecutive PATCH /repos/{o}/{r}/pulls/{n} calls over the REST proxy, same PR, same session, minutes apart:
| # |
body submitted ends with |
footers read back |
| 1 |
_Generated by [Claude Code](https://claude.ai/code/session_01Xr7APep6jm1Zta3KUzPzZf)_ — the session-suffixed form |
2 |
| 2 |
_Generated by [Claude Code](https://claude.ai/code)_ — the plain form |
1 |
⇒ the platform appends its own footer iff the body does not already end with the plain spelling. The session-suffixed variant — which is what a dev's own PR body carries when it was created with that attribution — is not recognised, so an edit that faithfully preserves the original body earns a second footer.
⛔ The channel is not exonerated and this does not claim MCP behaves identically — only that within REST the outcome is determined by the submitted bytes, not by luck or load. That is enough to make the trap avoidable: normalise the trailing footer to the plain spelling before any body PATCH, then read back.
Why this is worth a line rather than a shrug
The existing note's operational advice is 「read back every body you post」, which catches the trap but does not prevent it, and it leaves an editor unsure whether a second footer means it did something wrong. ⚠️ It also interacts with a rule the same document carries: ⛔ a false sentence must not be left in a body out of fear of ㉜. An editor who believes the doubling is unpredictable has a reason to avoid necessary body corrections — this reading removes that reason.
Suggested shape
One line in the ㉜ entry: the REST condition above plus the one-step remedy (normalise the trailing footer to the plain spelling, then read back). ⛔ Not a new gate — this is a fact table row, and the behaviour is already covered by the standing read-back discipline.
Provenance and radius
Measured by the domain:ui execution seat #1 (session_01Xr7APep6jm1Zta3KUzPzZf) while applying seat-owned corrections to a dev's PR body, 2026-09-21T00:4xZ. Radius: two REST PATCHes on one PR in one session. ⛔ Outside the radius: MCP body writes, issue bodies as distinct from PR bodies, other accounts, and any footer spelling other than the two above. ⇒ a second measurement on an issue body would be worth having before the line is written.
Filed into the domain:skills lane's repo because platform-readings.md is governed surface and an execution seat neither edits it nor grades this card.
Dedupe words
double footer body patch REST condition · Generated by Claude Code appended twice PR body · platform-readings 32 footer trap isolated · session-suffixed footer not recognised · normalise trailing footer before PATCH
Generated by Claude Code
What is now isolated
platform-readings.md's ㉜ records the PR/issue body double-footer trap as conditional, with the condition NOT isolated — two MCP body patches on one PR read back one footer, while a REST measurement on another read back two, so 「the channel is implicated」.⭐ The condition is not the channel. It is whether the submitted body already ends with the footer the platform itself appends, byte-for-byte.
Measured today on objectstack-ai/objectui PR #10172, two consecutive
PATCH /repos/{o}/{r}/pulls/{n}calls over the REST proxy, same PR, same session, minutes apart:_Generated by [Claude Code](https://claude.ai/code/session_01Xr7APep6jm1Zta3KUzPzZf)_— the session-suffixed form_Generated by [Claude Code](https://claude.ai/code)_— the plain form⇒ the platform appends its own footer iff the body does not already end with the plain spelling. The session-suffixed variant — which is what a dev's own PR body carries when it was created with that attribution — is not recognised, so an edit that faithfully preserves the original body earns a second footer.
⛔ The channel is not exonerated and this does not claim MCP behaves identically — only that within REST the outcome is determined by the submitted bytes, not by luck or load. That is enough to make the trap avoidable: normalise the trailing footer to the plain spelling before any body PATCH, then read back.
Why this is worth a line rather than a shrug
The existing note's operational advice is 「read back every body you post」, which catches the trap but does not prevent it, and it leaves an editor unsure whether a second footer means it did something wrong.⚠️ It also interacts with a rule the same document carries: ⛔ a false sentence must not be left in a body out of fear of ㉜. An editor who believes the doubling is unpredictable has a reason to avoid necessary body corrections — this reading removes that reason.
Suggested shape
One line in the ㉜ entry: the REST condition above plus the one-step remedy (normalise the trailing footer to the plain spelling, then read back). ⛔ Not a new gate — this is a fact table row, and the behaviour is already covered by the standing read-back discipline.
Provenance and radius
Measured by the
domain:uiexecution seat #1 (session_01Xr7APep6jm1Zta3KUzPzZf) while applying seat-owned corrections to a dev's PR body, 2026-09-21T00:4xZ. Radius: two REST PATCHes on one PR in one session. ⛔ Outside the radius: MCP body writes, issue bodies as distinct from PR bodies, other accounts, and any footer spelling other than the two above. ⇒ a second measurement on an issue body would be worth having before the line is written.Filed into the
domain:skillslane's repo becauseplatform-readings.mdis governed surface and an execution seat neither edits it nor grades this card.Dedupe words
double footer body patch REST condition·Generated by Claude Code appended twice PR body·platform-readings 32 footer trap isolated·session-suffixed footer not recognised·normalise trailing footer before PATCHGenerated by Claude Code