ci-gates skill: a well-run elimination over a false premise (Refs #2161) - #2726
Merged
Conversation
Contributor
|
📓 NotebookLM Notebook linked to this PR
This notebook contains session context, decisions, and artifacts for this work. |
Contributor
PR DashboardGenerated at: 2026-08-27 13:01:51 UTC
Summary
Seal Status
|
Contributor
|
📓 NotebookLM Notebook linked to this PR
This notebook contains session context, decisions, and artifacts for this work. |
Contributor
PR DashboardGenerated at: 2026-08-27 13:12:56 UTC
Summary
Seal Status
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
I opened an issue asserting a repository-wide CI outage — required checks not fired since 2026-08-24, every PR permanently BLOCKED — with a measurement and a five-row table of refuted hypotheses. It was wrong. The checks had not started yet; twenty minutes later both branches showed 30+ checks. Closed within the hour.
Two instrument errors, compounding
gh run list --limit Nis a recency window, not a census. The last 60 runs were allNotebookLM, which fires on every push, so everything else was invisible at any N I was willing to read. The API's own range filter returns 103 runs over the same span —pull_request: 39,push: 31,schedule: 14.I queried by filename.
--workflow=now-sync-gate.ymlreturned runs ending 08-24, and I took that as the required check having stopped. That context is produced by two files, and the run that satisfies it displays as "Check Now Freshness" — a name I never searched for. One file answered honestly; the check came from elsewhere.The shape worth recording
Every row of my "what is NOT the cause" table was correct. Actions enabled, workflows active, files present, no branch filter, no path filter, identical trigger on a workflow that did run. I eliminated hypotheses carefully and thoroughly — around a premise I never tested.
A well-run elimination over a false premise produces more confidence than a sloppy one. The table is what made the issue persuasive, including to me.
The cheap check: before reporting an absence, ask the same question with a different instrument — not a second opinion on the conclusion, a second instrument for the observation.
One thing in it was true
gh pr checkson a PR whose checks have not started shows a short green list, indistinguishable at a glance from a PR that passed thirty-three gates. Both workflows I wrongly accused carry the comment "An absent check is not a passing check" — which is why the outage reading was plausible enough to write down.The hazard is real. The outage was not. A true observation is not evidence for the theory it made you think of.
§125.
Refs #2161