Skip to content

docs(pm-skill): codify the Class-1 summons self-ruling gate into the delegated-adjudication channel - #13070

Merged
os-zhuang merged 1 commit into
mainfrom
claude/issue-13066-class1-delegated-adjudication
Aug 29, 2026
Merged

docs(pm-skill): codify the Class-1 summons self-ruling gate into the delegated-adjudication channel#13070
os-zhuang merged 1 commit into
mainfrom
claude/issue-13066-class1-delegated-adjudication

Conversation

@os-elon

Copy link
Copy Markdown
Collaborator

Fixes#13066

Ruling

Maintainer, 2026-08-29, live director session, verbatim and untranslated:

把「一类」判据写进代裁通道(skills 席立卡固化)

What lands, line by line

One new bullet — 一类自裁门 — in .claude/skills/pm-dispatch/SKILL.md's 分诊座位职责 section, inside the 高置信决策卡的分诊代裁 list, between 置信门 and 回翻条款 (so the existing 回翻条款 covers self-ruled cards unchanged). Placement follows references/lanes/director.md's own pointer (「代裁通道(分诊席或本席)硬门、置信门与人工地板见主文件「分诊座位职责」,⛔ 不另抄」): the gate lives in the main file only. director.md is untouched — its pointer sentence already points at the channel's gates in the main file as a class, so the new gate is covered without a copy and without a new pointer word.

The bullet carries, in order:

  • the dated ruling, quoted verbatim on one line and kept grep-intact — the nested 「」 defeats the ratchet wrapper's quote-atom protection, so the first line break is hand-placed right after the quote;
  • the three Class-1 criteria: ① an existing maintainer ruling / recorded class rule / written discipline mechanically decides the direction — the seat applies one, never invents one, and the per-card ruling comment must name the applied authority (the standing ruling's date or quote, the class rule, or the discipline's home); ② the failure direction is loud (refusal / diagnostic / red gate, never silent behaviour drift) and one revert recovers it; ③ zero movement of the four manual floors — 安全/权限边界 · 已发布契约语义(含 wire 形与产品面方向)· 产品能力取舍 · 门禁强度 — any touch means live presentation whatever ①② say;
  • the restated hard constraints: the 降档保险丝 (below CONTRACT_REVIEW_TIER the whole channel is skipped and cards wait) and floors-as-exclusions-not-weights;
  • the per-card record: the ruling comment cites this channel plus the criterion-① authority, then the card transitions exactly as a live-ruled card would (录裁 + 转 pm:queue, ⛔ 裁不派 — the seat boundary is untouched);
  • the end-of-summons digest table (card · authority · direction) presented for the maintainer's 追认; an overturned line executes as a fresh ruling comment plus state transition on that card;
  • Class-2 (borderline: a reportable point) and Class-3 (floor) cards stay live-presented under the existing ≤5-per-batch detailed-write-up discipline.

No issue ids enter the skill text (check:pm-skill-id-lint green); the classification evidence stays on the card as the git-history record.

Ratchet arithmetic — net 0, no ceiling raise

SKILL.md sat at its ceiling (1005/1005, headroom 0). The new bullet costs 11 lines, wrapped by the ratchet script's own exported wrapLine. It is paid entirely by lossless re-flow — zero content cut, so the cut ledger is empty and every clause of the three re-flowed blocks survives verbatim:

re-flowed block (all in 分诊座位职责)beforeafterpays
Backlog sweep paragraph19145
人工地板 bullet1064
代裁车道 bullet532

Re-flow verification was scripted, not eyeballed: each block was joined under the renderer's own segment-break semantics (CJK-to-CJK junctions join with nothing; every other junction joins with the space the old line break already rendered as; the Han-plus-ASCII-punct merge form follows the earlier soft-break paydown precedent), re-wrapped with wrapLine, and the whole file asserted normalized-equivalent to the original apart from the one inserted bullet — the applier hard-fails on any divergence. The file stays 1005/1005. Gate's own verdict line:

✓ check-skill-line-ratchet: .claude/skills/pm-dispatch/SKILL.md is 1005 lines (ceiling 1005; headroom 0).

The ceiling-raise authorization recorded on the card was therefore not needed: measured re-flow slack inside the same section covered the cost exactly, so no CEILINGS entry moves in this PR.

Gate evidence — union re-run at final commit 55e030afc

node scripts/pm/dispatch-gates.mjs (no paths — the script derives the changeset from the merge base itself) names 9 local families for this diff. All were run at head 55e030afc, exits captured before any pipe:

  • check:pm-skill-ratchet exit 0 — verdict line quoted above
  • check:pm-skill-id-lint exit 0 — 「23 file(s) clean」
  • check:skill-frame-sync exit 0 — binding sentence present in all 4 copies, 4 axes agree
  • check:skill-frame-freshness exit 0
  • check:pm-governed-prose exit 0 — 2 instruction surfaces name all 5 registered governed surfaces, no over-claim
  • check:agent-test-spelling exit 0
  • check:doc-authoring exit 0
  • check:pm-governed-merges exit 0
  • pnpm --filter @objectstack/lint run check:doc-formula-expressions exit 0 (after building @objectstack/lint and its dependency closure; its first local run refused loudly with its own PREREQUISITE NOT MET text, which is a non-measurement, not a red)
  • check:nul-bytes exit 0 (owed on any edit)

The 9th derived family, scripts/pm/check-governed-queue-guard.mjs, reads only the workflow event payload (GITHUB_EVENT_PATH); locally it refuses with its own could-not-look text — NOT MEASURED here by design, CI runs it with a real payload.

Landing

Governed surface (.claude/**): this PR stays draft for the maintainer's pinned approval per PD #14's landing paths. skip-changeset applies — internal agent instruction text, nothing publishes.

Generated by Claude Code


Generated by Claude Code

…delegated-adjudication channel, net-0 via three re-flows
The director seat may self-rule a decision card during a summons only when
all three criteria hold: an existing ruling/class rule/discipline mechanically
decides the direction (the ruling comment names the applied authority), the
failure direction is loud and one-revert reversible, and none of the four
manual floors moves. Per-card record + end-of-summons digest table for
retroactive confirmation; Class-2/Class-3 stay live-presented. Placement per
references/lanes/director.md's own pointer (single source, no copy there).
Ratchet: paid net-0 — the 11 new lines are funded by lossless wrapLine
re-flow of three blocks in the same section (Backlog sweep -5, manual-floor
bullet -4, delegated-lane bullet -2). SKILL.md stays 1005/1005.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016SG9S6V15MqeAgkehDcTwk
@os-elon
os-elon requested a review from os-zhuangAugust 29, 2026 02:43
@github-actionsgithub-actionsBot added size/s documentation Improvements or additions to documentation labels Aug 29, 2026
@os-elonos-elon added the skip-changeset PR has no user-facing published change; bypasses the changeset gate label Aug 29, 2026 — with Claude
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentationsize/sskip-changesetPR has no user-facing published change; bypasses the changeset gate

Projects

None yet

3 participants

@os-elon@os-zhuang@claude