doctor-agent

doctor-agent is an agent for Claude Code from Lifecycle-Innovations-Limited/claude-ops. It costs 22 tokens per session (1,516 once invoked), scanned A, original, MIT.

An automatic repair agent for configuration and manifest problems in the claude-ops plugin. It uses a diagnostic report to fix listed issues such as invalid metadata, missing fields, broken permissions, or incomplete skill definitions.

In plain words
What is it for?
Use it after an ops-doctor diagnostic to repair plugin metadata, JSON syntax, missing manifest fields, non-executable scripts, and missing skill definition files.
Why use it?
It removes repetitive manual repair work after configuration checks identify known problems. It also applies some fixes across both the source plugin and its cached copies.

Agent for Claude Code

Written for Claude Code: effort in frontmatter. Also seen: model in frontmatter; reads .claude/ paths; mentions Claude Code.

Part of the ops plugin — 66 skills, 21 agents, 5 hooks, 1 MCP server shipped together

Good fit Use it after an ops-doctor diagnostic to repair plugin metadata, JSON syntax, missing manifest fields, non-executable scripts, and missing skill definition files.

Compare 6 agents from other repositories ↓
Install with agentmods
npx agentmods add agents/lifecycle-innovations-limited/claude-ops/doctor-agent
Install

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.

Clone the repo
git clone --depth 1 https://github.com/Lifecycle-Innovations-Limited/claude-ops

Made for: Claude Code.

Or install ops, the plugin that ships this one along with the rest of its 66 skills, 21 agents, 5 hooks, 1 MCP server.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for doctor-agent

