Agent skill

Neo4j Modeling Skill

by neo4j-contrib in neo4j-contrib/neo4j-skills

Design, review, and refactor Neo4j graph data models. An agent skill from neo4j-contrib/neo4j-skills.

MITAuto-check: notesBackend & APIs

Install Neo4j Modeling Skill

skills CLI
$ npx skills add neo4j-contrib/neo4j-skills --skill neo4j-modeling-skill -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install neo4j-contrib/neo4j-skills neo4j-modeling-skill --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/neo4j-contrib/neo4j-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/neo4j-modeling-skill .claude/skills/neo4j-modeling-skill && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
neo4j-modeling-skill
GitHub stars
114
Token cost
~4k tokens
SKILL.md length
1,358 words
Files
2
Skills in repo
28
Repo updated
First seen
Licence
MIT

At a glance

Design, review, and refactor Neo4j graph data models. An agent skill from neo4j-contrib/neo4j-skills.

  • Works in 11 steps: Use-case first — list 5+ queries the… → Nodes = entities (nouns) with identity;… → Labels PascalCase; rel types… → …
  • Choosing node labels vs relationship types vs properties
  • SKILL.md covers When to Use, When NOT to Use, Inspect Before Designing and Defaults — Apply to Every Model, plus 5 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Neo4j Modeling Skill is an agent skill from neo4j-contrib/neo4j-skills. Design, review, and refactor Neo4j graph data models. Use when choosing node labels vs relationship types vs properties, migrating relational/document schemas to graph, detecting anti-patterns (generic labels, supernodes, missing constraints), designing intermediate nodes for n-ary relationships, enforcing schema with constraints and indexes, or assessing an existing model against graph modeling best practices. Does NOT handle Cypher query authoring — use neo4j-cypher-skill. Does NOT handle Spring Data Neo4j…

Its SKILL.md is about 4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `README.md`).

It sits in Backend & APIs, covering GraphQL and Design review and critique. It works with Neo4j and GraphQL. The repository describes itself as: Neo4j Skills for Coding and other Agents including Cypher. The licence is MIT.

When your agent uses it

  • Choosing node labels vs relationship types vs properties
  • Migrating relational/document schemas to graph
  • Detecting anti-patterns (generic labels
  • Missing constraints)

Example prompts

  • “/neo4j-modeling-skill”

Requirements

  • Pre-approved tools (allowed-tools): WebFetch, Bash

Workflow steps

11 steps, taken from the first numbered list in SKILL.md.

  1. Use-case first — list 5+ queries the model must answer before designing
  2. Nodes = entities (nouns) with identity; rels = connections (verbs) with direction
  3. Labels PascalCase; rel types SCREAMING_SNAKE_CASE; properties camelCase
  4. Every node type used in MERGE has a uniqueness constraint on its key property
  5. Add property type constraints (REQUIRE n.prop IS :: STRING) where type known — catches bad writes early. Enterprise only; Community: use…
  6. No generic labels (:Entity, :Node, :Thing); no generic rel types (:RELATED_TO, :HAS)
  7. Security labels (used for row-level access control) should start with a common prefix (e.g. Sec) so application code can reliably filter…
  8. Rel direction encodes semantic meaning — not arbitrary
  9. Inspect schema before proposing any change on an existing database
  10. All constraint/index DDL uses IF NOT EXISTS — safe to rerun
  11. On Neo4j 2026.06+ (Enterprise/Aura, GA): declare the full model in one block with ALTER CURRENT GRAPH TYPE SET { … }, extend it with ALTER…

What it can do on your machine

Read from SKILL.md and the folder at commit bb30e1f. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • WebFetch
    • Bash

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are cypher).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • neo4j.com
    • graphacademy.neo4j.com
    • medium.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Neo4j Modeling Skill loads about 4k tokens when it runs. Until then it costs about 176 tokens; SKILL.md has 1,358 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~176
