Uh oh!
There was an error while loading. Please reload this page.
docs(pm-skill): retire the last three ref-absence dequeue readings - #12988
Merged
Conversation
Three sites still read queue-ref ABSENCE as proof a PR left the queue, outliving the corrected membership reading (refs answer about queue BUILDS, meaningful only when present): - platform-readings, draft-flip dequeue-remedy row: the remedy check now reads the positive probes' not-queued direction plus the non-landing content read; ref absence is corroboration only and never carries the conclusion. The two-way narration is compressed to fund it (net 0). - platform-readings, arming-effect row: the closed enumeration reopens — effect readings are the two probes, the timeline enqueue event and the final landing, with the queue branch counting only when present (net 0). - SKILL.md ACCEPT fork: the already-queued remedy now answers the dequeue with the positive probes, same downgrade of ref absence (net 0). Both files stay at their ceilings (314/314; 1005/1005, row pin 765). Claude-Session: https://claude.ai/code/session_01MnijPVVDakqK2J335JoJtq Co-authored-by: Claude <noreply@anthropic.com>
os-zhuang
approved these changes
Aug 28, 2026
os-litant
marked this pull request as ready for review
August 28, 2026 12:33
os-litant
enabled auto-merge
August 28, 2026 12:33
Uh oh!
There was an error while loading. Please reload this page.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes#12888
Three sites still read queue-ref ABSENCE as proof a PR left the merge queue, outliving the corrected membership reading (queue refs answer about BUILDS, meaningful only when PRESENT — landed this morning with PR #12889). This PR retrofits the three residual sites: dequeue is now verified by the POSITIVE probes, and ref absence is downgraded to corroboration that never carries the conclusion. Net 0 lines on both zero-headroom files. Governed surface (
.claude/**): draft-only, human landing per the ACCEPT fork — do not queue, arm, or flip ready.Per-site before / after
Site 1 —
references/platform-readings.md, draft-flip dequeue-remedy row (5 lines, net 0).Before, the remedy verification was negative: 「验队列 ref 与未落地(拼写见「零成本等价物」),⛔ 不据单读数报补救。」 After: 「出队按下方「队列 ref」条阳性探针答不在队向,加未落地;ref 缺席只作旁证,⛔ 永不承载结论、不据单读数报补救。」 The conclusion now comes from the probes' not-queued direction (the merge-call answering the merge-commits-not-allowed 405; update-branch no longer refusing with the queued-branch text) plus the non-landing content read; absence corroborates only.
Site 2 — same file, arming-effect row (5 lines, net 0).
The closed enumeration 「效果读数只有队列分支、timeline 入队事件、最终落地三种」 reopens as 「效果读数 = 下条探针①②、timeline 入队事件、最终落地,队列分支仅在场时算」 — the two positive probes join as effect readings, and the queue-branch entry survives only as a positive. The stale pointer 「按下条序列以队列分支/timeline 入队事件确认」 becomes 「按下条阳性探针确认」 (the row after it IS the corrected queue-ref rule).
Site 3 —
SKILL.md, governed-surface ACCEPT fork (line-in-place, net 0).「转 draft 与 disable 都做再验队列 ref(转 draft 单独不可靠,两向相反实测住 platform-readings)」 becomes 「转 draft 与 disable 都做,出队以阳性探针答、ref 缺席只旁证不承载结论(探针与两向相反实测住 platform-readings)」. The general rule keeps its single home in platform-readings; SKILL.md carries only the pointer.
Collapse-candidate measurement (per the grading's binding instruction)
The draft-flip row's two-way narration was measured, not assumed: keeping it verbatim plus the probe correction wraps to 6 lines under the ratchet's own canonical wrapper (
wrapLine, 120-byte cap), one over. The meaning-preserving compression below brings the row to 562 bytes = 5 lines. Net 0 achieved; no shortfall.Cut ledger (every cut with its surviving home)
references/platform-readings.md(314/314 before and after):disable_pr_auto_merge已拒绝」 (narration) deduplicated with the remedy parenthetical 「objectui 彼时径直拒绝」 — the fact appeared twice in one row; one copy survives, now carrying the full API name.SKILL.md(1005/1005 before and after; widest-table-row pin 765 untouched):Gate verdicts — union re-run at final commit
29a300f6e(this head)pnpm check:pm-skill-ratchetexit 0 — 「✓ check-skill-line-ratchet: .claude/skills/pm-dispatch/references/platform-readings.md is 314 lines (ceiling 314; headroom 0).」「✓ … SKILL.md is 1005 lines (ceiling 1005; headroom 0).」「✓ … SKILL.md: widest table row is 765 bytes (pin 765; headroom 0).」「✓ … platform-readings.md: widest table row is 0 bytes (pin 0; headroom 0).」pnpm check:pm-skill-id-lintexit 0 — 「✓ check-skill-id-lint: 23 file(s) clean (pattern /#[0-9]{3,}/g).」 (no issue ids in protocol prose)pnpm check:pm-governed-proseexit 0 — 「✓ check-governed-prose: 2 instruction surface(s) name all 5 registered governed surfaces … and claim no others.」pnpm check:skill-frame-syncexit 0 — 「✓ check-skill-frame-sync: 4 copies of the decision frame are structurally isomorphic across 3 files」pnpm check:skill-frame-freshnessexit 0 — 「✓ check-skill-frame-freshness: the decision frame in this tree is current with origin/main (fetched just now).」pnpm check:pm-governed-mergesexit 0 (self-test 206 assertions + live generator certification)pnpm check:agent-test-spellingexit 0 — 「✓ check-agent-test-spelling: 0 violations」pnpm check:doc-authoringexit 0;pnpm --filter @objectstack/lint run check:doc-formula-expressionsexit 0 (first run was PREREQUISITE NOT MET — dependency not built ⇒ not a measurement; measured green after building@objectstack/formulaand@objectstack/lint)node scripts/pm/check-governed-queue-guard.mjs --self-testexit 0; the bare gate exits 1 locally by design (it reads the merge_group event payload, absent outside CI) — locally NOT MEASURED, enforced at queue time.pnpm check:nul-bytesexit 0 — 「check-nul-bytes: OK (scanned 7197 text file(s) …)」Gate union derived mechanically:
node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack(answer taken from this checkout at 2b4178a; the--repoassertion holds). Docs-only.claude/**diff — no changeset;skip-changesetlabel applied at PR-open.Generated by Claude Code
Generated by Claude Code