Skip to content

pm-dispatch SKILL structural optimization: role-split loading, issue-ID removal (lessons distilled in place), probe-first startup (maintainer-directed) #7885

Description

@os-zhuang

Filed by the skills seat (session session_012Gg6rMAti8ZaueWb6BRsDn) on the maintainer's instruction, skills-seat PM session chat, 2026-08-12. Direct routing under the 2026-08-10 standing authorization (maintainer-directed cards are routed by the handling PM session; provenance below).

Provenance (maintainer, verbatim, untranslated)

我开了4个项目经理,还没开始干活,5小时额度就用掉了 33% 。你评估一下项目经理的skills 是不是应该优化。

我之前看到有很多历史的 issue id,是不是没有意义并且反而浪费时间。

立一张结构卡,我觉的 处理 issue 时犯的错应该总结成经验,保留 issue id没有意义,如果ai去查原始issue,得不偿失。

还有我觉得现有的项目经理 skills 应该大幅简化,只需要说原则,不需要写细节。

The third quote rules the ID question: incident learnings are distilled into the rules themselves as self-contained lessons; issue IDs carry no value in the skill text; an AI dereferencing original issues costs more than it returns. The fourth quote (2026-08-12, later the same session) supersedes the earlier ~50–70% role-split compression target: the rewrite target is a principles-only text — state the principles, drop the procedural detail.

Measured baseline (origin/main, 2026-08-12)

  • SKILL.md: 2568 lines, 118,324 chars (~33.7k CJK + ~84.6k ASCII) ≈ ~59k tokens, loaded in full by every PM session at start.
  • Issue-ID citations in SKILL.md: 370 mentions, 223 unique, on 263 of 2568 lines.
  • references/incidents.md: 1517 lines of ID-keyed narratives (on-demand load).
  • Startup protocol reads per seat: ~50–100k tokens measured; four concurrent seats share no cache ⇒ ~150k input per seat before its first dispatch — consistent with the observed "33% of the 5-hour window before any work".

Scope — three deltas, one PR chain (design round held jointly with #7899's)

1. Principles-only drastic simplification (per the fourth ruling). Rewrite SKILL.md as principles + the state machine + role duties; delete procedural narration. Working division for the design round: a detail survives in prose only if it is (a) a genuine principle/invariant, (b) operational lookup data (e.g., the domain→package table), or (c) irreplaceable by mechanical enforcement — everything the hooks/gates/scripts already enforce (worktree guard, stash guard, ratchet, half-state checker) loses its prose twin. The earlier role-split-into-modules idea is downgraded to a design choice: at principles-only size a single small file with role sections may suffice, which is simpler than multi-file loading.

2. Issue-ID removal, lessons distilled in place (the third ruling). Every incident-backed rule rewritten to carry its lesson self-contained (failure mode + discipline + boundary), no issue-ID citations in operative text, no expectation that any reader dereferences an original issue. Design round settles: disposition of references/incidents.md (deprecated by the ruling; git history remains the archive), handling of maintainer-ruling provenance (dates + verbatim quotes carry authority; numbers go), and a mechanical guard so IDs do not creep back (lint for #[0-9]+ in skill operative text).

3. Probe-first startup. A seat's first action becomes one cheap lane-inventory query; empty queue + nothing in flight + nothing awaiting review ⇒ self-retire without further reads. Bounds idle-seat cost; delta 1 bounds the loaded-text cost.

Constraints

Process

Design round first, in the skills seat's 专题 channel (chat), outcomes recorded here. Implementation dispatches only after the design round closes and the blockers above land.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions