dw-doctor

dw-doctor is a skill for Claude Code from dominikwozniak/dw-solo-skills. It costs 54 tokens per session (1,693 once invoked), scanned A, original, MIT.

A read-only check of whether a repository's required tools and safety checks are installed and connected correctly. It examines commands, versions, hook settings, and project files without changing anything.

In plain words
What is it for?
Checking requirements such as jq, pnpm, Node.js, executable hook files, and the TypeScript compiler, then giving copy-paste fixes for any gaps.
Why use it?
It reveals missing tools or broken hooks that could otherwise make safeguards and checks silently stop working.

Skill for Claude Code

Written for Claude Code: Claude Code plugin machinery. Also seen: reads .claude/ paths; mentions CLAUDE.md; mentions AGENTS.md.

Good fit Checking requirements such as jq, pnpm, Node.js, executable hook files, and the TypeScript compiler, then giving copy-paste fixes for any gaps.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/dominikwozniak/dw-solo-skills/dw-doctor
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.

Any agent
npx skills add dominikwozniak/dw-solo-skills --skill dw-doctor
Clone the repo
git clone --depth 1 https://github.com/dominikwozniak/dw-solo-skills

Made for: Claude Code.

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 dw-doctor

README.md
[![agentmods](https://agentmods.dev/badge/skills/dominikwozniak/dw-solo-skills/dw-doctor/github.svg)](https://agentmods.dev/skills/dominikwozniak/dw-solo-skills/dw-doctor)
Your own site
<a href="https://agentmods.dev/skills/dominikwozniak/dw-solo-skills/dw-doctor"><img src="https://agentmods.dev/badge/skills/dominikwozniak/dw-solo-skills/dw-doctor/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 dw-doctor

Your own site · 80×15
<a href="https://agentmods.dev/skills/dominikwozniak/dw-solo-skills/dw-doctor"><img src="https://agentmods.dev/badge/skills/dominikwozniak/dw-solo-skills/dw-doctor.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 54 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,693 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. 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.00054 $0.01693
Opus 5 $0.00027 $0.00847
Sonnet 5 $0.00011 $0.00339
Haiku 4.5 $0.00005 $0.00169

Measured today against content hash 35a4a9feb689, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-12, from the pricing page.

Security

Grade A, and why

dw-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 today.

The scan reads SKILL.md. This mod also ships 1 executable file (scripts/doctor.sh), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

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.

skills/dw-doctor/SKILL.md · 108 lines

How it starts

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

dw-doctor — read-only environment diagnostic

Confirm the machine actually has what this repo's hooks and skills assume, and that the wiring resolves — before a missing tool silently degrades things. The sharpest case: every .claude/hooks/*.sh that parses a payload opens with command -v jq >/dev/null || exit 0bash-guard.sh, the dispatcher every Bash guard hangs off, among them — so without jq the dangerous-command block, .env protection, pnpm enforcement, and lint-on-edit/typecheck-on-commit hooks all quietly no-op and nobody notices. Same failure class for a missing pnpm, a settings.json pointing at a hook that isn't executable, or a typecheck hook with no tsc to call.

Read-only, and it takes no arguments: it probes (command -v, --version) and reads files, then reports. It never installs a tool, never edits a file, never runs the fixes it suggests — applying them is your call.

What it reads

It diagnoses the current git repo (resolved via git rev-parse --show-toplevel), not the skill's own location. Checks are conditional on what the repo declares, so nothing about a stack is assumed:

  • package.json — the Node pin (devEngines.runtime first, then engines.node), the pnpm pin (devEngines.packageManager first, then the older packageManager), declared deps, and scripts.typecheck (drives the JS/TS checks).
  • tsconfig.json, .nvmrc — presence informs the tsc check and whether the node fix hint names .nvmrc at all; a repo pinning through devEngines.runtime has no such file.
  • .claude/settings.json — parsed for every wired hook command; each referenced *.sh is checked for existence, the executable bit, and drift against this plugin's templates/hooks/, since a stale vendored copy passes the first two while missing what the template learned since. WARN, never FAIL — a patched hook is a legitimate choice; a hook with no template is the repo's own.
  • .ai/work/ — the scaffold this lane runs on; its absence points at dw-init, and a .ai/runs/ directory is flagged as the other lane's repo rather than half-checked.
  • docs/decisions/ and CONTEXT.md — the promotion targets dw-land writes into. Presence only: the record contract is prose dw-land reads while writing one, not something this skill parses.
  • AGENTS.md — the one always-loaded file, and the block worth the most here. Present? Does it declare a Budget: line, is that line parseable, and is the file inside it? Is there a ## Task Router with rows, and does every docs/agents/*.md have one? Did a {{PLACEHOLDER}} survive the render? Is CLAUDE.md the symlink to it rather than a second copy that will diverge? And is scripts/check-agents-docs.mjs there to enforce any of it.
  • The checker's opt-in size gates — the corpus ratchet, the record ceiling, the topic and term budgets. Each says nothing when switched off, which is right for a gate and blinding for a diagnostic, so each is reported here with the line or command that turns it on. info, not warn: declining one is a choice, and only the layers a repo actually keeps are mentioned at all.
  • The - **Lint command**: / - **Typecheck command**: bullets, resolved in the hooks' own order — AGENTS.md, then a legacy CLAUDE.local.md — and extracted the way the hooks extract them, first backticked span else the rest of the line. Reporting a command the hook would not actually run is the one failure mode a diagnostic cannot afford. A value of none reports OK: it is what tells the hook to skip.
  • CLAUDE.local.md — informational only. Nothing writes it any more; where one exists it is a legacy fallback, not a gap.
  • .claude-plugin/marketplace.json — only if present (a marketplace repo); a light plugin/version-sync glance.
  • Tool presence on PATH via command -v: git, jq, gh, codex, node, pnpm, and the project-local agnix / prettier / tsc binaries. codex is WARN-tier and never FAIL — the loop works without it, and dw-check reviews the diff itself either way; all that degrades is the second read it offers afterwards — and the check stops at "installed": probing auth would mean a network call from a read-only diagnostic.
  • The dw-solo-extras plugin, found by its cache directory rather than on PATH. It ships dw-decisions, which dw-land, dw-grill and dw-shape each route to "where installed" without being able to look — so the answer belongs here. WARN-tier like codex, and stopping at "installed": whether it is enabled lives in the user's global settings, which a repo diagnostic does not read.

Read the full file on GitHub · 108 lines

Files

What ships with it

1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

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. today Changed 35a4a9feb689
  2. 3d ago Changed · +5 lines 0e44e4636719
  3. 5d ago Changed · -4 lines · +8 tokens per session 4689db06c48a
  4. 7d ago Changed · +4 lines 763f654f798f
  5. 12d ago First seen · 103 lines · 46 tokens per session scan A 7282928f41be

Subscribe to this mod's changes

dw-doctor is a skill published in the GitHub repository dominikwozniak/dw-solo-skills (2 stars, last pushed today), licensed MIT. It adds 54 tokens to every session and 1,693 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-31.

Related

Other skills, from other repositories

diagnose

Debugging as the six geniuses at minute scale — the bug confirmed by a red reproduction before any theory, hypotheses plural with kill-reasons before any fix, the fix proven by a fresh green rerun. Use when something is broken, throwing, failing, flaky, or slow, or when the user asks to debug or diagnose.

donald-ada/workinggenius · 70 tokens

c-find-bugs

Concrete defect hunting on a target. Operates on docs OR code. Different lens from /c-check ("is this good?"); this asks "what specific defects exist?" Targets: design folder, plan folder, branch, file, or --repo. Repo scope is token-heavy and requires explicit confirmation before starting. Output is a prioritized…

sentasity/cadence · 85 tokens

issue

Register a bug, deferral, or known limitation as the next ISS-NNN in docs/registry/ISSUES.md with severity and an investigation path. Use when the user types /genesis:issue, says "log this bug/issue", "defer this", or when work uncovers a problem that will not be fixed in the current task in a GENESIS project.

godshiba/genesis · 79 tokens

debugging

Systematic debugging that applies the scientific method to failures. Use when the user says "debug this", "why is this failing", "help me find the bug", or is stuck on a problem and thrashing without progress.

tslateman/duet · 48 tokens

performance

Profiling methodology and optimization strategy for performance work. Use when the user asks to "make this faster", "optimize", "profile", "reduce latency", "fix slow", "improve throughput", or when investigating performance regressions.

tslateman/duet · 50 tokens

sweep

Post-op check for artifacts, damage, and stale references after agent work.

tslateman/duet · 17 tokens