Files
RuView/wifi-veil/.github/workflows/ci.yml
Claude e2ffecde9a ci(wifi-veil): add honesty / anti-slop guard
Add scripts/ci-guard.sh and a `guard` CI job that statically enforce the
project's honesty invariants so they cannot silently regress:

- no telemetry (.claude-flow/), build artifacts, lockfile, or scratch/probe
  files committed;
- no debug / mock-probe / slop markers in source
  (panic!("probe...), dbg!, println!("DEBUG, TODO(ai), LOREM IPSUM, ...);
- the SYNTHETIC evidence label present on every firmware provider README, and
  the "never jamming" compliance disclaimer present in the root + firmware READMEs;
- no dishonest hardware-validation claims — honest negated / TODO(hw) /
  build-only mentions are explicitly allowed (negation-aware);
- no stale monorepo crate/harness identifiers in the code/manifest surface.

Scans only git-tracked files under the tree, so it works both in-monorepo and
in the extracted standalone repo, and never trips on untracked local scratch or
target/. Documented in CONTRIBUTING.md; passes clean on the current tree.

Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01WEXNqzs7UsfNFBcP5yW21p
2026-08-09 17:20:03 +00:00

63 lines
1.6 KiB
YAML

name: CI
on:
push:
branches: [main]
pull_request:
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
jobs:
guard:
name: Honesty / anti-slop guard
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Enforce honesty / anti-slop invariants
run: bash scripts/ci-guard.sh
rust:
name: Rust (test + lint + wasm)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Rust toolchain
run: |
rustup toolchain install stable --profile minimal
rustup component add clippy rustfmt
rustup target add wasm32-unknown-unknown
- name: Format
run: cargo fmt --check
- name: Clippy
run: cargo clippy --all-targets -- -D warnings
- name: Test (crate + proof witness)
run: cargo test
- name: WASM leaf builds
run: cargo build --lib --target wasm32-unknown-unknown
c-core:
name: Firmware C core (host test)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build + test portable core
run: make -C firmware/core test
harness:
name: Harness (smoke)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- name: Guidance runs dependency-free
run: node harness/bin/cli.js guidance --topic overview
- name: Install + unit tests
working-directory: harness
run: |
npm ci --ignore-scripts || npm install --ignore-scripts
npm test --if-present