Help us improve
Share bugs, ideas, or general feedback.
From kg
Wires new concepts into a knowledge graph: searches for related entities, creates typed links (extends, depends_on, etc.), and checks minimum connection density.
npx claudepluginhub ohdearquant/khive --plugin kgHow this skill is triggered — by the user, by Claude, or both
Slash command
/kg:connectThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You just encountered something new and want to integrate it into your existing graph.
Ingests research material into a knowledge graph by extracting entities, creating links, and verifying density. Useful for organizing papers, concepts, and implementations.
Traverses knowledge graph across memories, entities, and relationships for comprehensive context. Use before planning complex work, investigating concept connections, or answering 'what do you know about X'.
Proves, disproves, or investigates claims about people, concepts, ideas, and relationships using Obsidian knowledge graph tools like kg_search, kg_paths, and kg_node.
Share bugs, ideas, or general feedback.
You just encountered something new and want to integrate it into your existing graph. This skill finds what it relates to and wires the edges.
search(kind="entity", query="<the new thing>")
If it exists: skip to step 3 (enriching edges). If it's a close match but different (e.g., a variant): create it and link via variant_of or extends.
create(kind="entity", entity_kind="<kind>", name="<short canonical name>",
description="<what it is>", properties={...})
Pick from 6 kinds: concept, document, dataset, project, person, org.
Search broadly for related entities:
search(kind="entity", query="<related terms, parent concept, enabling technique>")
Think about these relationship dimensions:
instance_of (specific → general)extends (child → parent)introduced_by (concept → paper/person)depends_on (consumer → dependency)competes_with (A ↔ B)depends_on prerequisites this fulfillsimplements (code → concept)composed_with (A ↔ B)For each identified relationship:
link(source_id="<from>", target_id="<to>", relation="<relation>", weight=<0.4-1.0>)
Direction rules (the most common mistakes):
| Relation | Points FROM → TO | Mnemonic |
|---|---|---|
introduced_by | concept → paper | "LoRA was introduced_by Hu 2021" |
extends | child → parent | "QLoRA extends LoRA" |
instance_of | specific → general | "GQA is an instance_of grouped attention" |
implements | code → concept | "lattice-inference implements GQA" |
depends_on | consumer → dependency | "quantization depends_on calibration data" |
If the relationship doesn't fit any of the 13 relations, it's probably a property on the entity (e.g., "published in 2021" → properties.year: "2021", not an edge).
neighbors(node_id="<new-entity-id>", direction="both")
Targets: concepts ≥ 4 edges, projects ≥ 3, documents ≥ 2. If below, actively seek more connections — especially instance_of/extends (every concept has a parent) and introduced_by (most concepts have a source).
State what was connected: the new entity, each edge created (with direction and rationale), and final edge count. Flag if density target wasn't met and why.
Entity is at or above minimum density. Each edge has clear rationale. If you can't reach the density target, note what's missing (e.g., "no source paper found for this concept — needs research").
These are properties, not edges:
properties.yearproperties.languageproperties.paramsproperties.benchmark_resultssalience on a note about it