Maintainer ruling — recorded verbatim
In the same 2026-09-18 chat exchange as ruling C on PR #18971 (recorded on objectstack #16045 and the revert card), the maintainer added, verbatim:
「还有应该完善skills,修改代码量超过某个行数(比如5000)就应该人工审核。」
The seat's reading, for the executing dev and the triage seat to check: a pull request whose changed line count exceeds 5,000 lands only by a human merge — the same terminal as governed text (ACCEPT on the card, needs-user-decision on the PR, a final 维护者速读, review requested from GOVERNED_APPROVERS), whatever paths it touches. 「比如」 = the threshold is the maintainer's example; 5,000 is the ruled default and moves by one word from the maintainer. The count is GitHub's additions + deletions on the PR (the number the size labeller and the API report), generated files included — the case that prompted the ruling was 237,706 generated lines landing without human eyes, so an exemption for generated files would exempt exactly it.
What is owed (one PR, skills lane)
- Rule text: one line in
.claude/skills/pm-dispatch/SKILL.md's landing rules (governed; 812 / 812 — fold or pay) and the checklist row in references/landing-operations.md; the human floor already lists 「新增必需门禁」 — this is the maintainer adding one, so the floor is satisfied by the ruling itself.
- A mechanical face: the seat's landing pre-check refuses the ready / auto-merge act for a PR over the threshold and names the terminal instead — the natural home is
scripts/pm/check-governed-merges.mjs --test, which today answers by PATH only; it gains a SIZE predicate fed by the PR's additions + deletions (a --pr N read through the proxy, or the numbers passed in), with the threshold as one declared constant and a self-test pin per side of it. dispatch-gates.mjs prints the same reading at dispatch time so a seat knows before it dispatches that the PR will need a human.
- Coherence: under ruling C the 12 MiB artefact leaves the repository, so the remaining regen families are small (api-surface + json-schema.manifest ≈ 0.2 MiB) and the rule bites only genuinely large PRs; the revert PR itself (238,429 lines) is the first PR the rule governs.
Dedup: no open card names a size threshold for landing (corpus read 2026-09-18: size/xl, line count, human merge — the seat posts and #18469 only). Dedup words: 5000 lines human merge, size threshold landing, check-governed-merges size predicate, additions + deletions.
Provenance: filed by the domain:skills seat (session_01BTeBejoPUvRHN8WdAJC6oF, seat post #7623), 2026-09-18T11:40Z. Labels domain:skills · priority:p1 · pm:queue set by the seat executing the maintainer's ruling; the triage seat may re-grade; ⛔ the direction is not re-adjudicated.
Generated by Claude Code
Maintainer ruling — recorded verbatim
In the same 2026-09-18 chat exchange as ruling C on PR #18971 (recorded on objectstack #16045 and the revert card), the maintainer added, verbatim:
The seat's reading, for the executing dev and the triage seat to check: a pull request whose changed line count exceeds 5,000 lands only by a human merge — the same terminal as governed text (ACCEPT on the card,
needs-user-decisionon the PR, a final 维护者速读, review requested fromGOVERNED_APPROVERS), whatever paths it touches. 「比如」 = the threshold is the maintainer's example; 5,000 is the ruled default and moves by one word from the maintainer. The count is GitHub'sadditions + deletionson the PR (the number the size labeller and the API report), generated files included — the case that prompted the ruling was 237,706 generated lines landing without human eyes, so an exemption for generated files would exempt exactly it.What is owed (one PR, skills lane)
.claude/skills/pm-dispatch/SKILL.md's landing rules (governed; 812 / 812 — fold or pay) and the checklist row inreferences/landing-operations.md; the human floor already lists 「新增必需门禁」 — this is the maintainer adding one, so the floor is satisfied by the ruling itself.scripts/pm/check-governed-merges.mjs --test, which today answers by PATH only; it gains a SIZE predicate fed by the PR'sadditions + deletions(a--pr Nread through the proxy, or the numbers passed in), with the threshold as one declared constant and a self-test pin per side of it.dispatch-gates.mjsprints the same reading at dispatch time so a seat knows before it dispatches that the PR will need a human.Dedup: no open card names a size threshold for landing (corpus read 2026-09-18:
size/xl,line count,human merge— the seat posts and #18469 only). Dedup words:5000 lines human merge,size threshold landing,check-governed-merges size predicate,additions + deletions.Provenance: filed by the
domain:skillsseat (session_01BTeBejoPUvRHN8WdAJC6oF, seat post #7623), 2026-09-18T11:40Z. Labelsdomain:skills·priority:p1·pm:queueset by the seat executing the maintainer's ruling; the triage seat may re-grade; ⛔ the direction is not re-adjudicated.Generated by Claude Code