From 2e9ff3e2b19b5c69385d2124f0ed287705d3aeae Mon Sep 17 00:00:00 2001 From: Litant Ying Date: Fri, 28 Aug 2026 14:30:03 +0000 Subject: [PATCH] docs(pm-skill): record the PR-body rule-plus-footer eat, paid by two cuts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A PR body that ends with a `---` horizontal rule followed by the attribution footer loses BOTH on write, while the write call reports success. Re-writing the footer without the preceding rule survives intact. Issue comments are unaffected in either spelling, so the failure is conditional on the spelling (rule-then-footer at end of body) AND on the surface (PR body yes, comment no) — which means a seat that verified the footer in a comment has proved nothing about a PR body. The row carries the operative rule: write the footer bare in PR bodies and read the body back, which is the only detection. Net 0 at the 314-line ceiling, funded by two cuts with surviving homes: the author-rule row is reduced to the two measurements this table alone carries (the rule itself lives in AGENTS.md, which this table now points at instead of restating), and the credential-discrimination clause in the REST-availability row, which references/rest-channel.md already states in full. Co-authored-by: Claude --- .../references/platform-readings.md | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/.claude/skills/pm-dispatch/references/platform-readings.md b/.claude/skills/pm-dispatch/references/platform-readings.md index ac744908e3..a8464db12e 100644 --- a/.claude/skills/pm-dispatch/references/platform-readings.md +++ b/.claude/skills/pm-dispatch/references/platform-readings.md @@ -89,14 +89,13 @@ - **REST 可用性是会话属性,⛔ 不是全局事实 —— 开轮探一次,按班存档;探针必须 repo-scoped**:直连受会话级授权门钳制(会话起点快照),门关着 repo-scoped 路径**整类**回 403 `GitHub access is not enabled for this session`(⛔ 不是限流,重试改不了它),而 `/rate_limit` 照答 200 - —— 它兼任不了通道探针;探针 = 一条真 repo-scoped 读。探针 403 后 `/rate_limit` 是**单调用 - 凭据判别**:15000/时 = 凭据活、被 repo-scoping 拒;60/时或 auth 错 = 无凭据(实测有席位 token - 是 14 字节占位串),两形同症不同治。**按班矩阵**:2026-08-25 两车道 5+ dev 席全被门拒(整类 - 403、读写同门 —— 加法标签 POST、评论 PATCH 同死 ⇒ 无评论编辑通道,更正=重发);2026-08-26 - 反例一席门开,加法 POST 回 200;顶层席同窗分裂(两 403、一 200)⇒ **门态逐容器变**,⛔ 不据 - 他席、他日读数推本席,唯一安全读法即本行 repo-scoped 探针。**门关着时的降级梯**:① git - 先行(「零成本等价物」);② 公开仓 payload 档(下方「公开仓」条);③ MCP:search 定向一击、列 - 表**单标签**读全 + 本地求交(`labels` 是 OR,见 MCP 参数条);④ 等重置。 + —— 它兼任不了通道探针;探针 = 一条真 repo-scoped 读。探针 403 后的单调用凭据判别见 + `references/rest-channel.md`。**按班矩阵**:2026-08-25 两车道 5+ dev 席全被门拒(整类 403、读写同门 + —— 加法标签 POST、评论 PATCH 同死 ⇒ 无评论编辑通道,更正=重发);2026-08-26 反例一席门 + 开,加法 POST 回 200;顶层席同窗分裂(两 403、一 200)⇒ **门态逐容器变**,⛔ 不据他席、他日 + 读数推本席,唯一安全读法即本行 repo-scoped 探针。**门关着时的降级梯**:① git 先行(「零成 + 本等价物」);② 公开仓 payload 档(下方「公开仓」条);③ MCP:search 定向一击、列表**单标 + 签**读全 + 本地求交(`labels` 是 OR,见 MCP 参数条);④ 等重置。 - **默认读序 git → payload → REST → MCP/GraphQL**(2026-08-23 策略翻转,2026-08-25 增补 payload 档; ⚠️ REST 档以**本班 repo-scoped 探针绿**为前提 —— 前提就住本行,403 会话改按降级梯读)。 list/查重/卡与 PR 读/标签回读默认走容器 curl 的 REST 通道 —— App installation token,core @@ -242,12 +241,9 @@ 重写毁掉的是正确内容。判据 = 数**空的行内代码跨度**:一个空跨度恰是短尖括号片段被 吃掉的签名(判据是**尖括号**不是反引号:有的正文本来就把标识符不带尖括号写);数字实 体(如撇号成 `'`)是普通实体编码,**不是**截断证据(2026-08-23 实测)。 -- **写侧 sanitizer 作者规则,一条管三坑**:必须字面携带 tag / script / markup-declaration 形状的文本 - 进围栏并把危险字符**用词拼出**(⛔ 围栏本身不防护 —— 防护的是拼写,实测见下条),或 - 改花括号占位符(`{n}`)/整句用词描述;要字面尖括号写实体 `<` / `>`;裸标识符(无尖括号) - 存活 ⇒ SKILL 提取契约(字面文本 grep + 裸标识符回退)仍有效。写返回 200、损耗只在回读可 - 见 ⇒ **含尖括号的任何写后回读逐个确认**(失效完全静默);⛔ 评论不豁免、⛔ 只回读标 - 记不算验证 —— 要**回读尾部**确认正文结束在它该结束的地方。 +- **写侧 sanitizer 作者规则**:规则住 AGENTS.md「GitHub mutates body BYTES」(围栏**不**防护、危险字 + 符用词拼出、写后回读),⛔ 不在本表复述;本表只补两条实测:要字面尖括号写实体 `<` / + `>`;裸标识符(无尖括号)存活 ⇒ SKILL 提取契约(字面文本 grep + 裸标识符回退)仍有效。 - **写侧实测行为 · issue body(落库删字节,网页同显)**:sanitizer 按 **tag 形状**删、不按尖括 号 —— 行内反引号里的 tag 形状 token(读作未知 HTML 标签者:注释标记、占位符、泛型)整个 被删,HTML 注释形状标记裸写被整删留空行;孤立 less-than / greater-than 在行内代码**存活**, @@ -261,6 +257,10 @@ 正文** —— 标记扫描照报成功,只有真去解析才发现;引信是普通 TS 形状(泛型一类)不是奇 异语法。⚠️ 边界:姊妹仓一次受控探针测到的是**选择性删除**而非截断到尾 ⇒ **写侧按 最坏的截断防护**。 +- **写侧实测行为 · PR 正文(尾部 `---` 与其后的署名页脚一并被吃)**:写调用照报成功;去掉横 + 线只写页脚则原样存活(2026-08-28 两仓同轮、两张 PR 全文回读)。**评论不受影响**(两种拼法 + 都活)⇒ 失效既**依拼写**又**依载体**:评论里验过页脚**对 PR 正文什么都没证明**。⇒ PR + 正文页脚**不带前置横线**、且**写后回读正文**(唯一检测手段);评论两形皆可。 - **并行 spec PR 同动 pin 计数断言**(被踢不是事故,按 os-regen 序再解一轮):解冲突两侧收据都 保留、按合并顺序堆叠,新计数**从合并后源码重数**(操作数是文件本身不是历史),⛔ 不从 两侧收据做算术;双方占同一编号是常态(各取当时 max+1),重编号后进侧。