Repository navigation
Commit 72dd95f
docs(pm-skills): adopt eight measured platform readings into the governed fact table, each paid in place (#18689)
Part of #18426 — the carrier of a seven-card batch, all landing rows in
one governed file.
`Clause-②: no`
One file: `.claude/skills/pm-dispatch/references/platform-readings.md`,
held at **466 / 466** (headroom 0,
widest line 120 B). No ceiling was raised. Every adopted row is paid by
a compression or a dedup **in the same
file**, listed beside the sentence it shortened. Rows :10–:12, :212 and
:431 are untouched — verified by content,
and none of them appears in any hunk of the diff.
Each reading was adopted or rejected **on its own**, as the cards ask.
## Verdicts
| card | reading | verdict | row line | bytes | paid by |
|---|---|---|---|---|---|
| #18426 ① | zod v4 defines the parse methods per INSTANCE, so prototype
spying throws; the seam is the barrel population | **ADOPTED** | `:277`
+ `:278` | 97 B + 116 B | `:172` — the conditional-request row absorbs
the payload-precedence row (its 「只有 body 精确」 is restated at
`:178`–`:179`) · `:185` — the payload-staleness pair |
| #18426 ② | the REST write identity is per-TOKEN, not per-channel; read
back your own write | **REJECTED** | already at `:126`–`:132` | — | — |
| #18426 ③ | `os-verify-lock.sh` is objectstack's and absent in objectui
| **ADOPTED** | `:393` | 112 B | `:207` — the `created`-order pagination
pair |
| #18426 ④ (comment) | ref deletion is refused while every other write
on the token succeeds | **REJECTED** | already at `:374`–`:377` and
`:430` | — | — |
| #18426 ⑤ (comment) | a suspended author's comment is counted but not
served | **REJECTED** | already at `:250` (cause at `:164`–`:167`) | — |
— |
| #18446 | a label strip re-triggers the label-sensitive checks ⇒
pre-check ③ is read after the last state write | **ADOPTED** | `:85` |
118 B | `:289` — the missing-command pair |
| #18458 | `gh-readonly-queue/*` ref names embed the stacked-on sha ⇒
queue ORDER from `ls-remote` | **REJECTED** | already at `:70`–`:73` | —
| — |
| #18467 (main) | a full rule-plus-footer BLOCK to an issue body is
re-anchored, not doubled | **REJECTED** | already at `:410` + `:357` | —
| — |
| #18467 (operating half) | that re-anchor is what `post-stamped`'s
`body` mode reports as `mutated` | **ADOPTED** | `:357` (new row under
it) | 119 B | `:318` — the MCP-truncation pair |
| #18467 (addendum) | bare REST `POST /issues` with a footerless body
synthesises exactly one, +58 | **ADOPTED** | `:410`, refined in place |
120 B | **zero** — folded into the existing create row |
| #18498 row 1 | `grep -z` with a literal newline is an OR — a false
POSITIVE; `grep -Pz` with the backslash-n escape discriminates |
**ADOPTED** | `:291` | 118 B | `:451` — the usage-wall pair |
| #18498 row 2 | (withdrawn on the card as a duplicate) | not adopted |
— | — | — |
| #18521 | `unstable` can come from a commit STATUS the `/check-runs`
enumeration cannot see | **ADOPTED** | `:28` | 115 B | `:303` — the two
CI-log reading rows |
| #18522 | the footer has two spellings, so a bare-only strip strands
the session-URL one mid-body | **ADOPTED** | `:347` | 106 B | `:331` —
the fence caveat folds into the trap row beside it |
**8 readings adopted, 9 lines, 8 payments** (the create-channel cell
costs nothing — it refines a row that was
already there). Net line change: **0**.
### Every payment, and what it shortened
| payment | before | after | fact lost |
|---|---|---|---|
| `:172` | 「文档载明未实测:条件请求答 `304` 不计 core 池。」 + 「公开仓零配额读法两档,payload 档优先 ——
只有 body 精确。」 | one row | 「只有 body 精确」 — restated in full at
`:178`–`:179` (`assignees` stale, claim-bearing fields never read from
this channel) |
| `:185` | 「⇒ 前 15 项那条判别式…」 + 「失效方向是据它对别人的工作下没有认领的判词。」 | one row | none
|
| `:207` | 「`created` 序承重…」 + 「以两趟的重叠证覆盖…」 | one row | none |
| `:289` | 「⛔ 一般规则:任何可能不存在的命令…」 + 「PR 与查重类核验改走 MCP GitHub 工具或 git。」 |
one row | none |
| `:303` | 「`get_check_run` 对本仓 CI job 回空 `output.text`。」 +
「`get_job_logs` 无论 `tail_lines` 只回占满日志尾部的 post-step service-container
teardown。」 | one row | 「post-step」 and 「占满」 — the position is still
given by 「尾部的」 |
| `:318` | 「GitHub 存储字节完好,raw REST 取回一字不差。」 + 「⇒ ⛔ 永不单凭 MCP 读判截断…」 | one
row | none |
| `:331` | 「⛔ 围栏不防护:照删、留空围栏。」 + 「另一坑:感叹号紧跟左方括号即触发(TS 非空断言下标),无需尖括号。」 |
one row | 「TS」 and 「下标」 from the parenthetical — the mechanism is
already spelled out by 「感叹号紧跟左方括号」 |
| `:451` | 「盲区:窗口起点是本地推断的近似值。」 + 「撞墙报文形如 `limit reached, resets at
HH:MM`…」 | one row | none |
## Why the five rejections — the four axes
All five reject for **one** reason: the reading is **already in the fact
table**, measured and phrased. That makes
this a single class, so the axes are argued once and the per-card
evidence follows.
- **实际业务需求** — the need each card names is real, and it is already
served. A seat asking 「who authors my
REST writes」 lands on `:129` (「类只认每次写回读的 `user.login`/`user.type`」); a
seat asking 「where is my PR in
the queue」 lands on `:70`–`:73`, which carries the parent-tip chain
recipe **and** a caution the card does not
have (`:72`: the embedded parent is a presumed base, measured to reach
`main` ten-plus minutes later). Adding a
second row would not add a reader path; it would add a second place to
disagree.
- **项目长远合理性** — a fact table with two rows for one fact is the
workaround shape this repo refuses. When one
copy is later corrected, the other stays, and the next seat reads
whichever it reaches first. One row, one
reader path.
- **防 AI 写代码犯错** — this is the axis that decides it. A duplicated row is
a **lenient** surface: it lets a
future edit narrow one copy while the other keeps the old claim, and
nothing goes red. The strict form is one
row, which the ratchet already prices. Note the direction of the
rejection: none of the five loses a fact —
each is being kept, in the line that already carries it.
- **创业阶段不扩散需求** — at 466 / 466 every row is paid by deleting or
compressing another. Paying real
compression for a fact that is already written down spends the budget
twice and shrinks the table's coverage by
exactly the sentence that was compressed to make room.
Per-card evidence:
- **#18426 ②** — `:126` names both token classes (`claude[bot]` and the
account), `:127` says the class is per
Claude Code account and can flip mid-session, `:129` says the class is
only known by reading back each write,
`:132` says never assume `claude[bot]`. `:128` already lists two
measured flips. The card's third measurement
(`os-sam` vs `hotlong`) confirms a rule the table states; it does not
change it.
- **#18426 ④** — `:375` records the `git push --delete` disconnect with
the misleading tail, `:374` and `:376`
record the consequence (probe branches accumulate), and `:430` records
the second form, the proxy 403, with the
same disposition and an explicit 「⛔ 不重试」.
- **#18426 ⑤** — `:250` is the reading: 「`comments` 计数会多读:实测 1 而列表与
timeline 双 0 ⇒ 线程空否读那两条,
⛔ 不读计数」. The cause is at `:164`–`:167`. 1 parent e75cc3c commit 72dd95f
1 file changed
Lines changed: 17 additions & 17 deletions
Lines changed: 17 additions & 17 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
| 28 | + | |
28 | 29 | | |
29 | 30 | | |
30 | 31 | | |
| |||
81 | 82 | | |
82 | 83 | | |
83 | 84 | | |
| 85 | + | |
84 | 86 | | |
85 | 87 | | |
86 | 88 | | |
| |||
167 | 169 | | |
168 | 170 | | |
169 | 171 | | |
170 | | - | |
171 | | - | |
| 172 | + | |
172 | 173 | | |
173 | 174 | | |
174 | 175 | | |
| |||
181 | 182 | | |
182 | 183 | | |
183 | 184 | | |
184 | | - | |
185 | | - | |
| 185 | + | |
186 | 186 | | |
187 | 187 | | |
188 | 188 | | |
| |||
204 | 204 | | |
205 | 205 | | |
206 | 206 | | |
207 | | - | |
208 | | - | |
| 207 | + | |
209 | 208 | | |
210 | 209 | | |
211 | 210 | | |
| |||
275 | 274 | | |
276 | 275 | | |
277 | 276 | | |
| 277 | + | |
| 278 | + | |
278 | 279 | | |
279 | 280 | | |
280 | 281 | | |
| |||
285 | 286 | | |
286 | 287 | | |
287 | 288 | | |
288 | | - | |
289 | | - | |
| 289 | + | |
290 | 290 | | |
| 291 | + | |
291 | 292 | | |
292 | 293 | | |
293 | 294 | | |
| |||
299 | 300 | | |
300 | 301 | | |
301 | 302 | | |
302 | | - | |
303 | | - | |
| 303 | + | |
304 | 304 | | |
305 | 305 | | |
306 | 306 | | |
| |||
315 | 315 | | |
316 | 316 | | |
317 | 317 | | |
318 | | - | |
319 | | - | |
| 318 | + | |
320 | 319 | | |
321 | 320 | | |
322 | 321 | | |
| |||
329 | 328 | | |
330 | 329 | | |
331 | 330 | | |
332 | | - | |
333 | | - | |
| 331 | + | |
334 | 332 | | |
335 | 333 | | |
336 | 334 | | |
| |||
346 | 344 | | |
347 | 345 | | |
348 | 346 | | |
| 347 | + | |
349 | 348 | | |
350 | 349 | | |
351 | 350 | | |
| |||
355 | 354 | | |
356 | 355 | | |
357 | 356 | | |
| 357 | + | |
358 | 358 | | |
359 | 359 | | |
360 | 360 | | |
| |||
390 | 390 | | |
391 | 391 | | |
392 | 392 | | |
| 393 | + | |
393 | 394 | | |
394 | 395 | | |
395 | 396 | | |
| |||
406 | 407 | | |
407 | 408 | | |
408 | 409 | | |
409 | | - | |
| 410 | + | |
410 | 411 | | |
411 | 412 | | |
412 | 413 | | |
| |||
447 | 448 | | |
448 | 449 | | |
449 | 450 | | |
450 | | - | |
451 | | - | |
| 451 | + | |
452 | 452 | | |
453 | 453 | | |
454 | 454 | | |
| |||
0 commit comments