When it runs · the whole SKILL.md, loaded when a task matches
~4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: WebFetch, Bash

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from neo4j-contrib/neo4j-skills at commit bb30e1f, republished under its MIT licence (© neo4j-contrib). 1,358 words, ~4,041 tokens.

Download SKILL.mdSave it as .claude/skills/neo4j-modeling-skill/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
neo4j-modeling-skill
description
Design, review, and refactor Neo4j graph data models. Use when choosing node labels vs relationship types vs properties, migrating relational/document schemas to graph, detecting anti-patterns (generic labels, supernodes, missing constraints), designing intermediate nodes for n-ary relationships, enforcing schema with constraints and indexes, or assessing an existing model against graph modeling best practices. Does NOT handle Cypher query authoring — use neo4j-cypher-skill. Does NOT handle Spring Data Neo4j entity mapping — use neo4j-spring-data-skill. Does NOT handle GraphQL type definitions — use neo4j-graphql-skill. Does NOT handle data import — use neo4j-import-skill.
allowed-tools
WebFetch, Bash
version
1.0.7

When to Use

  • Designing graph model from scratch (domain → nodes, rels, props)
  • Reviewing existing model for anti-patterns
  • Deciding node vs property vs relationship vs label
  • Migrating relational or document schema to graph
  • Designing intermediate nodes for n-ary or complex relationships
  • Detecting and mitigating supernode / high-fanout problems
  • Choosing and creating constraints + indexes for a model

When NOT to Use

  • Writing or optimizing Cypher → neo4j-cypher-skill
  • Spring Data Neo4j (@Node, @Relationship) → neo4j-spring-data-skill
  • GraphQL type definitions → neo4j-graphql-skill
  • Importing data (LOAD CSV, APOC import) → neo4j-import-skill

Inspect Before Designing

On existing database, run first — never propose changes without current state:

cypher
CALL db.schema.visualization() YIELD nodes, relationships RETURN nodes, relationships;
SHOW CONSTRAINTS YIELD name, type, labelsOrTypes, properties RETURN name, type, labelsOrTypes, properties;
SHOW INDEXES YIELD name, type, labelsOrTypes, state WHERE state = 'ONLINE' RETURN name, type, labelsOrTypes;

If APOC available:

cypher
CALL apoc.meta.schema() YIELD value RETURN value;

MCP tool map:

OperationTool
Inspect schemaget-schema
SHOW CONSTRAINTS, SHOW INDEXESread-cypher
CREATE CONSTRAINT ... IF NOT EXISTSwrite-cypher (show + confirm first)

Defaults — Apply to Every Model

  1. Use-case first — list 5+ queries the model must answer before designing
  2. Nodes = entities (nouns) with identity; rels = connections (verbs) with direction
  3. Labels PascalCase; rel types SCREAMING_SNAKE_CASE; properties camelCase
  4. Every node type used in MERGE has a uniqueness constraint on its key property
  5. Add property type constraints (REQUIRE n.prop IS :: STRING) where type known — catches bad writes early. Enterprise only; Community: use uniqueness constraints, validate types in app
  6. No generic labels (:Entity, :Node, :Thing); no generic rel types (:RELATED_TO, :HAS)
  7. Security labels (used for row-level access control) should start with a common prefix (e.g. Sec) so application code can reliably filter them out of the domain schema
  8. Rel direction encodes semantic meaning — not arbitrary
  9. Inspect schema before proposing any change on an existing database
  10. All constraint/index DDL uses IF NOT EXISTS — safe to rerun
  11. On Neo4j 2026.06+ (Enterprise/Aura, GA): declare the full model in one block with ALTER CURRENT GRAPH TYPE SET { … }, extend it with ALTER CURRENT GRAPH TYPE ADD { … }, instead of individual CREATE CONSTRAINT statements — details in neo4j-cypher-skill (GRAPH TYPE reference). Not on Community (ALTER CURRENT GRAPH TYPE SET → "not supported in community edition"): use individual constraints. On 2026.02–2026.05 syntax is preview.

