Skip to content

docs(pm-dispatch): a contract-review PASS completes the landing in the same stroke - #12375

Merged
os-trump merged 1 commit into
mainfrom
claude/issue-12268-contract-review-landing-seam
Aug 26, 2026
Merged

docs(pm-dispatch): a contract-review PASS completes the landing in the same stroke#12375
os-trump merged 1 commit into
mainfrom
claude/issue-12268-contract-review-landing-seam

Conversation

@os-trump

Copy link
Copy Markdown
Collaborator

Fixes#12268

Encodes a ruling already in force into the pm-dispatch protocol text: a contract-review PASS on a non-governed code PR is completed by the review chain in the same stroke, rather than deferred to a lane PM who is usually gone by then.

The seam this closes

contract-review.md ended the chain's duty at label clearing; landing-operations.md §B assigned ready-flip + auto-merge to the lane PM's landing window. On paper the landing had an owner. In practice seats are ephemeral sessions, so a cleared PR sat in "gate cleared, nobody landing" until some seat happened to sweep — the exact state scripts/pm/check-half-states.mjs H12 already carries a detector for. A radar existed for the failure mode while the responsibility split that produced it stayed in place.

The edit — two files, net zero lines

references/contract-review.md (归属 section) — a new bullet after the PASS 双载体同笔清标 sentence. The maintainer ruling is quoted verbatim and untranslated with its date, per the file's own convention (⛔ that file forbids issue-number citations, so provenance is date + quote only):

维护者 2026-08-25,原话:「审核通过你应该直接负责合并吧,还要等原始的项目经理吗」

The bullet states: the landing is closed by the review chain itself — clear both carriers, then the landing-operations preflight (mergeable_state first, closing-keyword scan, true-green job verdict, the non-reversible ready-before-auto-merge order), then ready-flip → auto-merge/enqueue. The lane-PM window and the half-states orphan patrol become backstops. Stated as explicitly unchanged in the same breath: governed surfaces stay draft-only + human/delegated merge and are never enqueued by the chain; FAIL/REWORK paths; and the tier fuse — a below-tier seat cannot clear, therefore cannot land.

references/landing-operations.md (§B) — one sentence: such PRs reach the window already ready + armed; the window's own duties (跟到 MERGED、踢出处置、落地后对账) are unchanged.

How the line ratchet was paid — no ceiling moved

Both files sit at a shrink-only ceiling with zero headroom (48 and 80). scripts/pm/check-skill-line-ratchet.mjs also enforces a 120-byte per-line budget, so lines cannot be widened to buy line count — the addition is paid inside each file.

  • landing-operations.md — pure insertion, zero content lost. Repacking two §B paragraphs (whose wrapping wasted lines) freed exactly the lines the new sentence needed. A whitespace-insensitive character diff against the base shows the new sentence as the only change.

  • contract-review.md — repack plus seven deliberate trims. The same whitespace-insensitive diff confirms these are the only content changes, so the rest of the file is verifiable as re-wrapped, not rewritten:

    #removed / changedwherewhy
    1档位出处the constant name CONTRACT_REVIEW_TIER already carries "tier"
    2的操作出处复审链的操作细则复审链细则, the file's own title
    3那一刻出处same meaning, shorter
    4契约资格执行契约复审并清标执行复审并清标, in a paragraph already about contract review
    5豁免资格放宽豁免的是放宽的是
    6低于契约复审档位的席低于档位的席资格same paragraph, same referent
    7—— 一行结论照样先落卡、后清标资格归属 states the card-first-then-clear order directly

    Nothing was moved out of the file and no ceiling was raised.

⚠️ One typographic consequence worth flagging for review: under the 120-byte budget the 载体纪律 bullet has ~4 bytes of slack across its three lines, so one break now orphans a closing onto the next line. The file's existing convention already breaks mid-word (载体仍是标 / 签)), and the alternative was cutting unrelated protocol prose purely for typography.

Verification

Exit codes captured before any pipe; gates quoted by their own verdict lines. Union re-run at final commit adf6b825.

