agentsclimarketplace

Graphify wrapper setup

Skill yoelgal/better-dev/skills/graphify-wrapper-setup

Use when a repo or machine needs graphify-wrapper wired up for the first time - installing the graphify CLI, adding the never-commit guard, seeding the per-repo registry, and picking a semantic backend - the one-time "set up graphify" step before any mapping or indexing.From its SKILL.md

Install
npx -y skills add yoelgal/better-dev --skill graphify-wrapper-setup

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

3.7 KB, ~1.0k tokens by cl100k_base, as published. Nobody here has run it

/graphify-wrapper-setup

Make a repo ready for graphify-wrapper. Idempotent - safe to re-run.

. .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. The wrapper needs graphifyy 0.9.18 or newer. Its hooks read the built_at_commit provenance that graphifyy added in 0.7.0, and the wedge safety rests on the atomic graph writes graphifyy completed in 0.9.18, so an older build leaves the refresh hook dead and its writes non-atomic. Setup upgrades a stale install before continuing.

command -v graphify >/dev/null || uv tool install graphifyy
graphify --version

floor=0.9.18
have=$(graphify --version 2>&1 | grep -oE '[0-9]+\.[0-9]+\.[0-9]+' | head -1)
if [ -n "$have" ] && [ "$(printf '%s\n%s\n' "$floor" "$have" | sort -V | head -1)" != "$floor" ]; then
  echo "graphifyy $have is below the $floor floor; upgrading"
  uv tool upgrade graphifyy
  graphify --version
fi

If uv is missing, stop and tell the operator to install it (brew install uv); do not fall back to a global pip install.

2. Never-commit guard (global gitignore)

Graphs live in-tree at <path>/graphify-out/. Keep them out of every repo via the operator's global gitignore so a host repo's tracked files are never touched and nothing can be pushed.

gi=$(git config --global --get core.excludesfile || echo "$HOME/.config/git/ignore")
mkdir -p "$(dirname "$gi")"
git config --global core.excludesfile "$gi"
grep -qxF 'graphify-out/' "$gi" 2>/dev/null || printf 'graphify-out/\n' >> "$gi"
echo "global gitignore: $gi"

3. Init the per-repo registry

The central home holds only the registry (graphs stay in-tree). Keyed by git identity, so every worktree of this repo shares it.

home=$(gfx_home); reg=$(gfx_registry)
mkdir -p "$home"
if [ ! -f "$reg" ]; then
  jq -n \
    --arg key "$(gfx_repo_key)" \
    --arg main "$(gfx_main_worktree)" \
    --arg branch "$(gfx_default_branch)" \
    '{repo_key:$key, main_worktree:$main, default_branch:$branch, backend:"claude-cli", cli_model:"sonnet", indexes:{}}' \
    > "$reg"
fi
cat "$reg"

4. Pick a semantic backend

--semantic builds need a backend. Default is claude-cli (routes through the local claude CLI on the operator's Pro/Max plan - no API key, billed to the plan). The claude-cli path defaults to Opus (overkill for structured-JSON extraction), so the registry pins cli_model: "sonnet"; /graphify-wrapper-sync --semantic exports it as GRAPHIFY_CLAUDE_CLI_MODEL. If an API key is already in the env, prefer it:

if   [ -n "${ANTHROPIC_API_KEY:-}" ]; then b=claude
elif [ -n "${GEMINI_API_KEY:-}${GOOGLE_API_KEY:-}" ]; then b=gemini
elif [ -n "${OPENAI_API_KEY:-}" ]; then b=openai
elif [ -n "${DEEPSEEK_API_KEY:-}" ]; then b=deepseek
else b=claude-cli; fi
reg=$(gfx_registry); tmp=$(mktemp "$(dirname "$reg")/.reg.XXXXXX")
jq --arg b "$b" '.backend=$b' "$reg" > "$tmp" && mv "$tmp" "$reg"
echo "semantic backend: $b"

5. Report

  • /graphify-wrapper-index <name> <path> to register a domain (or /graphify-wrapper-index with no args to have me analyze the repo and suggest domains).
  • /graphify-wrapper-sync to build/refresh the current worktree's indexes.

Do not build any index here - that is /graphify-wrapper-index + /graphify-wrapper-sync.

Keep looking

Skills are one crate of 326,861. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.