Key Patterns

Node vs Relationship vs Property — Decision Table
QuestionAnswerModel as
Is it a thing with identity, queried as entry point?YesNode
Is it a connection between two things with direction?YesRelationship
Does the connection have its own properties or multiple targets?YesIntermediate node
Is it a scalar always returned with its parent, never filtered alone?YesProperty on parent
Is it a category used for type-based filtering or path traversal?YesLabel (not a property)
Does the same attribute value repeat across many nodes (low cardinality)?YesLabel, not a property node
Is it a fact connecting >2 entities?YesIntermediate node
Property vs Label — Decision Table
Use label whenUse property when
Values are few, fixed, used as traversal filters (WHERE n:Active)Values are many, dynamic, or unique per node
You traverse by type (MATCH (n:VIPCustomer))You filter by value (WHERE n.tier = 'vip')
Category drives index selectionFine-grained value drives range scans
Example: :Active, :Verified, :PremiumExample: status, score, email

Rule: adding a label is cheap; scanning all :Label nodes is fast. Never model high-cardinality values as labels.

Low-cardinality state such as status: label (:Active) if stable category used for traversal/filter; property if changes often or only returned with node. Never a (:Status) node.


Intermediate Node Pattern

Use when a relationship needs its own properties, connects >2 entities, or is independently queryable.

Before (relationship with property — limited):

(Person)-[:ACTED_IN {role: "Neo"}]->(Movie)
// Cannot query roles independent of movies

After (intermediate node — queryable, extensible):

(Person)-[:PLAYED]->(Role {name: "Neo"})-[:IN]->(Movie)
// MATCH (r:Role) WHERE r.name STARTS WITH 'Neo' RETURN r

Employment overlap example:

cypher
// Find colleagues who overlapped at same company
MATCH (p1:Person)-[:WORKED_AT]->(e1:Employment)-[:AT]->(c:Company)<-[:AT]-(e2:Employment)<-[:WORKED_AT]-(p2:Person)
WHERE elementId(p1) < elementId(p2)
  AND e1.startDate <= coalesce(e2.endDate, date())
  AND e2.startDate <= coalesce(e1.endDate, date())
RETURN DISTINCT p1.name, p2.name, c.name

Promote relationship to intermediate node when:

  • Relationship has >2 properties
  • Relationship is the subject of another query
  • Multiple entities share the same connection context
  • You need to connect >2 entities in one fact

Relational → Graph Migration Table
Relational constructGraph equivalentNotes
Table rowNodeOne label per table (add more as needed)
Column (scalar)Node property
Primary keyUniqueness constraint propertyPrefer tmdbId/personId over bare id
Foreign keyRelationshipDirection: from dependent → referenced
Many-to-many junction tableIntermediate nodeEspecially if junction has own columns
Junction table (no own columns)Direct relationshipSimpler; upgrade to intermediate node later
NULL FK (optional relation)Absent relationshipNo node created; absence is the signal
Polymorphic FK (Rails-style)Multiple labels or relationship typesSplit into type-specific rels
Self-referential FKSame-label relationship:Employee {managerId} → (e)-[:REPORTS_TO]->(m)
Audit/history columnsIntermediate versioning nodeSee References for versioning pattern

Supernode Detection and Mitigation

Detect:

cypher
// Find top-10 highest-degree nodes
MATCH (n)
RETURN labels(n) AS labels, elementId(n) AS id, count{ (n)--() } AS degree
ORDER BY degree DESC LIMIT 10

Node with degree >> median for its label = supernode candidate. Any node with >100K relationships will degrade traversal queries that pass through it.

Causes:

  • Domain supernodes: airports, celebrities, popular hashtags — unavoidable
  • Modeling supernodes: gender, country, status modeled as nodes with millions of edges — avoidable

Mitigation strategies (in priority order):