README.md
[![agentmods](https://agentmods.dev/badge/agents/lifecycle-innovations-limited/claude-ops/doctor-agent/github.svg)](https://agentmods.dev/agents/lifecycle-innovations-limited/claude-ops/doctor-agent)
Your own site
<a href="https://agentmods.dev/agents/lifecycle-innovations-limited/claude-ops/doctor-agent"><img src="https://agentmods.dev/badge/agents/lifecycle-innovations-limited/claude-ops/doctor-agent/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for doctor-agent

Your own site · 80×15
<a href="https://agentmods.dev/agents/lifecycle-innovations-limited/claude-ops/doctor-agent"><img src="https://agentmods.dev/badge/agents/lifecycle-innovations-limited/claude-ops/doctor-agent.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 22 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,516 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What 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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00022 $0.01516
Opus 5 $0.00011 $0.00758
Sonnet 5 $0.00004 $0.00303
Haiku 4.5 $0.00002 $0.00152

Measured 9d ago against content hash a91f4e0bdec7, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-09, from the pricing page.

Security

Grade A, and why

doctor-agent scanned grade A with 1 finding 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 9d 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.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

- **Third**: Check `~/.claude.json mcpServers.<service>.type` — if `"sse"`, the SSE router holds auth server-side; probe the URL with `curl -s -o /dev/null -w "%{http_code}" --max-time 3 <url>`. A 200 response means the
claude-ops/agents/doctor-agent.md · 152 lines

How it starts

The opening of the file, as written. The whole thing — 152 lines — stays where its author put it; the contents beside it link to each section on GitHub.

DOCTOR AGENT

You are an automated repair agent for the claude-ops plugin. You receive a diagnostic JSON report and must fix every error and warning without user intervention.

Input

The calling skill provides:

  • DIAGNOSTIC_JSON: full output from ops-doctor bin script
  • PLUGIN_ROOT: path to the plugin source directory
  • CACHE_DIR: path to the plugin cache directory (~/.claude/plugins/cache/ops-marketplace/ops)

Repair Procedures

plugin_manifest_repository_type

The repository field in .claude-plugin/plugin.json is an object but must be a string.

  • Read the file, extract the URL from repository.url, replace the object with the URL string.
  • Apply the same fix to ALL copies: source dir AND every version dir under the cache.

plugin_manifest_invalid_json

  • Read the file, identify the JSON syntax error, fix it.
  • If unfixable, restore from git: git checkout -- .claude-plugin/plugin.json

pluginmanifest_missing_field*

  • Read current plugin.json, add the missing field with a sensible default.

bin_not_executable

  • chmod +x each listed script.

skill_missing_definition

  • Log which skill dirs are missing SKILL.md. Do NOT create placeholder skills — just report them.

agent_missing_frontmatter

  • Read the agent file, add proper YAML frontmatter based on file content.

mcp_config_invalid_json

  • Read .mcp.json, fix JSON syntax. If unfixable, restore from git.

mcpmissing_user_config*

An MCP server references ${user_config.*} variables that have no value configured.

  • Read the plugin's preferences.json (at $CLAUDE_PLUGIN_DATA_DIR/preferences.json or ~/.claude/plugins/data/ops-ops-marketplace/preferences.json)
  • First check channels.* section for matching values using the key mapping (e.g. telegram_api_idchannels.telegram.api_id). Auto-populate user_config from these if found.
  • Second: Check user-config.json at ${CLAUDE_PLUGIN_DATA_DIR:-~/.claude/plugins/data/ops-ops-marketplace}/user-config.json — this file may have credentials written by a prior setup run.
  • Third: Check ~/.claude.json mcpServers.<service>.type — if "sse", the SSE router holds auth server-side; probe the URL with curl -s -o /dev/null -w "%{http_code}" --max-time 3 <url>. A 200 response means the service is configured and no user_config entry is required.
  • Also check environment variables, existing config files, or keychain
  • If values can be found automatically, write them to preferences.json under user_config.<key>
  • If a separate global MCP server already provides the same functionality (reported as INFO in diagnostics), no fix is needed.
  • If values cannot be found (e.g., API keys that need manual entry), report them as "needs manual configuration via /ops:setup"
  • This is the same issue Claude Code's native /doctor flags as "Missing required user configuration value"

Read the full file on GitHub · 152 lines

Changes

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.

  1. 9d ago First seen · 152 lines · 22 tokens per session scan A a91f4e0bdec7

Subscribe to this mod's changes

doctor-agent is an agent published in the GitHub repository Lifecycle-Innovations-Limited/claude-ops (187 stars, last pushed 2d ago), licensed MIT. It adds 22 tokens to every session and 1,516 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other agents, from other repositories

verifier

Critically evaluates investigation results, checks path coverage, and validates failure points using Devil's Advocate method. Use when investigation has completed, or when "verify/validate/double-check/confirm findings" is mentioned. Focuses on verification and conclusion derivation.

shinpr/claude-code-workflows · 54 tokens

doctrine-performance-optimizer

Read-only performance audit of Doctrine usage: N+1 queries, fetch modes, batch processing, missing indexes, and caching opportunities. Use proactively after adding entities, relations, repository queries, or when a page/endpoint is reported slow.

dev-toolings/superpowers-symfony · 53 tokens

error-handling-reviewer

Hunts for swallowed errors, silent failures, and broken error propagation chains in changed code.

OutSystems/outsystems-mcp · 24 tokens

debugger

Systematic debugger using the Iron Law: no fix without confirmed root cause. Reproduces errors, traces execution paths, forms and verifies hypotheses, then implements…

KevinZai/commander · 35 tokens

evolve-error-handling-scan

Silent-failure adversary for the Evolve Loop (Evaluate archetype). The advisor INSERTS this phase after Build on bugfix cycles — and on any large diff regardless of goal type — to hunt swallowed errors, ignored return values, and catch-all fallbacks in the changed code. BLOCKS when a failure path is silenced so it…

mickeyyaya/evolve-loop · 80 tokens

evolve-telemetry-coverage-check

Observability completeness gate for the Evolve Loop (Evaluate archetype). The advisor INSERTS this phase after Build on cycles whose scout.goaltype == "observability" to verify every newly added code path is debuggable in production before ship.

mickeyyaya/evolve-loop · 58 tokens