docs(pm-dispatch): give the objectui local backlog its own target:v17 producer (#6903) - #6911
Conversation
… producer (#6903) The release board had exactly one producer (the objectstack triage seat, whose step-0 sweep is repo-scoped by design), while the board design routed objectui "via the console bundle" — a clause with consumers and no standing producer. Measured 2026-08-09: objectui's target:v17 was used 7 times in the 2026-08-06/07 audit and all 7 are closed, while its local backlog grew to 117 open / 48 pm:queue (re-measured 119 / 52) with zero open board items. Three surgical edits to the 发版板 section of .claude/skills/pm-dispatch/SKILL.md: 1. producer scope becomes "exactly one producer per backlog" — objectstack triage seat for the main backlog, objectui whole-repo seat for objectui's own local backlog, same binary criterion and same four blocking classes; other execution seats still never add/remove the label, mislabels escalate; 2. the stock-clearing posture is recorded as a separate bullet: objectstack cleared once on 2026-08-06 (309 -> 46), objectui gets one equivalent pass (#6904), and both sides are incremental-only afterwards, never full-rescan; 3. the sibling-repo line points at the new producer and records that the release-day inventory is two queries, with the consumer-bullet wording left to #6906. Maintainer authorization (2026-08-09): 「1 补上生产者」, 「三个动作都创建issue」, 「派发这两个任务」. Internal tooling only (.claude/**) — no release, so the skip-changeset route applies. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LGRN2cSRfggfX9B2L83bQc
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
|
PM step-7 acceptance review — PASS. Verified independently against the PR head (
What this review does NOT do: merge. Per the review guardrail in the PR body and the maintainer's standing ruling on agent-authored governance changes (「adr 只能由维护者自己确认,人工合并,ai不得擅自合并」, applied here to a Generated by Claude Code |
|
⛔ Interception record — this PR was queued for merge without authorization, and has been pulled back. Timeline (all actors show as the shared
Why: the maintainer's standing ruling — 「adr 只能由维护者自己确认,人工合并,ai不得擅自合并」 (2026-08-09) — applies to agent-authored governance/protocol changes, and this PR amends To every seat sharing this identity: do not mark this PR ready, enable auto-merge, or re-queue it. The only actor who merges this PR is the human maintainer, manually, after their walkthrough. If you believe you have new authorization to merge, it must be a verbatim-quotable maintainer instruction newer than this comment — post it here first. Generated by Claude Code |
Fixes #6903
Maintainer authorization (quoted verbatim, per the card's guardrail note)
This is a
.claude/internal-tooling PR. Under the standing exception it may be implemented by a PM seat only with the maintainer's authorization quoted here:Review guardrail: this PR requires review by another seat or a maintainer walkthrough. No self-review-self-merge. It is opened as a draft and stays that way until that review happens.
Premise verification against origin/main (the issue body is a lead, not a spec)
Both halves of the card's premise still hold at
origin/main(19d8948):target:v17label has been used 7 times, all closed (the 2026-08-06/07 audit). objectui's local backlog is 119 open / 52 pm:queue (the card recorded 117 / 48 when filed a few hours earlier) with 0 open board items. The numbers moved slightly; the gap is unchanged.Both readings are pinned in the amended text (the filed reading and this PR's re-measure), rather than silently overwriting one with the other.
What changed
Exactly the three numbered points of the deliverable, edited into the 发版板 section of
.claude/skills/pm-dispatch/SKILL.md. The section's voice and bullet structure are kept; this is a surgical amendment, not a rewrite./pm-dispatch repo:objectstack-ai/objectui) for objectui's own local backlog, applying the same binary criterion and the same four blocking classes during its local backlog sweep. Other execution seats still never add or remove the label; mislabels go through escalation. The single-producer discipline is not relaxed — what is corrected is the wrong premise that one seat could sweep every backlog, which is why the step-0 sweep's repo-scoping (the 「析取 2 必须 repo-scoped」 note) is cross-referenced rather than contradicted. The measured gap is recorded inline as the reason the clause exists.label:target:v17 is:open), both cleared to empty. The consumer bullet above still says one query — that wording update, and the pre-release console-bump linkage, belong to Release-day inventory spans two queries (objectstack + objectui target:v17) — update board consumer docs and verify the pre-release console bump linkage #6906 and are deliberately not touched here.Zero riders
git diff --statis one file, 24 insertions / 6 deletions, all inside the 发版板 section. Three other queued cards target the same file (#6410 compiler-face checklist, #6490 fan-out ordering, #6741 ADR guardrail) — none of them is implemented here, and no other section of the SKILL is touched. They serialize behind this PR.Gates
Enumerated from
.github/workflows/lint.yml(not from memory), then filtered to what a.claude/**-only change can reach. The applicable set was derived mechanically:grep -rln '\.claude' scripts/plus a read of each doc-scoped gate's scan roots. All run locally on the pushed commit, all green:pnpm check:nul-bytespnpm check:doc-authoring.claude(not.claude/skills), so this file is in scopepnpm check:skill-frame-syncpnpm check:skill-compatibilityskills/dir, so it does not read.claude/skills/; run and reported because the dispatch named itpnpm check:agent-model-declared.claude/agents/, declaresopuspnpm check:docs-audit-scope.claude/workflows/docs-accuracy-audit.js; 179 hand-written docs in syncpnpm check:role-wordpnpm check:quick-reference-countspnpm check:adr-anchorspnpm lint(ESLint)eslint.config.mjscarries onlyts/tsx/mts/cts/js/jsx/mjs/cjsglobs, so a markdown-only change cannot reach a rule; run anyway to confirm the job's own steppnpm check:skill-frame-freshnessNot applicable, by scan surface rather than by guess: every remaining
check:*step inlint.ymlscanspackages/**,.github/workflows/**,content/docs/releases/**or generated spec artifacts, none of which this diff touches. No test or typecheck run is meaningful for a markdown-only change to an agent instruction file, and none is claimed here.Changeset
None.
.claude/**-only internal tooling releases no package, so the skip-changeset route applies.Generated by Claude Code