StrategyWhen to useImplementation
Query directionDirectional asymmetry existsQuery from low-degree side; exploit direction
Relationship type splitSupernode serves multiple roles:FOLLOWS + :FAN instead of single :RELATED_TO
Label segregationSupernode conflates entity types:Celebrity vs :User → query only relevant subtype
Bucket patternTime-series or high-volume event nodesSee below
Avoid modelingLow-cardinality categoricalsUse label instead of node (:Active not (:Status {name:"Active"}))
Join hintQuery tuning last resortUSING JOIN ON n in Cypher

Bucket pattern (time-series / high-volume):

cypher
// Instead of: (:User)-[:VIEWED]->(:Page) (millions of rels per user)
// Bucket by hour:
(u:User)-[:VIEWED_IN]->(b:ViewBucket {userId: u.id, hour: '2025-04-28T14'})-[:VIEWED]->(p:Page)

// Query last hour's views without traversing full history:
MATCH (u:User {id: $uid})-[:VIEWED_IN]->(b:ViewBucket {hour: $hour})-[:VIEWED]->(p)
RETURN p.url

Show full SKILL.md (516 more words)Show less
Naming Conventions
ElementConventionGoodBad
Node labelPascalCase, singular noun:Person, :BlogPost:person, :blog_posts, :Entity
Relationship typeSCREAMING_SNAKE_CASE, verb phrase:ACTED_IN, :WORKS_FOR:actedin, :relatedTo, :HAS
Property keycamelCasefirstName, createdAtFirstName, first_name
Constraint namesnake_case descriptiveperson_id_uniqueconstraint1
Index namesnake_case descriptiveperson_name_idxindex2

Schema Enforcement — What to Create for Each Element

Run all DDL with IF NOT EXISTS. Apply before importing data.

cypher
// 1. Uniqueness constraint — every node type used in MERGE
CREATE CONSTRAINT person_id_unique IF NOT EXISTS
  FOR (p:Person) REQUIRE p.id IS UNIQUE;

// 2. Existence constraint (Enterprise) — mandatory properties
CREATE CONSTRAINT person_name_exists IF NOT EXISTS
  FOR (p:Person) REQUIRE p.name IS NOT NULL;

// 3. Property type constraint (Enterprise) — enforce data type
CREATE CONSTRAINT person_born_integer IF NOT EXISTS
  FOR (p:Person) REQUIRE p.born IS :: INTEGER;

// 4. Key constraint (Enterprise) — unique + exists in one
CREATE CONSTRAINT movie_tmdbid_key IF NOT EXISTS
  FOR (m:Movie) REQUIRE m.tmdbId IS NODE KEY;

// 4b. Community alternative to NODE KEY — composite uniqueness (existence not enforced)
CREATE CONSTRAINT movie_title_released_unique IF NOT EXISTS
  FOR (m:Movie) REQUIRE (m.title, m.released) IS UNIQUE;

// 5. Range index — equality and range filters on properties
CREATE INDEX person_name_idx IF NOT EXISTS
  FOR (p:Person) ON (p.name);

// 6. Fulltext index — ranked free-text search via `db.index.fulltext.queryNodes` / `SEARCH` (Lucene syntax, wildcards like `An*`); not used for CONTAINS / STARTS WITH predicates
CREATE FULLTEXT INDEX person_fulltext IF NOT EXISTS
  FOR (n:Person) ON EACH [n.name, n.bio];

// 6b. Text index — serves CONTAINS / STARTS WITH / ENDS WITH (range index preferred for STARTS WITH when present)
CREATE TEXT INDEX person_bio_text IF NOT EXISTS
  FOR (n:Person) ON (n.bio);

// 7. Vector index — embedding similarity search
CREATE VECTOR INDEX chunk_embedding_idx IF NOT EXISTS
  FOR (c:Chunk) ON (c.embedding)
  OPTIONS { indexConfig: { `vector.dimensions`: 1536, `vector.similarity_function`: 'cosine' } };

// 8. Relationship index — filter on rel properties
CREATE INDEX acted_in_year_idx IF NOT EXISTS
  FOR ()-[r:ACTED_IN]-() ON (r.year);

