fix(ci): eradicate validate-eclexiaiser.py (Python ban — total)#117
Merged
Conversation
…ceptions) `.github/scripts/validate-eclexiaiser.py` was the residual baseline-rot surfaced by boj-server#114 after the ReScript exemptions removed the fail-fast: the same governance / Language / package anti-pattern step then reached its Python sub-check and flagged it. Per the canonical Hyperpolymath Language Policy (standards), Python is wholly outlawed estate-wide with zero exemptions (the only carve-out historically being SaltStack `_states`/`_modules`/`pillar`, which this file is not). Replaces the validator with a POSIX-shell + awk script that performs the same three checks: 1. `[project]` section has a non-empty `name` 2. At least one `[[functions]]` table is declared 3. Each function table has a non-empty `name` and `source` The new script (`validate-eclexiaiser.sh`) has no TOML-parser dependency and runs on any POSIX shell. Updated `dogfood-gate.yml` to invoke it. ## Test plan - Local: happy path (current `eclexiaiser.toml`) returns 0 with `Valid: boj-server (1 function(s))`. - Local: each of the 3 failure modes returns exit 1 with the corresponding error message (verified). - CI: `Validate eclexiaiser manifest` step (Dogfood Gate) continues to pass. - CI: `governance / Language / package anti-pattern policy` step now passes — no Python files in tree. Refs hyperpolymath/standards#67 (Estate Language Policy). Refs hyperpolymath/standards#89 (this was blocking boj-server#115 allowlist expansion). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
🔍 Hypatia Security ScanFindings: 30 issues detected
View findings[
{
"reason": "Stale AI session file -- delete",
"type": "stale",
"file": "GEMINI.md",
"action": "delete",
"rule_module": "root_hygiene",
"severity": "medium"
},
{
"reason": "Issue in quality.yml",
"type": "missing_workflow",
"file": "quality.yml",
"action": "create",
"rule_module": "workflow_audit",
"severity": "high"
},
{
"reason": "Issue in security-policy.yml",
"type": "missing_workflow",
"file": "security-policy.yml",
"action": "create",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Action hyperpolymath/standards/.github/workflows/governance-reusable.yml@main needs attention",
"type": "unpinned_action",
"file": "governance.yml",
"action": "pin_sha",
"rule_module": "workflow_audit",
"severity": "high"
},
{
"reason": "TypeScript file detected -- banned language",
"type": "banned_language_file",
"file": "/home/runner/work/boj-server/boj-server/cartridges/sanctify-mcp/adapter/mod.ts",
"action": "flag",
"rule_module": "cicd_rules",
"severity": "critical"
},
{
"reason": "TypeScript file detected -- banned language",
"type": "banned_language_file",
"file": "/home/runner/work/boj-server/boj-server/cartridges/academic-workflow-mcp/adapter/mod.ts",
"action": "flag",
"rule_module": "cicd_rules",
"severity": "critical"
},
{
"reason": "TypeScript file detected -- banned language",
"type": "banned_language_file",
"file": "/home/runner/work/boj-server/boj-server/cartridges/fireflag-mcp/adapter/mod.ts",
"action": "flag",
"rule_module": "cicd_rules",
"severity": "critical"
},
{
"reason": "TypeScript file detected -- banned language",
"type": "banned_language_file",
"file": "/home/runner/work/boj-server/boj-server/cartridges/ephapax-mcp/adapter/mod.ts",
"action": "flag",
"rule_module": "cicd_rules",
"severity": "critical"
},
{
"reason": "TypeScript file detected -- banned language",
"type": "banned_language_file",
"file": "/home/runner/work/boj-server/boj-server/cartridges/bofig-mcp/adapter/mod.ts",
"action": "flag",
"rule_module": "cicd_rules",
"severity": "critical"
},
{
"reason": "TypeScript file detected -- banned language",
"type": "banned_language_file",
"file": "/home/runner/work/boj-server/boj-server/cartridges/hesiod-mcp/adapter/mod.ts",
"action": "flag",
"rule_module": "cicd_rules",
"severity": "critical"
}
]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.
Summary
.github/scripts/validate-eclexiaiser.pywas the residual baseline-rot that surfaced after #114 (ReScript exemption) removed the fail-fast — thegovernance / Language / package anti-pattern policystep then reached its Python sub-check and flagged it. This was the blocker on #115.Per the canonical Hyperpolymath Language Policy, Python is wholly outlawed estate-wide with zero exemptions (only carve-out is SaltStack
_states/_modules/pillar, which this file isn't). Replace with a POSIX-shell + awk validator doing the same three checks:[project]section has a non-emptyname[[functions]]table is declarednameandsourceThe new script has no TOML-parser dependency.
Test plan
Refs hyperpolymath/standards#67 (Estate Language Policy).
Refs hyperpolymath/standards#89 (was blocking the #92 allowlist work).
🤖 Generated with Claude Code