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 ShipWithAI/shipwithai-plugins --skill harness-doctorgit clone --depth 1 https://github.com/ShipWithAI/shipwithai-pluginsWrote 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/shipwithai/shipwithai-plugins/harness-doctor)<a href="https://agentmods.dev/skills/shipwithai/shipwithai-plugins/harness-doctor"><img src="https://agentmods.dev/badge/skills/shipwithai/shipwithai-plugins/harness-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/shipwithai/shipwithai-plugins/harness-doctor"><img src="https://agentmods.dev/badge/skills/shipwithai/shipwithai-plugins/harness-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.00045 | $0.00715 |
| Opus 5 | $0.00023 | $0.00358 |
| Sonnet 5 | $0.00009 | $0.00143 |
| Haiku 4.5 | $0.00005 | $0.00072 |
Grade A, and why
harness-doctor 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 10d 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.
| **Permission** | .claude/settings.json exists, valid JSON, has deny block, curl/npx not hard-denied | How it starts
The opening of the file, as written. The whole thing — 89 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Harness Doctor
Diagnostic tool for existing Claude Code harness setups. Detects missing files, misconfigured permissions, broken hook wiring, and stack mismatches. Produces a scored health report with actionable fixes.
When to Use
- After running
harness-setup— final validation - Harness seems to not be working (Claude ignoring CLAUDE.md or hooks)
- After moving a project or cloning a repo — check hooks are executable
- Periodic health check
Step 1: Detect Stack (SILENT)
Run same detection as harness-setup Step 0. Same token auto-fill logic.
Show scan summary before proceeding:
🔍 Harness Doctor — Scanning project...
Stack: Next.js (Next.js 14.2.18)
Detected: CLAUDE.md ✓ settings.json ✓ hooks/ ✓
Step 2: Run Diagnostic Checks
Run all 4 categories unless $ARGUMENTS specifies one. Read references/doctor-checks.md for full check details per category.
| Category | Key checks |
|---|---|
| Memory | CLAUDE.md exists, < 200 lines, no unfilled {{TOKEN}}, Last verified < 90 days old |
| Permission | .claude/settings.json exists, valid JSON, has deny block, curl/npx not hard-denied |
| Hooks | validate-command.py + protect-files.py exist, executable, wired in settings.json |
| Stack | detected stack matches CLAUDE.md stack line, commands exist in project |
Step 3: Health Report
╔══════════════════════════════════════════════════╗
║ 🛡️ Harness Doctor — Health Report ║
╠══════════════════════════════════════════════════╣
║ Stack: Next.js ║
║ Score: 11/12 checks passed ║
╚══════════════════════════════════════════════════╝
Category Status Issues
──────────────────────────────────
1. Memory ✅ 0
2. Permission ⚠️ 1 warning
3. Hooks ❌ 1 critical
4. Stack ✅ 0
──── CRITICAL ────────────────────
❌ .claude/hooks/validate-command.py not executable
Fix: chmod +x .claude/hooks/validate-command.py
──── WARNINGS ────────────────────
⚠️ CLAUDE.md Last verified: 2026-01-15 (114 days ago)
Recommendation: Review and update to reflect current project state
What ships with it
2 files 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.
- 10d ago First seen · 89 lines · 45 tokens per session scan A 8805162f2dcc
harness-doctor is a skill published in the GitHub repository ShipWithAI/shipwithai-plugins (10 stars, last pushed 28d ago), licensed MIT. It adds 45 tokens to every session and 715 once invoked, about $0.0002 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-31.
Other skills, from other repositories
systemic-issue-triage
Trigger: new issue, bug report, triage, backlog, issue flood, community report, root cause, dead-end, blocked user. Attack issues by root class, never one-by-one; fixes must shrink the system, not grow it.
ring:searching-code
Forensic code search and analysis with optional Chain of Draft (CoD) ultra-concise mode. Five-phase methodology (clarification, planning, execution, analysis, synthesis) with severity assessment. Use for targeted investigation of specific patterns, bugs, or vulnerabilities. Skip for broad architecture mapping (use…
ring:using-assert
Using lib-observability/assert, Lerian's runtime assertion package, in two modes. Sweep Mode detects panic()/log.Fatal zero-panic violations, DIY invariant checks, hand-rolled domain predicates, and missing InitAssertionMetrics. Reference Mode catalogs the asserter lifecycle, domain predicates, observability trident…
ring:fixing-lint
Fixing lint to a clean state: runs the linter, groups reported issues into independent streams, and dispatches one parallel fixer agent per stream (ring:backend-go for Go, ring:general-purpose otherwise), iterating until clean. Use when a codebase has lint errors across multiple files. Skip for a single error (fix…
mcp-check
Validate MCP configuration and suggest improvements. Use when MCP servers fail to load, after editing .mcp.json, or when the user runs /mcp-check.
cheese
Route an idea, path, pull request, issue, failure, question, or bare /cheese to the correct workflow skill. Use this skill for /cheese, routing requests, help requests, or opening messages without a named workflow skill.