After creating indexes, poll until ONLINE:

cypher
SHOW INDEXES YIELD name, state WHERE state <> 'ONLINE' RETURN name, state;

Do NOT use an index until state = ONLINE.


Vector / Embedding Property Modeling

Prefer dedicated :Chunk nodes for long text; short-text embeddings can live on the entity:

(:Document)-[:HAS_CHUNK]->(c:Chunk {text: "...", embedding: [...]})

Rules:

  • Chunk node: text (source text), embedding (float array), chunkIndex (int)
  • Parent document: metadata only (title, url, createdAt)
  • Vector index on c.embedding only
  • Chunk size 200–500 tokens with 20% overlap is production default [field]
  • Chunked docs: do NOT put embedding on :Document — makes node too large, pollutes traversal

Anti-Patterns Table
Anti-patternProblemFix
Generic labels :Entity, :NodeNo filtering benefit; all nodes scanUse domain labels :Person, :Product
Generic rel types :RELATED_TO, :HASCan't filter by relationship typeUse semantic types :PURCHASED, :AUTHORED
Low-cardinality value as nodeSupernode (:Status {name:"active"} → millions of edges)Use label :Active instead
Property as label (n.type = 'VIP' + :VIP label both exist)Inconsistency, duplicationPick one; prefer label if used in traversal
Storing embeddings on business nodeNode bloat, slow traversalDedicated :Chunk node
MERGE without uniqueness constraintDuplicate nodes silently createdAdd constraint before any MERGE
Missing relationship direction meaningArbitrary direction; confusing modelDirection = semantic flow of action
Junction table modeled as bare propertyLoses history and extensibilityIntermediate node with its own properties
id as property nameid(n) is a deprecated Cypher function (use elementId(n)); bare id is fine as a property name in practice, but domain-qualified names (personId, movieId) are clearer and avoid any future ambiguityPrefer personId, movieId, tmdbId where it aids readability
All dates as stringsNo range queries; no temporal operatorsUse Neo4j date() or datetime() type

Output Format — Schema Assessment

When reviewing an existing model:

## Schema Assessment

### Compliant
- [constraint / pattern that is correct]

### Issues Found
#### [Title] — Severity: ERROR / WARNING / INFO
- **Current**: what the model does
- **Problem**: why it is an issue
- **Fix**: specific Cypher DDL or model change

## Recommended Schema
### Node Labels
- :Label {key: TYPE, prop: TYPE, ...}  → constraints: [list]

### Relationships
- (:LabelA)-[:TYPE {prop: TYPE}]->(:LabelB)

### Constraints to Create
[CREATE CONSTRAINT ... statements]

### Indexes to Create
[CREATE INDEX ... statements]

Severity semantics:

SeverityMeaningAction
ERRORModel correctness failure (duplicates possible, data loss risk)Stop; fix before proceeding
WARNINGPerformance or extensibility riskReport; ask user before proceeding
INFOStyle or convention deviationSurface; continue

Provenance Labels

  • [official] — stated directly in Neo4j docs
  • [derived] — follows from documented behavior
  • [field] — community heuristic; treat as default but validate

Checklist

  • Use cases (≥5 queries) defined before modeling
  • Schema inspected on existing database before changes proposed
  • Every MERGE-target node label has a uniqueness constraint
  • No generic labels (:Entity, :Node, :Thing)
  • No generic relationship types (:RELATED_TO, :HAS, :CONNECTED_TO)
  • Relationship direction encodes semantic meaning
  • N-ary or propertied relationships use intermediate nodes
  • High-cardinality values stored as properties, not nodes
  • Low-cardinality categoricals used as labels, not property nodes
  • Embeddings on dedicated :Chunk nodes, not business nodes
  • Supernode candidates identified and mitigated
  • All DDL uses IF NOT EXISTS
  • Indexes polled to ONLINE before use
  • Assessment output follows the structured format above
  • Every prohibition paired with a concrete fix

