diff --git a/.github/workflows/claude-author-automerge.yml b/.github/workflows/claude-author-automerge.yml index 2d74c4c..af4b01e 100644 --- a/.github/workflows/claude-author-automerge.yml +++ b/.github/workflows/claude-author-automerge.yml @@ -490,6 +490,7 @@ jobs: ^docker-compose.*\.ya?ml$ (^|/)docker/docker-compose.*\.ya?ml$ ^\.github/workflows/.* + ^templates/ci-workflows/.* ^\.github/actions?/.* ^\.github/scripts/.* (^|/)action\.ya?ml$ diff --git a/selftest/risk_patterns_corpus.txt b/selftest/risk_patterns_corpus.txt index c83714e..e908a2e 100644 --- a/selftest/risk_patterns_corpus.txt +++ b/selftest/risk_patterns_corpus.txt @@ -91,6 +91,19 @@ RISKY: .github/workflows/deploy.yml RISKY: .github/workflows/lint.yml RISKY: .github/risk-paths.yml RISKY: .github/CODEOWNERS + +# ── RISKY: fleet CI templates (2026-07-16 gap — dotclaude#157) ───────────── +# The caller templates + fleet automation under templates/ci-workflows/ are the +# SOURCE of every repo's .github/workflows/*.yml. A Claude PR editing them +# self-merged in ~90s (dotclaude#157) because the regex only knew the rendered +# artifact, not its source — inverted blast radius: the rendered copy was gated +# on 45 repos while the template that feeds all 45 was not. dotclaude has no +# pr-classify, so risk-paths.yml can't gate it there; this is the only lever. +# scripts/ matters most: merge-workflow-only-pr.sh drops branch protection. +RISKY: templates/ci-workflows/callers/pr-review.yml +RISKY: templates/ci-workflows/callers/claude-author-automerge.yml +RISKY: templates/ci-workflows/scripts/merge-workflow-only-pr.sh +RISKY: templates/ci-workflows/scripts/rotate-anthropic-key.sh # BB-only: GH workflow doesn't include bitbucket-pipelines pattern (irrelevant to GH repos) RISKY_BB: bitbucket-pipelines.yml @@ -264,3 +277,8 @@ SAFE: .github/actionlint.yml # GitHub only reads dependabot config under .github/ — a root copy is inert SAFE: dependabot.yml SAFE: docs/dependabot-setup.md + +# ── SAFE: templates/ near-misses (the ci-workflows glob must not over-block) ── +SAFE: templates/email/welcome.html +SAFE: templates/ci-workflows-notes.md +SAFE: docs/ci-workflows/overview.md diff --git a/selftest/test_automerge_risk_patterns.sh b/selftest/test_automerge_risk_patterns.sh index 3d3ccc7..316e21c 100755 --- a/selftest/test_automerge_risk_patterns.sh +++ b/selftest/test_automerge_risk_patterns.sh @@ -26,6 +26,7 @@ patterns='^(.*/)?(auth|login|signin|signup|logout|session[s]?|oauth|oauth2|sso|j ^docker-compose.*\.ya?ml$ (^|/)docker/docker-compose.*\.ya?ml$ ^\.github/workflows/.* +^templates/ci-workflows/.* ^\.github/actions?/.* ^\.github/scripts/.* (^|/)action\.ya?ml$