Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
bump: none
---

Test-only: a suite's test-scope header now declares files it reads that the pull-request test selection could not see, so a change to one of them runs the suite; no shipped behavior changes.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
bump: none
---

Test-only: a suite's test-scope header now declares files it reads that the pull-request test selection could not see, so a change to one of them runs the suite; no shipped behavior changes.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
bump: none
---

Test-only: a suite's test-scope header now declares files it reads that the pull-request test selection could not see, so a change to one of them runs the suite; no shipped behavior changes.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
bump: none
---

Test-only: a suite's test-scope header now declares files it reads that the pull-request test selection could not see, so a change to one of them runs the suite; no shipped behavior changes.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
bump: none
---

Test-only: a suite's test-scope header now declares files it reads that the pull-request test selection could not see, so a change to one of them runs the suite; no shipped behavior changes.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
bump: none
---

Test-only: a suite's test-scope header now declares files it reads that the pull-request test selection could not see, so a change to one of them runs the suite; no shipped behavior changes.
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
# keeps it from blocking twice in one turn; the plugin kill switch wins. The
# spawn budget case fences the cost every user pays per turn with the option
# off: the node launcher only.
# test-scope: plugins/biome-format/hooks/hooks.json plugins/biome-format/git-hooks/biome-check.sh plugins/biome-format/.claude-plugin/plugin.json
# test-scope: plugins/biome-format/hooks/hooks.json plugins/biome-format/git-hooks/biome-check.sh plugins/biome-format/.claude-plugin/plugin.json plugins/biome-format/hooks/exec-bash.mjs
set -uo pipefail
unset GIT_DIR GIT_WORK_TREE GIT_CONFIG GIT_INDEX_FILE BIOME_CONFIG_PATH CLAUDE_PLUGIN_OPTION_BIOME_FORMAT_END_OF_TURN CLAUDE_PLUGIN_OPTION_BIOME_FORMAT_ENABLED

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
# PATH carries fake `lizard`, `radon`, `multimetric`, `gocognit` and
# `shellmetrics` replaying the committed captures under
# fixtures/tool-output/ (design T13; nothing executable is committed).
# test-scope: plugins/code-metrics/scripts/collectors/*.py plugins/code-metrics/scripts/fixtures/*
# test-scope: plugins/code-metrics/scripts/collectors/*.py plugins/code-metrics/scripts/fixtures/* plugins/code-metrics/scripts/yaml_subset.py
set -uo pipefail
unset GIT_DIR GIT_WORK_TREE GIT_CONFIG

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
# the entry so `git commit` runs it from a flat installed copy.
# Expected values come from the requirement: a path-scoped rule the index block
# does not list is drift, and the block `render-index.sh write` produces is not.
# test-scope: plugins/instruction-placement/git-hooks/entries.json plugins/instruction-placement/scripts/render-index.sh plugins/instruction-placement/scripts/lib/discover.sh plugins/instruction-placement/lib/git-hooks/check-lib.sh plugins/instruction-placement/lib/git-hooks/install.mjs
# test-scope: plugins/instruction-placement/git-hooks/entries.json plugins/instruction-placement/scripts/render-index.sh plugins/instruction-placement/scripts/lib/discover.sh plugins/instruction-placement/lib/git-hooks/check-lib.sh plugins/instruction-placement/lib/git-hooks/install.mjs plugins/instruction-placement/.claude-plugin/plugin.json
set -uo pipefail
unset GIT_DIR GIT_WORK_TREE GIT_CONFIG GIT_INDEX_FILE CLAUDECODE AI_AGENT

