Skip to content

refactor(docs-naming): move the .claude/docs-naming.json settings to docs/conventions/docs-naming.yaml #9731

Open

Description

@kyle-sexton

Parent

Refs #5906

Depends on

  • none: on the frontier now

Outcome

The docs-naming, docs-hygiene settings this repository keeps in .claude/docs-naming.json resolve from docs/conventions/docs-naming.yaml,
validated by a schema the plugin ships. The old location is read only when the YAML is absent, for one release.
The setup skill, if the plugin has one, writes the YAML.

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

  • The docs-naming audit, gate generator and realign readers, plugins/docs-naming/reference/config.md, docs-hygiene's readers, scripts/check-docs-naming.sh.

Done when

  • docs/conventions/docs-naming.yaml carries every value of .claude/docs-naming.json and scripts/check-convention-yaml.sh --check exits 0 against plugins/docs-naming/schemas/docs-naming.schema.json.
  • scripts/run-test-file.sh plugins/docs-naming/scripts/resolve-config.test.sh exits 0.
  • scripts/run-test-file.sh plugins/docs-naming/skills/setup/scripts/setup-apply.test.sh exits 0.
  • scripts/run-test-file.sh scripts/check-docs-naming.test.sh exits 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.
  • No skill body tells an agent to read or write the old location: git grep -n for it under plugins/docs-naming, plugins/docs-hygiene prints only compatibility-read code, its tests and changelog lines.
  • The PR body lists each migrated setting with its new home and schema.
  • scripts/check-changelog-fragments.sh --check-required origin/main exits 0.

Out of scope

Activity

  1. added theissue type on Oct 24, 2026
  2. added
    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.
    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.
    and removed
    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.
    on Oct 24, 2026
  3. melodic-automation-lanes commented on Oct 24, 2026

    @melodic-automation-lanes
    Contributor

    The work-resolve-issue lane stopped partway through this issue and needs a person.

    Why, in the run's own words:

    The run reported done, but apply-issue-patch did not commit its patch (patch-protected-path): the patch changes a path the issue lane may not push: a workflow, a CODEOWNERS file, submodule config or a settings file. The run's log names the path or check.

    Run: https://github.com/melodic-software/claude-code-plugins/actions/runs/40127088052

    To retry, remove needs-human and add agent-ready again.

  4. kyle-sexton commented on Oct 26, 2026

    @kyle-sexton
    MemberAuthor

    Builder: the Automation Lanes session builds this from the owner's machine. The fix edits .github/workflows, which the lanes App cannot push (patch-rules.json:3); that boundary stays. Its PR closes this issue. needs-human came off under the owner's 2026-10-26 rule (a person only for an intent or vision change, an implementation finding that alters intent or the primary design, or a HIGH/CRITICAL security issue); none applies. agent-ready stays off so the issue lane does not race the build.

  5. removed
    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.
    on Oct 26, 2026
  6. github-actions commented on Oct 26, 2026

    @github-actions
    Contributor

    The triage sweep dispatched intake triage for this issue (attempt 2 of 2).

  7. github-actions commented on Oct 26, 2026

    @github-actions
    Contributor

    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: move the docs-naming and docs-hygiene settings from .claude/docs-naming.json to docs/conventions/docs-naming.yaml. A schema the plugin ships validates the YAML. Readers fall back to the old file for one release when the YAML is absent. The setup skill writes the YAML. Nothing is missing, since the outcome, the decisions and the done-when checks are explicit. I found no likely duplicates among the open issues. The earlier comments say the fix touches workflow paths and is being built from the owner's machine.

    Automated triage, applied by the lanes App.

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.status: readyTriaged, unblocked, and fully specified; eligible to pick up.work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.

    Type

    Fields

    No fields configured for Task.

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions