diff --git a/AGENTS.md b/AGENTS.md index 3d84d142d..00d301068 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -249,7 +249,9 @@ calling it a regression, and treat CI as authoritative.** Because this is a **gate** workflow whose `failure` conclusion is intentional enforcement (it blocks a bad PR), it is exempt from the Fleet Monitor's high-failure issue tracking via `FLEET_GATE_WORKFLOWS` in `scripts/fleet_report.sh` (#941) — otherwise a guard doing its job produces false-positive trackers. - `holdout-guard.yml` is exempt for the same reason. Add new gate workflows of this class to that list. + `holdout-guard.yml` and `sync-scope-guard.yml` (which fails closed on a sync PR with no declared-paths + manifest or an out-of-scope diff, #1700/#2373) are exempt for the same reason. Add new gate workflows of + this class to that list. - **Exception:** `pr-review-sweep.yml` (stuck-review sweep, #573/#898) is a documented repo-specific workflow with no corresponding org template in `standards/workflows/`. It re-dispatches reviews for PRs that went green after a ci-pending/ci-failing skip, via two triggers: a scheduled cron (the EVENTUAL diff --git a/scripts/fleet_report.sh b/scripts/fleet_report.sh index e9a6be027..64e066770 100755 --- a/scripts/fleet_report.sh +++ b/scripts/fleet_report.sh @@ -13,7 +13,7 @@ # (#941). Matched by workflow file basename. See AGENTS.md "Exception: # test-deletion-guard.yml". Override via env with the full space-separated # gate list for testing; add permanent gates to the default below. -FLEET_GATE_WORKFLOWS="${FLEET_GATE_WORKFLOWS:-test-deletion-guard.yml holdout-guard.yml}" +FLEET_GATE_WORKFLOWS="${FLEET_GATE_WORKFLOWS:-test-deletion-guard.yml holdout-guard.yml sync-scope-guard.yml}" # Dev-Lead status-marker prefix (#1019, story C of #901). Mirrors # ISSUE_MARKER_PREFIX in dev-lead-fix-issue.sh / dev-lead-retry.sh: every diff --git a/tests/fleet_report.bats b/tests/fleet_report.bats index 9fefb184c..34b21f1be 100755 --- a/tests/fleet_report.bats +++ b/tests/fleet_report.bats @@ -314,6 +314,16 @@ _mk_metrics() { rm -f "$m" } +@test "filter_high_failure: sync-scope-guard gate over 10% is excluded (#2373)" { + local m + m="$(_mk_metrics \ + $'1\tcombsmith/.github-private\t.github/workflows/sync-scope-guard.yml\t8\t4\t2\t2\t25.0%\t25\t1380\tDEGRADED\t25')" + run filter_high_failure "$m" + [ "$status" -eq 0 ] + [ "$(echo "$output" | jq 'length')" -eq 0 ] + rm -f "$m" +} + @test "filter_high_failure: non-gate workflow over 10% is still tracked" { local m m="$(_mk_metrics \