Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/robinslange/learning-loop/doctornpx skills add robinslange/learning-loop --skill doctorgit clone --depth 1 https://github.com/robinslange/learning-loopWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00058 | $0.02768 |
| Opus 5 | $0.00029 | $0.01384 |
| Sonnet 5 | $0.00012 | $0.00554 |
| Haiku 4.5 | $0.00006 | $0.00277 |
Grade A, and why
doctor scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 214 lines — stays where its author put it; the contents beside it link to each section on GitHub.
/learning-loop:doctor
A read-mostly diagnostic. Runs the health-check library, presents the result, and walks you through fixes one at a time.
If invoked with --redact, skip the normal health-check steps and run the Redact mode section instead.
Paths
Resolve PLUGIN_DATA, VAULT, and the plugin root per ${CLAUDE_PLUGIN_ROOT}/skills-shared/paths-preamble.md (read it and apply).
fix strings in the health-check JSON prefix paths with a user-facing PLUGIN shorthand for the plugin root (defined in guide/troubleshooting.md; the guide/ tree is not shipped with the plugin). Show them verbatim when the user will run the command; substitute ${CLAUDE_PLUGIN_ROOT} for the leading PLUGIN segment when you execute it yourself via Bash.
Step 1: Run all checks
node ${CLAUDE_PLUGIN_ROOT}/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" }
]
}
Step 2: Present the report
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:
✓whenstatus === "ok"⚠whenstatus === "fail" && severity === "warn"✗whenstatus === "fail" && severity === "fail"
Step 3: If F + M === 0
Print ✓ All checks pass. Nothing to fix. and exit.
Step 4: Otherwise, iterate fails first, then warns
For each check with status === "fail":
- Show the check:
✗ <name>: <detail> Suggested fix: <fix> - Ask via
AskUserQuestion:- Option A:
Fix this (auto-runnable)— only when the fix is in the auto-runnable table below - Option A':
Run the suggested command and tell me when done— when the fix is manual - Option B:
Skip — I'll handle this later - Option C:
Stop the doctor session— exits cleanly
- Option A:
- On choice A: execute the corresponding fix command via Bash. After it finishes, re-run
node ${CLAUDE_PLUGIN_ROOT}/scripts/health-check.mjs --full --jsonand find the same check by itsidfield. 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)
- On choice A' (manual): print the command, then ask
Done? [Y]es / [N]o. On Yes, re-runnode ${CLAUDE_PLUGIN_ROOT}/scripts/health-check.mjs --full --jsonand find the same check by itsidfield, then report as above. - On choice B: track as skipped and move to next.
- On choice C: print summary and exit.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 3d ago First seen · 214 lines · 58 tokens per session scan A 1252ddd967a3
doctor is a skill published in the GitHub repository robinslange/learning-loop (11 stars, last pushed 12d ago), licensed Apache-2.0. It adds 58 tokens to every session and 2,768 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
systematic-debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.
auto-perf-optimize
Run agent-driven VS Code performance or memory investigations. Use when asked to launch Code OSS, automate a VS Code scenario, run the Chat memory smoke runner, capture renderer heap snapshots, take workflow screenshots, compare run summaries, or drive a repeatable scenario before heap-snapshot analysis.
chat-perf
Run chat perf benchmarks and memory leak checks against the local dev build or any published VS Code version. Use when investigating chat rendering regressions, validating perf-sensitive changes to chat UI, or checking for memory leaks in the chat response pipeline.
chat-pet-sprite-creation
Use when creating or changing VS Code chat pet sprite art, sprite sheets, state animations, eye treatments, Stable/Insiders variants, or pet transitions under src/vs/workbench/contrib/chat/browser/widget/media/chatPet.
cpu-profile-analysis
Analyze V8/Chrome CPU profiles (.cpuprofile) and DevTools trace files (Trace-.json). Use when: profiling performance, investigating slow functions, comparing code paths, finding bottlenecks, analyzing timeToRequest, understanding call trees from sampling profiler data, analyzing layout/paint/rendering, investigating…