Repository navigation
docs(pm-dispatch): three measured container readings into the platform table (419 to 422) - #17317
Conversation
…orm table
Deduplicated against what the table already says, three readings land, one
line each, under the standing one-file exception for `platform-readings.md`:
- the label-event stream `GET /issues/{n}/events` follows the SESSION GATE
rather than being shut fleet-wide — 200 carrying each labeled/unlabeled
name and timestamp, measured two-through-one-403 across three containers;
- the quietest member of the shallow-checkout trap family is a WINDOWED
`git log --grep`: 0 results, exit 0, no warning, so the reading drawn is
"that commit never existed";
- the response to `check-governed-merges`'s refusal is to deepen from a date
BEFORE the window, never to enumerate past it — a short list reads as
compliance.
The ceiling in `scripts/pm/check-skill-line-ratchet.mjs` moves 419 to 422 (the
landed count) with a ninth `ruledRaises` record quoting the standing ruling.
Claude-Session: https://claude.ai/code/session_01MoTv7pn338AZ71owsp19gQ
Co-authored-by: Claude <noreply@anthropic.com>
维护者速读改了什么 —— 平台读数表( 为什么改 —— 分诊席交班时报的两条容器事实,两条都改变了它已经得出的读数:一条本来要把「trailer 从不存在」写成结论(浅克隆的假零),一条是 风险与代价(含回滚) —— 三行文档,无代码、无门禁逻辑。代价是读数表再长三行;本席按去重计数核过:候选 7、落地 3、已有 4(配额 15000、 席位意见 —— 本席按契约复审档自审通过。派发词里我写的「文件里没有 shallow / --shallow-since 的行」是用 ASCII 词搜中文表得出的假零,dev 在树上证伪(:261–:262 浅检出、:381 你要做的 —— 人工合并本 draft PR(受管面 Generated by Claude Code |
Fixes #17308
Two measured container facts from the triage seat's handover, landed as terse rows in
.claude/skills/pm-dispatch/references/platform-readings.md— deduplicated against what thetable already says, which is why three lines land rather than the seven the readings offered.
The rows, verbatim, with the section each landed in
## API 配额— inserted directly under the gate-open channel row (「门开会话实测通道宽于标签…」),which is where its neighbours live:
## 读数陷阱— inserted inside trap ④'s shallow-checkout family, between the trap row(「④:浅检出上的历史读数不可信…」) and its remedy row (「同族
branch -r --contains零输出;先--deepen再判…」),so the family's trap-then-remedy ordering survives:
## 读数陷阱— inserted directly under thecheck-governed-mergesrow(「
check-governed-merges浅克隆上拒答而非少报…补救git fetch --shallow-since=。」), the row it extends:Assumption C measured rather than assumed: the file has exactly six
##sections and no核验 / 树读数 section — the git/tree readings live in
## 读数陷阱, so that is where two of thethree landed. Widest row: 117 bytes / 101 display columns, against the file's widest existing
bullet (114 columns) and the ratchet's 120-byte line cap. No table rows.
去重计数 — 候选 7 / 落地 3 / 已有 4 / 拒收 0
issues/{n}/eventsis readable, and what it returns/timelineis readable:10–:11(the queue-membership discriminant, with the full spelling) and:133(the red-window row)rate_limitshows the authenticated 15000, not the anonymous 60:104(it answers 200 regardless, so it cannot double as the probe),:109(proxy-and-credential egress, core 15000),:147(read it at round open):100,:101,:105(「门态逐会话变…⛔ 不据他席、他日读数推本席」)git log --grepanswers 0 with exit 0 and no warning:261namesrev-list --counttruncation andmerge-base --is-ancestor; the SILENT windowed zero is not therecheck-governed-mergesrefuses rather than under-reporting, remedy--shallow-since=:381carries both, including the literal--shallow-since=spelling:381states a property of the guard, not the seat's dispositionthe claim comment's premise check) recorded that the file holds ZERO lines for
shallow,history-horizonor--shallow-since. It does not::261/:262carry the shallow-checkout trapfamily (spelled 浅检出) and
:381carries thecheck-governed-mergesrefusal together with theliteral
git fetch --shallow-since=remedy (spelled 浅克隆). The zero-hit list was an ASCII grepagainst a table written in Chinese. Fact 2 therefore lands as a two-line residue appended to rows
that already exist, not as the fresh pair the grading assumed — which is the seat's own instruction
(「a duplicate row is a 拒收」) applied to the half it had measured as absent.
Fact 1's residue is smaller for the same reason: rows 3 and 4 above already carry the
authenticated quota and the per-seat probe rule, so the landed row states only what is missing —
the endpoint spelling, what a 200 carries, and the measured two-through-one-403 spread.
Ratchet arithmetic
CEILINGSrow forplatform-readings.md: 419 → 422, the landed count, headroom 0, sameconvention as every entry above it. ⛔ No other ceiling moves.
ruledRaisesrecord on the cross-file-move declaration:delta: 3,date: '2026-09-10', quoting the standing one-file exception from pm-dispatch SKILL.mdverbatim and untranslated — the same words the eighth record quotes, quoted again rather than
cross-referenced, because a record quoting no ruling is RED and each record stands alone.
was: 314does not move. Records now sum 34 + 3 + 26 + 7 + 7 + 17 + 3 = 97, so the move'sown raise is 422 − 314 − 97 = +11, unchanged, against a net source decrease of 20. The gate
prints exactly that:
The accounting comment beside the ceiling names each landed line and each deduplicated candidate.
Gates
Derived with
node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack(39 commands; change set read from the merge base by the script itself, not from a hand-written diff).
38 of 39 run green; the 39th is still running and is reported below rather than guessed at.
pnpm -s check:pm-skill-ratchet✓ ... is 422 lines (ceiling 422; headroom 0)node scripts/pm/check-skill-line-ratchet.mjs --self-test✓ check-skill-line-ratchet self-test: 157 cases pass.pnpm -s check:skill-frame-sync✓ 2 copies of the decision frame are structurally isomorphic across 2 filespnpm -s check:skill-compatibility✓ 11 SKILL.md file(s) reconciled against 80 workspace packagespnpm -s check:pm-skill-id-lint✓ check-skill-id-lint: 27 file(s) clean(no card number in any skill file)pnpm -s check:nul-bytesscanned 8150 text file(s) ... no raw ASCII control bytesnode scripts/pm/check-governed-merges.mjs --teston both filesscripts/pm/**is on the governed register. Thepredicate says it is not — only
.claude/**hit. The PR is governed either way (one hit governsthe whole diff), so nothing about the terminal changes; the wrong half of the premise is recorded
here rather than repeated.
pnpm --filter @objectstack/lint run check:doc-formula-expressionsfirst exited 3 =PREREQUISITE NOT MET (
@objectstack/formulaand@objectstack/lintnot built) — NOT MEASURED,not a finding. Built both under the shared verify lock
(
VERDICT command-exit 0 · held the lock 2s · waited 0s) and re-ran: exit 0.No build and no package tests are owed: the diff touches no package. No changeset is owed either
— nothing published moves (
.claude/**andscripts/pm/**are both outside every package'sfiles[]), soskip-changesetapplies.维护者速读(草稿)
改了什么 — 平台事实表
platform-readings.md加三行:① 标签事件流GET /issues/{n}/events在门开会话可读(回 200 带 labeled/unlabeled 的名与时刻,三个容器实测两通一 403);② 浅检出上
窗口式
git log --grep回 0 结果、exit 0、无警告,读作该提交从不存在;③ 遇到check-governed-merges的拒答,正确处置是按窗口起点之前的日期加深,而不是自己去枚举。配套把该文件的行数上限从 419 抬到 422(落地行数),并在棘轮脚本里记一条引常设裁决的
ruledRaises。为什么改 — 这两个事实这一班各自造成过一次错误读数。其一:有席位把「REST 403」当成整个机群的
属性继承下来,于是放弃了本可用的第二条回读通道;其二:一次调查据窗口式
git log --grep的零结果差点公开发布「该提交从不存在」的结论,而那个零只是提交落在浅检出的地平线以下。事实表就是给这类
读数兜底的地方 —— 写下来,下一个席位才 grep 得到。
风险与代价(含回滚) — 风险很低:改的是 agent 指令树里的只读事实表,不进任何发布包,不改运行时
行为。代价是三行预算(419 → 422),按常设裁决走,免决策卡。回滚 = revert 本 PR 一个提交,行数上限
随之回到 419,棘轮与其余门禁自动恢复绿。
席位意见 —
你要做的 — 治理面 PR,合并是人工的:请直接读上面三行中文原文是否准确、是否值得占三行预算,认可
就合并。⛔ 不需要席位翻转 ready、不需要入队、不需要挂 auto-merge。
Acceptance notes
its
CEILINGSrow and oneruledRaisesrecord. Nothing inSKILL.md,core-rules.md,lanes/hotcrm.md(sibling dev's surface) orskills/**,scripts/check-*.mjs,scripts/pm/dispatch-gates.mjs, docs,packages/**(the other sibling's).ruledRaisespath accepts the raise and its--self-teststays green (157 cases) with the ninth record in place.check:pm-skill-id-lintreports 27 files clean. The ruling is cited by its wording, as theeight records before it do.
:312–:315(PR-body footer eaten with its rule line) and:321–:323(create-side appends a footer only when the sent tail is not already that block) are two
readings of the same write path that a reader must reconcile by hand; both are hedged by
:316/:328(「⛔ 不由任一条推其余,写后必回读」), so this is a legibility observation, not adefect, and it is outside this card. 承接者:无 — no queued card and no in-flight PR touches
the footer block; it would sit unowned if filed.
Premise checks:line were both drawn from an ASCII grep over a Chinese table. That is a PM-sidemeasurement habit, not a repo defect, and it has no file to be fixed in. 承接者:无.
Generated by Claude Code