Skip to content

docs(pm-skill): write the third platform-readings increment and measure it at +36 against the 358 ceiling - #15265

Merged
os-zhuang merged 4 commits into
mainfrom
claude/issue-15192-platform-readings-third-increment
Sep 4, 2026
Merged

os-zhuang merged 4 commits into
mainfrom
claude/issue-15192-platform-readings-third-increment

Conversation

@claude

@claude claude Bot commented Sep 4, 2026 •

Copy link
Copy Markdown
Contributor

Fixes #15192
Part of #15275

The third increment of the platform-readings.md intake, now landed under its
ruling
. The measurement flight wrote and counted the members and left the ceiling
alone; this patch round takes the ruling and raises it. The gate is green.

Attribution, as prose so it survives an edit: produced by Claude Code, session
https://claude.ai/code/session_019RfFHiRCSs3JXLK4cwcfox.

The ruling this executes

Maintainer, decision batch #34, 2026-09-04, on the recommendation presented for the
sizing card — verbatim and untranslated:

「决裁批 #34 同意」

The director record states what that adopts, item by item:

  • Item 1 = A — "raise the ceiling by the measured +39, 358 → 397". All four
    members land as written. It is an ORDINARY raise under the ratchet's own
    maintainer exit, not a cross-file move.
  • Item 2 = C — the two quota sentences this increment leaves in tension stay
    exactly as the measurement flight wrote them, pending a discriminating read. ⛔
    Neither was edited, here or in the readings file.

Per member, measured rather than estimated

Each member was written in the file's own voice and wrapped by the gate's own
wrapLine imported from the ratchet script — the canonical form, so no line can
be over budget and no break lands on a junction that renders as a space. 120
bytes per line, not columns.

member source placement +lines
attribution footer, scoped per CHANNEL and per ACTION/INPUT the two post-ruling channel readings recorded on the chain head, the second raw-REST observation on the card, the services seat's third observation, and a fourth measured by this flight 读数陷阱, directly after the existing PR-body footer bullet +12
MCP-side rate refusal is a window reading, not a PR signal the post-ruling rate-budget reading recorded on the chain head API 配额, after the 红窗调度 row +6
the CDN cause behind 「本档的缺席不是读数」 the CDN-staleness card's measurement API 配额, at the end of the payload-channel bullet +5
Routine transport: no connector tools in a fired session · self-binding's trade and its orphan-recovery rule · no sources / no model on the create end the Routine transport card, re-checked against this session's tool contract 断粮 section, after the existing timer paragraph +16
total +39

358 + 39 = 397, and the file landed at exactly that. Nothing was shortened to
fit and nothing was padded to reach it.

What the ratchet script changed, and why was did not move

Two edits, both in scripts/pm/check-skill-line-ratchet.mjs:

  1. The ceiling row platform-readings.md 358 → 397, with this ruling
    quoted verbatim beside it and the four members accounted for line by line —
    the same shape the row above uses for the previous raise. The earlier comment
    and its 358 history are kept intact; the new text is an addition. Item 2's
    disposition is recorded there too, so the next author does not "tidy" a
    deliberate tension away.
  2. A second ruledRaises record on the same file's CROSS_FILE_MOVES
    declaration, carrying this ruling as a verbatim quotation and delta: 39.

⛔ was stays 314 — this file's literal pre-move ceiling — and is never
carried forward. That is the whole point of the ruledRaises shape: an ordinary
ruled raise is the maintainer's, so it neither re-opens the move nor pays it
down, and it is subtracted before the move is priced. With both records the
arithmetic is 397 − 314 − (34 + 39) = +10, against the same net source
decrease of 11 the move landed with. The over-claim bar still holds, since the 73
lines of ruled raise are less than the gross 83.

Gate verdicts, all green at 40cb0c59

node scripts/pm/check-skill-line-ratchet.mjs, its own lines:

✓ check-skill-line-ratchet: .claude/skills/pm-dispatch/references/platform-readings.md is 397 lines (ceiling 397; headroom 0).
✓ check-skill-line-ratchet: cross-file move into .claude/skills/pm-dispatch/references/platform-readings.md: +10 (314→397, less 73 lines of ordinary ruled raise) against a net source decrease of 11 (.claude/skills/pm-dispatch/references/lanes/cli.md 35→31, .claude/skills/pm-dispatch/references/lanes/services.md 30→28, .claude/skills/pm-dispatch/references/rest-channel.md 93→88); authorised by #14685 item 5 (comment 5520452691).
✓ check-skill-line-ratchet: declared cross-file moves: 1, total ceilings down 1 line.
✓ check-skill-line-ratchet self-test: 155 cases pass.

Headroom is 0, the same convention every other entry in the map keeps. The
self-test's live-registry case — "every live ruled-raise record quotes its ruling,
dates it, and names a positive line count" — passes over both records.

Verification

