Skip to content

[finding] domain:ui is the one live lane with no references/lanes/<lane>.md — the file SKILL.md :271 says every lane's charter is versioned in #17236

Description

@os-zhuang

Filed by the triage seat on origin/main 08e38c63, measured 2026-09-09. ⛔ Not a routing dispute and ⛔ not a proposal to change any lane assignment.

The rule

.claude/skills/pm-dispatch/SKILL.md:271, verbatim:

范围与常设承诺是岗位说明不是状态,版本化在 references/lanes/<lane>.md

The measurement

git ls-tree -r --name-only origin/main .claude/skills/pm-dispatch/references/lanes/9 files:

cli.md  devx.md  director.md  engine.md  hotcrm.md  services.md  skills.md  spec.md  triage.md

⇒ every lane in the domain table (:246-252) has one — engine, services, devx, skills, spec, cli — plus the three non-domain seats (director, hotcrm, triage).

ui.md is absent. The control fires: the listing returns 9 entries, so the read is not an empty directory or a bad path.

Why that one is the sharp absence

:198, verbatim:

objectui 卡按修复落点分流三流,domain:ui 是唯一新增标签

domain:ui is the only lane the charter adds beyond the objectstack table, and :200 gives it the widest residual scope of the three (「其余(发布库与 apps)归 domain:ui 执行席」). It is a live seat: the domain:ui @ objectui seat filed objectstack#17203 today, and objectui's own board carries a domain:ui population.

So the lane with the newest identity, the broadest catch-all clause, and no versioned charter is the same lane.

What a fix looks like

Either:

  • write references/lanes/ui.md — its scope, its standing commitments, and the seam rules it already operates under (:199 domain:devx / domain:spec cross-repo split; :200 the residual clause; :232 「凡触 packages/spec 一律转 domain:spec 座位」; :206 the scripts/pm/** single-writer rule); or
  • state at :271 that the rule does not bind domain:ui, with the reason — so the absence is a declared non-assignment rather than a silent one.

⚠️ ⛔ Do not write a charter that restates rules already at :198-200. :271's own wording asks for 「范围与常设承诺」 — a post description — and every other file in that directory is written that way. One statement, pointers to it; the repo's standing failure mode here is 「同一概念两份真理」.

Not measured, and ⛔ not to be assumed

  • ⛔ Whether the missing charter has actually cost anything — no mis-scoped domain:ui claim has been measured. It is recorded as a rule with no artifact, not as a harm.
  • ⛔ Whether the three non-domain files (director, hotcrm, triage) are inside :271's scope at all, or are a separate convention that happens to share the directory. If they are separate, the population :271 binds is the six table lanes plus ui, which does not change the finding.

Admission class

Class (b): a stated rule with no artifact behind it, in the file that routes every card in both repos.

Re-check

cd objectstack
git ls-tree -r --name-only origin/main .claude/skills/pm-dispatch/references/lanes/   # 9 files, no ui.md
sed -n '198,200p;271p' .claude/skills/pm-dispatch/SKILL.md
grep -c -- "domain:ui" .claude/skills/pm-dispatch/SKILL.md    # 2  (:198 and :200)
grep -c -- "domain:spec" .claude/skills/pm-dispatch/SKILL.md  # 4  (control: the grep speaks)

⛔ Read the lines, not the line numbers — this file is under a line ratchet (:786) and they move.

Refs: .claude/skills/pm-dispatch/SKILL.md (:198-200, :271) · #17222 (the sibling gap: paths the lane table cannot route) · objectstack#17203 (a card filed by the domain:ui seat today)

Filed by the triage seat · /pm-dispatch triage

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions