From understand-anything
Analyzes git diffs or pull requests against a knowledge graph to identify changed components, affected dependencies via edges, touched architectural layers, and risks based on complexity and blast radius.
How this skill is triggered — by the user, by Claude, or both
Slash command
/understand-anything:understand-diffThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Analyze the current code changes against the knowledge graph at `.understand-anything/knowledge-graph.json`.
Analyze the current code changes against the knowledge graph at .understand-anything/knowledge-graph.json.
The knowledge graph JSON has this structure:
project — {name, description, languages, frameworks, analyzedAt, gitCommitHash}nodes[] — each has {id, type, name, filePath, summary, tags[], complexity, languageNotes?}
file:path, function:path:name, class:path:nameedges[] — each has {source, target, type, direction, weight}
layers[] — each has {id, name, description, nodeIds[]}tour[] — each has {order, title, description, nodeIds[]}Check that .understand-anything/knowledge-graph.json exists. If not, tell the user to run /understand first.
Get the changed files list (do NOT read the graph yet):
git diff --name-onlygit diff main...HEAD --name-only (or the base branch)Read project metadata only — use Grep or Read with a line limit to extract just the "project" section for context.
Find nodes for changed files — for each changed file path, use Grep to search the knowledge graph for:
"filePath" values (e.g., grep "changed/file/path")id values of all matched nodesFind connected edges (1-hop) — for each matched node ID, Grep for that ID in the edges to find:
Identify affected layers — Grep for the matched node IDs in the "layers" section to determine which architectural layers are touched.
Provide structured analysis:
complexity values, number of cross-layer edges, and blast radius (number of affected components)Write diff overlay for dashboard — after producing the analysis, write the diff data to .understand-anything/diff-overlay.json so the dashboard can visualize changed and affected components. The file contains:
{
"version": "1.0.0",
"baseBranch": "<the base branch used>",
"generatedAt": "<ISO timestamp>",
"changedFiles": ["<list of changed file paths>"],
"changedNodeIds": ["<node IDs from step 4>"],
"affectedNodeIds": ["<node IDs from step 5, excluding changedNodeIds>"]
}
After writing, tell the user they can run /understand-anything:understand-dashboard to see the diff overlay visually.
npx claudepluginhub appleoppa/xuanji-understand-anything --plugin understand-anythingPerforms graph-based impact analysis to answer 'if I change X, what breaks?' before merging PRs or planning refactors.
Reviews PRs or branch diffs using knowledge graph for structural context, blast-radius analysis, risk assessment, test coverage, and structured file-by-file output.
Analyzes blast radius of code changes with risk scoring using code knowledge graph or git diff/grep fallback. Shows affected nodes, untested functions, and review priorities.