Repository navigation
Labels
priority: mediumReal value, no hard deadline; normal backlog flow.Real value, no hard deadline; normal backlog flow.status: readyTriaged, unblocked, and fully specified; eligible to pick up.Triaged, unblocked, and fully specified; eligible to pick up.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
- 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 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
- 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.yamlcarries every value of.claude/docs-naming.jsonandscripts/check-convention-yaml.sh --checkexits 0 againstplugins/docs-naming/schemas/docs-naming.schema.json. -
scripts/run-test-file.sh plugins/docs-naming/scripts/resolve-config.test.shexits 0. -
scripts/run-test-file.sh plugins/docs-naming/skills/setup/scripts/setup-apply.test.shexits 0. -
scripts/run-test-file.sh scripts/check-docs-naming.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.
- No skill body tells an agent to read or write the old location:
git grep -nfor it underplugins/docs-naming,plugins/docs-hygieneprints 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/mainexits 0.
Out of scope
- Deleting this repository's old file or block (the cleanup slice under Migrate per-skill .claude config files to userConfig, one conventions doc, or the cascade (ADR 0018) #5906).
Metadata
Metadata
Assignees
Labels
priority: mediumReal value, no hard deadline; normal backlog flow.Real value, no hard deadline; normal backlog flow.status: readyTriaged, unblocked, and fully specified; eligible to pick up.Triaged, unblocked, and fully specified; eligible to pick up.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
No fields configured for Task.
Activity
melodic-automation-lanes commentedon Oct 24, 2026
The work-resolve-issue lane stopped partway through this issue and needs a person.
Why, in the run's own words:
Run: https://github.com/melodic-software/claude-code-plugins/actions/runs/40127088052
To retry, remove
needs-humanand addagent-readyagain.kyle-sexton commentedon Oct 26, 2026
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-humancame 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-readystays off so the issue lane does not race the build.github-actions commentedon Oct 26, 2026
Intake triage did not triage this issue after 2 dispatches, so the sweep no longer dispatches it and labeled it needs-triage for a maintainer. Triage it by hand, and read the runs for why intake did not:
github-actions commentedon Oct 26, 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: move this repository's docs-naming and docs-hygiene settings from
.claude/docs-naming.jsontodocs/conventions/docs-naming.yaml. The plugin ships a schema for the YAML. Readers fall back to the old file for one release when the YAML is absent. The setup skill writes the YAML. The old file's deletion is out of scope.The issue is specified, and its done-when items can be checked. No open issue duplicates it. Earlier comments say the fix edits workflow files, which the lanes App can't push, so the owner's machine builds it. That is a delivery detail and doesn't change the scope.
Automated triage, applied by the lanes App.
melodic-automation-lanes commentedon Oct 30, 2026
The work-resolve-issue lane stopped on this issue (
patch-protected-path): the change needs a path the issue lane may not push, which a maintainer session builds by hand.It added
host-runand removedagent-ready: an agent run on a host builds it, and it waits on no decision from a person.In the run's words:
What the run says it did not do:
Run: https://github.com/melodic-software/claude-code-plugins/actions/runs/41015914172
To hand it back to the lane, remove
host-runand addagent-readyagain.kyle-sexton commentedon Oct 30, 2026
Host run. Built the docs-naming YAML settings move on the host, including the
.github/workflows/pr-require-checks.ymlpath-filter edit the issue lane may not push, and opened #11197.What ran (Claude Code 2.1.314):
refactor/docs-naming-yaml-settings-9731. The work was done in a new worktree onhost-run/9731-docs-naming-yaml, withorigin/mainmerged in. A merge conflict in the config-cascade doc was resolved by moving thedocs-namingrow change todocs/contracts/config-cascade/README.md, where that table now lives.plugins/docs-naming/lib/yaml-subset.awk(scripts/sync-shared-copies.sh --checkhad reported drift), markedlib/layer-yaml.shexecutable (theexec-bitcheck had failed), and reworded two citations of the retireddocs-hygiene.jsonthat the pre-push stale-path guard flagged.docs/conventions/docs-naming.yaml, added to the shell paths filter that startsscripts/check-docs-naming.sh --check. No permissions, tokens, secrets or action pins changed.actionlintis clean.Acceptance criteria:
docs/conventions/docs-naming.yamlcarries every value of.claude/docs-naming.json: pass.resolve-config.sh resolvegives identical output for a repo that holds only the old JSON and for this repo's YAML.scripts/check-convention-yaml.sh --checkexits 0 (12 files validate).scripts/run-test-file.shonresolve-config.test.sh,setup-apply.test.shandscripts/check-docs-naming.test.sh: pass, each exits 0.setup-check.test.shalso exits 0.git grep -n '\.claude/docs-naming' -- plugins/docs-naming plugins/docs-hygieneprints only compatibility-read code, tests and test fixtures, and changelog lines: pass.scripts/check-changelog-fragments.sh --check-required origin/mainexits 0: pass.scripts/check-affected.sh --testson the committed head: green (14 passed, 5 skipped). The pre-push hook passed on the final head.PR: #11197. The body has
Closes #9731. It is marked ready: the code and security reviews run in CI,verifyis disabled bypre_ready, and CI started on the head. It is not merged and not armed.Target labels: add none; remove host-run.