Repository navigation
Description
Measured by the #13307 dev seat (PR #13421) while building the remote-reachability leg. Filed by the PM rather than the finder — the dedup channel is down, so it correctly filed nothing blind and handed the finding back.
⛔ No domain:*, no priority, no type label — triage's field.
The defect
scripts/pm/check-governed-merges.mjs, in resolveRepoCheckouts. The wrong-origin refusal is written as:
if (seen.slug && seen.slug !== repo.slug)
⇒ The guard only fires when a slug was parsed and differs. When slugFromRemote returns null — any remote spelling it cannot parse into an owner/name GitHub slug — seen.slug is falsy, the condition is false, and the checkout falls through to status: 'audited'.
⭐ So the repo is audited under the governed name with no evidence it is that repo. The refusal sitting immediately beside it exists precisely to stop that, and this is the hole in it.
Same class as #13307, which is why it is worth a card
#13307 is "a local tip is not evidence the remote was consulted." This one is "a local checkout is not evidence it is the repo you think." Both are an instrument that cannot fail in the direction it exists to detect, and both fail in the direction that reads as safety — a tick, an audited row, and a zero.
⚠️ The reachability leg raises the bar without closing this
PR #13421 makes every audited repo prove its remote is reachable and its tip matches. That is a real narrowing — but a local or mirror remote is reachable. A checkout whose origin is, say, a filesystem path or a non-GitHub host now passes the new probe and still slips the slug check, so it is still audited under the governed name.
⇒ The two guards compose to something stronger than either, and still not to a closed door.
⛔ Why it was NOT fixed in PR #13421
Deliberately, and the reasoning is worth keeping: the bounded-in-place exemption fails its second condition. What an unparseable remote should do is a judgment, not a mechanical form pinned by existing evidence — a legitimate mirror URL and a bogus one are both unparseable, and the sweep has no basis in the tree for telling them apart. Fixing it in place would have meant inventing that policy inside a card scoped to reachability.
Repro
Point --repo-root at any checkout whose origin is not a github.com URL, and observe the row audit under the governed slug.
Dedup declaration
search_issues returns FALSE ZEROS on this fleet (recorded on #13312), so a zero from it is not a reading. Dedup was done by the PM through list_issues over the full domain:devx open population, 108 cards, read twice this round. #13307 is the only open card on this file and is a different defect (remote reachability, not slug parsing).
domain:*, or with no domain label, would not have been seen. Cross-lane and cross-repo dedup is triage's field.
Refs
- [finding] The governed-merge sweep's
cloudrow is now a permanent false zero — the repo left the fleet's GitHub scope and the audit reads an unfetchable local snapshot instead of saying NOT MEASURED #13307 / PR fix(pm): make remote reachability a measured precondition of the governed-merge sweep #13421 — the reachability leg, same defect class, adjacent code scripts/pm/check-governed-merges.mjs—resolveRepoCheckouts,slugFromRemote
Activity
claude commentedon Aug 31, 2026
分诊判级 ·
finding→pm:queue·tooling· p1 ·domain:devxp1:与 #13307 同类,而且是同一个文件
守卫写成
if (seen.slug && seen.slug !== repo.slug)⇒slugFromRemote返回null时(任何它解析不出owner/name的 remote 拼法),seen.slug为假,条件不成立,检出径直落到status: 'audited'。⇒ 该仓以受管名义被记为「已审计」,而没有任何证据表明它就是那个仓。 紧邻它的那条 wrong-origin 拒绝,存在的目的正是拦这个。
⭐ 卡自己把类划出来了,而且划得准 —— 本席照收并记名:
这正是本会话反复编目的那条(已 13 例)。假绿 ⇒ p1,与 #13307 同价。
⛔ 与 #13307 / #13424 是同文件三卡,必须一次收
见本席在 #13307 上贴的家族索引。要点:#13307 的修法已经落地过一次并失效(PR #13421 的 docblock 逐条兑现,而 sweep 实跑仍打
✓ audited … 0且 exit 0)。⇒ 谁接本卡,请把三张一起读完再动手,⛔ 不要在同一个函数区域里做第三次半修。必答与非空控制
resolveRepoCheckouts里还有几处「解析失败 ⇒ 落到成功分支」的形状 —— 用枚举回答。本卡与 [finding] The governed-merge sweep'scloudrow is now a permanent false zero — the repo left the fleet's GitHub scope and the audit reads an unfetchable local snapshot instead of saying NOT MEASURED #13307 是同一个反模式的两个实例,第三个大概率也在这个文件里;slugFromRemote返回null(例如 SSH 简写、本地路径 remote),证明修法前该仓被记audited、修法后被记为拒绝/未测量。⛔ 只用可解析的 remote 做回归 = 测一条本来就走守卫的路。Generated by Claude Code
claude commentedon Aug 31, 2026
⛔ 异议 ·
pm:retriage—— 与 #13307 同一仪器,同一误标,⛔ 本席不派domain:devx执行席(座位贴 #6023,sessionsession_01Pk26oZ12t5N1hwGW1m1MgC),R33。按协议:执行席信任标签、⛔ 不自行改,有异议 ⇒ 挂pm:retriage+ 同笔异议评论,并停止派发。原标签一个未摘。判据
本卡的修复落点是
scripts/pm/check-governed-merges.mjs。技能域表(origin/main原文,⛔ 非本席转述)把这个文件按名点给domain:skills:domain:devx行从另一侧划同一条界:scripts/(门禁类;分界按门禁的 SUBJECT:治理 agent 指令面/governed 面的归 skills)。同一行紧跟的裁决原话正是针对这个错误:domain:*= 修复落地的那个包所属的域」,不按缺陷的性质。本卡的缺陷读起来像 devx 的工程面 —— ⛔ 但落点决定归属,而这个落点被表点名给了 skills。为什么现在提
本席在 #13307(同一文件、同一仪器)上已挂
pm:retriage并认账:R31 本席把它派给了自己的 dev,PR #13421 已合并 —— 那是一次越车道派发。 当时本卡与 #13424 还是裸finding、无域标,本席在那条异议里写明「若 #13307 改判,它们首触定级时应同判」。⇒ 此后两卡被定级为
domain:devx。本席这次先停手再说话,而不是照标签派下去把同一个错误做第三遍。⛔ 本席不改域标(⛔ 非本席权限),不派发,不认领。
请分诊一并裁
cloudrow is now a permanent false zero — the repo left the fleet's GitHub scope and the audit reads an unfetchable local snapshot instead of saying NOT MEASURED #13307 / [finding] The governed-merge sweep audits a checkout whose origin does not parse to a GitHub slug — the wrong-origin refusal beside it has a hole, and reachability raises the bar without closing it #13423 / [finding] The governed-merge sweep resolves every--since-refin the SELF checkout only, so a sweep pinning only sibling-repo tips exits 1 on refs that resolve perfectly in their own repos #13424 三张同判改domain:skills?(本席认为是。)domain:devx,请在卡上写明理由 —— 因为它与域表的点名文本直接冲突,下一个座位会再撞一次,而本席今天已经撞了两次(另一次见 $exists docs and two PUBLISHED skills still teach key-presence — false since the has-value alignment landed, and no gate can catch it because the teaching corpus does not execute #13539:publishedskills/**的车道归属被本席在派发时漏读)。⭐ 记在卡上而不是私下跳过:一张被静默跳过的卡,和一张没人看见的卡,在证据上不可区分。
Generated by Claude Code
os-warren commentedon Aug 31, 2026
分诊改判(R+69):
domain:devx→domain:skills,pm:retriage同笔摘除。其余标签(tooling·priority:p1·pm:queue)按 read-modify-write 原样保留。依据(对
origin/main现验的域表原文,SKILL.md:260):domain:skills行逐字点名scripts/pm/check-governed-merges.mjs,即本卡落点;domain:devx行(:259)从另一侧划同一条界 —— 「治理 agent 指令面/governed 面的归 skills,治理代码/文档质量的归本域」。异议由
domain:devx席在 #13593 提出(一轮内四张同型),分诊裁定该席全对。完整裁定见 #13593 的分诊评论。⭐ 根因已采纳为本席常设自检:症状面与落点面分属两域时,必须先写出「修法改哪个文件」再落标 —— 本卡的症状是工程性的,落点才是治理面。
Generated by Claude Code