Uh oh!
There was an error while loading. Please reload this page.
docs(pm-dispatch): whole-text restructuring PR-2 — lane anchor deletion, Routines connector fact, sanitizer-row consolidation - #11393
Draft
claude[bot] wants to merge 1 commit into
Conversation
…on, connector fact, sanitizer consolidation PR-2 of the restructuring round adopted by the maintainer on 2026-08-23 (「接受你的重构提案」). References-only; SKILL.md, os-dev.md, state-machine.md, contract-review.md and dispatch-runbook.md untouched. - lanes x7: delete the patrol-anchor sentence PR-1 hoisted into SKILL.md 执行座位职责. The seven copies were byte-identical to each other and, apart from the list-bullet marker, to the hoisted copy — verified before deleting. - seat-post-protocol.md: replace the "tick the GitHub connector" mechanism words with the measured fact — credentials ride the Routine's attached repo sources, the Routines UI has no GitHub connector entry (2026-08-23). The silent-zero-output trap warning is kept, its mechanism restated: a fresh-session Routine built in-session carries no repo sources, so the fired session gets no GitHub tools. Smoke-test and model-pinning notes untouched. - platform-readings.md: consolidate the three accreted write-side sanitizer rows into one author rule plus one measured-behaviour row per surface (issue body / comment). Every date preserved, every boundary note preserved (the sister-repo probe boundary, the worst-case truncation posture). The only removal is the internal narrative of a superseded reading, per Q2 = A. Tombstones elsewhere in the file are out of scope and untouched. - ratchet: lower all eight touched ceilings to their landed counts (headroom 0), with provenance comments. Lowering only. Part of #11086
This was referenced Aug 23, 2026
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#11086
Final PR of the whole-text restructuring round adopted by the maintainer on
2026-08-23 (「接受你的重构提案」). PR-1 (#11361) is MERGED; this is PR-2, the
"excluded" list from that PR's dispatch. References-only —
SKILL.md,os-dev.md,state-machine.md,contract-review.mdanddispatch-runbook.mdare not touched.
Governed surface (
.claude/**): stays draft, human merge only. No seatflips it ready, enqueues it, or arms auto-merge.
What changed
(a) Seven lane files — delete the sentence PR-1 hoisted. The patrol-anchor
rule was carried verbatim by all seven
references/lanes/*.md. Verified beforedeleting rather than assumed: the seven copies hash to one distinct value,
and against the
SKILL.mdcopy the only difference is the two-byte list-bulletmarker (
-prefix; 211 vs 209 bytes, sentence text byte-identical). The hoistsits at the head of
执行座位职责, which every executing seat reads, so therule keeps a home. Pure deletion, no pointer added.
(b)
seat-post-protocol.md— connector mechanism words replaced by themeasured fact. The first bullet of
座位 Routine 创建细则said the maintainercreates the Routine "and ticks the GitHub connector". Measured 2026-08-23:
credentials ride the Routine's attached repo sources, and the Routines UI has
no GitHub connector entry at all. The bullet now says that, matching the wording
PR-1 already landed in
SKILL.md. The trap warning is kept, with itsmechanism restated: a fresh-session Routine built in-session carries no repo
sources, so the fired session gets no GitHub tools — still a silent zero-output
trap, still not an escape hatch. The smoke-test bullet and the model-pinning
notes are untouched. File stays at 101 lines.
(c)
platform-readings.md— three accreted sanitizer rows consolidated.The write-side deletion row, the markup-declaration row and the comment-
truncation row are now one author rule plus one measured-behaviour row per
surface (issue body / comment). Every date is preserved and every still-load-
bearing boundary note is preserved, including the sister-repo five-shape probe
boundary and the "write side always defends against the worst-case truncation"
posture. Tombstones elsewhere in the file (
已死假说/已推翻的候选机理) areout of scope and untouched — confirmed by diffing: they do not appear in the
diff at all.
(d) Ratchet. All eight touched ceilings lowered to their landed counts,
headroom 0, each with a provenance comment naming the round and the 2026-08-23
ruling. Lowering only.
cli.mdpays two lines because it was carrying themap's last line of headroom.
Provenance proof
Produced programmatically over the nine touched documentation files, comparing
origin/mainagainst the worktree. Full script output is the basis for everynumber below.
Line counts (corpus 506 to 498, net minus 8)
lanes/cli.mdlanes/devx.mdlanes/engine.mdlanes/hotcrm.mdlanes/services.mdlanes/skills.mdlanes/spec.mdseat-post-protocol.mdplatform-readings.mdDates — 27 to 28 occurrences, 13 distinct both sides, set of distinct dates
unchanged. The single delta is
2026-08-23, 4 to 5 occurrences: the added oneis the measurement date carried into the (b) connector fix, which is the one
sanctioned wording change. No date was lost, in any file.
Quotes — 88 to 87 occurrences, 83 to 82 distinct. Exactly one removal, no
additions: the parenthetical naming a superseded reading of whether fenced
blocks survive the write-side sanitizer, deleted under Q2 = A because the
surviving rule states the current truth in the imperative and the measurement
date stays with it. Every other CJK-bracket quote in the corpus is byte-
identical across the change, including the two that name the byte sequences in
words rather than literally.
Nothing else lost. Nineteen load-bearing elements of the three consolidated
rows were probed individually on disk after the splice — each present exactly
once: the "stored bytes deleted, web renders the same" framing; the negative-
lookbehind-plus-character-class shape note; the bare less-than-plus-exclamation
survival; "deletes by tag shape, not by angle bracket"; isolated angle brackets
surviving in inline code; fences not protecting tag-shaped tokens; non-tag-
shaped regexes surviving in fences; the "do not infer comments are exempt"
guard; bare identifiers surviving; write returns 200 with loss visible only on
read-back; read-back not exempting comments; marker-only read-back not counting
as verification; read back the tail; a literal-text marker saving only the
marker; the fuse being ordinary TypeScript generic shapes; the sister-repo
five-shape probe; the worst-case posture; the "first named HTML element" start
point; and the same mechanism truncating the recording card's own body.
PM mechanism assumptions — one held, one falsified
verbatim-equivalent to the hoisted sentence (evidence above).
a two-line bullet (so roughly minus 12 lines across seven files) and the
sanitizer consolidation to net minus 4 to minus 8 lines. Measured: the
lane bullet is one physical line per file (minus 7 total), and the three
sanitizer rows occupy only four physical lines to begin with — very long
ones — so an honest consolidation into the requested three entries nets
minus 1. This is the same line-count-versus-volume gap PR-1 reported: the
bulk sits on few, very long physical lines. No re-wrapping was used to
manufacture a bigger number, and no content was cut to reach one. Corpus net
is minus 8 lines; the value is one rule with one home, not the line count.
Verification
All at final commit
077bf957(= PR head). Union derived withnode scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack, nohand-fed paths — the script took its own change set (10 paths vs merge base
9337cd810, committed 10 / working tree 0 / untracked 0) and matched 12families, all run green under
os-verify-lock.sh. Gate-printed verdict lines,not bare shell status:
check-skill-line-ratchet: ... lanes/cli.md is 35 lines (ceiling 35; headroom 0)and the same headroom-0 line for every other covered file, incl.
platform-readings.md is 133 lines (ceiling 133)andseat-post-protocol.md is 101 lines (ceiling 101); self-test 20 cases passcheck-skill-id-lint: 21 file(s) clean; self-test 14 cases passcheck-skill-frame-sync: 4 copies of the decision frame are structurally isomorphic across 3 files— the pinned four-axis block is untouchedcheck-nul-bytes: OK (scanned 6386 text file(s) ... no raw ASCII control bytes); self-test 75 assertionsdoc authoring guard: 389 files clean;check:doc-formula-expressions: 22 record-scoped formula example(s) ... judged clean(after building the@objectstack/lintdependency closure)check:entry-guard: 138 scripts/ file(s);check:parse-guard: 137 scripts/ file(s);check:pnpm-filter-targets: 120/148 ... resolve;check-cross-package-test-inputs: 104 self-test cases;check-ci-filter-paritycheck-governed-merges --self-test: 129 assertions;--testover this PR'spaths answers GOVERNED (exit 3 is the verdict, not a failure) — three of
four paths hit the register under
.claude/**skip-changeset: this PR publishes nothing (agent instruction tree plus one PMgate script), so no changeset — the label is applied via the additive endpoint
and read back.
No ablation: documentation restructuring has no runtime behaviour to mutate.
The reverse-verification analogue is the byte-level date and quote inventory
above, produced by comparing
origin/mainagainst the worktreeprogrammatically rather than by eye.
Generated by Claude Code