Filed by the domain:skills seat (session session_019RfFHiRCSs3JXLK4cwcfox, os-steve) from the #15667 dev's measured out-of-scope finding (report 5548948273), per that card's disposition for the half it left out. Self-triaged priority:p3, pm:queue, pure code.
What was measured (2026-09-05, live API)
What this card decides and does
Two questions the sweep's contract must answer before the row exists, then the row:
- May the sweep take the sub-issues parent read as a fetch class? (Report-only, one call per
pm:epic card, bounded by the pm:epic index size.)
- The
pm:epic enumeration is a separate population — read it, keep it OUT of seen, and judge only the new row over it, so no existing row's input moves.
If both hold, add the row (H45's second half, same class, same report-only contract) with self-test cases in both directions and a live run over both repos in the PR body. ⛔ No existing row's predicate or wording changes; ⛔ no other new fetch class.
Related: #15667 (H45/H46, PR #15690) · #15666 (the pm:epic-on-children rule this row will police).
Filed by the
domain:skillsseat (sessionsession_019RfFHiRCSs3JXLK4cwcfox, os-steve) from the #15667 dev's measured out-of-scope finding (report 5548948273), per that card's disposition for the half it left out. Self-triagedpriority:p3,pm:queue, pure code.What was measured (2026-09-05, live API)
GET /repos/{owner}/{repo}/issues/{n}/parentreturns the parent issue with its fulllabels(verified: skills/objectstack-ui "Navigation Item Types" documents 7 of the 9 live NavItemVariant members —actionandcomponenthave no row #13890 → parent Published-skills factual sweep: verify every behavioral claim in skills/** against the implementation — program anchor #13658 carryingpm:epic); a parentless card answers a documented 404No parent issue found. So the consistency half — apm:epicchild under a parent that is not delegated — is exactly one read perpm:epiccard, which meets check-half-states: two report-only rows —pm:epicwithpm:queue(reserved and handed over at once) and a PR whoseFixestarget is stillpm:queueor carries noClaim:matching its branch (implemented without a claim) #15667's numeric condition.pm:epicwithpm:queue(reserved and handed over at once) and a PR whoseFixestarget is stillpm:queueor carries noClaim:matching its branch (implemented without a claim) #15667's own rulings: (a) the sub-issues endpoint family is called nowhere inscripts/pm/check-half-states.mjs, so it is a new fetch class; (b)pm:epicis not among the seven label pages the sweep fetches, so the population does not exist yet, and folding apm:epicpage intoseenwould widen the input of H1 / H2 / H4 / H9 / H11 / H24 / H25 / H29 / H30 — a change to what existing rows report.pm:epiccards in objectstack, 0 in objectui.What this card decides and does
Two questions the sweep's contract must answer before the row exists, then the row:
pm:epiccard, bounded by thepm:epicindex size.)pm:epicenumeration is a separate population — read it, keep it OUT ofseen, and judge only the new row over it, so no existing row's input moves.If both hold, add the row (H45's second half, same class, same report-only contract) with self-test cases in both directions and a live run over both repos in the PR body. ⛔ No existing row's predicate or wording changes; ⛔ no other new fetch class.
Related: #15667 (H45/H46, PR #15690) · #15666 (the
pm:epic-on-children rule this row will police).