Neo4j
Neo4j graph database with Cypher query language. Use for graph-based data.From its SKILL.md
npx -y skills add G1Joshi/Agent-Skills --skill neo4jAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 12 stars12 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
2.0 KB, 519 tokens by cl100k_base, as published. Nobody here has run it
Neo4j
Neo4j is a native graph database. It stores data as nodes and relationships, not tables or documents. It is essential for "connected data" problems where relationships are as important as the data itself.
When to Use
- Knowledge Graphs: Connecting silos of data (Users, Docs, Concepts).
- Fraud Detection: Finding "Rings" of users sharing IDs/Devices.
- Recommendation Engines: "People who bought X also bought Y" (Collaborative Filtering).
- GraphRAG (2025): Enhancing LLM context by traversing a knowledge graph instead of just vector similarity.
Quick Start (Cypher)
-- Create nodes and relationships
CREATE (alice:Person {name: 'Alice'})
CREATE (bob:Person {name: 'Bob'})
CREATE (alice)-[:KNOWS {since: 2024}]->(bob);
-- Query friends of friends
MATCH (p:Person {name: 'Alice'})-[:KNOWS]->(friend)-[:KNOWS]->(fof)
RETURN fof.name;
Core Concepts
Cypher
The SQL of Graphs. It uses ASCII-art patterns (node)-[RELATIONSHIP]->(node).
Index-Free Adjacency
In Neo4j, every node physically points to the next node. "Joins" are pre-computed pointers. Traversing 1 million relationships is O(1) per step, not O(Log N) like B-Trees.
Graph Data Science (GDS)
Library for algorithms like PageRank, Louvain (Community Detection), and Path Finding.
Best Practices (2025)
Do:
- Use GraphRAG: Combine Vector Search (Semantic) with Graph Traversal (Structural) for better AI answers.
- Model Relationships Richly: Put properties on relationships (e.g.,
[:REVIEWED {rating: 5, date: ...}]). - Use Labels: Always label nodes (
:Person) to optimize scans.
Don't:
- Don't create Supernodes: A node with 1 Million edges (e.g.,
(Justin Bieber)-[:FOLLOWED_BY]->(...)) hurts traversal performance. - Don't use it for simple lookups: If you just need
ByKeyorRange, use a K-V store.
References
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.