---
name: release-queries-need-repo-flag
description: "BINDING: every release query names --repo BigscreenVR/spt-bs-releases; a bare gh release list from the code worktree returns empty at exit 0, forever"
metadata: 
  node_type: memory
  type: feedback
  originSessionId: ac2494c3-24d6-4d9b-9b66-f7dfefde022b
  modified: 2026-07-30T02:16:08.652Z
---

**Every `gh release` / `releases/*` query must name `--repo BigscreenVR/spt-bs-releases`.** Releases do
not live in the code repo. `repos/BigscreenVR/spt-bs-core/releases/latest` returns **HTTP 404** — that
repo has never had a release — and `gh release list --repo BigscreenVR/spt-bs-core` returns
**empty output at EXIT 0**. A bare `gh release list` run from the spt-core worktree infers `spt-bs-core`
and is therefore silently wrong, unconditionally.

**Why (measured 2026-07-30, during the v0.46.0 publish):** doyle wrote "`gh release list` still empty,
i.e. the draft is built and **PUBLISH HAS NOT HAPPENED**" seven minutes *after* v0.46.0 went public at
02:07:18Z. I reproduced his exact command: empty, exit 0. todlando ran it three ways and established the
404 and the bare-command inference.

**⭐⭐ The reason this outranks a typo — todlando's framing, which is sharper than mine:
the probe returns EMPTY before the publish and EMPTY after it. Same reading either way ⇒ it
discriminates nothing.** It fails [[make-a-new-rig-red-on-purpose]]'s discrimination test outright: what
would the defective version have produced? The same answer. Related but distinct from
[[verdict-from-probe-competence]] — there the filter *could not express* the thing hunted; here the probe
is perfectly competent and merely **aimed at the wrong population, while succeeding**. That is worse,
because a clean exit 0 reads as a measurement of the population you meant.

**⭐ Generalised, and this is the transferable half: an empty result at exit 0 must name the population
it scanned before it counts as an absence.** "No releases listed" is only ever evidence about the repo
you asked. Pairs with [[absence-needs-sibling-probe]] and with chert's sibling finding that a `||`
fallback chain hides which branch produced the answer — **split the fallback when the source is the
claim.** Same defect class, opposite directions: doyle named a conclusion the tool could not support;
chert nearly named a source he had not established.

**How to apply:** in my own release lane, the authoritative state check is
`gh api repos/BigscreenVR/spt-bs-releases/releases/latest` (the endpoint, not the list's "Latest"
badge), corroborated by decoding the published `update-set.json` — never a bare listing. Belongs in
docs/RELEASE-RUNBOOK.md as a pinned note. See [[v0460-published]].
