"Validate the discipline plugin's configuration — the posture-batch overlay and do-your-research-deep's verification depth — and explain how to change it through Claude Code's plugin configuration prompt. Use when: 'set up discipline', 'configure discipline', 'discipline setup', 'is discipline configured', 'set up re-anchor', 'configure re-anchor', 're-anchor setup', 'is re-anchor configured', 'what's in my posture batch', 'what's my deep-research depth', or you want to adjust which correctors the batch runs or how deeply the research fan-out verifies. 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)."
Resources
1Install
npx skillscat add melodic-software/claude-code-plugins/plugins-discipline-skills-setup Install via the SkillsCat registry.
Variables
Batch exclude: ${user_config.batch_exclude}
Batch promote: ${user_config.batch_promote}
Batch demote: ${user_config.batch_demote}
Deep-research verification depth: ${user_config.research_deep_verification}
Purpose
Report discipline's effective configuration without editing Claude Code settings.
The plugin's whole configuration surface is native userConfig: threesweep-all batch-overlay options (batch_exclude / batch_promote /batch_demote) plus do-your-research-deep's verification-depth default
(research_deep_verification). Claude Code prompts for them when the plugin is
enabled, stores non-sensitive options in user settings, and ignores pluginConfigs
entries in project and local settings on current releases (>= 2.1.207).
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 four rendered
${user_config.…}values from the Variables block
above (the threebatch_*overlay options andresearch_deep_verification). Do
not inspect or editsettings.json,settings.local.json, managed settings, orpluginConfigsdirectly. - Empty or unexpanded is unset. An option the user never configured does not
reliably render empty — the literal${user_config.…}token can survive (a
zero-config or headless install). Treat BOTH an empty value AND a surviving
literal placeholder as unset (the key's own default applies); never read the
literal token as a value. - For each set batch option, split on commas and report the parsed corrector names,
and the net effect:batch_excludedrops those correctors from the batch,batch_promoteruns those situational correctors every session,batch_demote
gates those core correctors on relevance. With all three unset, report that the
batch runs the tiers exactly as the correctors declare them. - Validate the batch names against what is installed. Glob the sibling corrector
directories under this plugin'sskills/and, for each name in an overlay, report:- a name in
batch_excludeorbatch_demotethat matches no installed corrector —
FAIL (typo or removed corrector); remediation: fix via the plugin configuration
prompt; - the same name in
batch_excludeand inbatch_promote/batch_demote—
contradictory; report it; batch_promoteis situational-only (readmetadata.discipline-batch):
promote only situational names. A promote naming anever-tier orcore
corrector, or a name that matches no installed corrector, is a visible
warning and is not promoted — never stays out of the batch, core stays
core, unknown is ignored. Do not report these as successful promotes.- a
batch_demotenaming an already-situational corrector — a no-op; INFO.
- a name in
- Report the deep-research verification depth.
research_deep_verificationsetsdo-your-research-deep's default depth. Report the effective value:tiered
(fan subagents out only over load-bearing items) orfull(subagent-verify every
item). An unset value, a surviving literal placeholder, OR any unrecognized string
(not exactlytieredorfull) all resolve to thetiereddefault — report an
unrecognized value as a WARN (typo; remediation: fix it via the plugin
configuration prompt) that still falls back to tiered, never a hard failure. Note
that an invocation argument todo-your-research-deepoverrides this default per
invocation. - Full-batch prerequisite. INFO: the batch's mid-session pass dispatches
conversation-inheriting fork subagents, which need fork-spawning enabled
(CLAUDE_CODE_FORK_SUBAGENT, which a server-side staged rollout can also enable —
https://code.claude.com/docs/en/sub-agents#fork-the-current-conversation).sweep-allpreflights this itself and degrades when the fan-out cannot inherit —
that runbook owns the behavior; report the prerequisite here only so an unavailable
fan-out reads as expected rather than as a misconfiguration, and do not restate what
the degraded pass does. - To change or clear any value, direct the user to Claude Code's plugin configuration
prompt fordiscipline(interactive/plugin configure discipline@<marketplace>any time;
headless--configapplies only on a fresh install — uninstall then reinstall to
reconfigure). Claude Code owns persistence. Do not hand-edit anypluginConfigskey.
Gotchas
- No
apply. The only thing an apply could write ispluginConfigs, which the
setup contract forbids a skill from touching. Reconfiguration is the native/plugin configure discipline@<marketplace>flow. - Unexpanded token is not a value. A surviving literal
${user_config.…}means
unset (the key's default applies) — parsing it as a corrector name or a depth value
is the failure this check exists to prevent.