Repository navigation
Closed
Task
6 / 66 of 6 issues completed
Copy link
Labels
priority: mediumReal value, no hard deadline; normal backlog flow.Real value, no hard deadline; normal backlog flow.work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.A briefed fix or small feature; blast radius bounded by the brief, tests exist.
Description
Parent
Refs #5906
Depends on
- refactor(source-control): read the commit and PR convention keys from docs/conventions/source-control.yaml #9725
- refactor(source-control): read the babysit loop keys from docs/conventions/source-control.yaml #9726
- refactor(guardrails): resolve the commit convention from docs/conventions/source-control.yaml #9727
- refactor(ai-slop): move the
.claude/ai-slop.jsonsettings to docs/conventions/ai-slop.yaml #9728 - refactor(attribution): move the
.claude/attribution.jsonsettings to docs/conventions/attribution.yaml #9729 - refactor(bugs): move the .claude/bugs.md settings to docs/conventions/bugs.yaml #9730
- refactor(docs-naming): move the
.claude/docs-naming.jsonsettings to docs/conventions/docs-naming.yaml #9731 - refactor(harness-config): move the
.claude/audit-pass.md(itssuppressionsblock) settings to docs/conventions/harness-config.yaml #9732 - refactor(multi-agent): move the multi-agent fenced config block to docs/conventions/multi-agent.yaml #9733
- refactor(review): move the review-digest fenced config block to docs/conventions/review-digest.yaml #9734
- chore(guardrails): reinstall the commit-msg git hooks on operator machines after the convention move #9735
Outcome
No skill reads a team setting from a .claude/<topic>.* file or a fenced config block: the one-release
compatibility reads added by the migration slices are removed, and this repository's old files and blocks are
deleted.
Decisions
- ADR 0064 Decision 1: a plugin's team settings live in one
docs/conventions/<concern>.yaml, validated by a
JSON Schema atplugins/<plugin>/schemas/<concern>.schema.json(Decision 6), checked in CI by
scripts/check-convention-yaml.sh(Decision 7). Script readers use the shared readerlib/parse-concern-value.sh. - ADR 0075: layers are plugin default <
userConfig< team<home>/<concern>.yaml< personal
<home>/<concern>.local.<ext>; every resolver reports the layer that supplied each value. - Migrate per-skill .claude config files to userConfig, one conventions doc, or the cascade (ADR 0018) #5906 (comment 2026-10-04): each reader keeps reading the old file for one release when the new file is
absent, and this repository keeps its old file until the cleanup slice.
Key interfaces
- Each migrated plugin's config reader;
.claude/anddocs/conventions/in this repository; each plugin's
retirements.yamlwhere the plugin records retired surfaces.
Done when
- For each plugin touched, its CHANGELOG shows a released version after the one that added the YAML reader (
grep -non the version heading prints it). -
git ls-tree --name-only HEAD .claude/lists none ofsource-control.md,ai-slop.json,attribution.json,bugs.md,docs-naming.json,audit-pass.md. -
git grep -nE "\.claude/(source-control\.md|ai-slop\.json|attribution\.json|bugs\.md|docs-naming\.json|audit-pass\.md)" -- plugins lib scriptsprints only CHANGELOG and retirement-record lines. -
git grep -n "yaml config" -- plugins/multi-agent/scripts plugins/review/skills/explain-change/scriptsprints nothing. - Every test file the migration slices named still passes under
scripts/run-test-file.sh. -
scripts/check-changelog-fragments.sh --check-required origin/mainexits 0.
Metadata
Metadata
Assignees
Labels
priority: mediumReal value, no hard deadline; normal backlog flow.Real value, no hard deadline; normal backlog flow.work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.A briefed fix or small feature; blast radius bounded by the brief, tests exist.
Type
Fields
Work status
confirmed
Activity
.claude/ai-slop.jsonsettings to docs/conventions/ai-slop.yaml #9728.claude/attribution.jsonsettings to docs/conventions/attribution.yaml #9729.claude/docs-naming.jsonsettings to docs/conventions/docs-naming.yaml #9731.claude/audit-pass.md(itssuppressionsblock) settings to docs/conventions/harness-config.yaml #973269 remaining items
kyle-sexton commentedon Nov 4, 2026
Claimed by the Automation Lanes host session (GitHub Support routed it). One PR will finish this and #12287 together: check each plugin's release since its migration landed, drop the one-release reads of .claude/source-control.md and .claude/docs-naming.json, delete both files, and remove pr-require-checks.yml's path filter and sparse-checkout entry for them with the ci-lanes-pr-hold.test.sh assertion.
kyle-sexton commentedon Nov 5, 2026
Status.
Agent choice, not an owner answer.
The issue-triage session checked this issue against
origin/mainat2e50ce2ce5on 2026-11-05 and splits what is left into hand-filed children. The Outcome and the 2026-11-03 decision (keep thecommit-convention.ymlrung) are unchanged.Already delivered.
.claude/bugs.md(bugs 0.18.0) and the harness-config read of.claude/audit-pass.md(harness-config 3.0.0)..claude/source-control.mdand.claude/docs-naming.json. That covers the scope of the Automation Lanes claim from 2026-11-04 00:04Z..claude/ai-slop.json,.claude/attribution.json,.claude/audit-pass.mdand.claude/bugs.md.Why done-when #3 cannot be met as written. Its grep prints 262 non-CHANGELOG lines today. Many of them must stay:
plugins/bugs/scripts/concat-gotchas.sh:95,plugins/attribution/skills/audit/scripts/lib.sh:46andplugins/ai-slop/skills/audit/scripts/detect.sh:220are the user-global~/.claude/<name>layers, which ADR 0075 keeps until their own migration.plugins/source-control/reference/config-resolution.md:35names the retired file as one that is never read. The 2026-11-02 decision keeps lines of that kind.plugins/source-control/skills/babysit-prs/scripts/tests/test_babysit_risk.py:2551is a path-classification sample, not a read.Done-when #4 has the same problem. Its grep prints
plugins/multi-agent/scripts/yaml-subset.awk:28,221,281, the synced shared parser's description of its fence mode. No runtime reader in those paths reads a fenced block; the only callers of that mode areplugins/multi-agent/skills/setup/scripts/setup.sh:103,190,209, which report and migrate an old block.Corrected check. The issue is done when all of these hold:
The six names are absent from
.claude/.The grep below prints only:
The grep:
git grep -nP '(?<!~/)(?<!HOME/)(?<!\}/)\.claude/(source-control\.md|ai-slop\.json|attribution\.json|bugs\.md|docs-naming\.json|audit-pass\.md)' -- plugins lib scripts docs/contracts docs/conventions ':!*CHANGELOG*' ':!*.test.sh' ':!*/retirements.yaml'. It prints 97 lines today, and each child's own grep covers the lines that child removes.Every test file the children name passes under
scripts/run-test-file.sh.*.test.shfiles are left out of the grep because a regression test may write an old file to prove it is not read. Thecommit-convention.ymlrung inlib/resolve-convention-pattern.shstays.Children. Each one opens with
Refs #9737. Every plugin they touch has shipped a release after its YAML reader landed: bugs 0.14.0, harness-config 2.1.0 and 2.5.0, ai-slop 0.15.0, attribution 0.12.0, guardrails 0.61.0. The lane mounts.claude/read-only, so every deletion is in a host-run child.chore(bugs): delete this repository's retired .claude/bugs.md: host-run.chore: delete this repository's retired .claude/audit-pass.md: host-run.chore(ai-slop): drop the one-release .claude/ai-slop.json team read: lane. It also movesscripts/check-purged-em-dashes.shto the YAML, because that gate reads.claude/ai-slop.jsontoday (:115, :337).chore(guardrails): drop the convention resolver's one-release .claude/source-control.md reads: lane. It coverslib/resolve-convention-pattern.sh, its guardrails copy andblock-convention-violation.sh.chore(attribution): drop the one-release .claude/attribution.json team read: host-run. It changes a setup skill eval case, and it deletes.claude/attribution.json, plus.claude/ai-slop.jsonafter child 3 merges.chore(harness-config): drop the audit's one-release .claude/source-control.md lane read: lane. This one isaudit-engine.sh:1455-1510, which chore!: drop the one-release .claude config reads and the old config files #13042 did not cover.This issue closes when the six children have landed and the corrected check holds.
Filed as sub-issues: lane #13471 (ai-slop), #13472 (guardrails), #13473 (harness-config); host-run #13474 (bugs.md), #13475 (audit-pass.md), #13476 (attribution, blocked by #13471).
kyle-sexton commentedon Nov 5, 2026
Delivered: closing as completed.
Agent choice, not an owner answer.
Checked on
origin/mainon 2026-11-05:.claude/bugs.md), chore: delete this repository's retired .claude/audit-pass.md #13475 (.claude/audit-pass.md) and chore(attribution): drop the one-release .claude/attribution.json team read #13476 (attribution read and.claude/attribution.json). chore!: drop the one-release .claude config reads and the old config files #13042 had already removed.claude/source-control.mdand.claude/docs-naming.json.git ls-tree --name-only origin/main .claude/lists none of the six retired files (0 matches).~/reads, "retired / not read" prose, setup migration lines, eval samples and test fixtures.plugins/multi-agent/scripts/yaml-subset.awk:28,221,281. Those lines describe the shared parser's fence mode, whose only callers (plugins/multi-agent/skills/setup/scripts/setup.sh:103,190,209) migrate a retired file. No skill reads a team setting from a fenced block, which is this issue's Outcome. The status comment above recorded this before the slices were filed.ci-status, which runs the changed test files and the changelog-fragment check.This unblocks #5906.
kyle-sexton commentedon Nov 5, 2026
Closing on the delivery record above (issuecomment-6662786603): all six slices merged and the retired files are gone from main.
kyle-sexton commentedon Nov 5, 2026
Closing on the delivery record above (issuecomment-6662786603): all six slices merged and the retired files are gone from main.
kyle-sexton commentedon Nov 5, 2026
Closing on the delivery record above (issuecomment-6662786603): all six slices merged and the retired files are gone from main.