annotate-doctorlisted
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