Skip to content

ci: skip bench/fuzz/ci on docs/safety-only changes#171

Merged
avrabe merged 1 commit into
mainfrom
fix/ci-paths-filter
May 20, 2026
Merged

ci: skip bench/fuzz/ci on docs/safety-only changes#171
avrabe merged 1 commit into
mainfrom
fix/ci-paths-filter

Conversation

@avrabe
Copy link
Copy Markdown
Contributor

@avrabe avrabe commented May 19, 2026

Summary

Reduces meld's draw on the shared smithy rust-cpu fleet by adding conservative paths-ignore filters to bench.yml, fuzz.yml, and ci.yml. PRs that only edit Markdown, safety/, scripts/mythos/, or tools/*.py skip the rust-cpu jobs (~9 jobs saved per docs-only PR). Substantive code PRs unaffected.

This was prompted by today's repeated fleet capacity crunches — but the framing isn't "save the fleet from us." Smithy's 7 rust-cpu runners are MORE resources than GitHub-hosted would give us; the right response is to be a leaner consumer, not to push other repos off.

Workflows NOT touched

Workflow Why filtering would defeat its purpose
mythos-gate.yml Fires on Tier-5 .rs changes (already implicitly filtered)
mythos-auto.yml Same
verification-gate.yml Fires on safety/stpa/loss-scenarios.yaml — silencing that workflow on safety changes is exactly what we don't want
release.yml Tag-triggered, not PR-triggered
fixtures.yml Manual workflow_dispatch only

Tradeoff

Docs-only PRs get no compile-check. This is fine because they have nothing to compile. The risk is a Markdown-only PR somehow breaking the code — basically impossible for the path types we're excluding.

Sequencing

This PR itself touches only .github/workflows/** + CHANGELOG, so:

  • bench/fuzz/ci WILL still trigger on this PR (workflows themselves aren't in paths-ignore)
  • Once merged, the NEXT PR that's docs-only will see the savings
  • The LS-N gate, mythos-gate, mythos-auto continue firing as before

Test plan

  • All CI workflows fire normally on this PR (path filters don't apply to themselves)
  • After merge, open a docs-only test PR to verify the skip behavior
  • No required-check breakage on merge (path-filtered workflows simply don't run; they don't fail)

🤖 Generated with Claude Code

Adds conservative `paths-ignore` filters to bench.yml, fuzz.yml,
and ci.yml. PRs that only edit:

- Markdown (`**/*.md`)
- `safety/**` (STPA artifacts, no code impact)
- `scripts/mythos/**` (discover/validate/emit prompts)
- `tools/*.py` (gate runner scripts — these have their own
  verification-gate workflow)

skip the rust-cpu-hungry jobs entirely. ~9 rust-cpu jobs saved per
docs-only PR. Substantive code PRs (any `.rs`, `Cargo.{toml,lock}`,
or `.github/workflows/**` change) trigger all the usual workflows.

Workflows intentionally NOT given path filters:

- `mythos-gate.yml` — fires on Tier-5 source changes, which are
  always `.rs` files (already implicitly filtered)
- `mythos-auto.yml` — same
- `verification-gate.yml` — fires on PRs that change
  `safety/stpa/loss-scenarios.yaml`. Filtering safety/ out of THIS
  workflow would silence the very purpose it serves.

This reduces meld's draw on the shared smithy rust-cpu fleet
without losing regression signal on real changes. Tradeoff
intentional: docs-only PRs get no compile-check, which is fine
because they have nothing to compile.

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

LS-N verification gate

19/19 approved LS entries verified

count
Passed (≥1 test, all green) 19
Failed (≥1 test failure) 0
Missing (no ls_*_NN_* test found) 0

Approved loss-scenarios.yaml entries are expected to have a
regression test named ls_<letter>_<num>_* (e.g. LS-A-11
ls_a_11_*). The gate runs each prefix via cargo test --lib --no-fail-fast and aggregates pass/fail/missing.

Failed LS entries

(none)

Missing regression tests

(none)

Updated automatically by tools/post_verification_comment.py.
Source of truth: safety/stpa/loss-scenarios.yaml.

@avrabe avrabe merged commit 17b76df into main May 20, 2026
14 checks passed
@avrabe avrabe deleted the fix/ci-paths-filter branch May 20, 2026 04:14
avrabe added a commit that referenced this pull request May 21, 2026
P3 cross-component stream-pair detection foundation + a fully
operational Mythos delta-pass auto-runner. 12 commits since v0.8.1.

Headline changes:

- Cross-component stream<T> pairing detection (#141, ADR-3). The
  StreamPairGraph foundation for the in-module stream adapter: meld
  now inventories at resolve time which fused components form
  producer -> consumer stream pairings. The ring-buffer / copy-chain
  emitter is a runtime-verified follow-up (ADR-3 Path N).

- Mythos delta-pass auto-runner (#162, #164, #170, #173, #175). The
  AI-driven discover protocol now runs automatically on every
  Tier-5 PR by the maintainer, via claude-code-action on a Max-plan
  OAuth token. Five plumbing fixes brought it to a working
  end-to-end state: scan -> NO_FINDINGS verdict -> sticky comment ->
  mythos-pass-done label.

- LS-N verification gate (#161, #165). Every approved loss-scenario
  in safety/stpa/loss-scenarios.yaml is now enforced to have a
  matching ls_<letter>_<num>_* regression test; 19/19 verified.

- DWARF / witness-mapping discovery (#131) — Phase 1 of the #130
  epic; pins today's lossy passthrough as the green-to-red oracle
  for the Phase 2 remap work.

- Regression coverage for LS-A-8/9/19 and LS-CP-4 (#163/165/166/169)
  — closed every missing-test entry the LS-N gate surfaced.

- CI footprint reduction (#171) — bench/fuzz/ci skip on docs- and
  safety-only PRs; meld is a leaner consumer of the shared fleet.

- fuzz.yml musl-target drop (#170, closes #168) — fixes the
  recurring "sanitizer incompatible with statically linked libc"
  fuzz failures.

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
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