Skip to content

Densify the pm-dispatch governed corpus at phrase boundaries (whitespace-only) + the ruled funding-ban distinction - #13389

Merged
zhuangjianguo merged 4 commits into
mainfrom
claude/issue-13115-corpus-densification
Aug 30, 2026
Merged

Densify the pm-dispatch governed corpus at phrase boundaries (whitespace-only) + the ruled funding-ban distinction#13389
zhuangjianguo merged 4 commits into
mainfrom
claude/issue-13115-corpus-densification

Conversation

@zhuangjianguo

Copy link
Copy Markdown
Collaborator

Fixes #13115

RULED vehicle (maintainer 2026-08-29, two rulings on the card, verbatim 「同意」): a standalone whitespace-only densification PR — 「独立的 whitespace-only PR 是合法修复载具——它不增行、不加内容、byte 级 diff 仅空白重排,不在 2026-08-17 筹行禁令的辖域内」. Governed face (.claude/**): this PR stays DRAFT for human merge — do not flip ready, do not enqueue, do not arm auto-merge.

What this PR is, mechanically provable

  1. Whitespace-only re-wrap of the pm-dispatch governed corpus (SKILL.md + references) at phrase boundaries within the 120-byte line cap. Proof: for each of the 13 touched files, tr -d "[:space:]" | sha256sum of the file at origin/main and at head 19eb589 is identical for 12 files; SKILL.md differs by exactly one insertion (prefix/suffix scan over the whitespace-stripped streams — single contiguous insertion, rest byte-identical).
  2. The ONE ruled content addition (that single insertion), at the funding-ban row of SKILL.md's 机械守卫索引 table, appended after the intact 2026-08-17 text: 「;筹行(为内容购买行数)⛔ vs 独立密度修复(无内容购买)允许(维护者 2026-08-29 裁)」. The 2026-08-17 ruling text survives byte-for-byte (grep of the full original clause: 1 hit). The row is now 465 bytes — under the 642-byte max-table-row pin that PR chore(pm): tighten pm-dispatch SKILL.md table-row pin to 642 #13360 landed (this branch merged origin/main at ececf7a before gates; the ratchet gate reads pin 642 and is green).
  3. No ratchet pin or ceiling touchedscripts/pm/check-skill-line-ratchet.mjs is not in the diff; the freed headroom is left for the serialized tail on this file (Worktree rescue fired against a LIVE seat — the WIP commit it left asserts "no gate, no ablation, no sweep" in the present tense, and that claim outlives the moment it was true #12637's fences, then pm-dispatch decision framework: add three maintainer-ruled standing rules — pull-directed priority order, startup-stage no-gradualism, release-reminder discipline (2026-08-27) #12668 — both remain open; neither is addressed here).

Line counts (before at origin/main → after; unchanged ceilings)

file before after ceiling (headroom after)
SKILL.md 1005 943 1005 (62)
references/dispatch-runbook.md 278 271 278 (7)
references/decision-analysis.md 46 44 46 (2)
references/true-green.md 34 33
other 9 references files unchanged unchanged

Net −72 lines; no file gains a line (the ruling's 不增行 condition holds per file).

Census (mid-word/mid-phrase breaks), before → after

Metric: CJK-letter|CJK-letter line junctions (a phrase or word split across the break) / near-single-character continuation lines (4 chars or fewer).

file before after
SKILL.md 449 / 71 0 / 0
dispatch-runbook.md 112 / 15 0 / 0
decision-analysis.md 16 / 3 0 / 0
compile-surfaces.md 4 / 0 0 / 0
contract-review.md 16 / 0 13 / 0
landing-operations.md 26 / 0 13 / 0
platform-readings.md 145 / 1 86 / 0
release-aftercare.md 18 / 1 0 / 0
rest-channel.md 20 / 0 9 / 0
review-checklist.md 35 / 0 0 / 0
seat-post-protocol.md 44 / 1 0 / 0
state-machine.md 10 / 0 6 / 0
true-green.md 2 / 0 0 / 0

The three files the ruling names are fully repaired. In the other references files, repairs were applied only up to each file's net-zero line budget: 49 paragraphs remain (127 junctions, right column) whose phrase-safe re-wrap costs +1 line each — those files' ratchet ceilings sit at their current line counts, and the ruled vehicle adds no lines, so completing them waits for the pin-bookkeeping card (kept out of this PR by the dispatch terms).

Per-site acceptance (「git grep 短语 假零变真命中」), readings at head 19eb589

phrase file before after
鲜度门 dispatch-runbook.md 0 1
需要更新项目经理技能 (ruling quote, whitespace only moved) dispatch-runbook.md 0 1
按字面文本 grep decision-analysis.md 0 1
见主文件全体座位的不变量 decision-analysis.md 0 1
创业阶段不扩散 decision-analysis.md 0 1
只作括号补充;「防 decision-analysis.md 0 1
只需要说原则 (ruling quote, whitespace only moved) SKILL.md 0 1

Style safety, measured before choosing join separators: the corpus's own conventions were counted first (ASCII ,;:() glued to CJK — 379/126/63/284 instances vs near-zero spaced; backticks and alnum spaced from CJK; ** glued; em dash spaced) and every rejoin follows the dominant measured style; off-style pattern counts are unchanged or improved after the pass.

Gates (all run at head 19eb589, exit codes captured before any pipe; verdicts quoted from each gate's own output)

  • check:pm-skill-ratchet ✓ — "SKILL.md is 943 lines (ceiling 1005; headroom 62)" · "widest table row is 642 bytes (pin 642; headroom 0)" (that widest row is a pre-existing row; the row this PR edits is 465 bytes) · runbook "271 lines (ceiling 278)" · decision-analysis "44 lines (ceiling 46)"
  • check:pm-governed-prose ✓ — "2 instruction surface(s) name all 5 registered governed surfaces … and claim no others". One iteration was needed: the first re-wrap split the pinned region's end anchor at an ASCII word boundary and the gate went red exactly as designed; the break was re-placed at the preceding phrase boundary (second commit). The gate is untouched.
  • check:skill-frame-sync ✓ — "4 copies of the decision frame are structurally isomorphic across 3 files". The internal-PM frame copy in SKILL.md was re-wrapped; the sync gate is the arbiter and is green. The other three copies are untouched.
  • check:agent-test-spelling ✓ · check:doc-authoring ✓ · check:pm-governed-merges ✓ · check:pm-skill-id-lint ✓ ("23 file(s) clean") · check:required-contexts ✓ (both spellings; derived addition beyond the dispatch list, via review-checklist.md) · check:doc-formula-expressions ✓ (after building @objectstack/formula and @objectstack/lint — its own PREREQUISITE NOT MET refusal named the fix) · check:nul-bytes ✓ ("no raw ASCII control bytes")
  • check-governed-queue-guard: the payload leg is CI-context input (reads GITHUB_EVENT_PATH and refuses without it — NOT MEASURED locally, by the gate's own design); its offline --self-test passes: "113 cases pass". CI runs the real leg.

skip-changeset applies: the diff is entirely .claude/**, published from no package.

Generated by Claude Code


Generated by Claude Code

claude added 3 commits August 30, 2026 07:54
…unding-ban distinction

Whitespace-only re-wrap of mid-word/mid-phrase hard-wraps across SKILL.md and
references/*.md (non-whitespace byte stream per file verified identical), plus
the ONE ruled content sentence at the funding-ban row of the guard index
(maintainer ruling 2026-08-29, quoted on the dispatch card).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EXxTW8mvPBhoHxmyPZ63de
The re-wrap had split the pinned region's end anchor at the ASCII-word
boundary; check:pm-governed-prose is the arbiter and said so. Re-placed the
break at the preceding phrase boundary instead.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EXxTW8mvPBhoHxmyPZ63de
@os-zhuang
os-zhuang marked this pull request as ready for review August 30, 2026 10:37
@zhuangjianguo
zhuangjianguo added this pull request to the merge queue Aug 30, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to a conflict with the base branch Aug 30, 2026
…rpus-densification

# Conflicts:
#	.claude/skills/pm-dispatch/references/platform-readings.md
@zhuangjianguo
zhuangjianguo added this pull request to the merge queue Aug 30, 2026
Merged via the queue into main with commit c38b7ef Aug 30, 2026
25 checks passed
@zhuangjianguo
zhuangjianguo deleted the claude/issue-13115-corpus-densification branch August 30, 2026 13:38
zhuangjianguo pushed a commit that referenced this pull request Aug 30, 2026
…cated fences

Fixes #12637

The stale-claim reclaim step prescribed committing a rescue WIP into any
dispatch worktree with no liveness precondition, and its message template
implied absence claims the rescuer cannot observe. Write the three fences
from the 2026-08-28 grading into the standing step:

1. Liveness precondition: any actor passes a liveness/ownership check or an
   explicit age threshold on the worktree's newest mtime before committing;
   GitHub-side silence alone is never grounds (a working unpushed seat shows
   the identical signals; uncommitted changes evidence work, not death).
2. Message boundary: the WIP message states only rescuer-observables (dirty
   paths, line counts, sha); no present-tense claims about what the seat did
   or did not run. The INCOMPLETE AND UNREVIEWED header stays, scoped to the
   rescuer's own act.
3. Mis-hit remedy: a rescue that hits a live seat is corrected additively by
   that seat in the PR body, never by history rewrite (force-push is
   forbidden from a dev seat).

Funding per the R1 PM disposition (option A, 2026-08-30): the fences land in
the headroom freed by #13389 (943 -> 947 of 1005, net +4 faithful spelling);
the one in-passage deletion is the last-line-of-defense rationale clause,
whose dev-already-dead premise is exactly what fence 1 corrects. No ceiling
change, no re-wrap, no unrelated deletions.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EXxTW8mvPBhoHxmyPZ63de
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/xl skip-changeset PR has no user-facing published change; bypasses the changeset gate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[finding] The governed protocol corpus itself wraps prose mid-phrase — defeating exactly the anchored greps the new Re-check discipline prescribes

3 participants