Skip to content

ci: affected-set READERS-only, dormant (v7; Refs #6042) - #6095

Closed
noahgift wants to merge 4 commits into
mainfrom
gate/affected-set-readers-only-v7
Closed

noahgift wants to merge 4 commits into
mainfrom
gate/affected-set-readers-only-v7

Conversation

@noahgift

@noahgift noahgift commented Oct 23, 2026 •

Copy link
Copy Markdown
Member

Replaces #6090 (v6 @acb37a6605, quorum 0/3: check_affected_readers took the cargo package not the directory; nested include_str!/build.rs inputs under contracts/** and docs/** got READERS not ALL). v7 @04c14917ea (w5032) fixes both, with self-test rows and a BUILD_DOCS mutant. Replaces #6086 (v5 @47e8f11783, CONFLICTING with main so its seats were void; w5032 linear rebuild v6 @acb37a6605, one commit on current main). Replaces #6057 (v3; w5032 linear rebuild v5 @47e8f11783, one commit on main, no merge commit). Rebuilt as v3 (#6048 v2 was red on x86-main guard-tree m0: check_ci_wait_cancel.sh, drift on main). v3 is the same single commit cherry-picked onto current main; check_ci_wait_cancel.sh passes (rc 0) on the rebuilt tree. Replaces #6048.

Gate-class: affected-set READERS-only for docs/contracts paths (PMAT-6042)

Split out of #6035. gate/affected-set-readers-only @acb37a6605 (w5032, v6), one commit (supersedes #6044, #6057), linear on main 45aa5d1. Gate-class: stays DRAFT until seat 2 + quorum 3/3 + arbiter sign.

  • scripts/affected_set.sh: docs/contracts/*.md give READERS, not ALL; .claude/ is skipped. Measured: ALL 18 -> 14 of 20 paths.
  • scripts/check_affected_set.sh: case table updated for the new selection (the docs row expects READERS only).
  • scripts/check_affected_readers.sh: new readers check.
  • .github/workflows/guards-nightly.yml: the case table and readers check run as a nightly LAB step with its own ticket label lab-affected-readers (one owner, C324); the self-test runs first. Nothing is added to a PR, merge-queue or release job.
  • scripts/guards_nightly_manifest.txt: manifest rows for the two LAB steps.

Dormant: affected_set.sh is dormant; no PR, merge-queue or release job consumes it. The narrowing changes the tool's output only; no PR run is narrowed. The first consumer must run check_affected_readers.sh on its own PR path.

The old "FLOW-010 (b)" cite is replaced with #6042. Fragments 296/297 are not touched.

Refs #6042

keep-open: #6042 stays open until this merges (gate-class: seats, quorum and arbiter sign first).

ont-delta: none no new type, shape or reason; narrows an existing selection

🤖 Generated with Claude Code

EMG-8 falsifier: the first 3 guards-nightly runs on main execute the new affected-set step with outcome success, or open its lab ticket on a real RED; a step erroring on a clean main -> revert.
Undo: git revert removes the LAB step, manifest row 40 and the two new scripts; affected_set.sh returns to v2. No PR/MQ path changes.

keep-open: #6057 is closed by wsweep as superseded.

keep-open: #6086 is closed by wsweep as superseded.

keep-open: #6090 is closed by wsweep as superseded.

Quorum checklist (author: w5032)

  • Claims vs diff: 5 files (+381/-18): affected_set.sh, check_affected_readers.sh, check_affected_set.sh, guards-nightly.yml (+21), guards_nightly_manifest.txt (+2). Readers guard resolves the cargo PACKAGE (nearest Cargo.toml); facades dropped from READERS (separate excluded workspace; a diff there is ALL, row added); nested contracts/** and docs/** that include_str!/build.rs embed (multi-line too) are ALL via BUILD_CONTRACTS and new BUILD_DOCS. The guard found 9 real misses (8 docs files + contracts/kernel-registry-v1.yaml), now listed. Docs/contracts otherwise stay READERS-only (gate: affected_set.sh narrows docs/contracts/*.md to READERS-only (split out of #6035) #6042).
  • NOT claimed: no gate, PR job, MQ or release job calls affected_set.sh (header says so). Any "MQ consumes it" line is false.
  • Third state: none. Checks run only in guards-nightly.yml (LAB, one ticket on red via lab_ticket.sh). guard_tree.sh --dry-run prints "skipped: check_affected_readers.sh / check_affected_set.sh -- wired-elsewhere guards-nightly.yml".
  • New Python: none (bash, sed, awk, grep, jq only).
  • Fail-open/vacuous: guard over-approximates (a miss skips tests; a false hit only adds a listing). Self-test rows RED-prove: unlisted package, directory-only listing, excluded workspace skipped, nested + multi-line include_str! unlisted (contracts and docs), listed variants green; BUILD_DOCS-arm mutant caught. check_affected_set.sh 100+ rows ok; no n/n-only claim. Residual: a build.rs that reads a whole dir (not a named path) is not detected; contracts/model-families and binding.yaml stay ALL by their own arm.
  • MQ/release path touched: no. Workflow touched: guards-nightly.yml only (LAB step + opener). No gate content added.
  • Local: guard-tree --no-cargo 185/186; sole red check_no_tracked_ignored_files 318 vs 317 is identical on pristine origin/main.

Supersedes #6091 (its PMAT-6069 commit is carried here as ca5fc77; the SC2135 follow-up is PMAT-6122 / #6122).

…t, no consumer (Refs #6042)

Gate-class tool change split out of #6035. No-reader paths (docs, contracts, root *.md,
.claude/) select READERS only, ALL 18->14 of 20. Nothing consumes affected_set.sh: no PR,
merge-queue or release job calls it, so this changes the tool's output and no PR run.
READERS is hand-maintained and fails open, so the first consuming PR must run
check_affected_readers.sh (check and self-test) on its own PR path.

Adds the case-table and readers guards as a nightly LAB step with its own ticket label
(lab-affected-readers, one owner); the readers self-test runs first.

PMAT-Ticket: PMAT-6042
PMAT-Batch: BATCH-aprender-n-receipt
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 23, 2026 •

Copy link
Copy Markdown

§13.11 rung 1 — quorum shadow verdict

S13-SHADOW pr=6095 head=2172cba2a3051781207be10144d1b0918f5e75dc verdict=REFUSE class=Q1 arm_rc=1

Shadow mode: this records a verdict and merges nothing. A refusal
to arm is not a block (§13 adds zero rows to §7) — the pull request is
exactly as green as it was.

…a missing crates dir (#6069)

hits() and build_inputs() ended in `|| true`, so an unreadable or missing crates
dir, or any grep rc>=2, read as "no readers" and the check printed ok. A new g()
treats only rc 1 (no match) as empty; check() is RED on a missing dir and on a
failed scan. Self-test rows: missing dir and a grep shim exiting 2 must be RED,
a tree with no reader forms stays green; the shim row dies when g() is made lenient.

PMAT-Ticket: PMAT-6069
PMAT-Batch: BATCH-aprender-readers-6069
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
t and others added 2 commits October 23, 2026 10:27
…s.sh (child of #6069, Refs #6122)

PMAT-Ticket: PMAT-6122
PMAT-Batch: BATCH-aprender-readers-6069
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ders-only-v7

# Conflicts:
#	docs/roadmaps/roadmap.yaml
@noahgift

Copy link
Copy Markdown
Member Author

superseded by #6147 (same ticket, newer PR; class A per OPERATOR 10:32Z ruling via aprender-b9). Branch kept.

@noahgift noahgift closed this Oct 23, 2026
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