Purpose
Confirm how /education:quiz-me offers comprehension checks, where generated quiz reports are
stored, and where /education:teach roots its learning workspaces, without editing Claude Code
settings. quiz_policy, report_library_dir, and workspace_root are native userConfig
values. Claude Code prompts for them when the plugin is enabled and owns persistence.
Check-only per the uniform setup contract's userConfig-only carve-out: this plugin's entire
configuration surface is native userConfig, so check (the default and only action) verifies
and reports, and reconfiguration routes through Claude Code's native flow, an apply here
would have nothing to write except the pluginConfigs setup must never touch. Non-interactive:
report and recommend; never block on a question.
Official contract: https://code.claude.com/docs/en/plugins-reference#user-configuration.
check (read-only, the only action)
- Read the rendered
${user_config.quiz_policy}, ${user_config.report_library_dir}, and
${user_config.workspace_root} values from this skill. Do not inspect or edit
settings.json, settings.local.json, managed settings, or pluginConfigs directly.
- Explain the effective
quiz_policy:
off, quiz-me never offers a post-work quiz;
on-request (default). Offers only when asked;
always, offers after each completed change;
above-threshold, offers when the change is large;
- any other value is treated as
on-request at runtime.
- Explain the effective report library root:
- empty or unexpanded
report_library_dir, reports live under the plugin's own persistent
data directory;
- configured directory outside the consuming project, reports and recall search that checkout;
- configured directory that is
${CLAUDE_PROJECT_DIR} or nested under it, quiz-me's
repo-tree guard refuses it and falls back to ${CLAUDE_PLUGIN_DATA} (same effective root
as unset).
- Explain the effective teach workspace root:
- empty or unexpanded
workspace_root. FIRST read the rung-3 pointer file
${CLAUDE_PLUGIN_DATA}/workspace-root: when present and it names an existing directory,
report THAT path as the effective topic-mode root (it persists a prior one-time ask, and
also records the migration-offer outcome); when absent or invalid, report the documented
ladder (project declaration → this setting → one-time ask → OS Documents Claude Learning/
home for topic mode → plugin data); codebase-mode workspaces stay under plugin data by
default either way (their lessons can embed private-repo snippets; Documents roots are
often cloud-synced);
- configured directory outside the consuming project, both modes root there;
- configured directory that is
${CLAUDE_PROJECT_DIR} or nested under it, teach's
repo-tree guard refuses it (a committed root requires a declaration in the project's own
CLAUDE.md or rules), falling back to the rest of the ladder.
- State the tradeoff instead of asking: machine-private plugin data (default) versus a dedicated
corpus checkout for long-lived recall across machines. For a repository-backed library,
inspect the consumer's artifact conventions and recommend one portable location. Never
recommend a machine-absolute team path.
- To adopt a recommended value, reconfigure through Claude Code's native flow per the 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 education@<marketplace> any time;
headless, rerun claude plugin install education@<marketplace> -s <scope> --config quiz_policy=<value>
(repeatable per key) — against an already-installed plugin it prints already installed and still writes the
value. Never uninstall to reconfigure: that drops the whole stored pluginConfigs entry, resetting every
option to its manifest default. -s defaults to user; pass the scope claude plugin list reports, and run
project/local writes from that project's directory, or they land at a scope that does not load.
- Tell the user to rerun
check after reconfiguration in a fresh session — rendered values are injected at
skill load, so a same-session rerun still reports the OLD values — then report the observed effective settings.
Output
Report the current effective quiz_policy, the effective report-library root, the effective
teach workspace root, any recommended changes, and whether the user must reconfigure through
Claude Code. Do not claim a configuration change until a rerun observes the new rendered values.
Boundaries
- Do not start a teach, explain, or quiz session; use
/education:teach, /education:explain,
or /education:quiz-me.
- Do not write the plugin cache, Claude Code user settings, or
pluginConfigs, per the uniform
setup contract (docs/PLUGIN-PHILOSOPHY.md "Setup is explicit and repeatable" in the
marketplace repository).
- Do not invent an organization, repository, marketplace, or environment-variable prefix.
1---2name: setup-113description: Validate the education plugin's quiz, report-library, and teach workspace-root configuration and explain how to change it through Claude Code's plugin configuration prompt. Use when: 'set up education', 'configure education', 'education setup', quiz offers feel wrong, report recall cannot find prior quizzes, or teach workspaces land somewhere unexpected. Actions: check (read-only verification, default and only action. This plugin's entire configuration is native userConfig, so there is nothing an apply could write).4---56## Purpose78Confirm how `/education:quiz-me` offers comprehension checks, where generated quiz reports are9stored, and where `/education:teach` roots its learning workspaces, without editing Claude Code10settings. `quiz_policy`, `report_library_dir`, and `workspace_root` are native `userConfig`11values. Claude Code prompts for them when the plugin is enabled and owns persistence.1213Check-only per the uniform setup contract's userConfig-only carve-out: this plugin's entire14configuration surface is native `userConfig`, so `check` (the default and only action) verifies15and reports, and reconfiguration routes through Claude Code's native flow, an `apply` here16would have nothing to write except the `pluginConfigs` setup must never touch. Non-interactive:17report and recommend; never block on a question.1819Official contract: <https://code.claude.com/docs/en/plugins-reference#user-configuration>.2021## `check` (read-only, the only action)22231. Read the rendered `${user_config.quiz_policy}`, `${user_config.report_library_dir}`, and24 `${user_config.workspace_root}` values from this skill. Do not inspect or edit25 `settings.json`, `settings.local.json`, managed settings, or `pluginConfigs` directly.262. Explain the effective `quiz_policy`:27 - `off`, quiz-me never offers a post-work quiz;28 - `on-request` (default). Offers only when asked;29 - `always`, offers after each completed change;30 - `above-threshold`, offers when the change is large;31 - any other value is treated as `on-request` at runtime.323. Explain the effective report library root:33 - empty or unexpanded `report_library_dir`, reports live under the plugin's own persistent34 data directory;35 - configured directory outside the consuming project, reports and recall search that checkout;36 - configured directory that is `${CLAUDE_PROJECT_DIR}` or nested under it, quiz-me's37 repo-tree guard refuses it and falls back to `${CLAUDE_PLUGIN_DATA}` (same effective root38 as unset).394. Explain the effective teach workspace root:40 - empty or unexpanded `workspace_root`. FIRST read the rung-3 pointer file41 `${CLAUDE_PLUGIN_DATA}/workspace-root`: when present and it names an existing directory,42 report THAT path as the effective topic-mode root (it persists a prior one-time ask, and43 also records the migration-offer outcome); when absent or invalid, report the documented44 ladder (project declaration → this setting → one-time ask → OS Documents `Claude Learning/`45 home for topic mode → plugin data); codebase-mode workspaces stay under plugin data by46 default either way (their lessons can embed private-repo snippets; Documents roots are47 often cloud-synced);48 - configured directory outside the consuming project, both modes root there;49 - configured directory that is `${CLAUDE_PROJECT_DIR}` or nested under it, teach's50 repo-tree guard refuses it (a committed root requires a declaration in the project's own51 CLAUDE.md or rules), falling back to the rest of the ladder.525. State the tradeoff instead of asking: machine-private plugin data (default) versus a dedicated53 corpus checkout for long-lived recall across machines. For a repository-backed library,54 inspect the consumer's artifact conventions and recommend one portable location. Never55 recommend a machine-absolute team path.566. To adopt a recommended value, reconfigure through Claude Code's native flow per the plugin-reconfiguration convention57 (<https://github.com/melodic-software/claude-code-plugins/blob/main/docs/conventions/plugin-reconfiguration/README.md>,58 which owns the verified-version record): interactive `/plugin configure education@<marketplace>` any time;59 headless, rerun `claude plugin install education@<marketplace> -s <scope> --config quiz_policy=<value>`60 (repeatable per key) — against an already-installed plugin it prints `already installed` and still writes the61 value. Never uninstall to reconfigure: that drops the whole stored `pluginConfigs` entry, resetting every62 option to its manifest default. `-s` defaults to `user`; pass the scope `claude plugin list` reports, and run63 `project`/`local` writes from that project's directory, or they land at a scope that does not load.647. Tell the user to rerun `check` after reconfiguration in a **fresh session** — rendered values are injected at65 skill load, so a same-session rerun still reports the OLD values — then report the observed effective settings.6667## Output6869Report the current effective `quiz_policy`, the effective report-library root, the effective70teach workspace root, any recommended changes, and whether the user must reconfigure through71Claude Code. Do not claim a configuration change until a rerun observes the new rendered values.7273## Boundaries7475- Do not start a teach, explain, or quiz session; use `/education:teach`, `/education:explain`,76 or `/education:quiz-me`.77- Do not write the plugin cache, Claude Code user settings, or `pluginConfigs`, per the uniform78 setup contract (`docs/PLUGIN-PHILOSOPHY.md` "Setup is explicit and repeatable" in the79 marketplace repository).80- Do not invent an organization, repository, marketplace, or environment-variable prefix.