From draft
Initializes or refreshes a knowledge-graph snapshot for a repository using the codebase-memory-mcp engine. Reports engine status, node/edge counts, hotspots, and cycles.
How this skill is triggered — by the user, by Claude, or both
Slash command
/draft:graphThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Initialize or refresh the `draft/graph/` knowledge-graph snapshot for a single repository. This is the narrow "give me a fresh structural graph" command — it does **not** generate `architecture.md`/`.ai-context.md` and does **not** re-inject doc diagram slots (both are `/draft:init`). For scope-aware, root-first graph memory across a monorepo (root spine + module→root links), use `/draft:init -...
Initialize or refresh the draft/graph/ knowledge-graph snapshot for a single repository. This is the narrow "give me a fresh structural graph" command — it does not generate architecture.md/.ai-context.md and does not re-inject doc diagram slots (both are /draft:init). For scope-aware, root-first graph memory across a monorepo (root spine + module→root links), use /draft:init --graph-only.
graph-snapshot.shBuild, then report what the tools actually returned.
The command takes an optional path argument: /draft:graph [path].
.).REPO="${1:-.}"
if [ ! -d "$REPO" ]; then
echo "ERROR: '$REPO' is not a directory."
exit 1
fi
REPO_ABS="$(cd "$REPO" && pwd)"
echo "Target repo: $REPO_ABS"
# Locate Draft's bundled helpers. Skills run with cwd = the user's project and
# ${CLAUDE_PLUGIN_ROOT} is not exported into skill Bash, so resolve DRAFT_TOOLS here
# and call helpers as "$DRAFT_TOOLS/<tool>.sh". See core/shared/tool-resolver.md.
DRAFT_TOOLS="$(cat ~/.cache/draft/plugin-root 2>/dev/null)/scripts/tools"
[ -d "$DRAFT_TOOLS" ] || DRAFT_TOOLS="$(ls -d ~/.claude/plugins/cache/*/draft/*/scripts/tools 2>/dev/null | sort -V | tail -1)"
[ -d "$DRAFT_TOOLS" ] || DRAFT_TOOLS="$(ls -d ~/.claude/plugins/marketplaces/*draft*/scripts/tools 2>/dev/null | tail -1)"
[ -d "$DRAFT_TOOLS" ] || DRAFT_TOOLS="$PWD/scripts/tools"
DRAFT_SCRIPTS="${DRAFT_TOOLS%/tools}" # parent dir holds fetch-memory-engine.sh
Resolve the engine; if it is missing, fetch it once, then re-check. If it is still unavailable (e.g. offline, opted out via DRAFT_MEMORY_DISABLE), report and stop gracefully — graph features are optional everywhere in Draft.
if ! "$DRAFT_TOOLS/verify-graph-binary.sh" --repo "$REPO_ABS" --json 2>/dev/null | grep -q '"status":"ok"'; then
echo "Graph engine not found — attempting to fetch it..."
"$DRAFT_SCRIPTS/fetch-memory-engine.sh" || true
fi
ENGINE="$("$DRAFT_TOOLS/verify-graph-binary.sh" --repo "$REPO_ABS" --json 2>/dev/null || true)"
if ! echo "$ENGINE" | grep -q '"status":"ok"'; then
echo "Graph engine unavailable — skipping. Install with scripts/fetch-memory-engine.sh, or unset DRAFT_MEMORY_DISABLE."
exit 0
fi
echo "Engine: $ENGINE"
One call resolves the engine, indexes the repo (incrementally on refresh), and updates the gate marker <repo>/draft/graph/schema.yaml (engine metadata + point-of-index counts; access: engine-live). All structural graph data is queried live from the engine — no snapshot files are committed beyond schema.yaml.
"$DRAFT_TOOLS/graph-snapshot.sh" --repo "$REPO_ABS"
If this exits non-zero, the engine became unavailable mid-run — report it and stop; do not fabricate results.
Summarize what the snapshot contains. Read draft/graph/schema.yaml for engine/version/counts, and use the live tools for a quick health view:
echo "--- Snapshot ---"
cat "$REPO_ABS/draft/graph/schema.yaml"
echo "--- Top hotspots ---"
"$DRAFT_TOOLS/hotspot-rank.sh" --repo "$REPO_ABS" --top 5
echo "--- Cycles ---"
"$DRAFT_TOOLS/cycle-detect.sh" --repo "$REPO_ABS"
echo "--- Snapshot state ---"
git -C "$REPO_ABS" rev-parse --short HEAD 2>/dev/null \
&& { git -C "$REPO_ABS" diff --quiet 2>/dev/null || echo "(working tree dirty — snapshot reflects uncommitted changes)"; }
Present a concise summary:
schema.yaml)None ✓Then point the user at the natural next steps:
architecture.md / .ai-context.md: run /draft:init refresh (or /draft:init --graph-only to rebuild just the graph memory)./draft:init.| Scenario | Behavior |
|---|---|
| Engine resolvable | Build snapshot, report counts/hotspots/cycles |
| Engine missing, fetch succeeds | Build proceeds after fetch |
Engine missing, fetch fails / DRAFT_MEMORY_DISABLE=1 | Report unavailable and exit 0 — no error, no partial snapshot |
| Path not a directory | Exit 1 with a clear message |
See core/shared/graph-query.md and bin/README.md for the query contract and engine resolution.
npx claudepluginhub drafthq/draft --plugin draftBuilds or incrementally updates the repository code knowledge graph for review. Use for initial setup, after refactors or branch switches; supports Python, TypeScript/JS, Go; SQLite storage.
Auto-generates AGENTS.md from knowledge graph topology. Never stale because computed, not authored. Use after refactoring or on schedule.
Dispatches code-review-graph queries as an agent: ensures graph freshness/embeddings, runs semantic search, feature exploration, impact analysis, and git-based review context.