From learning-loop
Runs health checks on a learning-loop installation, presents issues with severity, and offers per-fix remediation with auto-runnable or manual options. Re-runs each check after fixing to confirm resolution.
How this skill is triggered — by the user, by Claude, or both
Slash command
/learning-loop:doctorThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
A read-mostly diagnostic. Runs the health-check library, presents the result, and walks you through fixes one at a time.
A read-mostly diagnostic. Runs the health-check library, presents the result, and walks you through fixes one at a time.
PLUGIN, PLUGIN_DATA, VAULT are injected by the session-start hook. If absent:
node PLUGIN/scripts/resolve-paths.mjs
node PLUGIN/scripts/health-check.mjs --full --json
Parse the JSON. The schema:
{
"ts": "...",
"ran": "full",
"checks": [
{ "id", "name", "status": "ok" | "fail", "severity": "ok" | "warn" | "fail", "detail", "fix" }
]
}
Format the dashboard like this:
learning-loop doctor
====================
Health checks (N passed, M warnings, F issues):
✓ Node.js v25.9.0
✓ Claude Code 2.1.145
⚠ ~/.local/bin on PATH not on PATH
→ Add to your shell rc: export PATH="$HOME/.local/bin:$PATH"
✗ ll-search binary missing at /Users/.../bin/ll-search
→ Run /learning-loop:init to re-download the binary
…
F issues, M warnings.
Icon rules:
✓ when status === "ok"⚠ when status === "fail" && severity === "warn"✗ when status === "fail" && severity === "fail"Print ✓ All checks pass. Nothing to fix. and exit.
For each check with status === "fail":
✗ <name>: <detail>
Suggested fix: <fix>
AskUserQuestion:
Fix this (auto-runnable) — only when the fix is in the auto-runnable table belowRun the suggested command and tell me when done — when the fix is manualSkip — I'll handle this laterStop the doctor session — exits cleanlynode PLUGIN/scripts/health-check.mjs --full --json and find the same check by its id field. Report:
✓ Fixed (new state: <detail>) if the check now returns ok⚠ Still warning: <new detail> if it improved to warn✗ Still failing: <new detail> if it didn't help (don't loop — move on)Done? [Y]es / [N]o. On Yes, re-run node PLUGIN/scripts/health-check.mjs --full --json and find the same check by its id field, then report as above.| Check id | Action |
|---|---|
binary-exists, binary-version-file, binary-runs | node PLUGIN/scripts/download-binary.mjs |
shims-exist | node PLUGIN/scripts/install-shims.mjs --install |
vault-folders | mkdir -p each missing folder under <VAULT> |
vault-system-files | Write default content from PLUGIN/templates/persona.md and PLUGIN/templates/capture-rules.md |
search-index-exists | ll-search index |
nli-socket-fresh (stale file) | rm <path> |
watch-daemon-status (stale pidfile) | rm <pidfile> then ll-watch start |
abi-drift | npm rebuild in the affected plugin directory |
Manual-only fixes (user must run; doctor reports the command):
episodic-memory-installed, learning-loop-installed → claude plugin install <name>@<marketplace>local-bin-on-path → user adds to their shell rcclaudemd-section-present, claudemd-section-current → defer to /learning-loop:init Phase 5vault-path → defer to /learning-loop:init Phase 2plugin-cache-version-present → claude plugin install …node-version, claude-version → run install.sh or upgrade manuallyAfter all checks have been processed, print:
Doctor summary
==============
Fixed: F_fixed
Skipped: F_skipped
Manual: F_manual (commands above)
Now-warn: F_warn (started fail, now warn)
Then write the final result via:
node PLUGIN/scripts/health-check.mjs --full --json > <PLUGIN_DATA>/last-health.json
(One last cache refresh so the next session-start detector reflects the post-doctor state.)
✓, ⚠, ✗, →). No ASCII fallback.install.sh, to verify setup⚠ learning-loop: N issues — run /learning-loop:doctornpx claudepluginhub robinslange/learning-loop --plugin learning-loopRuns comprehensive diagnostics on Claude Code environment: plugins, settings, hooks, MCP servers. Identifies issues, supports --fix and --verbose.
Audits .claude/ structure, naming, hooks, and plugin versions. Runs hygiene and sync checks, outputs health report with fix commands.
Runs health diagnostics on OrchestKit installation, validating plugins, skills, agents, hooks, permissions, schemas, coordination, memory, MCP status, and Claude Code version. Use for troubleshooting plugin issues.