Derived families for this diff — node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack (7 matched):

  • check:pm-skill-ratchet — exit 0. ✓ … contract-review.md is 48 lines (ceiling 48; headroom 0). · ✓ … landing-operations.md is 80 lines (ceiling 80; headroom 0).
  • check:pm-skill-id-lint — exit 0. ✓ check-skill-id-lint: 22 file(s) clean (pattern /#[0-9]{3,}/g). (no issue numbers added)
  • check:pm-governed-merges — exit 0, 129 self-test assertions.
  • check:skill-frame-sync — exit 0, 42 markdown files scanned.
  • check:doc-authoring — exit 0, 390 files + 48 published skill files clean.
  • check:agent-test-spelling — exit 0.
  • check:doc-formula-expressionsdeclared, not counted. It refuses in a fresh worktree with no node_modules and says so itself: "PREREQUISITE NOT MET … Nothing was measured: this gate exited before running a single check, so this result says NOTHING about what it gates." CI runs it.

Content-fidelity check (the claim the trim table rests on) — both files diffed against their base with all whitespace stripped, so re-wrapping is invisible and only real content changes appear. landing-operations.md: one insert. contract-review.md: the seven trims above plus the new bullet. No control bytes in either file.

Draft on purpose: .claude/** is a governed surface — human merge, ⛔ never queued or armed by its author.

Generated by Claude Code


Generated by Claude Code

…e same stroke
The protocol split the close of a clause-② card between two seats and named no
actor for the last step: contract-review.md ended the chain's duty at label
clearing, while landing-operations.md §B assigned ready-flip + auto-merge to the
lane PM's landing window. Seats are ephemeral, so by the time the chain cleared
the label the dispatching seat was usually gone and the PR sat in "gate cleared,
nobody landing" — the state check-half-states.mjs H12 already had a detector for.
Encodes the ruling that resolved it (maintainer 2026-08-25, quoted verbatim and
untranslated in the file, per that file's date + quote convention):
审核通过你应该直接负责合并吧,还要等原始的项目经理吗
contract-review.md 归属: a new bullet — a PASS on a non-governed code PR is
completed by the review chain itself in the same stroke (landing-operations
preflight, then ready-flip + auto-merge/enqueue); the lane-PM window and the
half-states orphan patrol become backstops. Unchanged and stated as such:
governed surfaces stay draft-only + human/delegated merge and are never enqueued
by the chain; FAIL/REWORK paths; the tier fuse (a below-tier seat cannot clear,
so it cannot land).
landing-operations.md §B: one sentence noting such PRs reach the window already
ready + armed; the window's own duties are unchanged.
Both files sit at a shrink-only line ceiling with zero headroom, so the addition
is paid in full inside the same files — no ceiling moved. landing-operations.md
is a pure insertion paid by repacking two §B paragraphs. contract-review.md is
repacked plus seven deliberate trims (verified whitespace-insensitively to be
the only content changes): 档位 · 的操作 · 那一刻→时 · 契约 · 豁免 · 低于契约复审档位→
低于档位 · and the clause 「一行结论照样先落卡、后清标」, which 归属 already states.
Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01H9StxQgG2DPA26XzZZqnJB
@github-actionsgithub-actionsBot added size/s documentation Improvements or additions to documentation labels Aug 25, 2026
@os-trumpos-trump added skip-changeset PR has no user-facing published change; bypasses the changeset gate and removed documentation Improvements or additions to documentation labels Aug 25, 2026 — with Claude
@os-trump
os-trump marked this pull request as ready for review August 25, 2026 23:43
@os-trump
os-trump added this pull request to the merge queueAug 25, 2026
Merged via the queue into main with commit ca7c442Aug 26, 2026
32 checks passed
@os-trump
os-trump deleted the claude/issue-12268-contract-review-landing-seam branch August 26, 2026 00:01
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/sskip-changesetPR has no user-facing published change; bypasses the changeset gate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

pm-dispatch protocol: a contract-review PASS must complete the landing in the same stroke — close the clear→land seam

2 participants

@os-trump@claude