Skip to content

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

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)#22
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: 50 issues detected

Severity Count
🔴 Critical 2
🟠 High 31
🟡 Medium 17

⚠️ Action Required: Critical security issues found!

View findings
[
  {
    "reason": "No test directory or test files found",
    "type": "no_tests",
    "file": "/home/runner/work/docmatrix/docmatrix",
    "action": "flag",
    "rule_module": "honest_completion",
    "severity": "high",
    "deduction": 20
  },
  {
    "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": "codeql.yml lists `language: javascript-typescript` but the repo has no source files in any CodeQL-scannable language. The analyze job will exit 'no source files' on every run. Switch the matrix to `actions` (which scans workflow files — every repo has those).",
    "type": "codeql_language_matrix_mismatch",
    "file": "codeql.yml",
    "action": "switch_codeql_matrix_to_actions",
    "rule_module": "workflow_audit",
    "severity": "high"
  },
  {
    "reason": "unwrap_or(0) with dangerous default (1 occurrences, CWE-754)",
    "type": "unwrap_dangerous_default",
    "file": "/home/runner/work/docmatrix/docmatrix/crates/formatrix-db/src/lib.rs",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "critical"
  },
  {
    "reason": "from_raw constructs types from raw pointers without safety checks (2 occurrences, CWE-676)",
    "type": "from_raw",
    "file": "/home/runner/work/docmatrix/docmatrix/crates/formatrix-core/src/ffi.rs",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "high"
  },
  {
    "reason": "as_ptr exposes raw pointer that may dangle or alias unsafely (8 occurrences, CWE-676)",
    "type": "as_ptr",
    "file": "/home/runner/work/docmatrix/docmatrix/crates/formatrix-core/src/ffi.rs",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "medium"
  },
  {
    "reason": "unwrap() without prior check -- DoS via panic (2 occurrences, CWE-754)",
    "type": "unwrap_without_check",
    "file": "/home/runner/work/docmatrix/docmatrix/crates/formatrix-core/src/formats/djot.rs",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "high"
  },
  {
    "reason": "unwrap_or(0) with dangerous default (1 occurrences, CWE-754)",
    "type": "unwrap_dangerous_default",
    "file": "/home/runner/work/docmatrix/docmatrix/crates/formatrix-core/src/formats/orgmode.rs",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "critical"
  },
  {
    "reason": "unwrap() without prior check -- DoS via panic (1 occurrences, CWE-754)",
    "type": "unwrap_without_check",
    "file": "/home/runner/work/docmatrix/docmatrix/crates/formatrix-core/benches/format_bench.rs",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "high"
  },
  {
    "reason": "Nominal-only SAST in docmatrix: codeql.yml language matrix contains no language present in the repo and lacks `actions`, so CodeQL records zero results on every commit. Remediation: set the CodeQL matrix to `language: actions`.",
    "type": "StaticAnalysis",
    "file": "/home/runner/work/docmatrix/docmatrix",
    "action": "auto_fix",
    "rule_module": "scorecard",
    "severity": "medium",
    "remediation": "Add CodeQL or equivalent SAST workflow.",
    "scorecard_check": "SAST"
  }
]

Powered by Hypatia Neurosymbolic CI/CD Intelligence

@hyperpolymath hyperpolymath enabled auto-merge (squash) May 26, 2026 09:44
@hyperpolymath hyperpolymath merged commit a5099ab into main May 26, 2026
17 of 19 checks passed
@hyperpolymath hyperpolymath deleted the chore/rust-ci-reusable-wrapper branch May 26, 2026 09:48
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