Skip to content
Productivity
Skill

/doctor

Run diagnostic checks on the agent workspace. Triggers on /agent:doctor, "diagnóstico", "diagnostico", "doctor", "health check", "agent health", "checkup", "revisar agente", "agent broken", "fix agent", "revisa el agente".

From plugin
agent
6421 skills10 hooks1 MCP

Claude Code

$ npx -y skills add crisandrews/ClawCode --skill doctor --agent claude-code

SKILL.md

doctor.SKILL.md
name: doctor
description: Run diagnostic checks on the agent workspace. Triggers on /agent:doctor, "diagnóstico", "diagnostico", "doctor", "health check", "agent health", "checkup", "revisar agente", "agent broken", "fix agent", "revisa el agente".
user-invocable: true
argument-hint: [--fix]

Doctor

Health check for this agent. Inspects config, identity, memory, SQLite index, QMD, crons, hooks, HTTP bridge, messaging plugins, and dreaming. When invoked with `--fix`, applies safe auto-repairs (create memory dir, sync index, delete stale BOOTSTRAP.md) before re-running checks.

This is a CORE feature — always available. See `docs/doctor.md` for the full list of checks and auto-fixes.

When to use

  • Right after `/agent:create` or `/agent:import` — verify setup is clean
  • When memory search returns nothing or feels wrong — check SQLite integrity
  • When heartbeats don't seem to fire — verify crons and active hours
  • When you enabled the HTTP bridge but the browser can't connect — probe it
  • Anytime something feels off

How it works

1. Refresh the cron audit FIRST — `CronList` → `writeback.sh audit` — so the registry's `.audit` state is current 2. Call the MCP tool `agent_doctor` with `action='check'` (or `action='fix'` when the user passes `--fix`); its cron-registry check reads the `.audit` you just refreshed 3. The tool returns a structured report; pass it through as-is (the tool already formats a card) 4. Supplement with cron status rendered from the same `CronList` output — the MCP server cannot see Claude Code's cron state

Steps

Step 1 — Detect mode

  • If the user's message contains `--fix` or `/agent:doctor fix` or says "arreglar" / "auto-fix" / "repara" → mode is `fix`
  • Otherwise → mode is `check`

Step 2 — Refresh the cron audit (BEFORE the card)

The `agent_doctor` card reads the registry's persisted `.audit` offline. Refresh it first, or the card may render stale/contradictory cron state.

`CronList` is a deferred tool. Load it first:

ToolSearch(query='select:CronList')

Call `CronList()` and pipe its FULL output (verbatim, including a literal `No scheduled jobs.`) to the mechanical auditor:

printf '%s\n' "<full CronList output>" | bash "$CLAUDE_PLUGIN_ROOT/skills/crons/writeback.sh" audit

(Exit 4 = CronList format drift — remember it and report it as its own ⚠️ line in Step 4.) Keep the CronList output for Step 4.

Step 3 — Run the MCP tool

Call:

agent_doctor(action='<mode>')

Print the returned card verbatim.

Step 4 — Add cron status

Append a cron section rendered from the Step 2 `CronList` output (do not call it again):

  • **Heartbeat cron**: look for a job whose `prompt` contains `/agent:heartbeat` → report schedule
  • **Dreaming cron**: look for a job whose `prompt` contains `dream` → report schedule
  • If either is missing, show `⚠️` and suggest: "Missing cron — run the default crons flow (see AGENTS.md)"
  • If the audit line reported `orphaned>0`, add: `⚠️ <N> registry reminder(s) not firing — run /agent:crons reconcile`
  • If the audit printed `blocked key=` lines, add: `⚠️ <B> reminder(s) with ambiguous live duplicates — review with /agent:crons list`

Format:

Crons:
  ✅ Heartbeat: */30 * * * *
  ✅ Dreaming:  0 3 * * *
  ✅ Registry audit: alive=5/5

Step 5 — Surface hints

If the diagnostic card includes any `→ hint:` lines, those are already rendered. Do not repeat them; the user has what they need.

Step 6 — If in `fix` mode, remind the user to reload

After a fix run, if any fix was applied or any hook-related issue remains, recommend `/mcp` to reload the MCP server. Example:

Some changes take effect only after reloading the MCP server. Run `/mcp` to apply.

Response style

  • Terse. No preamble. Just the card + cron section + optional reload hint.
  • On messaging channels (WhatsApp, Telegram, Discord), collapse the card to one line per check: `✅ Config · ✅ Identity · ⏸️ HTTP · ℹ️ Dreaming · ...` — full card is too wide for mobile.
  • On CLI or WebChat, keep the full multi-line card.

Never

  • Do NOT run auto-fixes without the user asking. If they say `/agent:doctor`, only check. Only apply fixes on `--fix` or when the user explicitly asks to repair.
  • Do NOT invent diagnostic categories not implemented in `lib/doctor.ts`. If they ask about something not covered (e.g. "check my OpenAI API key"), say the doctor doesn't cover that yet — or consult `docs/doctor.md` for the current check list.

References

  • `docs/doctor.md` — full feature documentation
  • `lib/doctor.ts` — implementation (checks + fixes)
  • `docs/INDEX.md` — master feature index
Read more
@crisandrews
Ships withagent

Persistent agents for Claude Code as a plugin, not a harness. Memory, personality, messaging across WhatsApp, Telegram, and Discord, plus a service mode for 24/7 runs. Imports from OpenClaw.

6421 skills1 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
64
Star history of crisandrews/ClawCode on GitHub, a chart by star-history.com

Other skills on agent.

about

about

Show the plugin source — name, version, and repo URL. Works from CLI or messaging. Triggers on /about, /version, /agent:about,…

@crisandrews@crisandrewsInstall Skill
channels

channels

Show messaging channel status (WhatsApp, Telegram, Discord, iMessage, Slack, Fakechat) and the launch command to load them.…

@crisandrews@crisandrewsInstall Skill
compact

compact

Flush important session context to daily log (manual memory flush). Does NOT invoke native /compact. Triggers on /compact,…

@crisandrews@crisandrewsInstall Skill
create

create

Create a new agent in the current directory with personality files and bootstrap ritual. Triggers on /agent:create, "crear…

@crisandrews@crisandrewsInstall Skill
crons

crons

Manage scheduled reminders (crons) — list, add, delete, pause, resume, reconcile, or import from OpenClaw. Triggers on…

@crisandrews@crisandrewsInstall Skill
heartbeat

heartbeat

Run agent heartbeat — periodic checks, memory consolidation, proactive work. Triggers on /agent:heartbeat, "heartbeat",…

@crisandrews@crisandrewsInstall Skill

More skills from other plugins.

i-have-adhd

i-have-adhd

Shape output for a reader with ADHD: lead with the next action, number multi-step work, restate state across turns, suppress…

@ayghri@ayghriInstall Skill
ab-test-analysis

ab-test-analysis

Analyze A/B test results with statistical significance, sample size validation, confidence intervals, and ship/extend/stop…

@phuryn@phurynInstall Skill
distilly

distilly

Set up the owner profile so a personal agent knows who it works for (first-run setup, \"get to know me\"), or distill colleague,…

Questions about doctor.

Which coding agents can use doctor?
doctor installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.