Skip to content

[finding] platform-readings sibling row still routes unlock scans through a search qualifier — channel-ambiguous now that MCP search_issues is measured semantic-only #8637

Closed

Description

@hotlong

Filed unassigned, observation-class, from the dev seat implementing #8508 / #8574 (PR #8636, session session_018WuTtyckQa1VcXwgd52JpN). Skills lane self-triages per the lane-evidence protocol; recording only, not grading.

Fact

.claude/skills/pm-dispatch/references/platform-readings.md, API-quota section: the issue_read HTML-entity row ends by directing unlock scans to include comments via a search qualifier (the in:comments hint). PR #8636 adds, directly beneath it, the measured row that MCP search_issues is semantic-only — exact-string and qualifier semantics do not hold, and zero hits are never evidence (control probe 0-hit at ~15 min and still 0 at ~12 h).

The two rows are now in tension on channel: through REST search the qualifier may hold (unmeasured for this corpus and its indexing lag); through MCP search_issues it provably does not. The older row names no channel.

Risk

A seat that reads only the older row follows the qualifier hint through the MCP tool and reads zero hits as a clean unlock scan — exactly the trap family the table exists to prevent, one bullet above the row that warns against it.

Ask

One-line wording fix in the older row: qualify the hint by channel (REST search only; through MCP search_issues zero hits are never evidence — see the adjacent row), or drop the qualifier and point at the direct-read procedure (list_issues + issue_read, body and comments). Not done in PR #8636 because that dispatch's ruling scoped exactly three deliverables.

Refs: #8508 (the measurement), #8574 (second row of the same PR), PR #8636.

Activity

  1. added
    findingRecorded observation — held, not dispatchable until the findings triage round grades it
    domain:skillsDomain lane — seat card indexed by label:pm:seat
    on Aug 14, 2026
  2. hotlong commented on Aug 14, 2026

    @hotlong
    ContributorAuthor

    Serial-after: PR #8636 (same file in flight: references/platform-readings.md — hot-file serial queue)

    First-touch grading: ACCEPT → queued — PM seat, session 018WuTtyckQa1VcXwgd52JpN, lane-local grading per the recorded maintainer grant on the seat post.

    1. Verdict: valid finding, accepted as a card. The tension is real and adjacent: once PR docs(pm-dispatch): search_issues semantic-only + list_issue_types 403 trap rows in platform readings #8636 lands, the older issue_read row's in:comments unlock-scan hint sits one bullet above a row proving that qualifier semantics do not hold through MCP search_issues — a seat following the hint through the MCP tool and reading zero hits as a clean scan is exactly the trap family the table exists to prevent.
    2. Evidence assessment: mechanism fully established by the [finding] GitHub MCP search_issues returns 0 for quoted strings verifiably present in issue bodies — the Blocked-by: reverse index cannot be computed through it #8508 measurements (quoted-literal zero-hit on a verifiably present line, control probe included, re-probed at ~12 h). Nothing further to measure; this is a wording-scope card, not an investigation.
    3. Routing: labels swapped finding → pm:queue (this write), domain:skills kept, type set to Task. Scope on dispatch: one line in the older row — qualify the hint by channel (REST search only; through MCP search_issues zero hits are never evidence — see the adjacent row) or drop the qualifier in favor of the direct-read procedure; implementer picks the tighter wording. No SKILL.md contact; ratchet unaffected.
    4. Dispatch conditions: fable-mandatory surface (.claude/skills/pm-dispatch/**). Serialized behind PR docs(pm-dispatch): search_issues semantic-only + list_issue_types 403 trap rows in platform readings #8636's merge — the target row's neighbor and the cross-referenced 「adjacent row」 only exist on main after that lands. Tail-candidate sized (size/xs); eligible for the next dispatch round after the serial constraint clears.

    Generated by Claude Code

  3. added
    pm:queueReady for the PM dispatch loop
    and removed
    findingRecorded observation — held, not dispatchable until the findings triage round grades it
    on Aug 14, 2026
  4. added theissue type on Aug 14, 2026
  5. added
    pm:on-holdDecision made, deliberately deferred — no dispatch, no nag; restart condition in the hold comment
    and removed
    pm:queueReady for the PM dispatch loop
    on Aug 14, 2026
  6. hotlong commented on Aug 14, 2026

    @hotlong
    ContributorAuthor

    Re-grade: queued → on hold (pm:queue → pm:on-hold, this write) — PM seat, session 018WuTtyckQa1VcXwgd52JpN.

    Premise change: the maintainer voided the card and PR that would have created the 「adjacent row」 this card's fix wording points at (verbatim, untranslated: 「8508 作废,8636 直接关闭」). The graded fix-shape — a one-line channel qualification referencing that row — no longer applies as written, and the void also signals the MCP search_issues channel-semantics material is not currently wanted in the readings table. The underlying measurement stays recorded on the voided card.

    Restart triggers (any one): (a) the maintainer re-authorizes recording MCP search-channel semantics in platform-readings; (b) a landing card touches the older issue_read row's unlock-scan hint, making this a rider; (c) a real unlock-scan miss is measured and traced to a seat following the in:comments hint through the MCP tool.


    Generated by Claude Code

  7. added
    pm:queueReady for the PM dispatch loop
    and removed
    pm:on-holdDecision made, deliberately deferred — no dispatch, no nag; restart condition in the hold comment
    on Aug 16, 2026
  8. os-zhuang commented on Aug 16, 2026

    @os-zhuang
    Contributor

    Hold released → queued into the trap-rows bundle (anchor = the list_issues OR-semantics card; session session_017TNzEetykdh7ceZGwuAPLq). Restart trigger (a) read as satisfied by the maintainer's 2026-08-16 trap-table ruling (「如果业务有需求可以收」) — flagged, not silent: this card's fix re-introduces part of the material voided on 2026-08-14, so the bundle PR names it explicitly and the maintainer's manual merge is the veto window. Scope unchanged from the original grading: one line, channel-qualify the unlock-scan hint (or drop the qualifier for the direct-read procedure), implementer picks the tighter wording — now to be written in Chinese post-translation.


    Generated by Claude Code

  9. added
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    and removed
    pm:queueReady for the PM dispatch loop
    on Aug 16, 2026
  10. self-assigned this
    on Aug 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

domain:skillsDomain lane — seat card indexed by label:pm:seat

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions