Skip to content

fix(ci): green the three required gates + redirect stale stance doc#59

Merged
hyperpolymath merged 1 commit into
mainfrom
fix/ci-gates-stance-redirect
Jun 14, 2026
Merged

fix(ci): green the three required gates + redirect stale stance doc#59
hyperpolymath merged 1 commit into
mainfrom
fix/ci-gates-stance-redirect

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Greens the three required CI gates that were red on main (all verified locally), plus reconciles a stale duplicate doc. None of these touch SPDX/licence headers.

Fixes

  1. Aspect/SPARK gate (Aspect gate: SPARK-grade source refactor (SPDX + eliminate unsafe / unwrap / expect in src/) #49) — vclt-gate bin used a panicking .expect() in parse_vql_type. Replaced with a match returning Err on the (logically impossible) empty-object case, and added #![deny(clippy::unwrap_used, clippy::expect_used)] to the bin so it meets the no-panic posture the lib already enforces.
  2. Backend Matrixcargo test -p vcltotal-echidna-client failed (package ID did not match) because the crate isn't a root-workspace member (its transitive echidna-core path-dep breaks the standalone build). Gave echidna-client its own [workspace] (standalone root, mirrors src/interface/parse) and switched the smoke step to --manifest-path.
  3. Scorecard Enforcer — the scorecard job mixed a run: step with uses: while publish_results: true, which GitHub rejects (HTTP 400). Moved the minimum-score gate into a separate enforce job consuming the SARIF as an artifact, so the scorecard job is uses:-only.
  4. Doc driftdocs/VERIFICATION-STANCE.adoc was a stale duplicate claiming the level predicates are vacuous / not end-to-end proven (false as of the proven corpus). Replaced with a redirect stub to the canonical verification/proofs/VERIFICATION-STANCE.adoc; SPDX header preserved.

Verified locally

idris2 --build verification/proofs/vclut-core.ipkg exit 0 · honesty-guard.sh Clean · cargo clippy --bin vclt-gate -- -D clippy::expect_used -D clippy::unwrap_used rc=0 · both workspaces resolve · actionlint clean on the scorecard workflow.

🤖 Generated with Claude Code

- vclt-gate bin: replace the panicking .expect() in parse_vql_type with a
  match returning Err on the (impossible) empty-object case, and add
  #![deny(clippy::unwrap_used, clippy::expect_used)] so the bin meets the
  Aspect/SPARK gate's no-panic posture (the lib already carries it). #49
- echidna-client: declare an own [workspace] so it is a standalone root
  (its transitive echidna-core path-dep breaks the default standalone
  build); Backend-Matrix now runs it via --manifest-path instead of `-p`,
  which could not select a non-member package.
- scorecard-enforcer: move the run: "Check minimum score" gate into a
  separate `enforce` job consuming the SARIF artifact, so the scorecard
  job stays uses-only (publish_results:true rejects mixed run/uses, 400).
- docs/VERIFICATION-STANCE.adoc: replace the stale duplicate (claimed
  predicates vacuous / not end-to-end proven) with a redirect to the
  canonical verification/proofs/ copy; SPDX header preserved.

Verified locally: corpus build exit 0, honesty-guard Clean,
cargo clippy --bin vclt-gate -D expect_used -D unwrap_used rc=0,
both workspaces resolve.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@hyperpolymath
hyperpolymath merged commit 156f6d7 into main Jun 14, 2026
15 of 128 checks passed
@hyperpolymath
hyperpolymath deleted the fix/ci-gates-stance-redirect branch June 14, 2026 14:33
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