LearnNewsExamplesServices
Frontmatter
id16661
titleA factual fix to your own PR body is filed as an anti-pattern
stateClosed
labels
documentationenhancementaimodel-experience
assignees[]
createdAtAug 8, 2026, 8:32 AM
updatedAtAug 8, 2026, 2:39 PM
githubUrlhttps://github.com/neomjs/neo/issues/16661
authorneo-opus-vega
commentsCount0
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]
closedAtAug 8, 2026, 2:39 PM

A factual fix to your own PR body is filed as an anti-pattern

Closed Backlog/active-chunk-13 documentationenhancementaimodel-experience
neo-opus-vega
neo-opus-vega commented on Aug 8, 2026, 8:32 AM

Context

review-response-protocol.md prohibits editing your own PR body during review, unconditionally, in two places. A reviewer then asked me to do exactly that, and the request was correct.

Live specimen, 2026-08-08. On PR #16656, @neo-gpt's third Required Action was: "PR body says three failed lint runs but lists four." A factual off-by-one in the body. Fixing it is what the RA asked for, what the reader needs, and what the rule forbids as written.

The Problem

Two clauses, both unqualified:

:58  "...and do NOT edit your own prior PR body to address review items —
      commit history plus this new comment are the canonical record."

:93  | Editing your own prior PR body to "address" items
     | Commit + Addressed comment is the canonical record; body edits erase
       the review-negotiation thread |

The stated rationale is sound and the scope is not. "Body edits erase the review-negotiation thread" is exactly right for an edit that replaces what a reviewer responded to — that is attribution collapse against your own prior claim. It does not describe correcting a number that is simply wrong, which erases nothing and leaves the negotiation intact in the response comment.

Three independent pieces of substrate say the unqualified form cannot be right:

evidence what it shows
ticket-create-workflow.md:186"Your own: correct the BODY, incl. ACs. A comment cannot supersede it" the opposite rule for tickets, on the same authorship-respect principle
pr-review/references/close-target-remediation.md:4,21"agent-pr-body-lint appears to contradict a recent PR-body edit", "snapshot from before a PR-body edit" an entire payload exists to handle the consequences of PR-body edits, so they are not treated as forbidden in practice
agent-pr-body-lint requires the body to satisfy structural anchors — a body that has gone stale against its own diff fails it

So the corpus already assumes PR bodies get corrected. Only this one clause says they must not, and it says so without the qualifier its own rationale implies.

The Architectural Reality

  • .agents/skills/pull-request/references/review-response-protocol.md — §6 Authorship Respect at :56-60, §10 Anti-Patterns row at :93. Same file PR #16656 amends at §13, different sections.
  • The principle is not in dispute anywhere: a comment cannot supersede a body a reader treats as state, and a body edit must not erase a negotiation. What is missing is the line between those two.
  • Merge-order dependency: PR #16656 is approved and unmerged against §13 of this file. This work should land after it to avoid a conflict on the same file, and the net-growth gate below is computed against whichever base merges first.

The Fix

Qualify both clauses with the discriminator the rationale already implies:

  • Forbidden (unchanged): editing the body to replace a claim a reviewer has responded to, or to make an RA look addressed without a commit. That erases the negotiation, which is the stated harm.
  • Required: correcting a body statement that is factually false — a wrong count, a stale SHA, a superseded number — with the correction disclosed in the response comment so the trail stays readable. The lint already demands an accurate body; the rule should not forbid supplying one.

The discriminating question, matching §13's new row in shape: does this edit remove something a reader responded to, or does it remove something that is simply not true?

Contract Ledger Matrix

Target Surface Source of Authority Proposed Behavior Fallback Docs Evidence
review-response-protocol.md §6 (:58) this ticket qualify: replacement forbidden, factual correction required + disclosed the prohibition's substance is retained, not dropped the payload is the doc anchor read live at :58
§10 anti-pattern row (:93) this ticket narrow to "editing to make an RA look addressed" row keeps its harm statement same anchor read live at :93
agent-pr-body-lint existing unchanged n/a n/a it is cited as evidence, not modified
Skill-Markdown net growth skills.manifest.jsondefaults.maxPositiveDeltaBytes net ≤ 250 bytes across all .agents/skills Markdown offset in-file or fail CI manifest the binding gate; perFilePayloadBudget for skills.pull-request is 22000 and is not the constraint

Decision Record impact: none. No ADR governs review-response mechanics — checked all 37 in learn/agentos/decisions/.

Acceptance Criteria

  • §6 and the §10 row both carry the replacement-vs-correction distinction; neither still reads as an unqualified prohibition.
  • The retained prohibition still names its original harm — erasing the negotiation thread — so the narrowing does not become permission.
  • Factual correction is stated as required, not merely permitted, since agent-pr-body-lint already enforces an accurate body.
  • The correction must be disclosed in the response comment, so the reader can see what moved without diffing the body.
  • lint-skill-manifest --base origin/dev passes: net ≤ 250 bytes across all skill Markdown, satisfied by offset rather than the [skill-growth-justified] escape.
  • Lands after PR #16656 merges, or is explicitly rebased onto it — same file, different sections.
  • The diff cites the live specimen (PR #16656's RA-3) rather than a hypothetical.

Out of Scope

  • §13's comment-hygiene rows#16655 / PR #16656 owns those. This is the body channel, that is the comment channel.
  • Ticket bodies. ticket-create-workflow.md:186 already prescribes correcting your own, and it is cited here as evidence rather than changed.
  • agent-pr-body-lint itself. It is the reason an accurate body is required; it needs no modification for this.
  • Reviewer-authored surfaces. Editing a reviewer's comment stays forbidden and is not touched.

Avoided Traps

  • Filing it as "the rule is wrong." The rule's rationale is right and its scope is not — a narrowing, not a reversal. A ticket arguing for reversal would delete a real guard against attribution collapse.
  • Widening it into "edit bodies freely." The negotiation-erasure harm is real; the specimen that motivated this was a wrong integer, not a retracted argument.
  • Fixing it inside PR #16656. That PR is approved against §13 of the same file. Adding a fourth claim to an approved diff is the accretion pattern its own ticket is partly about.
  • Assuming the per-file budget is the constraint. It is not: the global net-growth gate at 250 bytes binds every skill Markdown file, and oversizedWorkflowMaps membership governs a different check that merely shares the constant.

Related

#16655 / PR #16656 (the comment channel in the same file, and the specimen's origin) · #16650 / PR #16651 (corrections as probe constraints) · #16463.

Live latest-open sweep: latest 20 open issues checked at 2026-08-08T06:31:44Z; no equivalent found. A2A in-flight claim sweep at the same time: active claims are #16535 and #16659 (@neo-opus-grace) and #16604/#16629 (@neo-opus-ada); none overlap.

Origin Session ID: 4141258c-36d3-4788-b0c2-ab3ebe0867be

Retrieval Hint: query_raw_memories("editing your own PR body to address review items, factual correction versus replacing a claim a reviewer responded to")

Retrieval Hint: the discriminating question is does this edit remove something a reader responded to, or something that is simply not true?

tobiu closed this issue on Aug 8, 2026, 2:39 PM
tobiu referenced in commit 74ff782 - "A factual body correction is required, not an anti-pattern (#16661) (#16665) on Aug 8, 2026, 2:39 PM