Skip to content

ci(rust): convert rust-ci.yml to thin wrapper (standards#174)#16

Merged
hyperpolymath merged 1 commit into
mainfrom
chore/rust-ci-reusable-wrapper
May 26, 2026
Merged

ci(rust): convert rust-ci.yml to thin wrapper (standards#174)#16
hyperpolymath merged 1 commit into
mainfrom
chore/rust-ci-reusable-wrapper

Conversation

@hyperpolymath
Copy link
Copy Markdown
Owner

Summary

Replaces the per-repo rust-ci.yml copy with a 5-line wrapper invoking the shared reusable workflow filed in standards#174.

Pinned to that PR's HEAD SHA (4fdf4314b4ab54269adbaff10e30e483b5e86845); will resolve to standards/main once #174 merges.

Why

Estate audit found ~87 rust-ci.yml copies across the estate with significant drift. Converting each to a 5-line wrapper means future Rust CI changes propagate in one place.

This PR is part of the foundational sweep following the established standards#168 precedent (governance-reusable + absolute-zero#41 + tma-mark2#41 wrappers).

Variant: trivial ("baseline check + clippy + fmt + test")

Test plan

  • CI: rust-ci job invokes the reusable and reports the same checks
  • Awaiting standards#174 merge before this becomes useful long-term (still works today via SHA pin)

🤖 Generated with Claude Code

Replaces the per-repo `rust-ci.yml` copy with a 5-line wrapper invoking
the shared reusable workflow in `hyperpolymath/standards` (PR #174).

Pinned to PR #174's HEAD SHA `4fdf4314b4ab54269adbaff10e30e483b5e86845`; will resolve to standards/main
once #174 merges.

Estate audit found ~87 rust-ci.yml copies across the estate; this is
one of them. The reusable provides identical cargo check/clippy/fmt/test
behaviour with opt-in `enable_audit` + `enable_coverage` inputs.

Pattern precedent: standards#168 (governance-reusable) + downstream
wrappers absolute-zero#41 + tma-mark2#41.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown

🔍 Hypatia Security Scan

Findings: 40 issues detected

Severity Count
🔴 Critical 2
🟠 High 12
🟡 Medium 26

⚠️ Action Required: Critical security issues found!

View findings
[
  {
    "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": "Action actions/upload-artifact@v4 needs attention",
    "type": "unpinned_action",
    "file": "release.yml",
    "action": "pin_sha",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Action actions/download-artifact@v4 needs attention",
    "type": "unpinned_action",
    "file": "release.yml",
    "action": "pin_sha",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Python file detected -- banned language",
    "type": "banned_language_file",
    "file": "/home/runner/work/julianiser/julianiser/examples/data-pipeline/pipeline.py",
    "action": "flag",
    "rule_module": "cicd_rules",
    "severity": "critical"
  },
  {
    "reason": "expect() in hot path (96 occurrences, CWE-754)",
    "type": "expect_in_hot_path",
    "file": "/home/runner/work/julianiser/julianiser/src/codegen/benchmark.rs",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "medium"
  },
  {
    "reason": "expect() in hot path (1 occurrences, CWE-754)",
    "type": "expect_in_hot_path",
    "file": "/home/runner/work/julianiser/julianiser/src/codegen/parser.rs",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "medium"
  },
  {
    "reason": "Download-and-execute pattern (curl|wget pipe to shell) -- verify integrity before execution (3 occurrences, CWE-494)",
    "type": "shell_download_then_run",
    "file": "/home/runner/work/julianiser/julianiser/setup.sh",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "high"
  },
  {
    "reason": "Zig @ptrCast performs unchecked pointer type conversion (3 occurrences, CWE-704)",
    "type": "zig_ptr_cast",
    "file": "/home/runner/work/julianiser/julianiser/src/interface/ffi/src/main.zig",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "high"
  },
  {
    "reason": "Zig @alignCast performs unchecked alignment cast (2 occurrences, CWE-704)",
    "type": "zig_align_cast",
    "file": "/home/runner/work/julianiser/julianiser/src/interface/ffi/src/main.zig",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "high"
  },
  {
    "line": 24,
    "reason": "Secret found: Generic API key",
    "type": "secret_detected",
    "file": "/home/runner/work/julianiser/julianiser/.envrc",
    "action": "revoke_rotate_and_purge",
    "rule_module": "security_errors",
    "severity": "critical"
  }
]

Powered by Hypatia Neurosymbolic CI/CD Intelligence

@hyperpolymath hyperpolymath merged commit 277b849 into main May 26, 2026
15 of 17 checks passed
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