# 512-frameworks-micronaut-data

Скилл для работы с репозиториями и сущностями Micronaut Data: маппинг, транзакции, пагинация, проекции и тесты на Testcontainers.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 303 установки · ★ 456
- Автор: Juan Antonio Breña Moral
- Лицензия: Apache-2.0 · policy=mirror · лицензия открытая, файл — в исходнике
- Исходник: https://github.com/jabrena/plinth/tree/HEAD/skills/512-frameworks-micronaut-data/SKILL.md
- Обновлён: 2026-10-21
- HTML: https://affpapa.org/nevibecode/skills/512-frameworks-micronaut-data

## Что делает

Скилл подключается, когда нужно написать или разобрать слой доступа к данным на Micronaut Data. Он ведёт агента по конкретным темам: `@MappedEntity`, `@Id`, `@GeneratedValue`, `@MappedProperty`, интерфейсы `@Repository` на базе `CrudRepository` и `PageableRepository`, производные методы поиска и `@Query` с именованными параметрами. Отдельно разбираются `@Transactional` на `@Singleton`-сервисах, `Page` и `Pageable` для списочных эндпоинтов, DTO- и интерфейсные проекции, `@Version` для оптимистичной блокировки.

Работает скилл по шагам: сначала читает справочник `references/512-frameworks-micronaut-data.md` и осматривает проект, потом определяет минимальный набор правок, применяет их по паттернам фреймворка и прогоняет сборку с тестами. Перед любой правкой требуется `./mvnw compile` или `mvn compile`. Если компиляция падает, скилл останавливается и не идёт дальше. После изменений — `./mvnw clean verify` или `mvn clean verify`.

Для интеграционных тестов заложена связка `@MicronautTest` с `TestPropertyProvider` и Testcontainers. Если задача сформулирована расплывчато или не хватает файлов и доступов, скилл останавливается и задаёт уточняющий вопрос вместо правок по всему проекту. Для сырого доступа через `java.sql` без генерируемых репозиториев в наборе есть отдельный скилл `511-frameworks-micronaut-jdbc` — их легко перепутать, и это повод проверить, какой именно слой вы правите.

## Установка

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

1. **Через Skills CLI (Vercel)**
```bash
npx skills add jabrena/plinth --skill 512-frameworks-micronaut-data -a claude-code
```

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

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add jabrena/plinth --skill 512-frameworks-micronaut-data -a codex
```

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

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add jabrena/plinth --skill 512-frameworks-micronaut-data -a cursor
```

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

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install jabrena/plinth 512-frameworks-micronaut-data
```

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

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add jabrena/plinth --skill 512-frameworks-micronaut-data -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/jabrena/plinth --path skills/512-frameworks-micronaut-data
```

### Windsurf (Devin Desktop)

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

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add jabrena/plinth --skill 512-frameworks-micronaut-data -a opencode
```

### Claude.ai

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

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/jabrena/plinth/tree/HEAD/skills/512-frameworks-micronaut-data/SKILL.md

## Когда брать
- описать сущность через `@MappedEntity` и связать поля с колонками
- добавить репозиторий на `CrudRepository` или `PageableRepository`
- написать `@Query` с именованными параметрами вместо ручного SQL
- обернуть сервис в `@Transactional` и вынести readOnly-операции
- отдать список постранично через `Page` и `Pageable`

## Примеры запросов агенту
- Разбери мои Micronaut Data репозитории и сущности, покажи, что стоит поправить
- Добавь пагинацию в эндпоинт списка заказов через Page и Pageable
- Проверь транзакции в сервисах и предложи, где нужен readOnly

## Похожие
- [micronaut](https://affpapa.org/nevibecode/skills/micronaut.md) — скилл · 687 установок
- [neo4j-driver-java-skill](https://affpapa.org/nevibecode/skills/neo4j-driver-java-skill.md) — скилл · 770 установок
- [data-quality-frameworks](https://affpapa.org/nevibecode/skills/data-quality-frameworks.md) — скилл · 11230 установок
- [spring-boot-test-patterns](https://affpapa.org/nevibecode/skills/spring-boot-test-patterns.md) — скилл · 4300 установок
- [java-testing-advanced](https://affpapa.org/nevibecode/skills/java-testing-advanced.md) — скилл · 328 установок
- [graalvm-native-image](https://affpapa.org/nevibecode/skills/graalvm-native-image.md) — скилл · 3500 установок

Из того же набора: [jabrena/plinth](https://affpapa.org/nevibecode/by/jabrena/plinth.md) — 40 карточек

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