Skip to content

Unify three-repo triage under the dedicated seat; retire the queue-steward seat - #9148

Merged
os-zhuang merged 1 commit into
mainfrom
claude/issue-9131-unified-triage
Aug 17, 2026
Merged

Unify three-repo triage under the dedicated seat; retire the queue-steward seat#9148
os-zhuang merged 1 commit into
mainfrom
claude/issue-9131-unified-triage

Conversation

@os-zhuang

Copy link
Copy Markdown
Contributor

Fixes #9131
Fixes #9140

Two-card bundle, one file surface. Maintainer rulings (2026-08-16, verbatim, untranslated): 「同意派发(fable,SKILL.md)。」 (unified triage, quoted in full on the anchor card) and 「:正式退役管家 Routine」 (steward retirement, provenance on the member card).

ADR-class: skills-root change — human merge only. Per the Guardrails' skills-update ruling this PR must not be merged, queued, or armed with auto-merge by any AI seat; it stays a visible draft awaiting the maintainer.

Anchor — unified triage

  • 多仓协调 rule 4 rewritten: the dedicated triage seat is now the sole triage/grading/routing/type producer for all three repos (objectstack, objectui, cloud); sister repo:* seats narrow to execution seats — claim/dispatch/review/land in their own repo, trust labels, never mint domain:*/type/grades, report mislabels. The skills-lane finding self-grading exception stays verbatim.
  • 分诊座位职责 extended to three repos: sweep, first-touch grading, release-board production, dedup/shadow checks and the delegated-adjudication channel each run per-repo; auto-adjudication authority is exclusively the unified seat's (the sister-seat ambiguity is dissolved in text). The release-board producer sentence now names the unified seat while keeping the one-producer-per-board invariant.
  • Split trigger pre-registered in rule 4: round length approaching the fire period, or one repo consistently starved by the priority order, means split back by repo — a documented exit, not a redesign.

Member — queue-steward retirement

  • 队列管家职责 section removed; surviving duties reassigned in place:
    • red/kick handling (the four-branch signature triage) now lives in the owning lane PM's landing window (入队与落地). The mechanical input is the merge-queue triage workflow's on-PR comment (.github/workflows/merge-queue-triage.yml — verified present; its header states the comment is the machine-readable signal for the PM loop; details stay authoritative at the workflow head, cited the way the file cites other mechanical guards). The fixed-signature-recurrence blocking sentence survives with the new owner.
    • ledger preservation is stated exactly where the re-enqueue duty points: the signature ledger stays on its anchor issue as lookup data, human-upgradable only.
    • the cross-repo pin-chain window-level backstop moves into the unified triage seat's sweep.
    • every steward reference re-pointed: grep -rn 管家 .claude/ now exits 1 (zero hits). The steward /pm-dispatch steward argument row is removed.
  • Orphan-landing detector: placed as H12 in scripts/pm/check-half-states.mjs (its data model already reads PR state — H7 lists open PRs, H8 merged ones — so the H-family fits; no new script, hence no new guard-index row, but the existing row's one-liner is refreshed to name the PR side). Predicate: an open, non-draft PR (ready = reviewed by construction in this protocol) with auto-merge unarmed and no activity past ORPHAN_LANDING_STALE_HOURS = 6 flags in the patrol output. auto_merge is read only in the finding-reducing direction (the platform notes forbid it as a landing verdict; a stale field here costs a missed report-only flag, never a wrong landing decision); changeset-release/* heads are excluded (the Version Packages PR is the maintainer's by the release guardrail); an unreadable updated_at flags rather than reads as fresh. 12 new self-test cases.

File-surface amendment (named, per the bounded in-place exemption)

