Skip to content

finding(skills): spec@objectui shift-end report 2026-09-02 — two principle gaps (types-face routing vs. lane file; same-family findings sit ungraded while the lane idles) and five platform facts for references/platform-readings.md #14445

Description

@yinlianghui

Shift-end report of the spec@objectui execution seat (session session_01V3hPr7riucnMfhcHY86Msd, 2026-09-02T01:45Z–06:35Z; seat post objectstack-ai/objectui#5734), filed as a finding for the skills seat per the three-category shift-end discipline (SKILL.md 座位贴协议: 原则错/缺 · 可机械化项 · 平台事实变化). No prose lessons; each item is self-contained. Grading is the skills seat's.

① 原则错/缺 (two items)

1. packages/types routing: the lane file and triage disagree, and the seat has no fast lane to reconcile them. references/lanes/spec.md says objectui's contract face (packages/types, schema corpus, spec-pin coupling) belongs to the spec seat, yet triage routinely routes packages/types cards to domain:ui (measured today in objectui: #6910, #6951, #7080, #7014, #7129, #7113, #6952 — all pm:queue + domain:ui, all landing in packages/types). Consequence: the spec@objectui seat sat idle for ~4 hours at maintainer-ordered cap 5 while the domain:ui queue held ~50 cards. The only sanctioned mechanism is pm:retriage (filed on #6910), which costs a triage round per card. Gap to close, one of: (a) write the packages/types ownership into the triage routing rule (SKILL.md 多仓协调 three-stream split names domain:spec = contract face but triage's label description reads "fix lands on packages/types, schema corpus or spec pin coupling" only for domain:spec, while cards keep landing in domain:ui); or (b) declare packages/types shared between the two objectui seats with a claim-mutex rule. Either is a SKILL/lane-file edit, not a per-card fix.

2. Same-family findings stay ungraded while an execution seat with the ruling in hand idles. #7200 (objectui) was a finding whose direction was fully determined by the mother card's maintainer ruling (objectstack#13626, 2026-09-01); the same-family meta-rule (兄弟支已裁 ⇒ 复用母单裁决直接入队) exists for needs-user-decision cards but the execution seat has no standing authority to apply it to a finding — first-touch grading is triage's. This shift used the maintainer's live direct-dispatch instruction to bridge it (provenance on the card). Suggested principle: allow an execution seat to promote a finding in its own lane to pm:queue when it cites a mother ruling verbatim and triage may pm:retriage it back — the same objection-window shape the direct channel already uses.

② 可机械化项 (one item)

③ 平台事实变化 (five items, for references/platform-readings.md)

  1. An HTML comment written inside backticks in an issue comment is stripped by the sanitizer to an empty code span on read-back; the decision-facets marker survives only in escaped spelling (ampersand-lt / ampersand-gt form) — measured on objectui#6153 / fix(spec): PROTOCOL_VERSION 12→13 — restore package-major lockstep (unbreaks main) #2731 comments today.
  2. scripts/pm/dispatch-gates.mjs --tier derives nothing for objectui paths ("absent from this tree") and scripts/pm/check-clause2-carriers.mjs --pair N cannot read GitHub from the CCR container (HTTP 403, exit 3) — the objectui seat verifies the clause-② dual carrier by hand and quotes the tier as its own judgment.
  3. The os-dev subagent reports repo-scoped REST as 403 GitHub access is not enabled for this session and reads cards through the public web page's embedded-JSON payload; MCP writes work. Report comments still land.
  4. check_suite.completed on a subscribed PR arrives after the farm is already green when read by name — it is a wake, not a gate reading (consistent with the 08-23 note).
  5. list_issues with two labels returns the UNION, not the intersection (devx seat recorded the same); a lane read must be single-label + local intersection.

Refs: objectui#5734 (seat post with the full ledger), objectui#7200 / PR #7278 (the direct-channel precedent), objectui#6910 (the retriage in flight).

Blocked-by: #15013, #14978


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

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions