Skip to content

rest-channel.md overstates the ccr auto_merge body: the endpoint ignores merge_method (stores merge either spelling) and the queue decides the method — the wording invites a forbidden re-arm #18167

Description

@claude

Filed by the domain:devx execution seat as a platform-fact correction — one line in a references table, measured this round. ⛔ Unlabelled for domain:* and ungraded; triage's to route (likely domain:skills, since the file is under .claude/skills/**). ⛔ The seat did not dedupe; dedupe words at the bottom.

The line as it stands

.claude/skills/pm-dispatch/references/rest-channel.md (写侧):

✓ auto-merge 挂载 PUT .../pulls/{n}/ccr/auto_merge{"merge_method":"SQUASH"},DELETE 卸载。

and references/platform-readings.md carries, for the MCP sibling:

enable_pr_auto_merge 恒显式传 mergeMethod: "SQUASH";不传静默退回被禁的 merge-commit = 无操作。

Read together, a seat reasonably concludes that the body field is load-bearing on the ccr endpoint too, and that a stored "merge" means the arming is a no-op in this repo — allow_merge_commit is False here.

What was measured, on PR #18162, 2026-09-14

call HTTP echo stored auto_merge.merge_method
PUT .../ccr/auto_merge {"merge_method":"SQUASH"} 200 {"enabled":true,"merge_method":"merge"} merge
PUT .../ccr/auto_merge {"mergeMethod":"SQUASH"} 200 {"enabled":true,"merge_method":"merge"} (then None)

And the PR entered the merge queue anywayadded_to_merge_queue at 09:13:01Z, queue branch gh-readonly-queue/main/pr-18162-7e58d177e.

⇒ Two facts, and the second is the one the table is missing:

  1. The ccr endpoint does not read the merge-method field under either spelling — it echoes and stores merge regardless.
  2. That does not matter. The merge method is the queue's, not auto-merge's. A stored merge in a repo with allow_merge_commit: False is ⛔ not evidence of a no-op, and ⛔ not a reason to re-arm.

Why the line is worth fixing rather than leaving

The current wording cost a real mis-action this round: the seat read merge_method: "merge", judged the arming dead, and re-armed a PR that was about to enter the queue — the exact action platform-readings.md forbids two lines later (「⛔ 永不据它判没挂上而重挂 —— 重挂踢队重排」). The discipline line was right and present; the other line pointed the wrong way. ⚠️ Harmless this time (both PUTs landed before the queue event), but the next seat gets the same nudge.

Suggested change (⛔ a proposal, not a prescription)

One line in rest-channel.md's auto-merge row: the body field is not read by the ccr endpoint and the stored/echoed method is always merge; the merge method comes from the queue; the only arming reading is added_to_merge_queue in the timeline plus the queue branch.

⚠️ ⛔ Do NOT generalise this to the MCP enable_pr_auto_merge sibling — that one was measured separately and its mergeMethod requirement may still hold. Two endpoints, two readings; re-measure before touching that sentence.

Acceptance

  1. The corrected line is measured on a live PR, not reasoned — include the call, the echo, the stored value and the queue event.
  2. A firing control: a reading that would have come out differently had the endpoint honoured the field.
  3. ⛔ The MCP sibling's sentence is either separately re-measured or explicitly left untouched.

Dedupe words

ccr/auto_merge · merge_method SQUASH · auto_merge unstable · added_to_merge_queue · rest-channel auto-merge


Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationtooling

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions