From 414f6317fdc90b20fab6e524a0f9376b662e05ae Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 17 Sep 2026 14:43:02 +0000 Subject: [PATCH 1/2] docs(pm-skills): record six measured platform readings, each paid in place Six readings land in the governed fact table at zero headroom; each new row is paid by a compression or a dedup in the same file, so the line count is unchanged at 466/466 and every row stays under the 120-byte width rule. New rows: - zod v4 hangs parse methods per instance, so prototype spying throws; the working seam is the barrel population, with its radius stated. - os-verify-lock.sh lives only in objectstack; a sibling-repo seat running this repo's copy reads a container-level lock, not that repo's depth. - a label strip and a ready flip are both state writes that restart the label-sensitive checks, so landing pre-check 3 is read after the last one. - sending a whole footer block to an issue body trips the blank-line normalisation, which post-stamped's body mode reports as `mutated`. - grep -z treats a literal newline in the pattern as a separator, so a wrapped phrase matches one side only -- a false positive, not a false zero. - the issue create channel synthesises exactly one footer for a footerless body (+58), folded into the existing create row at zero cost. Payments: the conditional-request/payload row pair, the payload-staleness pair, the created-order pagination pair, the missing-command pair, the MCP-truncation pair and the usage-wall pair each compress two lines into one, losing no fact. Claude-Session: https://claude.ai/code/session_01Gqi43smmqjJ5sUrhfoPeKu Co-authored-by: Claude --- .../references/platform-readings.md | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/.claude/skills/pm-dispatch/references/platform-readings.md b/.claude/skills/pm-dispatch/references/platform-readings.md index fae17e733a0..4974a607806 100644 --- a/.claude/skills/pm-dispatch/references/platform-readings.md +++ b/.claude/skills/pm-dispatch/references/platform-readings.md @@ -81,6 +81,7 @@ - 入队事件与队列 ref 迟 1–3 分钟才出现 ⇒ 轮询预算按 3 分钟,⛔ 不按 1 分钟判没挂上。 - 队列窗口有界:满窗条目 ref 与 `merge_group` run 双缺席,ref 随前一条落地才现,不按计时器。 - ready 翻转触发检查重跑 ⇒ 入队落在翻转之后约一分钟,那段空窗不是挂载失败。 +- 摘标签与翻 ready 是状态写,同 head 重起标签敏感检查 ⇒ ③ 在入队前末次状态写之后读。 - 检查全部完成的 PR 挂 auto-merge 即入队,本仓 28–60 秒 ⇒ 挂载与落地之间无窗口。 - `mergeable_state` 未落定时挂上的是经典 auto-merge、不入队,落定后再挂才入队。 - `behind` 的 PR 照常入队:落后于 main 不是入队否决,⛔ 不为它先跑 update-branch。 @@ -167,8 +168,7 @@ - 被销毁的 PR 仍占分支名:API 答 404,同名开新 PR 仍被拒 ⇒ 同批 commit 推新分支名再开。 - 本地对象库是最后备份:复核时 fetch 过的每条分支,其 head 在停用后仍在本地可推。 - 重建 PR 正文自报四件:head 逐字节同、无 rebase/amend/squash、数字出自旧基底、CI 为准。 -- 文档载明未实测:条件请求答 `304` 不计 core 池。 -- 公开仓零配额读法两档,payload 档优先 —— 只有 body 精确。 +- 文档载明未实测:条件请求答 `304` 不计 core 池;公开仓零配额读法两档,payload 档优先。 - 网页档可达性逐会话逐 URL 形状分叉:一处容器 `/actions/**` 与 api. 回 403,另一处网页全 200。 - ⇒ 要用哪个形状先探哪个;本地权限分类器在网络之前的拒绝是第三种机制,⛔ 不记 403。 - 单卡页 `/issues/N` 内嵌 JSON 载原始 body:取含 `bodyHTML` 的 `script[type="application/json"]` 块。 @@ -181,8 +181,7 @@ - 自己刚写的按原写入通道回读;失效方向是空转与重发。 - 成因:本档经 CDN 缓存,专对最新内容失效且绕不掉,cache-busting 查询串与 no-cache 头都无效。 - 内容可滞后数分钟到数十分钟;它没有位置性对照 —— 更早内容全在,只有最新几条缺席。 -- ⇒ 前 15 项那条判别式在此不成立,唯一出路是第二通道。 -- 失效方向是据它对别人的工作下没有认领的判词。 +- ⇒ 前 15 项判别式在此不成立,唯一出路是第二通道;失效方向是据它判他人工作无认领。 - PR 页把正文与每条评论的原始 markdown 放进 `clipboard-copy` 的 value 属性,是另一条零配额读。 - issue 页无此载体,且盲态与好态的提及计数相同 ⇒ 卡片评论只走 API,⛔ 不套 PR 页读法。 - 边界:⛔ 只因仓库公开成立;⛔ 覆盖单卡读,搜索页只给锚点不给正文。 @@ -204,8 +203,7 @@ - 翻页在偏移 ~9,900 硬拒:422 Pagination with the page parameter is not supported for large datasets。 - 该拒绝与规模、`per_page` 无关:小结果集同样在 `page=100` 拒,`per_page=1` 拒在 `page=9000`。 - ⇒ 总体超过它就按 `sort=created` 拆成 `asc` 加 `desc` 两趟、各 ≤99 页。 -- `created` 序承重:新卡只追加到尾,页不在脚下重排。 -- 以两趟的重叠证覆盖、对号码线闭合、缺号逐个直取核实。 +- `created` 序承重:新卡只追加到尾、页不重排;两趟重叠证覆盖、号码线闭合、缺号直取。 - 403 走降级梯 MCP 档:单标签读全加本地求交;⛔ 不是翻页手扫,不完整枚举比零结果更险。 - 会话代理只服务 repo-scoped 路径,`/search/*` 的 403 体解析成净零。 - 代理回 403 加体 sessions are bound to their configured repositories,而那是合法 JSON。 @@ -275,6 +273,8 @@ - 两个通道的 `labels` 语义相反:REST 列表端点的 `labels=a,b` 是真 AND ⇒ ⛔ 不无条件改走 REST。 - 被拦的下载不是缺席证明:出口策略 403 只说取不来,不说没有,先找产物再下结论。 - 读数:Chromium 预装、`PLAYWRIGHT_BROWSERS_PATH` 已设,而 `cdn.playwright.dev` 回 403。 +- zod v4 的 parse 方法挂 schema 实例不挂原型 ⇒ 在原型上 spy 抛属性未定义。 +- 可行接缝是逐个包裹 barrel 导出体(实测 211 导出 408 方法);函数体内现造的不在半径内。 - 读数六坑 ①:`cd X && cmd` 短路 —— 路径不存在时命令在当前仓执行,跨仓恒 `git -C `。 - ②:`git grep -c | wc -l` 数的是文件数不是命中数。 - ③:裸名 grep 被幸存家族当子串命中 —— 退役核验带引号精确名。 @@ -285,9 +285,9 @@ - ⑤:容器里没有 `gh`,于是 `gh … || echo "none"` 是不可证伪的否定。 - 127 命令不存在与 grep 没命中输出同值 ⇒ 回退分支照打印安心结论而一次都没检查。 - 安全拼写:先 `command -v ` 确认存在,或在 `||` 之前捕获状态。 -- ⛔ 一般规则:任何可能不存在的命令上挂回退都是不可证伪的否定。 -- PR 与查重类核验改走 MCP GitHub 工具或 git。 +- ⛔ 通则:可能不存在的命令上挂回退即不可证伪的否定;PR 与查重核验改走 MCP 工具或 git。 - ⑥:只存在于拼接后的短语,单行 grep 对主体与控制词双零:先合并再搜,两个方向都要读。 +- `-z` 下模式内字面换行即分隔符 ⇒ 换行短语只命中一侧,假阳性;`grep -Pz` 加 `\n` 才判别。 - auto 档判定随命令形状变,不随能力变 ⇒ 被拒的复合命令拆成裸动作重试再报 blocked。 - 读数:带链接与管道的 `git push` 被拒,裸 `git push origin <分支>` 放行,拒绝文案不点名元素。 - 判定跨天翻面 ⇒ ⛔ 一次拒绝不是能力边界;`permissions.allow` 条目才是仓库侧确定性通道。 @@ -315,8 +315,7 @@ - 读侧有确定性触发:正文含字面 script 开标记形状 token 时,API 与 MCP 读回在该处静默截断。 - doctype 开标记与 object 标签形状同触发;网页全文完好,⛔ 不修复只在 API 读短的卡。 - 同坑第三条读路径:MCP `issue_read` 与 PR 读路径把行内反引号里的尖括号片段整个吃掉。 -- GitHub 存储字节完好,raw REST 取回一字不差。 -- ⇒ ⛔ 永不单凭 MCP 读判截断,先取 raw REST 或 WebFetch 渲染页核对再判。 +- GitHub 存储字节完好、raw REST 一字不差 ⇒ ⛔ 不单凭 MCP 读判截断,先取 raw 或渲染页核对。 - 否则 repair-first 被正确地应用到完好的卡上,重写毁掉的是正确内容。 - 唤醒中继渲染会把 `{` `}` `<` 转义 ⇒ 判已发布产物按 `GET` 取存储体,⛔ 永不按中继正文。 - 判据 = 数空的行内代码跨度:一个空跨度恰是短尖括号片段被吃掉的签名。 @@ -355,6 +354,7 @@ - 正文把 harness 两行块叠在页脚之上,存回是三条署名块;单块形态才复现成一条。 - ⇒ 形态随动作与送出体尾部变,改侧还随通道变;⛔ 不由任一条推其余,写后必回读。 - 平台在尾部 `---` 前后正反两向归一空行:比对正文只按首个差异偏移,⛔ 不按长度。 +- 送全块即触发该归一 ⇒ `post-stamped` 的 `body` 档把这点空白判 `mutated`,净零字节良性告警。 - 评论创建两通道都追加 58 字节 ⇒ 严格解析 `os-dev-report` 必须停在最后一个右花括号。 - 评论 `PATCH` 重送含尾部页脚块的存储体是幂等的:逐字节一条页脚,与创建的追加相反。 - PR 正文的 `Check Changeset` 门读 clause-② 声明宽容:其失败文案自述 `- `、`> `、`**` 前缀照读。 @@ -390,6 +390,7 @@ - 强制档不得因不可用而降档 —— 那正是降档保险丝要拒的替换。 - 本车道强制多是过宽的回忆:`dispatch-gates.mjs --tier PATH` 逐路径现推,路径线是下限非放行。 - 该脚本只答自己那棵树:姊妹仓路径回 absent from this tree,姊妹仓的档位与条款②只能手推。 +- `os-verify-lock.sh` 只住 objectstack:objectui 无它,跑本仓副本读的是容器级锁,非该仓深度。 - required checks 的名单是每仓事实,objectstack 七个: `TypeScript Type Check` · `Lint & Repo Gates` · `Test Core` · `Dogfood Regression Gate` · `Build Core` · `Temporal Conformance (live PG + MySQL)` · `Governed Surface Queue Guard`。 @@ -406,7 +407,7 @@ - ⛔ 别处写下的计数值一律先复测再用。 - MCP `issue_write create` 落库丢掉正文尾部的署名页脚块,正文其余部分完好。 - MCP `issue_write` update 送尾部横线加页脚块则两者同被吃掉,而调用照常回 id 与 url。 -- 建卡改走 REST `POST /issues` 页脚存活;回读后 `PATCH /issues/{n}` 重送正文逐字节存下。 +- 建卡走 REST `POST /issues`:带页脚存活,无页脚合成恰一条(+58);回读后 `PATCH` 重送逐字节存下。 - issue 正文 `PATCH` 识别按整块:送全块或不送页脚都存回恰一条,已有页脚归一末尾不复制。 - 无横线的裸页脚不算页脚:它被保留而整块另追加,总数二 ⇒ 恒一条只对上行两输入成立。 - 该格两空:MCP 送裸页脚、`title`/`labels` 单字段 `issue_write` 是否动页脚,均未实测。 @@ -447,8 +448,7 @@ - 原则、定时器选型与恢复 playbook 在主文件;本节只放事实补遗。 - `npx ccusage blocks` 容器内可用,读本地会话记录,报当前 5 小时窗口边界、剩余与燃烧率。 -- 盲区:窗口起点是本地推断的近似值。 -- 撞墙报文形如 `limit reached, resets at HH:MM`,重置时刻只在此刻可得。 +- 盲区:窗口起点是本地推断值;撞墙报文 `limit reached, resets at HH:MM`,重置时刻只此刻可得。 - agent 建的 Routine 起的会话不带 `mcp__github__*` 工具 ⇒ 对以 GitHub 读写为工作的席位不可用。 - 创建端现有 `connectors` 参数,声明起的会话可用哪些连接器 ⇒ 成因有了参数级解法。 - ⛔ 未实测,⛔ 不据参数在场推现在能用了。 From 5f809c1817b67f31dca0438b5677e0d35bfcb9aa Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 17 Sep 2026 14:46:34 +0000 Subject: [PATCH 2/2] docs(pm-skills): add the two re-scoped readings, paid in place The seat folded two more sibling cards onto this branch. Both land as one row each, each paid by a compression in the same file, so the count stays 466/466. New rows: - mergeable_state `unstable` can be produced by a commit STATUS, which the /check-runs enumeration cannot see, so landing pre-check 3 reads the commit status too before calling a head green. - the attribution footer has two spellings, so a "send no footer" strip that matches only the bare one strands the session-URL one mid-body while the 58-byte read-back delta still looks exactly as documented. Payments: the two CI-log reading rows compress into one, and the fence caveat folds into the trap row beside it; no fact is dropped by either. Claude-Session: https://claude.ai/code/session_01Gqi43smmqjJ5sUrhfoPeKu Co-authored-by: Claude --- .../skills/pm-dispatch/references/platform-readings.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.claude/skills/pm-dispatch/references/platform-readings.md b/.claude/skills/pm-dispatch/references/platform-readings.md index 4974a607806..a57c2dc1feb 100644 --- a/.claude/skills/pm-dispatch/references/platform-readings.md +++ b/.claude/skills/pm-dispatch/references/platform-readings.md @@ -25,6 +25,7 @@ - `dirty` 即入队否决(冲突对象是当前 main);draft PR 照答 `clean`/`blocked`/`unknown`,不答 `draft`。 - `needs:contract-review` 是合并闸:实测 `blocked` 而 `mergeable: true`,无标签同形兄弟回 `clean`。 - ready 翻转实测两序列 `clean→blocked→clean` 与 `blocked→unstable→clean`;`unstable` 瞬态非失败。 +- `unstable` 可源自 check-runs 看不见的 commit STATUS(如 `Vercel`)⇒ ③ 另读 `/commits/{sha}/status`。 - 判头脏走零配额本地试合并:fetch PR ref 后 `git merge-tree --write-tree origin/main `。 - 它直接列出冲突文件;读数随 fetch 老化,重跑先 fetch。 - 它跑 `git merge` 的 merge-ort ⇒ 注册 `merge=os-regen` 的克隆照用驱动,未注册的退回文本合并。 @@ -299,8 +300,7 @@ - cancel-in-progress 窗口只罩得住慢载体 ⇒ 先比对 run `head_sha` 与 PR 当前 head,不开调查。 - 两仓 CI 并发组都按 PR 号不按 head:重跑过期 head 取消当前 head 的 run ⇒ 重跑是写不是读。 - CI 红了先取完整日志归档再下结论:断言文本只在归档里,直读工具拿不到。 -- `get_check_run` 对本仓 CI job 回空 `output.text`。 -- `get_job_logs` 无论 `tail_lines` 只回占满日志尾部的 post-step service-container teardown。 +- `get_check_run` 回空 `output.text`;`get_job_logs` 无论 `tail_lines` 只回尾部的 service-container teardown。 - ⇒ 两者都答不了到底挂在哪;`GET /actions/jobs/{id}/logs` 被出口代理拒绝,CONNECT 403。 - 失败 step 名免下载即得:`actions_get method=get_workflow_job`。 - check-run annotations 端点带退出码与失败命令,是免归档的第二条便宜读。 @@ -328,8 +328,7 @@ - 写侧 · issue body:落库删字节,网页同显;sanitizer 按 tag 形状删,不按尖括号。 - 行内反引号里的 tag 形状 token 整个被删,含注释标记、占位符、泛型这些未知标签形。 - HTML 注释形状标记裸写被整删留空行;孤立的行内尖括号与非 tag 形状带尖括号正则存活。 -- ⛔ 围栏不防护:照删、留空围栏。 -- 另一坑:感叹号紧跟左方括号即触发(TS 非空断言下标),无需尖括号。 +- ⛔ 围栏不防护,照删留空围栏;另一坑:感叹号紧跟左方括号即触发(非空断言),无需尖括号。 - 围栏与行内代码同样丢字符,幸存文本仍像代码但意义已变;感叹号不接左方括号则存活。 - 作者侧:运算符用词拼出,或占位词定义一次。 - 写侧 · 评论是截断不是删片段:sanitizer 从首个命名 HTML 元素的尖括号片段起吃到结尾。 @@ -345,6 +344,7 @@ - MCP `update_pull_request` 包装器删掉 PR 正文的页脚块;该通道锁 1 已拒,读作历史。 - 裸 REST `PATCH /pulls` 追加一个裸页脚并保留既有 session-URL 页脚,差恰 58 字节。 - 同路送无页脚正文存回恰一条(平台裸形)⇒ 该格处方是不送页脚,⛔ 不是不重送正文。 +- 页脚两拼写:裸版与 session-URL 版都要剥,漏剥的卡在正文中段,而 58 字节差照常。 - 第四形:建 PR 两通道同判 —— 送出体尾部不是 `---` 加页脚块时,追加一条同形页脚。 - 该追加带前置横线、恰 90 字节,送出体是存储体的严格前缀。 - 尾部已是该块则一字不追加,两通道各实测两向 ⇒ 建侧通道不是变量,判据是送出体尾部。