Skip to content

chore: drop the one-release .claude config reads and this repository's old config files #9737

Closed
6 of 6 issues completed

Description

@kyle-sexton

Parent

Refs #5906

Depends on

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 at plugins/<plugin>/schemas/<concern>.schema.json (Decision 6), checked in CI by
    scripts/check-convention-yaml.sh (Decision 7). Script readers use the shared reader lib/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/ and docs/conventions/ in this repository; each plugin's
    retirements.yaml where 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 -n on the version heading prints it).
  • git ls-tree --name-only HEAD .claude/ lists none of source-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 scripts prints only CHANGELOG and retirement-record lines.
  • git grep -n "yaml config" -- plugins/multi-agent/scripts plugins/review/skills/explain-change/scripts prints nothing.
  • Every test file the migration slices named still passes under scripts/run-test-file.sh.
  • scripts/check-changelog-fragments.sh --check-required origin/main exits 0.

Activity

  1. added theissue type on Oct 24, 2026
  2. added
    priority: mediumReal value, no hard deadline; normal backlog flow.
    status: readyTriaged, unblocked, and fully specified; eligible to pick up.
    on Oct 24, 2026
  3. 69 remaining items

  4. kyle-sexton commented on Nov 4, 2026

    @kyle-sexton
    MemberAuthor

    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.

  5. kyle-sexton commented on Nov 5, 2026

    @kyle-sexton
    MemberAuthor

    Status.
    Agent choice, not an owner answer.
    The issue-triage session checked this issue against origin/main at 2e50ce2ce5 on 2026-11-05 and splits what is left into hand-filed children. The Outcome and the 2026-11-03 decision (keep the commit-convention.yml rung) are unchanged.

    Already delivered.

    • #12554 dropped the bugs team read of .claude/bugs.md (bugs 0.18.0) and the harness-config read of .claude/audit-pass.md (harness-config 3.0.0).
    • #13042, merged 2026-11-04, dropped the source-control and docs-naming one-release reads and deleted .claude/source-control.md and .claude/docs-naming.json. That covers the scope of the Automation Lanes claim from 2026-11-04 00:04Z.
    • Four of the six files are still tracked: .claude/ai-slop.json, .claude/attribution.json, .claude/audit-pass.md and .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:46 and plugins/ai-slop/skills/audit/scripts/detect.sh:220 are the user-global ~/.claude/<name> layers, which ADR 0075 keeps until their own migration.
    • plugins/source-control/reference/config-resolution.md:35 names 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:2551 is a path-classification sample, not a read.
    • Test fixtures write the old file into a temporary repository, some of them to prove the file is ignored.

    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 are plugins/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:

      • lines that name an old path as retired, never read or never trusted;
      • setup lines that report or migrate a retired file;
      • eval grader samples;
      • path-classification samples.

      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.sh files are left out of the grep because a regression test may write an old file to prove it is not read. The commit-convention.yml rung in lib/resolve-convention-pattern.sh stays.

    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.

    1. chore(bugs): delete this repository's retired .claude/bugs.md: host-run.
    2. chore: delete this repository's retired .claude/audit-pass.md: host-run.
    3. chore(ai-slop): drop the one-release .claude/ai-slop.json team read: lane. It also moves scripts/check-purged-em-dashes.sh to the YAML, because that gate reads .claude/ai-slop.json today (:115, :337).
    4. chore(guardrails): drop the convention resolver's one-release .claude/source-control.md reads: lane. It covers lib/resolve-convention-pattern.sh, its guardrails copy and block-convention-violation.sh.
    5. 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.json after child 3 merges.
    6. chore(harness-config): drop the audit's one-release .claude/source-control.md lane read: lane. This one is audit-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).

  6. kyle-sexton commented on Nov 5, 2026

    @kyle-sexton
    MemberAuthor

    Delivered: closing as completed.
    Agent choice, not an owner answer.

    Checked on origin/main on 2026-11-05:

    This unblocks #5906.

  7. kyle-sexton commented on Nov 5, 2026

    @kyle-sexton
    MemberAuthor

    Closing on the delivery record above (issuecomment-6662786603): all six slices merged and the retired files are gone from main.

  8. kyle-sexton commented on Nov 5, 2026

    @kyle-sexton
    MemberAuthor

    Closing on the delivery record above (issuecomment-6662786603): all six slices merged and the retired files are gone from main.

  9. kyle-sexton commented on Nov 5, 2026

    @kyle-sexton
    MemberAuthor

    Closing on the delivery record above (issuecomment-6662786603): all six slices merged and the retired files are gone from main.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    priority: mediumReal value, no hard deadline; normal backlog flow.work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.

    Type

    Fields

    Work status

    confirmed

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions