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 skills add dominikwozniak/dw-solo-skills --skill dw-doctorgit clone --depth 1 https://github.com/dominikwozniak/dw-solo-skillsWrote 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.
[](https://agentmods.dev/skills/dominikwozniak/dw-solo-skills/dw-doctor)<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.
<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>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.
| Model | Per session | Once 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 |
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.
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 — 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 0 —
bash-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.runtimefirst, thenengines.node), the pnpm pin (devEngines.packageManagerfirst, then the olderpackageManager), declared deps, andscripts.typecheck(drives the JS/TS checks).tsconfig.json,.nvmrc— presence informs thetsccheck and whether the node fix hint names.nvmrcat all; a repo pinning throughdevEngines.runtimehas no such file..claude/settings.json— parsed for every wired hook command; each referenced*.shis checked for existence, the executable bit, and drift against this plugin'stemplates/hooks/, since a stale vendored copy passes the first two while missing what the template learned since.WARN, neverFAIL— 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 atdw-init, and a.ai/runs/directory is flagged as the other lane's repo rather than half-checked.docs/decisions/andCONTEXT.md— the promotion targetsdw-landwrites into. Presence only: the record contract is prosedw-landreads 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 aBudget:line, is that line parseable, and is the file inside it? Is there a## Task Routerwith rows, and does everydocs/agents/*.mdhave one? Did a{{PLACEHOLDER}}survive the render? IsCLAUDE.mdthe symlink to it rather than a second copy that will diverge? And isscripts/check-agents-docs.mjsthere 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, notwarn: 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 legacyCLAUDE.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 ofnonereports 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
PATHviacommand -v:git,jq,gh,codex,node,pnpm, and the project-localagnix/prettier/tscbinaries.codexis WARN-tier and never FAIL — the loop works without it, anddw-checkreviews 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-extrasplugin, found by its cache directory rather than onPATH. It shipsdw-decisions, whichdw-land,dw-grillanddw-shapeeach route to "where installed" without being able to look — so the answer belongs here. WARN-tier likecodex, and stopping at "installed": whether it is enabled lives in the user's global settings, which a repo diagnostic does not read.
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.
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.
- today Changed 35a4a9feb689
- 3d ago Changed · +5 lines 0e44e4636719
- 5d ago Changed · -4 lines · +8 tokens per session 4689db06c48a
- 7d ago Changed · +4 lines 763f654f798f
- 12d ago First seen · 103 lines · 46 tokens per session scan A 7282928f41be
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.
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.
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…
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.
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.
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.
sweep
Post-op check for artifacts, damage, and stale references after agent work.