neo4j-modeling-skill

Designs, reviews, and refactors Neo4j graph data models with constraints and anti-pattern detection.

Updated Jul 24, 2026
One-click install
npx skills add https://github.com/eklyukin/my-ai-config --skill neo4j-modeling-skill-eklyukin
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: neo4j-modeling-skill
Source: https://github.com/eklyukin/my-ai-config/tree/main/skills/neo4j-modeling-skill
Command: npx skills add https://github.com/eklyukin/my-ai-config --skill neo4j-modeling-skill-eklyukin

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Designing a Neo4j graph model involves hard decisions about nodes versus relationships versus properties, and mistakes like generic labels, supernodes, or missing uniqueness constraints silently degrade correctness and query performance. This Skill guides the design and review of graph data models against established best practices. ## Core Features & Use Cases - Model Design Guidance: Decision tables for choosing node vs relationship vs property vs label, plus intermediate node patterns for n-ary relationships. - Anti-Pattern Detection: Identifies generic labels, supernodes, missing constraints, and embedding misuse, with concrete fixes for each issue. - Schema Enforcement DDL: Generates idempotent constraint and index statements (uniqueness, existence, type, key, fulltext, vector) using IF NOT EXISTS. - Use Case: When migrating a relational schema to Neo4j, use this Skill to map tables, foreign keys, and junction tables to nodes, relationships, and intermediate nodes, then produce a structured schema assessment with severity-rated issues. ## Quick Start Ask the assistant to review my existing Neo4j graph model for anti-patterns and recommend constraints and indexes.

Frequently Asked Questions about neo4j-modeling-skill

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I design a Neo4j graph data model from scratch?▼

Start by listing at least five queries the model must answer, then map entities to nodes, connections to directed relationships, and scalars to properties. Apply naming conventions (PascalCase labels, SCREAMING_SNAKE_CASE relationship types) and add uniqueness constraints before any MERGE.

When should I use a node vs a relationship vs a property in Neo4j?▼

Use a node for things with identity queried as entry points, a relationship for directed connections between two things, and a property for scalars always returned with their parent. If a connection has its own properties or links more than two entities, model it as an intermediate node.

How do I detect and fix supernodes in Neo4j?▼

Detect supernodes by querying node degree and flagging nodes with far more relationships than the median for their label. Mitigate by splitting relationship types, segregating labels, applying the bucket pattern for time-series data, or replacing low-cardinality nodes with labels.

Does this skill write or optimize Cypher queries?▼

No, Cypher query authoring and optimization are explicitly out of scope and handled by the neo4j-cypher skill. This skill covers model design, schema review, constraints, and indexes only; Spring Data Neo4j, GraphQL, and data import are also delegated to separate skills.

How do I migrate a relational database schema to a Neo4j graph?▼

Map table rows to nodes, scalar columns to properties, primary keys to uniqueness constraints, and foreign keys to directed relationships. Junction tables with their own columns become intermediate nodes, while simple many-to-many tables become direct relationships.

Why should embeddings not be stored on business nodes in Neo4j?▼

Storing embedding arrays on business nodes makes them too large and slows traversal queries. Store embeddings on dedicated Chunk nodes linked from the parent document, with a vector index only on the chunk embedding property.