/install knowledge-graph-notes
SKILL.md — note-linking
Auto-discover hidden connections between your notes. Bidirectional links, knowledge graphs, and semantic link suggestions — without plugins.
What This Skill Does
Analyzes a directory of notes (markdown, txt, org, obsidian vault) and:
- Extracts — reads all notes, splits by headings, extracts content blocks
- Understands — detects entities (people, projects, topics, tools), infers relationships
- Links — generates bidirectional link suggestions with confidence scores
- Graphs — builds a knowledge graph showing how notes connect
- Queries — traverse the graph: "show me all notes related to X", "who links to Y"
Unlike the incumbent slipbot (which does keyword matching), this skill uses semantic understanding — it knows that "LLM" relates to "language model" and "transformer architecture" even without exact keyword overlap.
When to Trigger
Trigger when user says:
- "link my notes"
- "find connections between notes"
- "build a knowledge graph from my notes"
- "what relates to X in my notes"
- "show me all notes about Y"
- "I have notes scattered, can you organize them"
- "bidirectional links"
- "backlinks"
- "how does A connect to B"
Input
| Field | Type | Description |
|---|---|---|
notesPath |
string | Path to notes directory (default: ~/.qclaw/workspace/) |
query |
string | Optional: specific question about note relationships |
depth |
number | Link traversal depth (default: 2) |
format |
string | graph / list / markdown (default: markdown) |
Output
Markdown Format (default)
## Knowledge Graph
### Notes Analyzed: 47
### Total Links Found: 134
### Orphan Notes: 3 (unconnected)
## Top Hubs (most linked)
1. **AI_Agent_Architecture.md** — 18 connections
2. **Memory_System_Design.md** — 14 connections
3. **GitHub_Strategy.md** — 11 connections
## Link Suggestions
| From | To | Confidence | Reason |
|------|----|-----------|--------|
| EvoMap.md | Memory_System_Design.md | 0.94 | Shared topic: self-evolution |
| GitHub_Strategy.md | clawhub_publish.md | 0.91 | Project: SKY-lv repo family |
| AI_Agent_Architecture.md | hermes-agent-integration.md | 0.87 | Tool integration |
## Backlinks
### EvoMap.md (3 backlinks)
← Memory_System_Design.md (self-repair loop concept)
← skill-market-analyzer.md (GEP protocol reference)
← agent-builder.md (evolution pattern)
Graph Format
{
"nodes": [{"id": "note-name", "connections": 18, "topics": [...]}],
"edges": [{"from": "A", "to": "B", "weight": 0.94, "reason": "..."}]
}
Technical Approach
Architecture
notesPath/
├── link_engine.js ← Core: read → extract → analyze → graph
├── graph_query.js ← Traverse graph, answer questions
└── export.js ← Export as Obsidian markdown, JSON, CSV
link_engine.js Core Logic
Phase 1: Index
- Recursively find all
.md,.txt,.orgfiles - Parse frontmatter (YAML/toml headers)
- Split into content blocks (by heading or double newline)
Phase 2: Entity Extraction
- Named entities: people, organizations, tools (NER-lite regex)
- Topics: extract noun phrases, technical terms
- Keywords: TF-IDF top terms per note
Phase 3: Relationship Detection
Relationship Score = cosine_similarity(embedding_A, embedding_B)
Without external embedding APIs, use:
- Keyword overlap (Jaccard) weighted by TF-IDF
- Co-occurrence in same paragraph / section
- Structural links: same directory, similar filename, shared YAML tags
- Explicit mentions: [[wikilink]] or [note name] patterns
Phase 4: Graph Construction
const graph = {
nodes: Map\x3CnoteId, {file, topics, keywords, blocks}>,
edges: Map\x3CnoteId, Map\x3CnoteId, {score, reasons, type}>>
}
Phase 5: Query
- Find shortest path between two notes
- List N-degree neighbors
- Find bridges (notes that connect otherwise separate clusters)
Threshold Strategy
| Confidence | Condition | Action |
|---|---|---|
| ≥ 0.85 | Strong semantic match | Auto-link (add [[wikilink]]) |
| 0.60–0.84 | Probable match | Suggest with reason |
| 0.40–0.59 | Weak match | Flag as "possible" |
| \x3C 0.40 | Noise | Ignore |
Implementation Notes
Pure Node.js (no external APIs)
For embedding-free similarity, use:
- TF-IDF vectors per note (term frequency × inverse document frequency)
- Jaccard similarity on keyword sets
- Levenshtein distance on headings to catch near-matches
- YAML tag intersection for structured vaults
Obsidian Compatibility
- Read existing
[[wikilink]]syntax - Write new links in Obsidian format
- Respect
![[embed]]and![[callout]]patterns
Performance
- Index vault once, cache in
~/.qclaw/note-linking-graph.json - Incremental update on file change (watch mode)
- Max file size: 1MB per note (skip binary/exec)
Real Data (2026-04-11 Market Analysis)
| Metric | Value |
|---|---|
| Current incumbent | slipbot (score: 1.021) |
| Top target score | 3.5 |
| Gap | 3.43× improvement possible |
| Incumbent weakness | Keyword-only matching, no graph |
Skills That Compose Well With
skylv-knowledge-graph— if you want full graph visualizationskylv-file-versioning— version your note graph over timeskylv-ai-prompt-optimizer— optimize your note-taking prompts
Usage
- Install the skill
- Configure as needed
- Run with OpenClaw
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install knowledge-graph-notes - After installation, invoke the skill by name or use
/knowledge-graph-notes - Provide required inputs per the skill's parameter spec and get structured output
What is Knowledge Graph Notes?
Automatically creates bidirectional links between related notes. It is an AI Agent Skill for Claude Code / OpenClaw, with 76 downloads so far.
How do I install Knowledge Graph Notes?
Run "/install knowledge-graph-notes" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Knowledge Graph Notes free?
Yes, Knowledge Graph Notes is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Knowledge Graph Notes support?
Knowledge Graph Notes is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Knowledge Graph Notes?
It is built and maintained by SKY-lv (@sky-lv); the current version is v1.0.0.