Problem: check-matrix extracts matrix rows from release.yml by regex (target line + adjacent suffix line). A formatting change (quoted target, flow-style list, reordered keys) yields an empty match set; both direction loops terminate over empty sets, so the gate passes vacuously while the workflow and table drift apart.
Suggested fix (advisory, defer): parse the workflow as YAML and compare the typed matrix include list instead of regex-scraping; add a formatting-variant fixture (flow-style) to the failure tests.
Evidence: scripts/release/check-matrix.ts — regexes over readTextFile(workflowPath); empty match sets make the missing/extra loops no-ops.
Source: branch comment-checker-npm @ 23dedfd (PR link backfilled after ship).
Metadata: Severity: P2 / Confidence: 50 / Reviewer(s): maintainability / Finding ID: check-matrix-yaml-regex-parse
Problem: check-matrix extracts matrix rows from release.yml by regex (target line + adjacent suffix line). A formatting change (quoted target, flow-style list, reordered keys) yields an empty match set; both direction loops terminate over empty sets, so the gate passes vacuously while the workflow and table drift apart.
Suggested fix (advisory, defer): parse the workflow as YAML and compare the typed matrix include list instead of regex-scraping; add a formatting-variant fixture (flow-style) to the failure tests.
Evidence:
scripts/release/check-matrix.ts— regexes over readTextFile(workflowPath); empty match sets make the missing/extra loops no-ops.Source: branch
comment-checker-npm@ 23dedfd (PR link backfilled after ship).Metadata: Severity: P2 / Confidence: 50 / Reviewer(s): maintainability / Finding ID: check-matrix-yaml-regex-parse