Install
openclaw skills install nm-abstract-skill-graph-auditAudit Skill() refs; detect hubs, isolates, and dangling targets
openclaw skills install nm-abstract-skill-graph-auditNight Market Skill — ported from claude-night-market/abstract. For the full experience with agents, hooks, and commands, install the Claude Code plugin.
Build a directed graph of Skill(plugin:name) invocations across the
marketplace and surface composition patterns: which skills are heavily
referenced (hubs), which orchestrate many others (orchestrators), which
have no incoming or outgoing references (isolates), and which point at
non-existent skills (dangling references).
The federation graph is now derivable from source rather than hand-curated.
Skill() referencesSkill(abstract:skills-eval) insteadSkill(abstract:plugin-review)Skill(abstract:hooks-eval)python3 plugins/abstract/scripts/skill_graph.py \
--plugins-root plugins --top-n 10
For machine-readable output:
python3 plugins/abstract/scripts/skill_graph.py \
--plugins-root plugins --format json --output reports/skill-graph.json
See modules/usage.md for full CLI reference and example workflows.
| Output | Meaning | Action when high |
|---|---|---|
| Hubs | Most-referenced skills | Treat as core API; retire with extreme care |
| Orchestrators | Skills that call many others | Verify each ref still resolves |
| Isolates | Zero in / zero out | Check role: library? entrypoint? typo? |
| Dangling -- bugs | Missing internal target | Fix immediately (typo or retired skill) |
| Dangling -- external | Reference to external plugin | Document plugin dependency |
| Dangling -- placeholders | Template text like -NAME | Verify intentional |
See modules/interpretation.md for false-positive guidance and
isolation taxonomy.
This skill itself was scaffolded TDD-first; on first run against
plugins/, it caught two genuine dangling refs that the manual
audit (2026-04-25) had missed:
attune:makefile-generation -> abstract:makefile-dogfooder
(script name confused with skill name)imbue:karpathy-principles -> spec-kit:speckit-clarify
(command referenced as skill)Both were converted to correct command-style references in the same session.
Two ways to validate the audit output is trustworthy:
pytest -o addopts= plugins/abstract/tests/scripts/test_skill_graph.py to confirm
extraction, graph construction, ranking, isolate detection, and
dangling-ref classification all pass on the current code. The
-o addopts= flag bypasses the package-wide coverage gate, which
would otherwise fail on a single-file run.Skill(abstract:skills-eval) -- per-skill quality scoringSkill(abstract:plugin-review) -- plugin manifest + structureSkill(abstract:hooks-eval) -- hook-specific validationSkill(abstract:rules-eval) -- rules directory validationplugins/abstract/scripts/skill_graph.pyplugins/abstract/tests/scripts/test_skill_graph.pydocs/quality-gates.md#skill-level-quality-gate-compositiondocs/skill-integration-guide.md#skill-role-taxonomy