diff --git a/tools/test_ci_rust_changed.sh b/tools/test_ci_rust_changed.sh index 8b4d0014..7a0820e5 100755 --- a/tools/test_ci_rust_changed.sh +++ b/tools/test_ci_rust_changed.sh @@ -5,14 +5,19 @@ cd "$(dirname "$0")/.." fail=0 -if bash tools/ci-rust-changed.sh wiki/process/meta.md >/dev/null 2>&1; then +# The corpus workflow runs this suite for pull requests too. Pin the ordinary +# path fixtures to their own context so the workflow's ambient pipeline kind +# cannot turn the wiki-only case into a deliberately full safety run. +if TANGLED_PIPELINE_KIND=local \ + bash tools/ci-rust-changed.sh wiki/process/meta.md >/dev/null 2>&1; then echo "FAIL: wiki-only path requested the Rust gate" fail=1 else echo " ok skips: wiki-only path" fi -if ! bash tools/ci-rust-changed.sh src/lib.rs >/dev/null 2>&1; then +if ! TANGLED_PIPELINE_KIND=local \ + bash tools/ci-rust-changed.sh src/lib.rs >/dev/null 2>&1; then echo "FAIL: source path skipped the Rust gate" fail=1 else diff --git a/wiki/log/2026-07-10-ci-classifier-fixture-context.md b/wiki/log/2026-07-10-ci-classifier-fixture-context.md new file mode 100644 index 00000000..d2adb1a3 --- /dev/null +++ b/wiki/log/2026-07-10-ci-classifier-fixture-context.md @@ -0,0 +1,29 @@ +# 2026-07-10 — Keep CI classifier fixtures independent of their pipeline + +``` +Type: log +``` + +## Intent + +Repair the corpus pull-request workflow after its classifier fixture inherited +`TANGLED_PIPELINE_KIND=pull_request` and incorrectly reported that a wiki-only +path required the Rust gate. + +## Changed + +- The ordinary wiki-only and Rust-source fixtures now explicitly select the + local classifier context. The manual and pull-request cases continue to + select their own full-safety contexts. +- The agent-scale verification contract now records that fixture isolation. + +## Design/spec impact + +No game rule or CI policy changed. Pull requests and manual runs remain full +Rust/Bevy safety gates; this restores the classifier regression test that +verifies that policy from inside the always-on corpus workflow. + +## Checks + +- `TANGLED_PIPELINE_KIND=pull_request bash tools/test_ci_rust_changed.sh` +- `./tools/check.sh --docs` diff --git a/wiki/log/DEVLOG.md b/wiki/log/DEVLOG.md index faef278b..3b9d919c 100644 --- a/wiki/log/DEVLOG.md +++ b/wiki/log/DEVLOG.md @@ -421,6 +421,11 @@ add or amend a session log, then re-run the generator. - Intent: Make remote corpus enforcement real: missing audit utilities must turn the Tangled job red instead of letting an empty scan report success. - Log: [wiki/log/2026-07-10-ci-gates-fail-closed.md](2026-07-10-ci-gates-fail-closed.md) +## 2026-07-10 - Keep CI classifier fixtures independent of their pipeline + +- Intent: Repair the corpus pull-request workflow after its classifier fixture inherited `TANGLED_PIPELINE_KIND=pull_request` and incorrectly reported that a wiki-only path required the Rust gate. +- Log: [wiki/log/2026-07-10-ci-classifier-fixture-context.md](2026-07-10-ci-classifier-fixture-context.md) + ## 2026-07-10 - Signal without sight - Intent: (see session log) diff --git a/wiki/process/agent-scale.md b/wiki/process/agent-scale.md index 773e2153..d2a0c14c 100644 --- a/wiki/process/agent-scale.md +++ b/wiki/process/agent-scale.md @@ -158,7 +158,9 @@ two-commit clone and `tools/ci-rust-changed.sh` to stop after classification when a push cannot affect Rust. Pull-request and manual triggers deliberately run the complete Rust/Bevy safety gate. Tangled has no scheduled workflow trigger or native path filter, so the manual trigger is the supported full -safety run instead of pretending a scheduler exists. +safety run instead of pretending a scheduler exists. The classifier fixture +suite pins every case's pipeline kind, so its local wiki-only assertion stays +valid when the always-on corpus workflow supplies a pull-request context. ### Acceptance criteria (slice B)