Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
pproenca avatar

Graph Schema

  • 178 installs
  • 191 repo stars
  • Updated July 24, 2026
  • pproenca/dot-skills

graph-schema: A skill for development. This provides functionality for development workflows.

Key points

  • graph-schema

Graph Schema by the numbers

  • 178 all-time installs (skills.sh)
  • +6 installs in the week ending Aug 4, 2026 (Skillselion tracking)
  • Ranked #2,224 of 4,347 Backend & APIs skills by installs in the Skillselion catalog
  • Data as of Aug 4, 2026 (Skillselion catalog sync)
npx skills add https://github.com/pproenca/dot-skills --skill graph-schema

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs178
repo stars191
Last updatedJuly 24, 2026
Repositorypproenca/dot-skills

How do I use graph-schema for development tasks?

Use graph-schema for development tasks

Who is it for?

Best when you're working on backend & apis and need structured help with graph-schema.

Skip if: Teams with no backend & apis needs, or anyone wanting a generic chat assistant without this specific workflow.

When should I use this skill?

When you need to use graph-schema for development tasks, or when graph-schema: a skill for development. this provides functionality for development workflows.

What you get

Structured output aligned to graph-schema: graph-schema.

Files

SKILL.mdMarkdownGitHub ↗

dot-skills Graph Database Schema Design Best Practices

Comprehensive graph database data modeling guide for property graphs (Neo4j, Memgraph, Amazon Neptune, etc.). Contains 46 rules across 8 categories, prioritized by modeling impact from critical (entity classification, relationship design) to incremental (scale and evolution). Each rule includes detailed explanations, real-world Cypher examples comparing incorrect vs. correct models, and specific impact descriptions.

Philosophy: Data modeling correctness first, performance second. Always ask "what is the user trying to achieve?" before choosing structure.

When to Apply

Reference these guidelines when:

  • Designing a new graph database schema from domain requirements
  • Translating a relational schema to a graph model
  • Deciding whether something should be a node, relationship, or property
  • Reviewing an existing graph schema for modeling errors
  • Refactoring a graph that produces awkward or slow queries
  • Planning for schema evolution and data growth

Rule Categories by Priority

PriorityCategoryImpactPrefix
1Entity ClassificationCRITICALentity-
2Relationship DesignCRITICALrel-
3Property PlacementHIGHprop-
4Query-Driven RefinementHIGHquery-
5Structural PatternsHIGHpattern-
6Anti-PatternsMEDIUManti-
7Constraints & IntegrityMEDIUMconstraint-
8Scale & EvolutionLOW-MEDIUMscale-

Quick Reference

1. Entity Classification (CRITICAL)

  • `entity-events` - Model multi-participant events as first-class nodes
  • `entity-shared-values` - Promote shared property values to nodes
  • `entity-specific-labels` - Use specific labels over generic ones
  • `entity-multi-label` - Qualify entities with multiple labels
  • `entity-identity-state` - Separate identity from mutable state
  • `entity-reify-actions` - Reify lifecycle actions into nodes
  • `entity-avoid-god-nodes` - Avoid kitchen-sink entity nodes

2. Relationship Design (CRITICAL)

  • `rel-specific-types` - Use specific relationship types over generic ones
  • `rel-meaningful-direction` - Choose semantically meaningful direction
  • `rel-naming-conventions` - Follow UPPER_SNAKE_CASE for relationship types
  • `rel-no-redundant-reverse` - Don't create redundant reverse relationships
  • `rel-properties-scope` - Put data on relationships only when it describes the connection
  • `rel-single-semantic` - One relationship type per semantic meaning
  • `rel-typed-over-filtered` - Prefer typed relationships over generic + property filter

3. Property Placement (HIGH)

  • `prop-no-foreign-keys` - Don't embed foreign keys as properties
  • `prop-promote-to-node` - Promote frequently-queried values to nodes
  • `prop-correct-data-types` - Use appropriate data types for properties
  • `prop-no-arrays-for-connections` - Don't use property arrays when you need relationships
  • `prop-relationship-vs-node-data` - Know when data belongs on relationship vs. node

4. Query-Driven Refinement (HIGH)

  • `query-critical-traversals` - Design for your most critical traversals first
  • `query-shortcut-relationships` - Add shortcut relationships for frequent multi-hop queries
  • `query-denormalize-reads` - Denormalize for read-heavy paths
  • `query-filter-by-rel-props` - Use relationship properties to filter traversals
  • `query-test-before-deploy` - Test model against real queries before deploying

5. Structural Patterns (HIGH)

  • `pattern-intermediary-nodes` - Use intermediary nodes for multi-entity relationships
  • `pattern-hierarchy` - Model hierarchies with category nodes and depth relationships
  • `pattern-linked-list` - Use linked lists for ordered sequences
  • `pattern-timeline-tree` - Apply timeline trees for temporal data
  • `pattern-fan-out` - Fan-out pattern for event streams and activity feeds
  • `pattern-bipartite` - Use bipartite structure for many-to-many with context

6. Anti-Patterns (MEDIUM)

  • `anti-join-table-nodes` - Don't model relational join tables as nodes
  • `anti-generic-relationships` - Don't use generic RELATED_TO or CONNECTED relationships
  • `anti-relational-porting` - Don't port relational schemas directly to graph
  • `anti-over-modeling` - Don't make everything a node
  • `anti-duplicate-data` - Don't duplicate data instead of creating relationships
  • `anti-string-encoded-structure` - Don't encode structured data as delimited strings

7. Constraints & Integrity (MEDIUM)

  • `constraint-unique-identifiers` - Define uniqueness constraints on natural identifiers
  • `constraint-existence` - Use existence constraints for required properties
  • `constraint-index-traversals` - Create indexes on traversal entry point properties
  • `constraint-no-over-index` - Don't over-index — each index has a write cost
  • `constraint-node-key` - Use composite node keys for natural multi-part identifiers

8. Scale & Evolution (LOW-MEDIUM)

  • `scale-supernode-mitigation` - Mitigate supernodes with fan-out or partitioning
  • `scale-temporal-versioning` - Separate current state from historical state
  • `scale-schema-migration` - Plan for label and relationship type evolution
  • `scale-batch-refactoring` - Use APOC or batched queries for schema refactoring
  • `scale-dense-node-detection` - Monitor and detect emerging supernodes

How to Use

Read individual reference files for detailed explanations and code examples:

  • Section definitions - Category structure and impact levels
  • Rule template - Template for adding new rules

Reference Files

FileDescription
references/_sections.mdCategory definitions and ordering
assets/templates/_template.mdTemplate for new rules
metadata.jsonVersion and reference information

Related skills

FAQ

What does graph-schema do?

graph-schema: A skill for development. This provides functionality for development workflows.

When should I use graph-schema?

When you need to use graph-schema for development tasks, or when graph-schema: a skill for development. this provides functionality for development workflows.

What are the main capabilities?

graph-schema.

Backend & APIsbackendintegrations

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.