feat(rules): extend WF024 chapel + add cron-drift + inherited-debt detectors (auto-fix wiring) - #422
Merged
hyperpolymath merged 3 commits intoJun 2, 2026
Conversation
Extends hypatia#414 with auto_fixable + recipe_id annotations so the
gitbot-fleet auto-remediation pipeline can route Chapel CI failures
through targeted recipes without re-deriving the diagnostic.
- WF024 primary finding now carries
`auto_fixable: true` + `recipe_id: chapel-runs-on-pin-22-04`
- Adds `check_chapel_sharp_edges/1` for the 4 prior Chapel-2.8.0
sharp edges from panic-attack#99:
chapel-manpath-guard (unguarded $MANPATH under set -u)
chapel-chpl-llvm-export (CHPL_LLVM unset)
chapel-replace-chpl-about-with-version
chapel-find-comm-gasnet (brittle printchplenv glob)
- ExUnit coverage at test/rules/workflow_audit_chapel_test.exs
License category remains auto_fixable:false per hypatia#415.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Detects any `.github/workflows/codeql.yml` cron entry that diverges from the canonical `0 6 1 * *` monthly schedule fixed by standards#286. Sub-category drives gitbot-fleet routing: :weekly_to_monthly → standards#288 (weekly→monthly fan-out) :non_canonical_monthly → standards#324 (non-canonical→canonical) All variants auto-fix via shared recipe `codeql-cron-monthly` (rewrite to `0 6 1 * *`). Severity :warn — drift, not breakage. Public classifier `cron_drift_subcategory/1` exposed for downstream gitbot routing logic and ExUnit oracle coverage. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…reshold) Pattern hit 4× during the 2026-06-02 estate sweep: a single broken check on `main` cascades to every open PR in the repo, none of the PR diffs are causal, and the right answer is one root-fix PR on main rather than N retries. Detector groups failed checks by name across the open PRs supplied by the caller and emits a `:warn` finding for any check meeting the threshold (default 3 PRs). Crucially `auto_fixable: false` — the root cause is workflow / dep / baseline-specific and needs owner direction. Recommended action: `file_root_fix_pr_on_main`. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2 tasks
hyperpolymath
added a commit
that referenced
this pull request
Jun 2, 2026
## Summary Reflect recent rule-catalogue PRs in CHANGELOG and STATE.a2ml: - **#414** — scoped MPL-2.0 carve-outs for upstream-derived submodules - **#415** — SC-010 transitive_dep_drift flipped to auto_fixable:false (manual-only) - **#422** — WF024 chapel_runs_on_drift auto-fix + WF025 cron_schedule_drift + BH008 inherited_main_debt ## Files - CHANGELOG.md — Unreleased entries - .machine_readable/6a2/STATE.a2ml — session-history entry ## Test plan - [x] Markdown renders - [x] No license/SPDX content touched Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
🔍 Hypatia Security ScanFindings: 146 issues detected
View findings[
{
"reason": "Action urin 21 JRE\n uses: actions/setup-java@be666c2fcd27 needs attention",
"type": "unpinned_action",
"file": "verify-proofs.yml",
"action": "pin_sha",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in ci.yml",
"type": "missing_timeout_minutes",
"file": "ci.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in ci.yml",
"type": "missing_timeout_minutes",
"file": "ci.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in ci.yml",
"type": "missing_timeout_minutes",
"file": "ci.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in ci.yml",
"type": "missing_timeout_minutes",
"file": "ci.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in ci.yml",
"type": "missing_timeout_minutes",
"file": "ci.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in ci.yml",
"type": "missing_timeout_minutes",
"file": "ci.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in ci.yml",
"type": "missing_timeout_minutes",
"file": "ci.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in ci.yml",
"type": "missing_timeout_minutes",
"file": "ci.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in clusterfuzzlite.yml",
"type": "missing_timeout_minutes",
"file": "clusterfuzzlite.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
}
]Powered by Hypatia Neurosymbolic CI/CD Intelligence |
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.
Continues today's hardening from hypatia#414. Three patterns we hit manually that should be auto-handled next time: Chapel 5 sharp edges, CodeQL cron drift, inherited main-branch debt. License category remains auto_fixable:false per #415.
Commits
99b7970 WF024 chapel auto-fix wiring + 4 sub-pattern recipes
auto_fixable: true+recipe_id: chapel-runs-on-pin-22-04check_chapel_sharp_edges/1emits 4 recipes:chapel-manpath-guard,chapel-chpl-llvm-export,chapel-replace-chpl-about-with-version,chapel-find-comm-gasnet(panic-attack#99)2285685 WF025 CodeQL cron-drift detector
0 6 1 * *per standards#286codeql-cron-monthlydf4f545 BH008 inherited-main-branch-debt detector
:warn,auto_fixable: false)file_root_fix_pr_on_maininstead of N retriesTest plan
test/rules/mix test(local mix env was Elixir 1.14 — couldn't fetch deps); individual files compile clean viaelixirc🤖 Generated with Claude Code