fix(ci): auto-merge-ready-prs.yml has not parsed since 2026-07-07 - #2256
Merged
Conversation
Line 62 sits at column 0 inside a run: | block scalar whose content indent is 10, set by line 32. A non-empty line indented less terminates the scalar, so the parser reads the shell continuation as a top-level YAML node. GitHub reports a run with zero jobs and run_started_at == updated_at. Introduced by 7644b30, which added the L1 gate. Every run since has failed, so this repository has had no working auto-merge for six weeks. The 10 spaces added are exactly the scalar indent and are stripped by YAML: the shell receives byte-identical text. Verified with two independent parsers (PyYAML, Ruby Psych) plus bash -n. No merge condition, trigger, permission or target is changed.
gHashTag
enabled auto-merge (squash)
August 19, 2026 22:22
Contributor
|
📓 NotebookLM Notebook linked to this PR
This notebook contains session context, decisions, and artifacts for this work. |
Contributor
gHashTag
added a commit
that referenced
this pull request
Sep 4, 2026
… instant (#3176) (#3190) tri red now listed `Auto Merge Ready PRs` at 260+ in a row and I put that on the dashboard as a live finding one pass ago. It was settled. Its whole history: 1541 runs, every one a failure, never a success. The cause was not the gate's logic -- the workflow file had not parsed since 2026-07-07, so GitHub could not read its `on:` block and made a failed run on every push. #2256 repaired the parse on 2026-08-20; of the 96 runs after that date, 95 came from one stale branch and 1 from another, and ZERO from master. Dormant since 2026-08-28. The tell was in the data all along: 1541 runs recorded as event=push, from a file whose `on:` block has never in five commits contained push. The command could not have known, and that is the defect: it reports the LATEST run, which is the newest that exists rather than a recent one. Every row now carries the instant of its latest run, from the same single request that already asked for the verdict. Only one of eleven rows was failing NOW; Issue Gate's newest run is five months old. Mutation: dropping created_at from the request turns the structural test red. Also the sweep that produced this. 45 lines read a commit message, branch or PR title; 3 compare against a literal; 1 was a defect. gates.rs reads prose because the GATE reads prose and labels the row PROXY -- not a defect, and it says so. rule_observance's `w699-` prefix matches 0 of 40 merged PRs, but the command already prints that zero and names the clause as enforced by nothing: the rule is dead, not the practice, and resolving it owns to LOOP-RULES.md. Census moved and is re-blessed here. 671 crate tests pass. SKILL.md 532-533. Refs #3176 Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
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.
Supersedes #2246, which went
dirtyondocs/NOW.md. Rebuilt on currentmasterso it lands without a conflict.One under-indented line has stopped this workflow parsing since
7644b30d(2026-07-07). GitHub says it plainly: "This run likely failed because of a workflow file issue" — zero jobs,run_started_at == updated_atto the second, 7+ consecutive failures.Line 62, column 0 inside a
run: |block scalar whose content indent is 10 (set by line 32). A non-empty line indented less terminates the scalar, so the parser reads the shell continuation as a top-level YAML node. YAML spec §8.1.1.Consequence: this repository has had no working auto-merge for six weeks, which is why ready PRs accumulated to 29.
Whitespace only. The 10 spaces added are exactly the scalar's indent and are stripped by YAML — the shell receives byte-identical text.
"".join(orig.split()) == "".join(fixed.split())isTrue, and the characters between$TITLEand$BODYin the parsedrun:string are a bare\n.No merge condition changes: L1 regex, approved-review gate, failing-check gate, NotebookLM exclusion,
--merge --delete-branch, bothdry_runbranches — untouched.Verified with two independent parsers (PyYAML 6.0.3 and Ruby Psych/libyaml — both fail the original at 62:1, both parse the fix), a hand-written schema check, and
bash -non all fourrun:scripts.actionlintwas unavailable, so this is not a GitHub schema check.Not fixed here: 17 branches carry the same bug class elsewhere (a shell
elseunder-indented out of its block at line 78), and 274 branches carry the broken blob, so a merge from one re-introduces it.Not used as the fix: 139 branches including
mainhave a copy that parses, but it is the older pre-hardening version lacking the L1 and approved-review gates. Restoring it would weaken the merge conditions.Closes #2245