Expand Down
1 change: 1 addition & 0 deletions plugins/planning/shared/tests/test_session.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# test-scope: plugins/planning/shared/schema/*.schema.json plugins/planning/surface/schema/*.schema.json plugins/planning/shared/tests/fixtures/*.json
"""session.py holds the shared interview session's domain rules; each test names one invariant.

Expected values come from the Design's Contracts (state shape, error codes, round transitions,
Expand Down
2 changes: 1 addition & 1 deletion plugins/ruff-format/hooks/ruff-format.test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
#
# Requires a real Ruff binary: $RUFF_TEST_BIN if set, else `ruff` on PATH.
# Without one the behavioral assertions cannot run, so the suite skips.
# test-scope: plugins/ruff-format/.claude-plugin/plugin.json plugins/ruff-format/hooks/hooks.json plugins/ruff-format/prerequisites.json
# test-scope: plugins/ruff-format/.claude-plugin/plugin.json plugins/ruff-format/hooks/hooks.json plugins/ruff-format/prerequisites.json plugins/ruff-format/lib/prerequisites.mjs plugins/ruff-format/lib/git-hooks/install.mjs

set -uo pipefail

Expand Down
1 change: 1 addition & 0 deletions plugins/work-items/tests/set-dimensions.test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
# listing holds the fixture's ids.
#
# bash plugins/work-items/tests/set-dimensions.test.sh
# test-scope: plugins/work-items/tools/work-item-tracker/adapters/github/capabilities.json plugins/work-items/tools/work-item-tracker/adapters/github/common.sh plugins/work-items/tools/work-item-tracker/adapters/github/set-fields.sh plugins/work-items/tools/work-item-tracker/lib/id.sh plugins/work-items/tools/work-item-tracker/lib/lease.sh
set -uo pipefail

PLUGIN_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" || exit 2
Expand Down
44 changes: 44 additions & 0 deletions scripts/affected-tests-live.sh
Original file line number Diff line number Diff line change
Expand Up @@ -226,4 +226,48 @@ for probe in 'plugins/github/skills/advise/S*.md|plugins/github/github.test.sh'
fi
done

# --- LIVE repo: files a suite reads select that suite (#8410) ------------------
# The selection audit traced each suite reading these files while a one-file
# diff to the file did not select it: each suite reaches them through a path
# built from parts, a directory glob, or a launcher hooks.json names, so its
# `# test-scope:` header declares them (R8).
s_session=plugins/planning/shared/tests/test_session.py
s_dims=plugins/work-items/tests/set-dimensions.test.sh
gh_adapter=plugins/work-items/tools/work-item-tracker/adapters/github
tracker_lib=plugins/work-items/tools/work-item-tracker/lib
pl_fix=plugins/planning/shared/tests/fixtures
read_pairs=(
"$s_session|plugins/planning/shared/schema/event.schema.json"
"$s_session|plugins/planning/shared/schema/question-shape.schema.json"
"$s_session|plugins/planning/surface/schema/event.schema.json"
"$s_session|plugins/planning/surface/schema/ops.schema.json"
"$s_session|plugins/planning/surface/schema/responses.schema.json"
"$s_session|plugins/planning/surface/schema/visual.schema.json"
"$s_dims|$gh_adapter/capabilities.json"
"$s_dims|$gh_adapter/common.sh"
"$s_dims|$gh_adapter/set-fields.sh"
"$s_dims|$tracker_lib/id.sh"
"$s_dims|$tracker_lib/lease.sh"
"plugins/ruff-format/hooks/ruff-format.test.sh|plugins/ruff-format/lib/git-hooks/install.mjs"
"plugins/ruff-format/hooks/ruff-format.test.sh|plugins/ruff-format/lib/prerequisites.mjs"
"plugins/biome-format/hooks/biome-format-end-of-turn.test.sh|plugins/biome-format/hooks/exec-bash.mjs"
"plugins/code-metrics/skills/audit-complexity/scripts/audit-complexity.test.sh|plugins/code-metrics/scripts/yaml_subset.py"
"plugins/instruction-placement/git-hooks/index-check.test.sh|plugins/instruction-placement/.claude-plugin/plugin.json"
)
for fixture in events-v1 invalid-device-scope-on-prototype invalid-reaction-agree \
invalid-recommendation-on-choice old-page-defaults state-v0-prototype state-v2-mentions \
state-v3 state-v4 state-v5 wire-heartbeat wire-presence; do
read_pairs+=("$s_session|$pl_fix/$fixture.json")
done
for pair in "${read_pairs[@]}"; do
suite="${pair%%|*}" file="${pair#*|}"
out="$(cd "$REPO_ROOT" && bash scripts/affected-tests.sh "$file" 2>/dev/null)"
RC=$?
if [[ -e "$REPO_ROOT/$file" && "$RC" -eq 0 ]] && has_line "$out" "$suite"; then
ok "LIVE: $file selects $suite"
else
fail "LIVE: $file did not select $suite (rc=$RC): $out"
fi
done

test_harness::report
Loading