Repository navigation
Description
Slice 1 of #9729, which tracks the move of the attribution settings from .claude/attribution.json to docs/conventions/attribution.yaml. The split and its basis are in the re-triage record on #9729.
Outcome
The attribution audit reads its settings through one reader, YAML first. plugins/attribution/skills/audit/scripts/lib.sh resolves each layer's YAML (<home>/attribution.yaml, <home>/attribution.local.yaml, per ADR 0075) and falls back to the old JSON file only when the YAML is absent (per file, not per key, as plugins/ai-slop/skills/audit/scripts/detect.sh:224-233 does). One shared reader serves all four scripts (check-stamps.sh, list-corpus.sh, score-golden.sh, sweep-ledger.sh), replacing their per-script jq readers, and names the layer behind each value. No YAML is committed in this slice, so this repository still reads .claude/attribution.json and behavior is unchanged.
Blocks: slice 2 and slice 3 of #9729.
Done when
-
scripts/run-test-file.sh plugins/attribution/skills/audit/scripts/check-stamps.test.shexits 0. -
scripts/run-test-file.sh plugins/attribution/skills/audit/scripts/list-corpus.test.shexits 0. -
scripts/run-test-file.sh plugins/attribution/skills/audit/scripts/sweep-ledger.test.shexits 0. - The reader's tests include: the YAML wins when both exist, the old location is read when the YAML is absent, and the resolver names the layer that supplied each value.
-
scripts/check-changelog-fragments.sh --check-required origin/mainexits 0.
Activity
.claude/attribution.jsonsettings to docs/conventions/attribution.yaml #9729github-actions commentedon Oct 27, 2026
Proposed work class: work-class: scoped
Basis: automated intake triage; the lanes App applied this class.
Size: Medium
Complexity: Medium
Uncertainty: Known
Flags: none
Blocked by: none
Understood: slice 1 of #9729. Add one YAML-first shared settings reader in the attribution audit's lib.sh. It falls back to the old JSON per file, names the layer behind each value, and replaces the per-script jq readers in the four scripts. Behavior is unchanged here because no YAML is committed. The outcome and done-when items are specific, and I found no duplicate among the open issues.
Automated triage, applied by the lanes App.