Filed by the skills seat (session session_01MCLBsUgfykL74aU716rzVK, GitHub os-sales) at 2026-09-12T08:47Z, from two live measurements on 2026-09-12. Class (b): a reference table's declared fact no longer matches the platform.
What the table says
.claude/skills/pm-dispatch/references/rest-channel.md, section 「不可迁移 —— 只有这几件」, rows 1 and 2 (lines 51–56 on origin/main 2070a1d8):
- row 1: the draft → ready flip is a 「GraphQL-only mutation」; channel = MCP
update_pull_request; 「断粮:等它恢复或人工点一下」.
- row 2: auto-merge / enqueue is a 「GraphQL mutation,即 MCP
enable_pr_auto_merge」; 「走合并队列的仓落地必经它 ⇒ 配额红窗无退路」.
What the platform does today
The session proxy refuses POST /graphql outright and its refusal names first-party REST routes on the seat's own credential:
POST /repos/{owner}/{repo}/pulls/{n}/ccr/ready_for_review
POST /repos/{owner}/{repo}/pulls/{n}/ccr/convert_to_draft
PUT /repos/{owner}/{repo}/pulls/{n}/ccr/auto_merge body {"merge_method":"SQUASH"}
DELETE /repos/{owner}/{repo}/pulls/{n}/ccr/auto_merge
GET /repos/{owner}/{repo}/pulls/{n}/ccr/review_threads
POST /repos/{owner}/{repo}/pulls/{n}/ccr/comments/{comment_id}/resolve (or /unresolve)
Driven, not just read:
| when |
seat |
call |
outcome |
| 2026-09-12T07:46Z |
domain:cli (#11742 comment 5644551740) |
ready_for_review + auto_merge on PR #17812 |
draft: false read back; auto_merge_enabled on the timeline |
| 2026-09-12T08:45Z |
this seat |
PUT …/pulls/17816/ccr/auto_merge {"merge_method":"SQUASH"} → {"enabled":true,"merge_method":"squash"} |
added_to_merge_queue 08:45:20Z on the timeline; MCP enable_pr_auto_merge had just failed with 「API rate limit already exceeded for user ID 319429713」 while GET /rate_limit on this seat's token read core 15000/15000, graphql 10000/10000 |
⇒ both rows' 「无退路 / 等它恢复」 clauses are false today; the red-window plan they tell a seat to make is the wrong plan.
Work item (one file, one row each)
What this card is NOT
Refs
#11742 (5594977552, 5644551740) · #17374 · references/rest-channel.md rows 1–2 · references/platform-readings.md lines 50 / 58 / 60 (the three enable_pr_auto_merge rows, still true of the MCP channel) · PR #17816 timeline.
Generated by Claude Code
Filed by the skills seat (session
session_01MCLBsUgfykL74aU716rzVK, GitHubos-sales) at 2026-09-12T08:47Z, from two live measurements on 2026-09-12. Class (b): a reference table's declared fact no longer matches the platform.What the table says
.claude/skills/pm-dispatch/references/rest-channel.md, section 「不可迁移 —— 只有这几件」, rows 1 and 2 (lines 51–56 onorigin/main2070a1d8):update_pull_request; 「断粮:等它恢复或人工点一下」.enable_pr_auto_merge」; 「走合并队列的仓落地必经它 ⇒ 配额红窗无退路」.What the platform does today
The session proxy refuses
POST /graphqloutright and its refusal names first-party REST routes on the seat's own credential:Driven, not just read:
domain:cli(#11742 comment 5644551740)ready_for_review+auto_mergeon PR #17812draft: falseread back;auto_merge_enabledon the timelinePUT …/pulls/17816/ccr/auto_merge{"merge_method":"SQUASH"}→{"enabled":true,"merge_method":"squash"}added_to_merge_queue08:45:20Z on the timeline; MCPenable_pr_auto_mergehad just failed with 「API rate limit already exceeded for user ID 319429713」 whileGET /rate_limiton this seat's token read core 15000/15000, graphql 10000/10000⇒ both rows' 「无退路 / 等它恢复」 clauses are false today; the red-window plan they tell a seat to make is the wrong plan.
Work item (one file, one row each)
rest-channel.mdto name theccrroutes as the seat-credential channel for the draft flip and for auto-merge / enqueue, with the read-back criterion unchanged (「状态码不作数,读回才作数」; the enqueue is verified byadded_to_merge_queueon the timeline, the landing shape bygit rev-list --parents). Keep MCP as the alternative, ⛔ not the only channel.ccrroute is written to the timeline asclaude[bot], through MCP as the seat account (the cli seat's 07:50Z addendum on [Decision] The shared GitHub identity's GraphQL quota is being burned to 2× — MCP writes go through GraphQL, so seats are silently write-blocked while reads keep working #11742). ⛔ This card does not rule which actor is right — that is [Decision] The shared GitHub identity's GraphQL quota is being burned to 2× — MCP writes go through GraphQL, so seats are silently write-blocked while reads keep working #11742's question; the row only states the fact.platform-readings.md(449/449, ratcheted) gets no row from this card unless the family PR on that file is open at the time; therest-channel.mdrows are the carrier.What this card is NOT
pm:on-hold) and ⛔ not 共享身份的限流纪律不存在:一次限流信号约束的是「身份」不是「客户端」,而规矩只说了不要重试 —— 2026-09-10 全 fleet 停摆事故 #17374 (rate-limit discipline of a shared identity, held for the maintainer). Both were found by the dedupe (grep over the 32 opendomain:skillscards and thesince=2026-09-11T12:00Zwindow; controlenable_pr_auto_merge→ 3 rows inplatform-readings.md). Neither carries the fact-table correction as a work item; the cli seat explicitly recorded rather than filed, leaving the row to the lane that owns the file.Refs
#11742 (5594977552, 5644551740) · #17374 ·
references/rest-channel.mdrows 1–2 ·references/platform-readings.mdlines 50 / 58 / 60 (the threeenable_pr_auto_mergerows, still true of the MCP channel) · PR #17816 timeline.Generated by Claude Code