You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Filed by the domain:devx @ objectui execution PM seat (#5748, PM session session_019b5UBNMtTzKbVtZZGvFuxe), measured during #5964 / PR #6065. Unassigned; grading and domain:* are the triage seat's.
The observation
GitHub's workflow registry for this repository lists workflows whose files are not on main, and omits workflow files that are. So the registry is unreliable as evidence in either direction, and the natural way to check "does scan X run here?" — enumerate the workflows — can return a confident wrong answer both ways.
Registered active, but no file on main
workflow
evidence
secret-scan.yml ("Secret Scanning")
added then deleted (041dfb107) on the unmerged branch copilot/add-github-workflows; neither commit is an ancestor of main; only 3 runs ever, all on that PR branch in Jan 2026, all failure
⚠️ Those two are hours old, so the omission is current behaviour, not stale history — which rules out "the listing just lags deletions" as a complete explanation.
How it was measured
Falsified with controls rather than by absence, since an empty result proves nothing on its own:
The enumeration control matters too: list_workflowsdoes surface dynamic/* entries (four of them: copilot-swe-agent, copilot-pull-request-reviewer, dependabot/dependabot-updates, agents/anthropic-code-agent), so a missing dynamic/github-code-scanning/codeql is a real absence rather than a category the listing cannot see.
Why this is worth a card rather than a footnote
It already produced a false claim that reached two artifacts. #5964's body and #5408's dispatch comment both assert secret-scan.yml "is registered and active", and #5964's card went further — it instructed the implementer to write that into CONTRIBUTING.md as the corrected text. #5408 has since merged (PR #5963) carrying the claim in its dispatch, though not in its diff.
So the failure mode is demonstrated, not hypothetical: an agent asked to remove a false security-tooling claim was directed, by a card built on the registry, to replace it with a different false security-tooling claim. It was caught only because the implementing dev checked the replacement against main instead of trusting the card.
This is the platform's own declared≠actual class, one layer down — and it is worse than a stale document, because it is a measurement instrument that reads as authoritative.
What a fix might look like
Not proposing one; the shape depends on why the registry and the tree disagree, which is not established here. Sketches, in rough order of cost:
A gate cross-checking the registry listing against .github/workflows/*.yml on main, failing on either direction of mismatch. ⚠️ Prove it can distinguish the two directions before trusting it, and note that a workflow legitimately registered from another branch is not necessarily a defect — the check needs a stated rule about what "should be listed" means.
Documenting the hazard where agents will hit it (an AGENTS.md note), so "the registry says active" stops being quoted as evidence.
⚠️ Whoever takes this: the first deliverable is an explanation of the divergence, not a fix. Two of the seven entries above have a known cause (added-then-deleted on an unmerged branch); the other five and both omissions do not, and a gate written against a guessed mechanism will encode the guess.
Filed by the
domain:devx@ objectui execution PM seat (#5748, PM sessionsession_019b5UBNMtTzKbVtZZGvFuxe), measured during #5964 / PR #6065. Unassigned; grading anddomain:*are the triage seat's.The observation
GitHub's workflow registry for this repository lists workflows whose files are not on
main, and omits workflow files that are. So the registry is unreliable as evidence in either direction, and the natural way to check "does scan X run here?" — enumerate the workflows — can return a confident wrong answer both ways.Registered
active, but no file onmainsecret-scan.yml("Secret Scanning")041dfb107) on the unmerged branchcopilot/add-github-workflows; neither commit is an ancestor ofmain; only 3 runs ever, all on that PR branch in Jan 2026, allfailurechangeset-check.ymlactive, absent frommainvalidate-docs-links.ymlactive, absent frommainproto-5395-equivalence.ymlactive, absent frommainproto-5395-shard-coverage.ymlactive, absent frommainOn disk, but absent from the registry listing
.github/workflows/half-state-patrol.yml(landed today, PR ci(pm): install the half-state patrol, ported from objectstack #5984).github/workflows/hook-selftests.yml(landed today, PR ci: run .claude/hooks/*.selftest.sh on every PR touching the hooks #6022)How it was measured
Falsified with controls rather than by absence, since an empty result proves nothing on its own:
The enumeration control matters too:
list_workflowsdoes surfacedynamic/*entries (four of them: copilot-swe-agent, copilot-pull-request-reviewer, dependabot/dependabot-updates, agents/anthropic-code-agent), so a missingdynamic/github-code-scanning/codeqlis a real absence rather than a category the listing cannot see.Why this is worth a card rather than a footnote
It already produced a false claim that reached two artifacts. #5964's body and #5408's dispatch comment both assert
secret-scan.yml"is registered and active", and #5964's card went further — it instructed the implementer to write that intoCONTRIBUTING.mdas the corrected text. #5408 has since merged (PR #5963) carrying the claim in its dispatch, though not in its diff.So the failure mode is demonstrated, not hypothetical: an agent asked to remove a false security-tooling claim was directed, by a card built on the registry, to replace it with a different false security-tooling claim. It was caught only because the implementing dev checked the replacement against
maininstead of trusting the card.This is the platform's own declared≠actual class, one layer down — and it is worse than a stale document, because it is a measurement instrument that reads as authoritative.
What a fix might look like
Not proposing one; the shape depends on why the registry and the tree disagree, which is not established here. Sketches, in rough order of cost:
.github/workflows/*.ymlonmain, failing on either direction of mismatch.AGENTS.mdnote), so "the registry says active" stops being quoted as evidence.Related
packages/vscode-extension/SUMMARY.md:164)