From 58885bc0b77f4c17a3c374750a03a6dd0cb3bb42 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 12 Sep 2026 14:38:05 +0000 Subject: [PATCH] skills(pm-dispatch): a rate-limit refusal binds to the identity, not the client; destroyed evidence reads NOT MEASURED MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit rest-channel.md 通道边界: a rate-limit refusal binds to the identity named in the refusal text; every write channel of that identity is exhausted with it, and continuing to write on another channel of the same identity is the same act as a retry. The other side is a fallback only when its credential answers a different identity on GET /user; within one seat the PM and its dev subagents are one identity. Paid in place: the platform-readings pointer (restated at :3 and :67) and the unconditional "open the draft PR without waiting for reset" prescription (the capability stays at the ✓ POST row). os-dev.md NOT MEASURED family: a review item whose evidence was destroyed (its comment, card or PR answers 404) is recorded NOT MEASURED with the reason, never as passed and never as "no flag". Paid in place: the verdict- line restatement (already stated at 资源纪律 1 and 门禁结果的读法). Co-authored-by: Claude Claude-Session: https://claude.ai/code/session_01MCLBsUgfykL74aU716rzVK --- .claude/agents/os-dev.md | 2 +- .claude/skills/pm-dispatch/references/rest-channel.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.claude/agents/os-dev.md b/.claude/agents/os-dev.md index f821da4650..503ea88a33 100644 --- a/.claude/agents/os-dev.md +++ b/.claude/agents/os-dev.md @@ -169,9 +169,9 @@ model: opus - `set -o pipefail` 与 `${PIPESTATUS[0]}` 仅当下游读到 EOF 才安全。 - `| head -N` 读满即关读端,生产者吃 SIGPIPE 以 0 退出:是管道改了生产者的退出码。 - 此陷阱不限于门禁:任何 `cmd | head` 之后读退出码都中招(`git grep`、`node` 皆然)。 -- 引用门禁结果时点名它自己印的判定行,永不引裸 `$?`:判定行由门禁写,`$?` 由你的管道写。 - 陷阱在 shell 用法里,不可机械化;⛔ 别等机械强制。 - 两类跑了却没测到,都读作 NOT MEASURED,不读作绿也不读作红。 +- 证据已销毁(评论、卡或 PR 答 404)的复核项记 NOT MEASURED 并写因,⛔ 不记通过或「无旗」。 - ① 包的 `typecheck` 可能 `exclude` 掉 `**/*.test.ts`;声称它覆盖你的测试前,用 `--listFiles` 数。 - ② `MODULE_NOT_FOUND` 一类的 exit 1 不是红门禁:多半是脚本名或路径敲错,根本没进到门禁体。 - 它与 `exit 99` / queue-timeout / `PREREQUISITE NOT MET` 同类:用真正的 `pnpm check:*` 命令重跑。 diff --git a/.claude/skills/pm-dispatch/references/rest-channel.md b/.claude/skills/pm-dispatch/references/rest-channel.md index 59daf5ed9d..11bb9548a0 100644 --- a/.claude/skills/pm-dispatch/references/rest-channel.md +++ b/.claude/skills/pm-dispatch/references/rest-channel.md @@ -9,7 +9,8 @@ - 会话门关着的席位本表两侧整表不可达:repo-scoped 读写全 403、`gh` 缺席,而 MCP 与 git 正常。 - ⇒ 先跑一条 repo-scoped 探针再选通道。 - 403 后 `/rate_limit` 判凭据形态:15000/时 = 凭据活被 repo-scoping 拒;60/时或 auth 错 = 无凭据。 -- 按班矩阵与降级梯住 `platform-readings.md`,⛔ 不在本表复述。 +- 限流拒绝绑定被拒身份(报文 user ID):同身份各写通道一并耗尽,⛔ 换通道续写与重试同罪。 +- 他侧只在身份不同时是退路:凭据 `GET /user` ≠ 被拒 user ID 才换;席内 PM 与 dev 同一身份。 - ⛔ 未带 ✓ 的形状不当已验证事实复述。 ## 读侧 —— 全部可迁移 @@ -40,7 +41,6 @@ - 请求体走文件(`-d @file`)或引号定界 heredoc(`<<'EOF'`),⛔ 永不内联双引号串。 - 双引号内 shell 先展开反引号、`$(...)`、`$VAR`,请求尚未成形;只标题坏而正文完好即此形。 - ✓ 请求复审 `POST .../pulls/{n}/requested_reviewers` · 开 PR `POST .../pulls` 带 `draft=true`。 -- GraphQL 池为 0 的同一分钟里开得出 draft PR ⇒ 交付不必等重置。 - ✓ 把 `origin/main` 合进 PR head:`PUT .../pulls/{n}/update-branch`,PM 席位可用。 - 它是零文件写的合 main 手段,产出真合并提交、不重写历史。 - `expected_head_sha` 必须是完整 40 字符 SHA,短 SHA 回 422。