Validate LCARS installation and diagnose issues
Run installation checks and surface actionable fixes.
When user runs /lcars:setup:
sh ${CLAUDE_PLUGIN_ROOT}/bin/python-shim.sh ${CLAUDE_PLUGIN_ROOT}/lib/setup.py
| Check | Status | Detail |
|---|---|---|
| python | pass/fail/warn | version and path |
| dirs | pass/fail | data directory status |
| scores | pass/fail/warn | scoring ledger status |
| thresholds | pass/fail/warn | config validity |
| imports | pass/fail | module availability |
| scoring | pass/fail/warn | pipeline test result |
| tool-factory | pass/fail/warn | MCP server config |
| hybrid | pass/info |
| LLM judge availability |
brew install [email protected]sudo apt install python3sudo dnf install python3winget install Python.Python.3.12The directory ~/.claude/lcars/ is created automatically on first hook run. If missing:
claude mcp list or check ~/.claude/plugins/)hooks.json is loaded)data/thresholds.json ships with the pluginlib/*.py modules)The tool-factory MCP server requires mcp and anyio Python packages. These are not bundled with the plugin because they are pip-installable packages that depend on the user's Python environment.
If the check reports missing packages, offer to install them. Detect the best available installer:
uv: uv pip install --system -r ${CLAUDE_PLUGIN_ROOT}/tool_factory/requirements.txt (or without --system if in a venv)pip: pip install -r ${CLAUDE_PLUGIN_ROOT}/tool_factory/requirements.txtpip3: pip3 install -r ${CLAUDE_PLUGIN_ROOT}/tool_factory/requirements.txtIf the system Python is externally managed (Debian/Ubuntu) and --system fails, suggest:
uv pip install --system --break-system-packages -r ${CLAUDE_PLUGIN_ROOT}/tool_factory/requirements.txtpip install --user -r ${CLAUDE_PLUGIN_ROOT}/tool_factory/requirements.txtAfter installing, the tool-factory server will connect on next plugin reload (/reload-plugins).
Hybrid scoring uses a prompt-type hook on Stop to evaluate responses via Claude Code's own auth. No separate API key needed. If the check reports "deterministic-only," verify that hooks/hooks.json contains a prompt-type hook in the Stop event.
Present as a compact diagnostic summary. No preambles. Data first.