ci: retire the dead A2ML validation gate - #90
Conversation
A2ML does not exist — it was retired estate-wide after the ML-community name
clash. The `a2ml-validate` job nevertheless still ran on every PR, and it could
only ever fail: it resolves `hyperpolymath/a2ml-ecosystem/validate-action@main`,
and that repository has been renamed to `hyperpolymath/deed-ecosystem`. The
Actions runner refuses a renamed action repo outright ("Unable to resolve
action ... has been renamed or transferred") even though the API and a browser
both follow the redirect.
So this was a live gate enforcing a dead format through an unresolvable action.
Removed, as one coupled change:
- the `a2ml-validate` job,
- its entry in `dogfood-summary`'s `needs:` list,
- the A2ML row and score block in the compliance scorecard (MAX 6 -> 5),
- `hyperpolymath/a2ml-ecosystem@main` from actions.lock.
The lock entry must go in the SAME commit: GitHub compares lock and YAML by
literal string, so a workflow holding a `uses:` the lock does not record — or a
lock recording one the workflow no longer has — is rejected at startup.
The gate is REMOVED, not silenced: no `continue-on-error`, no `if: false`, no
downgrade of an error to a warning.
Refs: hyperpolymath/standards#1010
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01X3hgXxWm6umMgZkjYyHnnm
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Advanced Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (1)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📜 Recent review details⏰ Context from checks skipped due to timeout. (11)
|
| Layer / File(s) | Summary |
|---|---|
Remove A2ML validation and scorecard entries .github/workflows/dogfood-checks.yml |
The workflow removes the A2ML validation job and its dependency from dogfood-summary. The scorecard removes the A2ML check and row, and lowers MAX from 6 to 5. |
Priority: ⬇️ Low
Estimated code review effort: 2 (Simple) | ~10 minutes
Change: Bug fix
Merge Risk: ⚪ Minimal · up to f3e25
The retired A2ML gate and its scorecard integration have been removed without leaving a checked-in workflow dependency on the deleted action.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
| Check name | Status | Explanation |
|---|---|---|
| Title check | ✅ Passed | The title clearly and concisely describes the removal of the A2ML validation gate, which is the main change. |
| Description check | ✅ Passed | The description explains the purpose, rationale, key changes, scope, and related issue. It omits the template’s Changes, RSR Quality Checklist, Testing, and Screenshots sections, but it provides enoug… |
| Docstring Coverage | ✅ Passed | No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0… |
| Linked Issues check | ✅ Passed | Check skipped because no linked issues were found for this pull request. |
| Out of Scope Changes check | ✅ Passed | Check skipped because no linked issues were found for this pull request. |
✨ Finishing Touches
🛠️ Fix failing CI checks
- Commit to this branch
- Create a new PR
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.
A rabbit checks the scorecard row
The A2ML checks no longer show
The workflow trims its steps with care
One less status to report there
Then hops away through clover green
Comment @coderabbitai help to get the list of available commands.
🔍 Hypatia Security ScanFindings: 310 issues detected
View findings[
{
"reason": "No permissions declaration -- add permissions: read-all",
"type": "missing_permissions",
"file": "main-estate-audit.yml",
"action": "add_permissions",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Job `triage` in label-triage.yml has no `timeout-minutes:` declaration. Default is 6 hours — a stuck codeload fetch or runner hang can burn budget. Add `timeout-minutes: 10` (or proportional).",
"type": "missing_timeout_minutes",
"file": "label-triage.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium",
"recipe_id": "recipe-add-workflow-timeout-minutes",
"job": "triage"
},
{
"reason": "Job `sync` in labels.yml has no `timeout-minutes:` declaration. Default is 6 hours — a stuck codeload fetch or runner hang can burn budget. Add `timeout-minutes: 10` (or proportional).",
"type": "missing_timeout_minutes",
"file": "labels.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium",
"recipe_id": "recipe-add-workflow-timeout-minutes",
"job": "sync"
},
{
"reason": "Job `estate-audit` in main-estate-audit.yml has no `timeout-minutes:` declaration. Default is 6 hours — a stuck codeload fetch or runner hang can burn budget. Add `timeout-minutes: 10` (or proportional).",
"type": "missing_timeout_minutes",
"file": "main-estate-audit.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium",
"recipe_id": "recipe-add-workflow-timeout-minutes",
"job": "estate-audit"
},
{
"reason": "Required file missing (condition: public_repo)",
"type": "missing_requirement",
"file": "SECURITY.md",
"action": "create",
"rule_module": "cicd_rules",
"severity": "high"
},
{
"reason": "Python file detected -- banned language",
"type": "banned_language_file",
"file": "/home/runner/work/proven-servers/proven-servers/bindings/python/proven_servers/siem.py",
"action": "flag",
"rule_module": "cicd_rules",
"severity": "critical"
},
{
"reason": "Python file detected -- banned language",
"type": "banned_language_file",
"file": "/home/runner/work/proven-servers/proven-servers/bindings/python/proven_servers/stun.py",
"action": "flag",
"rule_module": "cicd_rules",
"severity": "critical"
},
{
"reason": "Python file detected -- banned language",
"type": "banned_language_file",
"file": "/home/runner/work/proven-servers/proven-servers/bindings/python/proven_servers/appserver.py",
"action": "flag",
"rule_module": "cicd_rules",
"severity": "critical"
},
{
"reason": "Python file detected -- banned language",
"type": "banned_language_file",
"file": "/home/runner/work/proven-servers/proven-servers/bindings/python/proven_servers/ospf.py",
"action": "flag",
"rule_module": "cicd_rules",
"severity": "critical"
},
{
"reason": "Python file detected -- banned language",
"type": "banned_language_file",
"file": "/home/runner/work/proven-servers/proven-servers/bindings/python/proven_servers/opcua.py",
"action": "flag",
"rule_module": "cicd_rules",
"severity": "critical"
}
]Powered by Hypatia Neurosymbolic CI/CD Intelligence |
|
✅ Coding Agent task started: View task and status The task will inspect the CI failures, validate its fix, and commit the fix to this branch automatically.
⏭️ 1 check(s) skipped — already failing on `main` (not caused by this PR)
|
Retire the dead A2ML validation gate
A2ML does not exist. It was retired estate-wide after the ML-community name clash.
The
a2ml-validatejob nevertheless still ran on every pull request in this repo — andit could only ever fail.
Why it could only ever fail
The job resolves
hyperpolymath/a2ml-ecosystem/validate-action@main, and thatrepository has been renamed to
hyperpolymath/deed-ecosystem. The Actions runnerrefuses a renamed action repo outright:
…even though
gh apiand a browser both follow the redirect. So this was a live gateenforcing a dead format through an unresolvable action.
What this changes
Removed as one coupled change:
a2ml-validatejob;dogfood-summary'sneeds:list (where present);MAX6 → 5);hyperpolymath/a2ml-ecosystem@mainfrom.github/workflows/actions.lock— both thereference under the workflow's own key and the now-orphan
dependencies:record.The lock entry must change in the same commit: GitHub compares the lock against the
YAML by literal string, so a workflow holding a
uses:the lock does not record — or alock recording one the workflow no longer has — is rejected at startup with
jobs=0.This is a removal, not a silencing
No
continue-on-error, noif: false, no downgrade of an error to a warning. The gateis gone because the thing it gated is gone.
Scope note
This PR removes the gate. Residual
*.a2mlmanifest files and the pre-commit hooksthat reference them are tracked separately on the roll-up issue; they are not touched
here.
Refs: hyperpolymath/standards#1010
🤖 Generated with Claude Code
https://claude.ai/code/session_01X3hgXxWm6umMgZkjYyHnnm