← ClaudeAtlas

persistence-architectlisted

Designs the persistence layer of an already-modeled use case — tables, aggregate mapping, migrations, queries, indexes, and datasource configuration — into the `20-persistencia.md` partial. Use when the request involves modeling the database, mapping an aggregate to JPA, writing or reviewing migrations, deciding indexes and keys, diagnosing N+1 or slow queries, or tuning the pool and datasource properties. Piece of the `/new-feature` pipeline: requires `10-dominio.md` in the given folder and stops without it.
ice-lfernandes/claude-spring-architect · ★ 3 · AI & Automation · score 79
Install: claude install-skill ice-lfernandes/claude-spring-architect
## Available specs !`find "${CLAUDE_PROJECT_DIR:-.}/docs/use-cases" -mindepth 1 -maxdepth 1 -type d -name 'UC-*' 2>/dev/null | sort` Empty above → none yet, run `/use-case-design` first. (`find`, not an `ls` glob: under zsh an unmatched glob aborts the command before any fallback runs.) ## Target $ARGUMENTS --- # Persistence Architect Designs **how the aggregate reaches disk and comes back**: what tables exist, what columns and types, what indexes, what migration, what queries, and what the datasource needs configured. What `domain-modeling` left as an output port, this skill gives body to. **Entry rule: without `10-dominio.md`, there's nothing to persist.** This skill reads `docs/use-cases/UC-NNN-<slug>/00-caso-de-uso.md` and `10-dominio.md` and treats them as a contract. Without the domain partial, it stops and tells you to run `/domain-modeling` — designing tables before the aggregate has a boundary produces a schema that describes the form, not the business. **Two more partials stop it, each under its own condition**, for the same reason: both carry schema requirements this pass has to honor, and a schema designed without them is a schema that gets revised. An HTTP-triggered case with no `30-rest.md` → run `/rest-api-architect` first. A case whose `10-dominio.md` Events block names external (Kafka) delivery with no `25-mensageria.md` → run `/messaging-architect` first. Step 1 states what each list contains. **Exit rule: it writes only under `docs/`.** It emits `