The claim declared SKILL.md plus the detector placement. Three line-neutral, one-line re-pointings were also needed in references/platform-readings.md, references/seat-post-protocol.md, and references/landing-operations.md — each carried a literal steward pointer (landing-operations §B's heading is the detail expansion of the very care line this PR re-points), i.e. exactly the dangling-pointer defect class the member card names. Mechanical, no competing in-flight claim on the pm-dispatch root, same gate families (ratchet/id-lint cover references). The amendment is recorded on the anchor issue.

Constraints honored

  • Net negative: SKILL.md 686 → 682 lines; ceiling ratcheted down to 682 in check-skill-line-ratchet.mjs (lowering is the encouraged direction; no ruling needed). References stay at their ceilings, line-neutral.
  • Tier derived, not recallednode scripts/pm/dispatch-gates.mjs --tier output, quoted: "Model tier — MANDATORY: claude-fable-5 (derived from the file surface, not recalled). — clause ① of the model-tiering ruling: a card editing the PM dispatch skill is fable-mandatory, references included". This run executed on claude-fable-5.
  • 中文行文 with machine literals in English; id-lint clean (no issue numbers in operational text); frame-sync anchors untouched (check:skill-frame-sync green, 4 copies isomorphic).

Verification (union re-run at final commit 104280aa0)

All at HEAD 104280aa0: check:pm-skill-ratchet green (682/682); check:pm-skill-id-lint 9 files clean; check-half-states --self-test 140 cases pass (incl. 12 new H12); check-partof-closing-keyword --self-test 28 pass (unbroken import surface); check:skill-frame-sync green; check:skill-frame-freshness green; check:nul-bytes green; check:doc-authoring 376 files clean; check:doc-formula-expressions green (self-test 24 + live). Gate list re-derived from actual changed paths via node scripts/pm/dispatch-gates.mjs — it added check:doc-authoring and check:doc-formula-expressions beyond the prompt's named families; both run green.

Post-merge steps (named, not performed here)

  • objectui/cloud seat posts' 范围 lines updated by their own seats (cross-seat notices).
  • The triage Routine's environment must carry three-repo sources (the retired steward Routine's env is the precedent); any Routines-UI tweak is the maintainer's one click.
  • The objectui 76-card ungraded finding backlog becomes the unified seat's first graded batch (also discharging the pending objectui migration ruling).
  • Steward seat post closed out with a retirement audit note; the steward anchor issue gets a retirement + rollback note (the full Routine prompt remains there — resurrection is a UI re-creation away); the Routine's formal deletion in the Routines UI is the maintainer's click (it is already off).

Generated by Claude Code


Generated by Claude Code

…eward seat

- 多仓协调 rule 4: the dedicated triage seat becomes the sole triage/grading/
  routing/type producer for objectstack, objectui and cloud; sister repo:*
  seats narrow to execution seats (standard execution-seat discipline; the
  skills-lane finding self-grading exception stays). Split trigger
  pre-registered: round length approaching the fire period, or a repo starved
  by the priority order => split by repo.
- 分诊座位职责 now executes across all three repos; auto-adjudication
  authority is exclusively the unified seat's; the cross-repo pin-chain
  window-level backstop moves into the triage sweep.
- 队列管家职责 section removed. Red/kick handling (the four-branch signature
  triage, including the fixed-signature-recurrence block) is reassigned to
  the owning lane PM's landing window, with the merge-queue triage workflow's
  on-PR comment as the mechanical input and the signature ledger — preserved
  on its anchor issue as lookup data, human-upgradable only — as the sole
  authority. Steward references in references/ re-pointed line-neutrally.
- scripts/pm/check-half-states.mjs gains H12, the orphan-landing detector
  (open + ready + auto-merge unarmed + stale => patrol finding), with
  self-tests; the guard-index row is refreshed.
- SKILL.md ratchet ceiling lowered 686 -> 682 (net-negative edit).

Fixes #9131
Fixes #9140

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017TNzEetykdh7ceZGwuAPLq
@os-zhuang os-zhuang added the skip-changeset PR has no user-facing published change; bypasses the changeset gate label Aug 16, 2026 — with Claude
@github-actions github-actions Bot added the documentation Improvements or additions to documentation label Aug 16, 2026
@os-zhuang
os-zhuang marked this pull request as ready for review August 17, 2026 00:19
@os-zhuang
os-zhuang added this pull request to the merge queue Aug 17, 2026
Merged via the queue into main with commit 87fd1ba Aug 17, 2026
24 checks passed
@os-zhuang
os-zhuang deleted the claude/issue-9131-unified-triage branch August 17, 2026 00:27
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/m skip-changeset PR has no user-facing published change; bypasses the changeset gate

Projects

None yet

2 participants