# Core Repository Java

> Criar ports (interfaces) de repositório em domain/repository Java. Usar quando o pedido envolver interface Repository ou contrato de persistência de domínio.

- Skill: `eskcti/core-repository-java` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add eskcti/core-repository-java`
- Raw SKILL.md: https://api.skillmd.com/api/skills/eskcti/core-repository-java/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: EskCti (https://skillmd.com/u/eskcti)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/eskcti/core-repository-java

---


# Core Repository (Java)

## Overview

Interfaces em `domain/repository/CustomerRepository.java` — ex.: `com.example.customers.domain.repository.CustomerRepository`.

## Guidelines

- Interface no **domínio** (`packages/<bc>/`); implementação JPA em `modules/<bc>/infrastructure/persistence/*Adapter`.
- Métodos retornando `Result<T>`.
- Nome: `<Entity>Repository` (sem prefixo `I`).

## Workflow

1. Definir operações do aggregate.
2. Criar interface em `domain/repository/`.
3. Adapter via `backend-data-java`.

## Global Standards

- Consultar `../config-shared-core-java/references/java-namespace-layout.md`.

