← ClaudeAtlas

setup-wayfinderlisted

Materialize the claude-wayfinder Python venv at ${CLAUDE_PLUGIN_DATA}/venv/ and write the setup-state flag. Use when: - User types /setup-wayfinder - User says "set up claude-wayfinder", "install wayfinder dependencies" - User says "wayfinder isn't working", "fix wayfinder", "repair wayfinder" - SessionStart banner indicates setup is required and the user wants to proceed - Plugin version bumped and re-setup needed Do NOT trigger on casual mentions of "wayfinder" without setup/install/fix intent.
glitchwerks/claude-wayfinder · ★ 1 · AI & Automation · score 67
Install: claude install-skill glitchwerks/claude-wayfinder
# Setup claude-wayfinder Materialize the Python venv at `${CLAUDE_PLUGIN_DATA}/venv/` so plugin hooks can spawn a Python that has `claude_wayfinder` importable. Write the setup-state flag so hooks know setup completed. The behavior described below is mirrored by `tests/integration/setup_pipeline.py`. If you change anything here, update that file too (CI's `test_skill_pipeline_sync.py` enforces this). ## Step 1: Resolve `${CLAUDE_PLUGIN_DATA}` The plugin data directory path is deterministic per Anthropic's plugin docs: - If `$CLAUDE_PLUGIN_DATA` is set in the environment, **validate its basename matches the expected slug** before honoring it — see the bash recipe below. The env var is the test seam, but the harness sets it to whichever plugin invoked the current surface, so another plugin's data dir can leak in. - Otherwise, compute `~/.claude/plugins/data/{slug}/` where `{slug}` is `claude-wayfinder@glitchwerks` with every non-`[a-zA-Z0-9_-]` character replaced by `-`. For our plugin (`claude-wayfinder` distributed from the `glitchwerks` marketplace), the slug is `claude-wayfinder-glitchwerks`. Use the Bash tool: ```bash EXPECTED_SLUG="claude-wayfinder-glitchwerks" if [ -n "$CLAUDE_PLUGIN_DATA" ]; then ACTUAL_SLUG=$(basename "$CLAUDE_PLUGIN_DATA") if [ "$ACTUAL_SLUG" != "$EXPECTED_SLUG" ]; then echo "Warning: \$CLAUDE_PLUGIN_DATA points at '$ACTUAL_SLUG', expected '$EXPECTED_SLUG'. Falling back to computed path." >&2 PLUGIN_DATA="$HOME/.claude/plugins/data/