Filed by the domain:spec execution seat (session session_016N6xmWt5hYm94ffVEwGH8x), 2026-09-08T06:42Z. ⛔ Unassigned, no domain:* — routing and grading are the triage seat's.
Surfaced by the #15618 dev (PR #16800), which hit the collision, carried both spellings, and flagged it rather than silently choosing — which is why this is a card and not an undetected drift.
The collision
- The
os-dev agent definition instructs the dev to put its non-filed observations under ## 验收备注 — a Chinese heading.
- The PM skill's language invariant: 「GitHub 上一切新内容用英文;中文只留四通道」 — everything new on GitHub is English, with exactly four Chinese channels: the round report, ruling quotations inside a dispatch order, the four-facet decision analysis, and
## 维护者速读.
## 验收备注 is not one of the four. So a dev following its own agent definition emits a heading the language rule does not admit, and a dev following the language rule ignores an explicit instruction in its definition. Neither is wrong; they cannot both be satisfied.
Why it is worth a card rather than a local fix
⛔ The conflict rule is explicit that this is not settled in passing: 「两条细则冲突 ⇒ 按更严的一条行动并立卡;⛔ 不当场改文本了结」 — act on the stricter rule and file a card; do not edit the text on the spot to make the problem go away.
The seat has therefore acted on the stricter reading (English, since the heading is outside the four channels) for this wave, and files this so the text gets fixed once, in one place, rather than each dev resolving it differently. That divergence is already observable: this shift's dev reports carry the heading as ## 验收备注 alone in some PRs and as ## 验收备注 / Acceptance notes in others.
What is wanted
⛔ No shape proposed — which text moves is the skills lane's call, not this seat's. The two obvious routes:
- Change the
os-dev definition to name an English heading (e.g. ## Acceptance notes), leaving the four-channel rule untouched. Cheapest; consistent with the invariant as written.
- Add the acceptance-notes heading as a fifth Chinese channel, if the intent was always that a dev's observations are read by the same Chinese-reading audience as
## 维护者速读. ⚠️ This widens a deliberately closed list, so it is a decision rather than an edit.
⇒ Route 1 is what the invariant implies. ⛔ Recorded as an observation, not a recommendation carrying authority.
⚠️ Whichever way it goes, the fix must land in both places or it recreates the collision: the os-dev definition and any skill text that quotes the heading.
Duplicate check — method stated
⛔ search_issues was not used: measured this session, it returns total_count: 0 for camelCase identifiers and quoted phrases against this repo's index (RestServerConfig returns 0 while sitting in the title of open card #15543), while a hyphenated slug returns a full result set on the same call sequence. Those zeros are an indexing artifact, not absence.
Done deterministically: the whole domain:skills lane enumerated (26 of 26, totalCount matched, so complete rather than a page), every title and body scanned for 验收备注 / acceptance note / English / 中文 / language / heading. 8 candidates, none is this collision. Positive control: 16 of the 26 mention "skill", so the scan reached the text.
Refs
PR #16800 (#15618) — the dev report that surfaced it, deviation list · the four-channel invariant in .claude/skills/pm-dispatch/SKILL.md → 全体座位的不变量 · the conflict rule in the same file → 优先级
https://claude.ai/code/session_016N6xmWt5hYm94ffVEwGH8x
Filed by the
domain:specexecution seat (sessionsession_016N6xmWt5hYm94ffVEwGH8x), 2026-09-08T06:42Z. ⛔ Unassigned, nodomain:*— routing and grading are the triage seat's.Surfaced by the #15618 dev (PR #16800), which hit the collision, carried both spellings, and flagged it rather than silently choosing — which is why this is a card and not an undetected drift.
The collision
os-devagent definition instructs the dev to put its non-filed observations under## 验收备注— a Chinese heading.## 维护者速读.## 验收备注is not one of the four. So a dev following its own agent definition emits a heading the language rule does not admit, and a dev following the language rule ignores an explicit instruction in its definition. Neither is wrong; they cannot both be satisfied.Why it is worth a card rather than a local fix
⛔ The conflict rule is explicit that this is not settled in passing: 「两条细则冲突 ⇒ 按更严的一条行动并立卡;⛔ 不当场改文本了结」 — act on the stricter rule and file a card; do not edit the text on the spot to make the problem go away.
The seat has therefore acted on the stricter reading (English, since the heading is outside the four channels) for this wave, and files this so the text gets fixed once, in one place, rather than each dev resolving it differently. That divergence is already observable: this shift's dev reports carry the heading as
## 验收备注alone in some PRs and as## 验收备注 / Acceptance notesin others.What is wanted
⛔ No shape proposed — which text moves is the skills lane's call, not this seat's. The two obvious routes:
os-devdefinition to name an English heading (e.g.## Acceptance notes), leaving the four-channel rule untouched. Cheapest; consistent with the invariant as written.## 维护者速读.⇒ Route 1 is what the invariant implies. ⛔ Recorded as an observation, not a recommendation carrying authority.
os-devdefinition and any skill text that quotes the heading.Duplicate check — method stated
⛔
search_issueswas not used: measured this session, it returnstotal_count: 0for camelCase identifiers and quoted phrases against this repo's index (RestServerConfigreturns 0 while sitting in the title of open card #15543), while a hyphenated slug returns a full result set on the same call sequence. Those zeros are an indexing artifact, not absence.Done deterministically: the whole
domain:skillslane enumerated (26 of 26,totalCountmatched, so complete rather than a page), every title and body scanned for验收备注/acceptance note/English/中文/language/heading. 8 candidates, none is this collision. Positive control: 16 of the 26 mention "skill", so the scan reached the text.Refs
PR #16800 (#15618) — the dev report that surfaced it, deviation list · the four-channel invariant in
.claude/skills/pm-dispatch/SKILL.md→ 全体座位的不变量 · the conflict rule in the same file → 优先级https://claude.ai/code/session_016N6xmWt5hYm94ffVEwGH8x