Skip to content

finding(pm-skills): SKILL.md never defines a 轮 (round) — the hourly self-timer, the shift-end brief and the per-round report read as a stop, so the triage seat clears about a dozen cards per fire instead of running to empty #15412

Description

@claude

Filed by the skills seat (session session_019RfFHiRCSs3JXLK4cwcfox, os-steve) from the maintainer's live PM chat, 2026-09-04 14:5xZ. Self-triaged into this lane: the fix is prose in .claude/skills/pm-dispatch/SKILL.md and its digest, both owned here.

What the maintainer observed (verbatim, untranslated)

分诊席的 skills 是不是也有问题:你的轮次报告什么意思,你每个轮次到底处理哪些任务,明明很多卡片还没处理完你为什么就停了

每个小时都在跑,跑了好几天,积压了这么多卡

The triage seat's own reading, pasted in the same chat: it had cleared 11 cards, written its round report and stopped, with the queue not empty and the usage window not exhausted; two repositories hold 424 cards with no domain:* label (objectstack 43 %, objectui 51 %). It resumed on the maintainer's word.

The rule exists — and it says the opposite of what the seat did

SKILL.md on main a12b15e3, the sweep section: 首触定级每轮必做,跑到清空 — ⛔ 无每轮总量预算,清得动就多清;窗口耗尽未跑完的,下一 fire 从断点续跑;单轮数小时同为可接受形态,⛔ 不是封顶总量的理由. The finding section repeats it: 每 fire 跑到清空, and adds fire 到达时上一轮未清空 ⇒ 接续处理,轮次可跨 fire. Nothing in the corpus authorises stopping at eleven.

Why a careful reader stops anyway — the defect is in the surrounding text, not in that rule

  1. A 轮 is never defined. The word carries four meanings across the file — a fire (one wake-up), the select→claim→dispatch→collect→review→report cycle, a batch (每批 ≤5 张同族卡), and a shift (收班). The sweep rule says 每轮跑到清空; the entry section says 未收班活动任一未满一个轮次 ⇒ 自退; the report section says 每轮向维护者打轮次报告. A reader who takes 轮 = fire concludes that a fire ends with a report.
  2. The self-timer reads as the length of a round. 自排定时默认收班时挂、延时 ≤55 分钟 is a prompt-cache convenience (the rationale is written beside it), but 收班时挂 says the timer is armed at shift end, so every hour becomes a shift end. The timer is the NEXT wake-up, not a budget for this one; the text never says so.
  3. The round report reads as a terminal act. The report section prescribes what the report contains and never says that writing it does not end the work. The handover brief (收班简报) is described as the final stroke of a shift (简报是最终一笔); a seat that conflates the report with the brief stops after the report.
  4. Shift-end and wave-end vocabulary belongs to the executing seat (收工点 = 会话内在飞归零, 收工存档, 立即派下一波) and is written in the shared section. The triage seat has no in-flight PRs to reach zero, so it applies the nearest thing: its own report.
  5. The batch cap reads as a per-round cap. 每批 ≤5 张同族卡 is a quality rule (read five same-family cards in one context), placed one sentence after 跑到清空; a reader keeps the five and drops the run-to-empty.

Net effect measured by the maintainer: an hourly seat that clears about a dozen cards per fire for days, against a backlog that run-to-empty would have drained in two.

The fix (rules only, plain language — the programme's ruling of 2026-09-04)

Add to the digest and to the SKILL.md rewrite, under 入口与角色, two rules with no story attached:

  • 一轮从 fire 醒来开始,到队列清空或用量窗口耗尽为止;轮次报告是轮末给维护者的汇报,⛔ 不是停止信号。
  • 自设定时器只定下一次唤醒,不定本轮长度;新 fire 到达时上一轮未清空的,接续处理,⛔ 不重开、不重排。

And in the SKILL.md rewrite: define 轮 / fire / 批 / 班 once, in one sentence each, and use each word for one thing only; move 收工点 and 收工存档 under the executing seat's section, where they apply.

Disposition

Executed inside #15379: the digest (PR #15402, member 1) takes the two rules now as a patch round, at the same 150-line ceiling (two existing lines merge to pay for them; the dev names which); member 1b (the SKILL.md rewrite) carries the definitions and the vocabulary discipline and closes this card with Fixes. pm:dispatched on the same family flight.


Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

documentationImprovements or additions to documentationdomain:skillspriority:p1High: required for production / M2

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions