graphify-wrapper-synclisted
Install: claude install-skill yoelgal/agent-tools
# /graphify-wrapper-sync
This is the only thing that builds graphs.
```bash
. .better-dev/bin/bd-gfx 2>/dev/null || . "${CLAUDE_PLUGIN_ROOT}/scripts/bd-gfx"
reg=$(gfx_registry)
[ -f "$reg" ] || { echo "run /graphify-wrapper-setup first"; exit 1; }
this=$(gfx_this_worktree)
sem=false; case "$*" in *--semantic*) sem=true;; esac
target="${1:-}"; case "$target" in --*) target="";; esac # ignore flags as name
names=$(if [ -n "$target" ]; then echo "$target"; else gfx_index_names; fi)
[ -n "$names" ] || { echo "no indexes registered - run /graphify-wrapper-index"; exit 1; }
```
## Per-index loop
For each name, resolve its subtree and its output dir, then build. The rule:
- **Refresh** if a graph already exists at `gfx_out_dir <name>`.
- **Build from scratch** otherwise.
Output never lands in the tree being indexed: `gfx_out_dir` returns an absolute
path under this repo's central home, keyed per worktree and per domain, and it is
exported as `GRAPHIFY_OUT` **on each build command**. An absolute `GRAPHIFY_OUT`
is a single global destination, so exporting it once for the shell would collapse
every domain and every repo into one dir. Never set it outside the loop.
```bash
backend=$(gfx_backend)
# Image/asset files graphify would otherwise read as text "docs" - token noise
# with no architectural signal, and the source of oversized chunks that time out.
exc_args=(); while IFS= read -r p; do [ -n "$p" ] && exc_args+=(--exclude "$p"); done < <(gfx_extract_excludes)
for name in $n