graphify-wrapper-setuplisted
Install: claude install-skill yoelgal/agent-tools
# /graphify-wrapper-setup
Make a repo ready for graphify-wrapper. Idempotent - safe to re-run.
```bash
. .better-dev/bin/bd-gfx 2>/dev/null || . "${CLAUDE_PLUGIN_ROOT}/scripts/bd-gfx"
```
## 1. Ensure the CLI
The PyPI package is `graphifyy` (double-y); the binary is `graphify`. Pin the
version: below the 0.9.18 floor graph writes are non-atomic (the refresh hook's
own floor is far older - `built_at_commit`, 0.7.0). `--default-index` is
best-effort and bounds nothing: it sets uv's **lowest-priority** index, so it
turns back a `UV_DEFAULT_INDEX` / `UV_INDEX_URL` redirect of the base index and
nothing more. `UV_INDEX` and `UV_EXTRA_INDEX_URL` add indexes uv searches first
and they still decide whose build backend runs here (measured, uv 0.11.7).
```bash
floor=0.9.18; idx=(--default-index https://pypi.org/simple)
gfxver() { graphify --version 2>&1 | grep -oE '[0-9]+\.[0-9]+\.[0-9]+' | head -1; }
gfxlow() { [ -z "$1" ] || [ "$(printf '%s\n%s\n' "$floor" "$1" | sort -V | head -1)" != "$floor" ]; }
if command -v graphify >/dev/null; then echo "graphifyy: already present"
else uv tool install "graphifyy>=$floor" "${idx[@]}" && echo "graphifyy: INSTALLED"; fi
have=$(gfxver); echo "graphify ${have:-unknown}"
if ! command -v graphify >/dev/null; then echo "graphifyy: NOT ON PATH"
elif gfxlow "$have"; then
uv tool upgrade graphifyy "${idx[@]}" || true; now=$(gfxver)
[ "$now" = "$have" ] || echo "graphifyy: UPGRADED from $have to $now"
if gfxlow "$now"; then echo "graphifyy: BE