Purpose
Check-only setup under the Check-only carve-out (docs/PLUGIN-PHILOSOPHY.md "Setup is explicit
and repeatable" in the marketplace repository): this plugin's configuration surface contains no
writable artifact, so check resolves and verifies the skills root and prints the reconfiguration
guidance below, and no apply is offered because there is nothing it could conformingly write.
skills_root is a personal userConfig scalar owned by Claude Code's native configuration
surface. Claude Code prompts for it when the plugin is enabled, stores non-sensitive options in
user settings, and ignores pluginConfigs entries in a project's .claude/settings.json or
.claude/settings.local.json. Releases before 2.1.207 read those entries.
This skill never writes it.
Official contract, verified 2026-09-06 against Claude Code 2.1.263:
https://code.claude.com/docs/en/plugins-reference#user-configuration. Recheck when that page
stops naming the three settings sources it reads pluginConfigs from, or when a release note
names pluginConfigs scope.
Action routing: no argument or check runs the check. Non-interactive, never prompts.
check (read-only)
Read the rendered ${user_config.skills_root} value. Never inspect or edit settings files or
pluginConfigs directly. Resolve the candidate root, verify it, and report PASS/FAIL/INFO with one
remediation per FAIL. Do not modify anything.
- Resolve the root in order: configured
skills_root; else ${CLAUDE_PROJECT_DIR}/.claude/skills;
else repository directories containing child SKILL.md files. Report which rung resolved (INFO when
the zero-config default .claude/skills applies).
- Verify the resolved root exists and enumerates skills (child
SKILL.md files). PASS with the
directory and skill count; FAIL when it is absent or empty, with the resolution result in the
remediation line. Never claim success for a missing directory.
Reconfiguration guidance (printed by check; the operator applies it)
This skill has no legitimate write of its own. skills_root lives in Claude Code's native config
surface, which setup must not hand-edit (Check-only carve-out, native userConfig class), so
check closes by routing rather than writing:
- Skills not found / wrong root (FAIL): if the skills live somewhere other than the resolved root,
the personal
skills_root should point there. Reconfigure through the path below, then rerun check.
- Reconfiguring the personal option: through Claude Code's native flow, per the marketplace's
plugin-reconfiguration convention
(https://github.com/melodic-software/claude-code-plugins/blob/main/docs/conventions/plugin-reconfiguration/README.md,
which owns the verified-version record): interactive
/plugin configure skill-quality@<marketplace>
any time, or headless claude plugin install skill-quality@<marketplace> -s <scope> --config skills_root=<dir>
(repeatable per key) — against an already-installed plugin it prints already installed and
still writes the value. Do not uninstall to reconfigure: that drops this plugin's entire
stored pluginConfigs entry, resetting every option in the README's Options reference to its
manifest default. -s defaults to user; pass the scope claude plugin list reports, and run
from that project's directory for a project/local scope, or the write lands at a scope that
does not load. This skill never writes user settings or pluginConfigs.
- One-run override (no persistence): for a single run against a different root, the checker also
honors the
CHECK_SKILL_SKILLS_ROOT environment variable; do not persist that variable on the user's
behalf.
After any reconfiguration, rerun check in a fresh session and verify by invoking
/skill-quality:check via the Skill tool, without turning setup into the full quality audit. The
fresh session is not optional: the rendered ${user_config.skills_root} is injected when this skill
loads, so a same-session rerun still resolves the OLD root and would report a correct write as a
failure. Re-running check when the root resolves and enumerates changes nothing and reports
"already configured".
What this skill does NOT do
- Write the plugin cache, Claude Code user settings, or
pluginConfigs.
- Persist the
CHECK_SKILL_SKILLS_ROOT environment override.
- Perform the full skill-quality audit, or invent organization-specific paths, IDs, or env-var prefixes.
1---2name: setup-413description: Verify where this repository's skills live for skill-quality, the resolved skills_root, and explain how to change the personal skills_root option through Claude Code. Use when: 'set up skill-quality', 'configure skill-quality', or the checker reports a missing skills directory. Check-only: verifies, reports, and prints reconfiguration guidance; there is nothing setup may write here. Re-runnable and safe.4---56## Purpose78Check-only setup under the Check-only carve-out (`docs/PLUGIN-PHILOSOPHY.md` "Setup is explicit9and repeatable" in the marketplace repository): this plugin's configuration surface contains no10writable artifact, so `check` resolves and verifies the skills root and prints the reconfiguration11guidance below, and no `apply` is offered because there is nothing it could conformingly write.12`skills_root` is a personal `userConfig` scalar owned by Claude Code's native configuration13surface. Claude Code prompts for it when the plugin is enabled, stores non-sensitive options in14user settings, and ignores `pluginConfigs` entries in a project's `.claude/settings.json` or15`.claude/settings.local.json`. Releases before 2.1.207 read those entries.16This skill never writes it.1718Official contract, verified 2026-09-06 against Claude Code 2.1.263:19<https://code.claude.com/docs/en/plugins-reference#user-configuration>. Recheck when that page20stops naming the three settings sources it reads `pluginConfigs` from, or when a release note21names `pluginConfigs` scope.2223Action routing: no argument or `check` runs the check. Non-interactive, never prompts.2425## `check` (read-only)2627Read the rendered `${user_config.skills_root}` value. Never inspect or edit settings files or28`pluginConfigs` directly. Resolve the candidate root, verify it, and report PASS/FAIL/INFO with one29remediation per FAIL. Do not modify anything.30311. **Resolve the root** in order: configured `skills_root`; else `${CLAUDE_PROJECT_DIR}/.claude/skills`;32 else repository directories containing child `SKILL.md` files. Report which rung resolved (INFO when33 the zero-config default `.claude/skills` applies).342. **Verify** the resolved root exists and enumerates skills (child `SKILL.md` files). PASS with the35 directory and skill count; FAIL when it is absent or empty, with the resolution result in the36 remediation line. Never claim success for a missing directory.3738## Reconfiguration guidance (printed by `check`; the operator applies it)3940This skill has no legitimate write of its own. `skills_root` lives in Claude Code's native config41surface, which setup must not hand-edit (Check-only carve-out, native `userConfig` class), so42`check` closes by routing rather than writing:4344- **Skills not found / wrong root (FAIL):** if the skills live somewhere other than the resolved root,45 the personal `skills_root` should point there. Reconfigure through the path below, then rerun `check`.46- **Reconfiguring the personal option:** through Claude Code's native flow, per the marketplace's47 plugin-reconfiguration convention48 (<https://github.com/melodic-software/claude-code-plugins/blob/main/docs/conventions/plugin-reconfiguration/README.md>,49 which owns the verified-version record): interactive `/plugin configure skill-quality@<marketplace>`50 any time, or headless `claude plugin install skill-quality@<marketplace> -s <scope> --config skills_root=<dir>`51 (repeatable per key) — against an already-installed plugin it prints `already installed` and52 still writes the value. Do **not** uninstall to reconfigure: that drops this plugin's entire53 stored `pluginConfigs` entry, resetting every option in the README's Options reference to its54 manifest default. `-s` defaults to `user`; pass the scope `claude plugin list` reports, and run55 from that project's directory for a `project`/`local` scope, or the write lands at a scope that56 does not load. This skill never writes user settings or `pluginConfigs`.57- **One-run override (no persistence):** for a single run against a different root, the checker also58 honors the `CHECK_SKILL_SKILLS_ROOT` environment variable; do not persist that variable on the user's59 behalf.6061After any reconfiguration, rerun `check` **in a fresh session** and verify by invoking62`/skill-quality:check` via the Skill tool, without turning setup into the full quality audit. The63fresh session is not optional: the rendered `${user_config.skills_root}` is injected when this skill64loads, so a same-session rerun still resolves the OLD root and would report a correct write as a65failure. Re-running `check` when the root resolves and enumerates changes nothing and reports66"already configured".6768## What this skill does NOT do6970- Write the plugin cache, Claude Code user settings, or `pluginConfigs`.71- Persist the `CHECK_SKILL_SKILLS_ROOT` environment override.72- Perform the full skill-quality audit, or invent organization-specific paths, IDs, or env-var prefixes.