Skip to content

fix(ci): eradicate validate-eclexiaiser.py (Python ban — total)#117

Merged
hyperpolymath merged 1 commit into
mainfrom
fix/eradicate-validate-eclexiaiser-py
May 20, 2026
Merged

fix(ci): eradicate validate-eclexiaiser.py (Python ban — total)#117
hyperpolymath merged 1 commit into
mainfrom
fix/eradicate-validate-eclexiaiser-py

Conversation

@hyperpolymath
Copy link
Copy Markdown
Owner

Summary

.github/scripts/validate-eclexiaiser.py was the residual baseline-rot that surfaced after #114 (ReScript exemption) removed the fail-fast — the governance / Language / package anti-pattern policy step 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:

  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 has no TOML-parser dependency.

Test plan

  • Local: happy path on current eclexiaiser.toml -> Valid: boj-server (1 function(s)) exit 0
  • Local: 3 failure modes each return exit 1 with the correct error message
  • CI: Validate eclexiaiser manifest step (Dogfood Gate) continues to pass
  • CI: governance / Language / package anti-pattern policy step now passes

Refs hyperpolymath/standards#67 (Estate Language Policy).
Refs hyperpolymath/standards#89 (was blocking the #92 allowlist work).

🤖 Generated with Claude Code

…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>
@github-actions
Copy link
Copy Markdown

🔍 Hypatia Security Scan

Findings: 30 issues detected

Severity Count
🔴 Critical 18
🟠 High 5
🟡 Medium 7

⚠️ Action Required: Critical security issues found!

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

@hyperpolymath hyperpolymath merged commit 5570f82 into main May 20, 2026
19 checks passed
@hyperpolymath hyperpolymath deleted the fix/eradicate-validate-eclexiaiser-py branch May 20, 2026 08:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant