From 000a7b7523a5fe2f455970079eeea8601169c6fd Mon Sep 17 00:00:00 2001 From: Kyle Sexton <153232337+kyle-sexton@users.noreply.github.com> Date: Thu, 5 Nov 2026 21:31:55 -0500 Subject: [PATCH 1/3] chore(attribution): keep the bundled test-fixture exclusion in this repository's config docs/conventions/attribution.yaml set excluded_paths to "**/evals/fixtures/**" before the plugin's 0.16.0 default declined every test-fixture tree. A layer that sets the key replaces the default whole (plugins/attribution/skills/setup/reference/keys.md "The test-fixture exclusion"), so script fixtures such as scripts/fixtures/hooks-lifecycle-table.md, a saved copy of the Hooks reference lifecycle table that scripts/gen-hook-event-registry.test.sh reads, were audited as prose and reached every fix gate. The list now carries the default's three globs. The fixture's disposition is a categorical keep, not a per-instance suppression. The repository corpus goes from 277 declined files to 485: 462 under **/fixtures/**, 2 under **/testdata/**, 21 vendored. Refs: #3465 Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01RMa441wb9nbFwyTS8nqdYj --- docs/conventions/attribution.yaml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/docs/conventions/attribution.yaml b/docs/conventions/attribution.yaml index fd21018af0d..e54d9184556 100644 --- a/docs/conventions/attribution.yaml +++ b/docs/conventions/attribution.yaml @@ -2,9 +2,12 @@ # Team layer for the attribution plugin (schema: plugins/attribution/schemas/attribution.schema.json). # Every key is optional; an absent key keeps the shipped default. # -# The eval fixtures are excluded as config, never in a script, so the eval harness's own config -# isolation lifts the exclusion and the fixtures report their real findings. The trigger-less -# stamp check, off in the portable baseline, is on here. +# Test-fixture trees are excluded as config, never in a script, so the eval harness's own config +# isolation lifts the exclusion and the fixtures report their real findings. This list replaces +# the bundled default whole, so it carries the default's globs. The trigger-less stamp check, off +# in the portable baseline, is on here. excluded_paths: - - "**/evals/fixtures/**" + - "**/fixtures/**" + - "**/__fixtures__/**" + - "**/testdata/**" trigger_less_stamp_check: true From b7e4bfb731b4ce457b3a45283d7fed5f8b41ed92 Mon Sep 17 00:00:00 2001 From: Kyle Sexton <153232337+kyle-sexton@users.noreply.github.com> Date: Thu, 5 Nov 2026 21:42:56 -0500 Subject: [PATCH 2/3] chore(attribution): leave excluded_paths unset so the bundled default applies Review on #13643: copying the default's globs into this layer changed their behavior. list-corpus.sh matches a config-layer list against full repository paths, so a named fixture is declined. The bundled default is matched below the scan target and skips a named file. With the key unset, fixture and testdata trees are still declined in a repo-wide run, and a run aimed at a fixture reads it. Refs: #3465 Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01RMa441wb9nbFwyTS8nqdYj --- docs/conventions/attribution.yaml | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/docs/conventions/attribution.yaml b/docs/conventions/attribution.yaml index e54d9184556..e91a3ff5cac 100644 --- a/docs/conventions/attribution.yaml +++ b/docs/conventions/attribution.yaml @@ -2,12 +2,7 @@ # Team layer for the attribution plugin (schema: plugins/attribution/schemas/attribution.schema.json). # Every key is optional; an absent key keeps the shipped default. # -# Test-fixture trees are excluded as config, never in a script, so the eval harness's own config -# isolation lifts the exclusion and the fixtures report their real findings. This list replaces -# the bundled default whole, so it carries the default's globs. The trigger-less stamp check, off -# in the portable baseline, is on here. -excluded_paths: - - "**/fixtures/**" - - "**/__fixtures__/**" - - "**/testdata/**" +# `excluded_paths` is left unset so the bundled test-fixture default applies with its own +# semantics: matched below the scan target, and skipped for a file named directly. The trigger-less +# stamp check, off in the portable baseline, is on here. trigger_less_stamp_check: true From cb2ef0811d343a4767237d285e5ed2852e4adb25 Mon Sep 17 00:00:00 2001 From: Kyle Sexton <153232337+kyle-sexton@users.noreply.github.com> Date: Thu, 5 Nov 2026 21:55:55 -0500 Subject: [PATCH 3/3] docs(attribution): note that the eval harness lifts the fixture default pr-verify on #13643: the earlier comment said the eval harness's config isolation lifts the fixture exclusion. The bundled default keeps that property (list-corpus.sh header), and the config comment says so again. Refs: #3465 Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01RMa441wb9nbFwyTS8nqdYj --- docs/conventions/attribution.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/conventions/attribution.yaml b/docs/conventions/attribution.yaml index e91a3ff5cac..f1af9f59dc1 100644 --- a/docs/conventions/attribution.yaml +++ b/docs/conventions/attribution.yaml @@ -3,6 +3,8 @@ # Every key is optional; an absent key keeps the shipped default. # # `excluded_paths` is left unset so the bundled test-fixture default applies with its own -# semantics: matched below the scan target, and skipped for a file named directly. The trigger-less -# stamp check, off in the portable baseline, is on here. +# semantics: matched below the scan target, and skipped for a file named directly. The eval +# harness's config isolation lifts that default, so eval fixtures still report their real findings +# (plugins/attribution/skills/audit/scripts/list-corpus.sh header). The trigger-less stamp check, +# off in the portable baseline, is on here. trigger_less_stamp_check: true