harness-doctor
Diagnose the harness itself. Reports version drift vs upstream, plugin staleness, MCP version pins, hook log size, memory growth, settings.json size. Run monthly or when behavior feels off.
Install / Use
npx skills add qyndex/claude-initInstalls into whichever agent you are using.
Claude Commands
Claude Code slash commands
Quality Score
Category
Development & EngineeringSupported Platforms
Skill content
View source on GitHubdescription: Diagnose the harness itself. Reports version drift vs upstream, plugin staleness, MCP version pins, hook log size, memory growth, settings.json size. Run monthly or when behavior feels off. argument-hint: "[--fix]" allowed-tools: Read, Glob, Grep, Bash, WebFetch disable-model-invocation: true
/harness-doctor — Self-diagnostic
ROOT="$(cd .claude/.. && pwd)"
echo "# Harness Doctor — $(date -Iseconds)"
echo
# 1. Version check
echo "## Version"
if [ -f .claude/VERSION ]; then
cat .claude/VERSION
else
echo "⚠ .claude/VERSION missing — cannot determine harness version"
fi
# 2. Compare to upstream (if origin set)
if [ -f .claude/VERSION ]; then
upstream=$(grep 'source=' .claude/VERSION | cut -d= -f2)
if [ -n "$upstream" ]; then
echo
echo "## Upstream drift"
echo "Source: $upstream"
latest=$(claude -p "WebFetch $upstream/raw/main/.claude/VERSION and return the harness_version field" --bare 2>/dev/null)
echo "Latest: $latest"
fi
fi
# 3. Plugin staleness
echo
echo "## Plugin staleness"
if command -v claude >/dev/null; then
claude -p "/plugin list with last-update dates" --bare 2>/dev/null | head -30
fi
# 4. MCP version pins
echo
echo "## MCP server pins"
echo "Pinned to @latest (supply-chain risk):"
grep -h '@latest' .mcp.json 2>/dev/null | head -10
echo
echo "Pinned to specific versions (good):"
grep -h '@[0-9]' .mcp.json 2>/dev/null | head -10
# 5. Hook log size
echo
echo "## Hook log size"
if [ -d .claude/hooks/.log ]; then
du -sh .claude/hooks/.log/* 2>/dev/null | sort -rh | head -10
fi
# 6. Memory file size
echo
echo "## Memory file sizes"
for f in .claude/memory/MEMORY.md .claude/memory/decisions/*.md .claude/memory/incidents/*.md; do
[ -f "$f" ] && wc -l "$f" 2>/dev/null
done | sort -rn | head -20
# 7. Settings.json size
echo
echo "## Settings.json metrics"
echo "Lines: $(wc -l < .claude/settings.json)"
echo "Allow patterns: $(jq -r '.permissions.allow | length' .claude/settings.json)"
echo "Ask patterns: $(jq -r '.permissions.ask | length' .claude/settings.json)"
echo "Deny patterns: $(jq -r '.permissions.deny | length' .claude/settings.json)"
# 8. Validate
echo
echo "## Validate"
bash .claude/scripts/validate.sh 2>&1 | tail -3
# 9. Recommend
echo
echo "## Recommendations"
echo "- If MCP @latest pins → run /audit-plugins to pin"
echo "- If MEMORY.md > 200 lines → run /dream"
echo "- If settings.json > 500 lines → /audit-settings to prune unused entries"
echo "- If upstream drift → git remote update && consider pulling harness updates"
Recurring scan
Add to dream-cron so this runs daily and surfaces issues at session-start via additionalContext.
$ARGUMENTS
Related Skills
caveman
107.2k🪨 why use many token when few token do trick. Viral skill + proxy for coding agents that cuts 65% of tokens by talking like a caveman.
claude-mem
94.4kPersistent Context Across Sessions for Every Agent – Captures everything your agent does during sessions, compresses it with AI, and injects relevant context back into future sessions. Works with Claude Code, OpenClaw, Codex, Gemini, Hermes, Copilot, OpenCode + More
Agent-Reach
84.4kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
Understand-Anything
83.6kGraphs that teach > graphs that impress. Turn any code into an interactive knowledge graph you can explore, search, and ask questions about. Works with Claude Code, Codex, Cursor, Copilot, Gemini CLI, and more.
Security Score
Audited on Invalid Date
