From unwind
Emits the rebuild knowledge-graph artifact by joining the scan manifest, coverage diff, and layer docs into docs/unwind/rebuild-graph.json for the Unwind dashboard. An optional export for static deploy or diffing.
How this skill is triggered — by the user, by Claude, or both
Slash command
/unwind:uw-graphThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
**Purpose:** Export `docs/unwind/rebuild-graph.json` — the joined knowledge-graph
Purpose: Export docs/unwind/rebuild-graph.json — the joined knowledge-graph
artifact that the Unwind dashboard renders. It fuses the deterministic scan, the
coverage diff, and the layer documentation into a single graph where every node
carries a rebuild block.
When do you actually need this skill? Only to produce the JSON without launching a server — a static deploy (e.g. the live demo), CI, sharing, or diffing the artifact. For interactive viewing you don't need it:
unwind:uw-dashboardregenerates the graph itself before launching. This is an optional export, not a required pipeline gate.
Output: docs/unwind/rebuild-graph.json
Two graphs — don't confuse them.
scan-manifest.json(built byuw-scan) is the ground truth — the file/symbol/import graph that drives seeds, the coverage diff, and completeness; the analysis skills read it, never this file.rebuild-graph.json(this skill's output) is a refreshable projection of manifest + coverage + docs that only the dashboard reads — nothing upstream reads it back. So it sits at the end of the linear pass (where it's richest), but it does not drive analysis and is not rigidly last: you can build it right afteruw-scanfor a structural view (everythingscanned) and re-run it after any phase to refresh. Safe to regenerate anytime.
Graceful fallback: if Node/pnpm or
@unwind/coreare unavailable, or if noscan-manifest.jsonexists yet, the script exits non-zero with a clear message. Runuw-scan(scan) first; the graph is an enhancement, never a hard dependency.
| Input | Source | Contributes |
|---|---|---|
| Structure | docs/unwind/.cache/scan-manifest.json | file/function/class/table/endpoint nodes + import edges |
| Coverage | docs/unwind/.cache/coverage/{layer}.json | rebuild.coverage (scanned / documented / verified) |
| Layer docs | docs/unwind/layers/**/*.md | rebuild.priority (MUST/SHOULD/DON'T) + rebuild.docRef |
| Progress overlay (optional) | docs/unwind/.cache/rebuild-progress.json | rebuild.rebuildStatus (human-maintained, never clobbered) |
The first three are produced by the uw-scan and uw-verify
skills. Coverage and docs are optional — without them the graph still builds with
every node marked scanned / not-started.
# Locate the installed Unwind plugin, then load the core helper.
# $0/BASH_SOURCE are unreliable under `bash -c`, so glob the install cache.
UNWIND_PLUGIN_ROOT="${CLAUDE_PLUGIN_ROOT:-${UNWIND_PLUGIN_ROOT:-}}"
[ -f "$UNWIND_PLUGIN_ROOT/skills/scripts/_resolve-plugin-root.sh" ] || \
UNWIND_PLUGIN_ROOT="$(ls -dt "$HOME"/.claude/plugins/cache/*/unwind/*/ 2>/dev/null | head -1)"
source "${UNWIND_PLUGIN_ROOT%/}/skills/scripts/_resolve-plugin-root.sh"
ensure_unwind_core || { echo "core unavailable — skip rebuild graph"; exit 0; }
node "$UNWIND_PLUGIN_ROOT/skills/scripts/build-graph.mjs" "$(pwd)"
The script:
contains, imports,
tested_by by path convention).rebuild block:
coverage — covered-by-anchor-id → verified, covered-by-name → documented,
missing → scanned, DON'T-tagged → excluded.priority + docRef — parsed from the [MUST]/[SHOULD]/[DON'T] tag and the
markdown file the item was documented in.contractKind — db-table / api-endpoint / event-schema / formula.rebuildStatus — merged from rebuild-progress.json if present, else derived
from coverage. The overlay always wins, so regeneration never erases human
progress.validateRebuildGraph (unique ids, no dangling edges, every node
has an explicit priority), then writes the file.It prints a summary: node / edge / layer counts and a coverage breakdown.
Relay the printed summary (node / edge / layer counts, coverage breakdown) and point
the user at docs/unwind/rebuild-graph.json. Since this is the artifact-export path,
mention the likely reason they ran it (static deploy / CI / sharing).
If they actually wanted to view the graph, point them at unwind:uw-dashboard
(which would have built it for them) rather than treating this as a required step.
Pipeline: scan → analyze → plan → dashboard.
uw-graphis an optional export off to the side — the dashboard builds the graph itself.
rebuild block{
"priority": "MUST", // MUST | SHOULD | DON'T | null
"contractKind": "db-table", // db-table | api-endpoint | event-schema | formula | null
"coverage": "verified", // scanned | documented | verified | excluded | stale
"docRef": "docs/unwind/layers/database/tables.md",
"rebuildStatus": "verified" // not-started | in-progress | done | verified
}
Safe to re-run after every scan or doc change. To record manual rebuild progress,
write docs/unwind/.cache/rebuild-progress.json keyed by node id, e.g.:
{ "table:src/db/schema.ts:users": { "rebuildStatus": "in-progress" } }
npx claudepluginhub nearform/unwind --plugin unwindFetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Applies a firm's KYC/AML rules grid to parsed onboarding records: assigns risk rating, checks required documents, outputs rule outcomes with citations, and routes for escalation.
Generates daily or weekly digests of activity from connected sources (chat, email, docs, tasks, CRM), highlighting action items, decisions, mentions, and project updates.