# neo4j-modeling-skill

Помогает проектировать, проверять и переделывать модель данных Neo4j: узлы, связи, свойства, ограничения. Пригодится, когда схема растёт и пора навести порядок.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 1100 установок · ★ 116
- Автор: neo4j-contrib
- Лицензия: MIT · policy=mirror · лицензия открытая, файл — в исходнике
- Исходник: https://github.com/neo4j-contrib/neo4j-skills/tree/HEAD/neo4j-modeling-skill/SKILL.md
- Обновлён: 2026-10-21
- HTML: https://affpapa.org/nevibecode/skills/neo4j-modeling-skill

## Что делает

Скилл разбирает графовую модель по шагам: сначала просит список запросов, которые модель должна отвечать, потом раскладывает сущности по узлам, связи по типам, атрибуты по свойствам. Внутри есть таблицы решений — узел против связи против свойства, свойство против метки. Плюс разбор антипаттернов: общие метки вроде `:Entity`, суперузлы с высокой степенью, отсутствующие ограничения.

Отдельный блок про промежуточные узлы. Если у связи больше двух свойств или она сама становится предметом запроса, скилл советует вынести её в узел: вместо `(Person)-[:ACTED_IN {role: "Neo"}]->(Movie)` получится `(Person)-[:PLAYED]->(Role)-[:IN]->(Movie)`, и роли можно искать отдельно. Есть таблица переноса реляционной схемы в граф: строка таблицы — узел, внешний ключ — связь, junction-таблица — промежуточный узел.

Перед любыми правками на живой базе скилл требует сначала посмотреть текущее состояние — `CALL db.schema.visualization()`, `SHOW CONSTRAINTS`, `SHOW INDEXES`, а при наличии APOC ещё `CALL apoc.meta.schema()`. Из ограничений: типовые property-констрейнты (`REQUIRE n.prop IS :: STRING`) работают только в Enterprise, в Community типы проверяют в приложении. Синтаксис `ALTER CURRENT GRAPH TYPE SET` тоже не для Community. Для написания Cypher-запросов, маппинга Spring Data, GraphQL-типов и импорта данных есть отдельные скиллы — этот их не заменяет.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add neo4j-contrib/neo4j-skills --skill neo4j-modeling-skill -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/neo4j-modeling-skill/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/neo4j-modeling-skill/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add neo4j-contrib/neo4j-skills --skill neo4j-modeling-skill -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/neo4j-modeling-skill/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add neo4j-contrib/neo4j-skills --skill neo4j-modeling-skill -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/neo4j-modeling-skill/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install neo4j-contrib/neo4j-skills neo4j-modeling-skill
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/neo4j-modeling-skill/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add neo4j-contrib/neo4j-skills --skill neo4j-modeling-skill -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/neo4j-contrib/neo4j-skills --path neo4j-modeling-skill
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/neo4j-modeling-skill/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add neo4j-contrib/neo4j-skills --skill neo4j-modeling-skill -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/neo4j-contrib/neo4j-skills/tree/HEAD/neo4j-modeling-skill/SKILL.md

## Когда брать
- решить, делать атрибут меткой или свойством
- найти суперузлы и высокую степень связей в существующей модели
- перенести реляционную схему с внешними ключами в граф
- вынести связь с несколькими свойствами в промежуточный узел
- подобрать ограничения и индексы под ключевые свойства

## Примеры запросов агенту
- Посмотри текущую схему базы и предложи модель для каталога товаров: узлы, связи, свойства
- Проверь мою модель на антипаттерны — общие метки и суперузлы
- У меня связь ACTED_IN с полем role, надо искать роли отдельно. Переделай в промежуточный узел

## Похожие
- [spring-data-neo4j](https://affpapa.org/nevibecode/skills/spring-data-neo4j.md) — скилл · 3800 установок
- [neo4j-docker-client-generator](https://affpapa.org/nevibecode/agents/neo4j-docker-client-generator.md) — субагент · 183 установки
- [Knowledge Graph Builder](https://affpapa.org/nevibecode/skills/knowledge-graph-builder.md) — скилл · 433 установки
- [cosmosdb-datamodeling](https://affpapa.org/nevibecode/skills/cosmosdb-datamodeling.md) — скилл · 8700 установок
- [ddia-systems](https://affpapa.org/nevibecode/skills/ddia-systems.md) — скилл · 5400 установок
- [redis-core](https://affpapa.org/nevibecode/skills/redis-core.md) — скилл · 4000 установок

Из того же набора: [neo4j-contrib/neo4j-skills](https://affpapa.org/nevibecode/by/neo4j-contrib/neo4j-skills.md) — 18 карточек

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