References

Load on demand:

© neo4j-contrib, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in neo4j-modeling-skill of neo4j-contrib/neo4j-skills.

  • SKILL.md
  • README.md

Open the folder on GitHubat commit bb30e1f

Compare with similar skills

Neo4j Modeling Skill next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Neo4j Modeling Skill compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Neo4j Modeling Skill this skillneo4j-contrib/neo4j-skills114—~4kAutomated safety check: NotesMIT
Monstermq Graphql Configvogler75/monster-mq143—~2.3kAutomated safety check: PassGPL-3.0
Nodejs Backend Patternsever-works/ever-works16218 repos~4kAutomated safety check: PassAGPL-3.0
API DesignerJeffallan/claude-skills12k1 repos~2kAutomated safety check: PassMIT
GraphQL Operations with CodegenChrisWiles/claude-code-showcase6.1k3 repos~1.5kAutomated safety check: PassNone
API Design Principlesjh941213/my-cc-harness12518 repos~3.4kAutomated safety check: PassNone

Similar skills

  • Monstermq Graphql Config

    vogler75/monster-mq

    Guide for configuring, managing, and mutating MonsterMQ settings, devices, flows, AI agents, users, loggers, archive groups, topic schemas, and publishing messages via the GraphQL API.

    143 GitHub stars~2.3k tokensUpdated today
    Backend & APIsAuto-check passed
  • Nodejs Backend Patterns

    ever-works/ever-works

    Build production-ready Node.js backend services with Express/Fastify, implementing middleware patterns, error handling, authentication, database integration, and API design best practices.

    162 GitHub starsUsed in 18 repos~4k tokens
    Backend & APIsAuto-check passed
  • API Designer

    Jeffallan/claude-skills

    Designs REST and GraphQL APIs from resource modeling to an OpenAPI 3.1 contract, with versioning, pagination and RFC 7807 error handling.

    12k GitHub starsUsed in 1 repo~2k tokens
    Backend & APIsAuto-check passed
  • GraphQL Operations with Codegen

    ChrisWiles/claude-code-showcase

    Sets the rules for writing GraphQL queries and mutations in .gql files, running codegen, and using generated Apollo hooks with proper error and loading handling.

    6.1k GitHub starsUsed in 3 repos~1.5k tokens
    Backend & APIsAuto-check passed
  • API Design Principles

    jh941213/my-cc-harness

    REST 및 GraphQL API 설계 원칙 가이드. An agent skill from jh941213/my-cc-harness.

    125 GitHub starsUsed in 18 repos~3.4k tokens
    Backend & APIsAuto-check passed
  • API And Interface Design

    dzhalaevd/Donatello

    Guides stable API and interface design. An agent skill from dzhalaevd/Donatello.

    135 GitHub starsUsed in 8 repos~2.6k tokens
    Backend & APIsAuto-check passed

More from neo4j-contrib/neo4j-skills

