From 0476e0379fc5071187c4ced44d6d1861c9389e7e Mon Sep 17 00:00:00 2001 From: Konrad Heimel Date: Sun, 23 Aug 2026 18:45:19 +0200 Subject: [PATCH 1/8] :white_check_mark: test(ci): share PR-reach and cross-pin the three PR-visible gates (D-157) The three PR-visible text gates each answered "am I reachable on a pull request?" for themselves, and two of them answered it with `grep -qE '^[[:space:]]+pull_request:'`. A reviewer added `paths:` under the trigger and measured rc=0: present, grep-satisfied, and disarmed for every PR that touches only Taskfile.yml or .github/workflows/**. The third gate never asked at all. hack/lib/pr_reach.sh is now the single reader for all three: * assent_pr_reach reds on paths:/paths-ignore:, on a types: list that omits a GitHub default, on a branch filter excluding main, and on a `pull_request:` that is not a 2-space key of `on:`. It accepts the inline `on:` forms, the quoted "on": key, a types: superset and branches: [main], and refuses (fail-closed, distinct code) flow mappings and anchors rather than guessing. * assent_step_wired matches an anchored `run:` COMMAND, adds a job-level `needs:` check, and replaces the 1..6 line cap with the one-`run:`-key/no-`uses:`-key isolation invariant. * Each gate now cross-pins the other two's steps, so deleting any one of the three reds on the PR that does it. aud2's fixed-string step check is replaced by the anchored form: with the `run:` line commented out it reported "WITH ARGUMENTS" instead of "does not invoke". Every branch is mutation-controlled, including the legitimate shapes that must stay GREEN. One fail-open was found by building the mutant: accepting a block-scalar invocation naively let a bare `bash