Repository navigation
Description
Parent
Refs #5906
Blocked by
- the code-metrics and mutation-testing plugin slice (linked as this issue's blocker)
Outcome
This repository's mutation-testing team settings live in docs/conventions/mutation-testing.yaml, and the post-merge
mutation lane's files name that file instead of .claude/mutation-testing.md:
.github/scripts/post-merge-test-mutation/report.test.mjs:304,313reads themutateglobs from the YAML;.github/scripts/post-merge-test-mutation/prompt.md:5names the YAML as the team layer;- the comment at
.github/workflows/post-merge-select-mutation-range.yml:10names the YAML.
The YAML's mutate list excludes docs/conventions/**, as the old file's excludes .claude/**, so that
report.test.mjs requires the audit job to deny Edit(./docs/conventions/**) and the lane's model cannot edit its
config. That requires two workflow edits: the deny in the audit job's denied list in
.github/workflows/post-merge-test-mutation.yml, and "!docs/conventions/**" in the paths filter of
.github/workflows/post-merge-select-mutation-range.yml, which must equal mutate.
Once the mutation-testing release carrying the code-metrics and mutation-testing plugin slice (linked as this issue's blocker) has shipped, .claude/mutation-testing.md is deleted and the
plugin's one-release read of it is dropped (#5906 body, Scope 3: a compatibility read of the old file for one release).
Host-run: the issue lane cannot push .github/workflows/, and report.test.mjs runs under node.
Key interfaces
.claude/mutation-testing.md, whosemutatelist excludes.claude/**because the lane's model may not edit its
config;report.test.mjschecks that every excluded glob is a denied Edit rule of the audit job and that the
gate'spathsfilter equalsmutate..github/workflows/post-merge-select-mutation-range.yml(paths) and.github/workflows/post-merge-test-mutation.yml
(the audit job's denied list).plugins/mutation-testing/skills/setup/SKILL.md, the config merge model the code-metrics and mutation-testing plugin slice (linked as this issue's blocker) changes.
Done when
-
docs/conventions/mutation-testing.yamlcarries every key of.claude/mutation-testing.md, itsmutatelist also excludesdocs/conventions/**, andscripts/check-convention-yaml.sh --checkexits 0. -
node --test .github/scripts/post-merge-test-mutation/report.test.mjsexits 0, with both config reads ondocs/conventions/mutation-testing.yaml. -
git grep -n "\.claude/mutation-testing\.md" -- .githubprints nothing. -
plugins/mutation-testing/CHANGELOG.mdshows a released version after the one carrying the code-metrics and mutation-testing plugin slice (linked as this issue's blocker) (grep -non the version heading prints it). -
git ls-tree --name-only HEAD .claude/does not listmutation-testing.md. -
git grep -nE "\.claude/mutation-testing\.md" -- plugins docs/contracts ":!*CHANGELOG.md"prints only setup lines that report or move the retired file, and lines that name~/.claude/mutation-testing.mdas never read. -
scripts/check-changelog-fragments.sh --check-required origin/mainexits 0.
Out of scope
- The lane's personal overlay
.claude/mutation-testing.local.md, written at
.github/workflows/post-merge-test-mutation.yml:188(ADR 0075 fix 8). - The arid-node record
.claude/mutation-testing-arid.md.
Posted by the issue-triage session. This was generated by AI.
Metadata
Metadata
Assignees
Labels
Type
Fields
Work status
Activity
github-actions commentedon Nov 2, 2026
Proposed work class: work-class: scoped
Basis: automated intake triage; the lanes App applied this class.
Size: Medium
Complexity: Low
Uncertainty: Known
Flags: none
Blocked by: #12290
Understood: move the mutation lane's team settings to
docs/conventions/mutation-testing.yaml. That means updating the lane's test, prompt and workflow comment, adding the two workflow deny/paths edits, then retiring.claude/mutation-testing.mdonce the plugin release that carries the new config read has shipped. The issue looks well specified. Its done-when items need a push to.github/workflows/and a node test run, so they route to a host run. I found no duplicates. It depends on #12290 and on that issue's release.Automated triage, applied by the lanes App.
melodic-automation-lanes commentedon Nov 2, 2026
Not admitted to the issue lane: it carries host-run. Admission takes the issue once each of those is met, when intake triages it again (
.github/actions/resolve-config/admission-rules.json).melodic-automation-lanes commentedon Nov 2, 2026
The latest triage verdict holds nothing: admission moved the issue to
status: confirmed; its comment says why.fix(mutation-testing): report the retired team file as INFO in setup …
fix(pr-pipeline): limit the host-data row's ~/.claude match to host-s…