All 28 skills in this repo
  • Neo4j Aura Agent Skill

    neo4j-contrib/neo4j-skills

    Manages Neo4j Aura Agents via the v2beta1 REST API — create, list, get, update, delete, and invoke Aura agents backed by an AuraDB instance.

    114 GitHub stars~4.4k tokensUpdated yesterday
    Auto-check: notes
  • Neo4j Cypher Skill

    neo4j-contrib/neo4j-skills

    Generates, optimizes, and validates Cypher 25 queries for Neo4j 2025.x and 2026.x.

    114 GitHub starsUsed in 1 repo~6.1k tokens
    Auto-check passed
  • Neo4j Aura Graph Analytics Skill

    neo4j-contrib/neo4j-skills

    Serverless Aura Graph Analytics (AGA) GDS Sessions — covers GdsSessions, AuraGraphDataScience, AuraAPICredentials, DbmsConnectionInfo, SessionMemory, getorcreate, remote graph projection with…

    114 GitHub stars~4.6k tokensUpdated yesterday
    Auto-check: notes
  • Neo4j Getting Started Skill

    neo4j-contrib/neo4j-skills

    Orchestrates zero-to-running-app in 8 stages — prerequisites → context → provision → model → load → explore → query → build.

    114 GitHub stars~4.3k tokensUpdated yesterday
    Auto-check: warnings
  • Neo4j Aura Provisioning Skill

    neo4j-contrib/neo4j-skills

    Provisions and manages Neo4j Aura instances via CLI (aura-cli v1.7+) or REST API.

    114 GitHub stars~3.7k tokensUpdated yesterday
    Auto-check: notes
  • Neo4j Driver Dotnet Skill

    neo4j-contrib/neo4j-skills

    Neo4j .NET Driver v6 — IDriver lifecycle, DI registration (singleton), ExecutableQuery fluent API, ExecuteReadAsync/ExecuteWriteAsync managed transactions, IResultCursor (FetchAsync/ ToListAsync)…

    114 GitHub stars~4.5k tokensUpdated yesterday
    Auto-check: notes

Works with

Categories

Questions about Neo4j Modeling Skill

What does Neo4j Modeling Skill do?

Design, review, and refactor Neo4j graph data models. An agent skill from neo4j-contrib/neo4j-skills. Neo4j Modeling Skill is an agent skill from neo4j-contrib/neo4j-skills. Design, review, and refactor Neo4j graph data models.

When should I use Neo4j Modeling Skill?

Neo4j Modeling Skill fits situations like: choosing node labels vs relationship types vs properties; migrating relational/document schemas to graph; detecting anti-patterns (generic labels; missing constraints).

How do I install Neo4j Modeling Skill in Claude Code?

Run `npx skills add neo4j-contrib/neo4j-skills --skill neo4j-modeling-skill -a claude-code`. Or copy the skill folder (neo4j-modeling-skill in neo4j-contrib/neo4j-skills) into .claude/skills/neo4j-modeling-skill in your project. Claude Code loads it when a task matches its description.

How do I install Neo4j Modeling Skill in Codex?

Run `npx skills add neo4j-contrib/neo4j-skills --skill neo4j-modeling-skill -a codex`. Or copy the skill folder (neo4j-modeling-skill in neo4j-contrib/neo4j-skills) into .agents/skills/neo4j-modeling-skill in your project. Codex loads it when a task matches its description.

Can I use Neo4j Modeling Skill in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add neo4j-contrib/neo4j-skills --skill neo4j-modeling-skill -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/neo4j-modeling-skill, .gemini/skills/neo4j-modeling-skill, .github/skills/neo4j-modeling-skill and .opencode/skills/neo4j-modeling-skill in your project.

What does Neo4j Modeling Skill need to run?

SKILL.md names no scripts, command-line tools or credentials: Neo4j Modeling Skill is instructions for the agent only. Its frontmatter pre-approves these tools: WebFetch, Bash.

Does Neo4j Modeling Skill access the network?

SKILL.md names 3 domains. As links in the text: neo4j.com, graphacademy.neo4j.com and medium.com. This is read from the text; nothing was executed.

Is Neo4j Modeling Skill safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Neo4j Modeling Skill use?

Neo4j Modeling Skill is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Neo4j Modeling Skill use?

About 4k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Neo4j Modeling Skill?

Skills that share tags, products or a category with Neo4j Modeling Skill: Monstermq Graphql Config (vogler75/monster-mq, 143 stars), Nodejs Backend Patterns (ever-works/ever-works, 162 stars), API Designer (Jeffallan/claude-skills, 12k stars) and GraphQL Operations with Codegen (ChrisWiles/claude-code-showcase, 6.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Neo4j Modeling Skill?

neo4j-contrib (a GitHub organization) maintains it in neo4j-contrib/neo4j-skills, which has 114 GitHub stars. The repository holds 28 skills in this directory. The repository was last updated on October 9, 2026.

Source: neo4j-contrib/neo4j-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.