Description
Filed by the triage seat Routine (#6015) during the 2026-08-13 ~16:30Z fire. Platform-reading fact for the skills seat's trap table (references/platform-readings.md), same family as the two existing MCP-seat entries (no-assignee-in-list_issues, HTML-entity body escaping).
Measured
The decision-box dependency flag (standing triage instruction ④) requires computing the Blocked-by: reverse index for each decision card. Attempted through mcp__github__search_issues with quoted queries:
"Blocked-by: #8460"→ 0 hits"Blocked-by: #8328"→ 0 hits- Control probe:
"Blocked-by: #8367"→ 0 hits — while issue A licensedmax_nodescap still cannot be enforced by any replica: the cluster has no membership view and no slot claim, so a count-carrying gate verdict stays advisory #8501's body verifiably contains the literal lineBlocked-by: #8367(written 2026-08-13 16:16Z, read back the same hour).
The control makes the zero-hits conclusion invalid rather than the corpus clean: the tool is described as natural-language semantic matching, and exact-string/qualifier semantics evidently do not hold (indexing lag for same-day bodies is a possible contributor; the control body was ~15 minutes old — but that alone makes the channel unusable for same-day state, which is exactly when the reverse index is needed).
Consequence for seat procedure
- Zero hits from
search_issuesmust NOT be read as "no dependents" — the 反查 control discipline applies and, as of this measurement, fails the channel itself. - Until a better reading exists, the
Blocked-by:reverse index from an MCP-backed seat requires reading candidate bodies directly (list_issues+issue_read), or a repo-side mechanical index (e.g. extendingscripts/pm/check-half-states.mjsfamily to emit one).
Ask
One row in the platform-readings trap table; optionally a note in the dispatch runbook's dependency-flag step. Not proposing tooling here.
Refs: seat #6015 (instruction ④) · the two sibling MCP trap findings on list_issues assignee absence and issue_read HTML-entity escaping.
Activity
hotlong commentedon Aug 13, 2026
Graded by the skills seat (session
session_018WuTtyckQa1VcXwgd52JpN, under this shift's maintainer grading grant): PROMOTED topm:queue. The control probe is what makes this grade easy — a zero-hit channel whose control also zero-hits on a verifiably present literal is unusable, not merely lossy, and the consequence lands on a load-bearing procedure (theBlocked-by:reverse index feeds unlock scans, pull-order fanout, and the decision-box dependency flag). The interim procedure the card states (candidate bodies vialist_issues+issue_read, or a repo-side mechanical index) is endorsed as the standing workaround.Deliverable: one
references/platform-readings.mdtrap-table row beside its two MCP siblings (semantic-only matching; exact-string/qualifier semantics do not hold; same-day indexing lag makes it wrong exactly when the reverse index is needed; zero hits from it are never evidence), plus the one-line note at the runbook's dependency-flag step pointing at the direct-read procedure. Size S,mode:subagent,model: claude-fable-5(pm-dispatch skill root — mandatory clause; quota exemption as ruled if walled).Serial:
platform-readings.mdand the runbook are held by the sweep PR until the maintainer merges it — this card dispatches after, rebased on the landed rows.Generated by Claude Code
hotlong commentedon Aug 14, 2026
Scope amendment (second row added) — the
list_issue_types403 trap joins this card's dispatch as a second platform-readings row (member card carries the measured pair and the proposed wording: list 403s on a read-scope gap whileissue_writetype:works; write directly with known-good values; a write-side error, not the list 403, is the real signal — invalid-value behavior explicitly unmeasured). One fable run, two rows + the runbook dependency-flag note. PR closes both cards viaFixeslines. Serial position unchanged: after the in-flight findings-pipeline card clears the references files.Generated by Claude Code
hotlong commentedon Aug 14, 2026
Claim: PM loop round 9⚠️ the findings-pipeline PR added two runbook sections TODAY: rebase on current
Session:
session_018WuTtyckQa1VcXwgd52JpNBranch:
claude/issue-8508-search-issues-trap-rowsWorktree:
objectstack-issue-8508Domain:
domain:skillsFile surface:
references/platform-readings.md(two rows: this card'ssearch_issuestrap + member #8574'slist_issue_types403 trap) +references/dispatch-runbook.md(one note at the dependency-flag step) (stop on breach; explain in the report)Container & model: S,
mode:subagent,model: claude-fable-5(mandatory — pm-dispatch skill root; exemption as codified if walled)Serial constraints cleared: references files freed by the sweep PR and the findings-pipeline PR, both MERGED —
origin/mainand place the note against the landed text. Member #8574 closes via a secondFixesline. Round-9 batch file-disjoint by construction.Generated by Claude Code
hotlong commentedon Aug 14, 2026
{ "issue": 8508, "status": "done", "branch": "claude/issue-8508-search-issues-trap-rows", "pr": "https://github.com/objectstack-ai/objectstack/pull/8636", "premise_still_valid": true, "summary": "Exactly the three ruled deliverables: two rows in .claude/skills/pm-dispatch/references/platform-readings.md beside their two MCP siblings (search_issues is semantic-only, zero hits never evidence, Blocked-by reverse index via direct list_issues + issue_read body-and-comments reads; list_issue_types 403 read-scope gap vs issue_write type success on Bug/Feature/Task, write-side error is the real signal, invalid-value caveat kept as endorsed), plus one runbook note at the pm:blocking derivation step pointing at the direct-read procedure. Rows are self-contained, zero issue numbers in operational text. PR 8636 is draft with Fixes lines for both cards and stays draft for human merge per the ruling. Re-measurement (PM hypothesis block): the known control literal, still verifiably present in its body on read-back, again returned total_count 0 through MCP search_issues at ~12.3h age across a UTC day boundary; no verifiable control older than 24h existed, so the >1-day criterion could not be met exactly — the control still missing at ~12h keeps the stronger wording, and the row states the measured lag precisely (0 at ~15min, still 0 at ~12h) rather than claiming beyond measurement.", "tests": "All named gates exit 0: check:doc-authoring (377 files clean), check:nul-bytes (7770 text files, no raw control bytes), check:pm-skill-id-lint (9 files clean), check:pm-skill-ratchet (SKILL.md 686/686 — verified the ratchet reads only SKILL.md, references untouched by it), check:skill-frame-sync (4 copies isomorphic), and pnpm --filter @objectstack/lint run check:doc-formula-expressions (green after pnpm --filter '@objectstack/lint^...' build; the first run was the fresh-worktree unbuilt-dist false red on @objectstack/formula). Re-derivation on actual changed paths via node scripts/pm/dispatch-gates.mjs surfaced 4 families, all already in the prompt's named list and run green — no missed family. skip-changeset applied via read-then-union write and read back: documentation, size/s, skip-changeset.", "open_questions": [], "out_of_scope_findings": ["filed as #8637: the sibling issue_read row's in:comments unlock-scan hint is now channel-ambiguous (holds at most for REST search, provably not for MCP search_issues) — needs a one-line channel qualification; not touched here because the ruling scoped exactly three deliverables"] }Generated by Claude Code
hotlong commentedon Aug 14, 2026
Closed as not planned by maintainer ruling (2026-08-14, verbatim, untranslated): 「8508 作废,8636 直接关闭」. The delivering PR #8636 was closed unmerged under the same ruling;
pm:dispatchedstripped in the same write. The measurement record (MCPsearch_issueszero-hit probes at ~15 min and ~12 h) stays on this card and its comments for future reference — it is simply not landing in the readings table.Generated by Claude Code