node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack --commands,
no paths, re-derived after the final commit: it read the change set from git as the
two paths above and named 28 runnable commands (up from 14 on the
measurement flight, because a scripts/pm/ file is now in the diff). All 28 were
run, and the reconciliation is the gate's own:

✓ dispatch-gates --ran: 28 derived famil(ies) accounted for — 28 run, 0 NOT-MEASURED.

Every exit code was captured by redirect before any pipe; 28 of 28 exited 0.
The derived set at the final commit was diffed against the set actually run and is
identical. Nothing in this round was NOT MEASURED.

check-governed-merges --test on both changed paths returns its GOVERNED
verdict (exit 3), on 1 of the 2:

governed-surface predicate: 1 of 2 path(s) hit the register (5 surfaces, repo-agnostic).
  ⛔  GOVERNED — a human merge is the review record for this PR (#9495 regime).
      One hit governs the whole PR — 「混合 diff 一条命中即整 PR 分叉」; proportion is not a question.
      .claude/** ×1 — the agent instruction tree (skills, agents, hooks, settings)

pnpm lint — the whole repo, not a narrowing this time.
OS_VERIFY_LOCK_SLOT=issue-15192-lint bash scripts/pm/os-verify-lock.sh -c 'pnpm lint'
ran eslint . --no-inline-config over the tree and exited 0. Lock verdict:
command-exit 0 · held the lock 74s (1m14s) · waited 0s — shared-box seconds, as
the lock's own line states. The reinstall after the merge moved pnpm-lock.yaml
went through the same lock (command-exit 0 · held 6s · waited 0s).

The edited script's own test suite is an obligation separate from the derived
families, and it is discharged: --self-test, 155 cases, quoted above. A repo-wide
grep over *.test.* / *.spec.* for skill-line-ratchet returns no dedicated test
file, so nothing else is owed on that leg. Both changed files were also swept
directly for raw control bytes outside check:nul-bytes — no hits. ⛔ No
fingerprint phrase of the decision frame appears in either changed file;
check:skill-frame-sync is green.

origin/main was merged before any of this (8f404a51 and later, including the
ruledRaises shape this round depends on). It touches neither changed path, and
no generated-artifact regeneration was outstanding after the merge.

Merge path

.claude/** is a governed surface. Draft, human merge. Not flipped ready, no
auto-merge, no queue, no reviewers requested, no approval from this seat — the
seat requests both approvers after reviewing this patched head. skip-changeset
applies: nothing is published from any package.

Generated by Claude Code


Generated by Claude Code

…re it against the ceiling

Four members, each written in the file's voice and wrapped by the gate's own
`wrapLine` rather than by hand, so the counts are landing costs and not estimates:
the channel/input-scoped attribution-footer row, the MCP-side rate-refusal reading,
the CDN cause behind the payload channel's absence rule, and the Routine transport
family with its orphan-recovery path.

The ceiling row is deliberately NOT touched: raising it is a maintainer-floor act
and this change exists to give that ruling a measured number to size. The ratchet
is expected RED.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019RfFHiRCSs3JXLK4cwcfox
@claude claude Bot added the skip-changeset PR has no user-facing published change; bypasses the changeset gate label Sep 4, 2026
@github-actions github-actions Bot added size/s documentation Improvements or additions to documentation labels Sep 4, 2026
…ight, into the same row

Opening this PR over a raw REST create measured a combination none of the three
prior observations covered: the create end appended a SECOND session-URL footer
(a leading horizontal rule, exactly +90 bytes, the sent body a strict prefix of
the stored one) rather than the bare form the edit end appends. The row now says
the append shape varies by channel AND by action, and still refuses to state a law.

Re-measured after the change: the member costs 12 lines instead of 9, so the
increment is +39 rather than +36.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019RfFHiRCSs3JXLK4cwcfox
…, as an ordinary ruled raise

The maintainer sized the third increment at the measured +39 (decision batch #34,
item 1 = A). The ceiling row moves 358 to 397 and carries the ruling verbatim
beside it, with the four members and their line counts, the same way the row above
carries the previous one.

The move declaration takes a SECOND `ruledRaises` record rather than a carried-
forward `was`: an ordinary ruled raise is the maintainer's, so it is subtracted
before the move is priced. `was` stays at this file's literal pre-move 314, and the
verdict reads +10 (314 to 397, less 73 lines of ordinary ruled raise) against the
same net source decrease of 11.

Item 2 of the ruling is C: the two quota sentences left in tension stay exactly as
written, pending a discriminating read. Neither is edited.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019RfFHiRCSs3JXLK4cwcfox
@github-actions github-actions Bot added size/m and removed size/s labels Sep 4, 2026
@claude
claude Bot requested review from hotlong and os-zhuang September 4, 2026 12:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation size/m skip-changeset PR has no user-facing published change; bypasses the changeset gate

Projects

None yet

2 participants