← ClaudeAtlas

annotate-doctorlisted

Check that this machine can run claude-annotate and claude-ide-review — python3 and its version, curl, state directory permissions, and server health. Invoked only when the user types `/annotate-doctor`, or when a skill's preflight has just failed and the user asks why. Never self-triggers. Reports problems and prints the command the user should run; never installs anything.
petmakris/claude-annotate · ★ 0 · Code & Development · score 75
Install: claude install-skill petmakris/claude-annotate
# /annotate-doctor — is this machine able to run the plugin? Run the diagnostic and report what it says. It is POSIX `sh` and needs no Python, which matters because the most common failure it diagnoses is Python being absent. ## Run it ```bash MARKER="skills/_shared/web_companion/doctor.sh" DOCTOR="" # 1. Every bin/ directory on PATH — covers --plugin-dir and marketplace installs. old_ifs="$IFS"; IFS=: for entry in $PATH; do case "$entry" in */bin) root="${entry%/bin}" if [ -f "$root/$MARKER" ]; then DOCTOR="$root/$MARKER"; break; fi ;; esac done IFS="$old_ifs" # 2. CLAUDE_PLUGIN_ROOT when it happens to be exported (hooks get it; the Bash tool does not). if [ -z "$DOCTOR" ] && [ -n "${CLAUDE_PLUGIN_ROOT:-}" ] && [ -f "$CLAUDE_PLUGIN_ROOT/$MARKER" ]; then DOCTOR="$CLAUDE_PLUGIN_ROOT/$MARKER" fi # 3. Marketplace cache layout, last: cache/<marketplace>/<plugin>/<version>/. # Three levels, and matched by marker file rather than directory name — the # plugin directory is named for the PLUGIN (claude-annotate OR # claude-ide-review), so a name glob would miss half the installs. if [ -z "$DOCTOR" ]; then for candidate in "$HOME"/.claude/plugins/cache/*/*/*/; do if [ -f "$candidate$MARKER" ]; then DOCTOR="$candidate$MARKER"; break; fi done fi [ -n "$DOCTOR" ] || { echo "claude-annotate: could not locate doctor.sh" >&2; exit 1; } sh "$DOCTOR" ``` This scans `PATH` for directories ending in `bin/`, then checks whether the parent contains