Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add jabrena/plinth --skill 312-frameworks-spring-data-jdbcgit clone --depth 1 https://github.com/jabrena/plinthWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/jabrena/plinth/312-frameworks-spring-data-jdbc)<a href="https://agentmods.dev/skills/jabrena/plinth/312-frameworks-spring-data-jdbc"><img src="https://agentmods.dev/badge/skills/jabrena/plinth/312-frameworks-spring-data-jdbc.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00110 | $0.00709 |
| Opus 5 | $0.00055 | $0.00354 |
| Sonnet 5 | $0.00022 | $0.00142 |
| Haiku 4.5 | $0.00011 | $0.00071 |
Grade A, and why
312-frameworks-spring-data-jdbc scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 68 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Spring Data JDBC with Records
Apply Spring Data JDBC guidelines with Java records.
What is covered in this Skill?
- Records for entity classes (immutable, constructor-friendly)
- @Table for naming when record name differs from the table name
- @Embedded to inline value-object columns into the parent row without a separate table
- Repository pattern
- Immutable updates with static factories for new rows and with* helpers for updates
- save() INSERT vs UPDATE semantics driven by @Id nullability
- Aggregate boundaries: one repository per aggregate root, Set for one-to-many inside the root, foreign keys between aggregates
- Custom queries with @Query and named parameters (no user-input concatenation)
- Transaction management (@Transactional on services; readOnly where appropriate)
- Single query loading (N+1 avoidance)
Scope: Apply recommendations based on the reference rules and good/bad code examples.
Constraints
Before applying any Spring Data JDBC changes, ensure the project compiles. If compilation fails, stop immediately. After applying improvements, run full verification.
- MANDATORY: Run
./mvnw compileormvn compilebefore applying any change - SAFETY: If compilation fails, stop immediately
- VERIFY: Run
./mvnw clean verifyormvn clean verifyafter applying improvements - BEFORE APPLYING: Read the reference for detailed rules and good/bad patterns
- EDGE CASE: If request scope is ambiguous, stop and ask a clarifying question before applying changes
- EDGE CASE: If required inputs, files, or tooling are missing, report what is missing and ask whether to proceed with setup guidance
When to use this skill
- Review Java code for Spring Data JDBC
- Apply best practices for Spring Data JDBC in Java code
- Model Spring Data JDBC aggregates with Java records
- Review Spring Data JDBC repositories and aggregate boundaries
- Improve optimistic locking or domain events in Spring Data JDBC
Workflow
- Read reference and assess project context
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 3d ago First seen · 68 lines · 110 tokens per session scan A d56cda15cb23
312-frameworks-spring-data-jdbc is a skill published in the GitHub repository jabrena/plinth (436 stars, last pushed 2d ago), licensed Apache-2.0. It adds 110 tokens to every session and 709 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
jpa-patterns
JPA/Hibernate patterns and common pitfalls (N+1, lazy loading, transactions, queries). Use when user has JPA performance issues, LazyInitializationException, or asks about entity relationships and fetching strategies.
ecto-patterns
Ecto patterns — schemas, changesets, queries, migrations, Multi, associations, preloads, upserts. Use when editing Repo calls, Ecto.Query, or schema fields. Skip for Ash.
spring-data-jpa
Use when designing or implementing Spring Data JPA on Spring Boot 4 — repository boundaries, projections, query patterns, custom repositories, CQRS read models, entity relationships, or persistence performance fixes. Not for generic SQL help, database admin work, or project-wide migration (see the springboot-migration…
create-doctrine-repository
Create the repository in the Adapter layer. This is the ONLY class that touches the database — all handlers delegate to it. Covers multistore patterns with ShopConstraint when the entity requires it. Trigger: "create repository for {Domain}".
azure-cosmos-java
Azure Cosmos DB SDK for Java. NoSQL database operations with global distribution, multi-model support, and reactive patterns. Triggers: "CosmosClient java", "CosmosAsyncClient", "cosmos database java", "cosmosdb java", "document database java".
test-quality
Write high-quality JUnit 5 tests with AssertJ assertions. Use when user says "add tests", "write tests", "improve test coverage", or when reviewing/creating test classes for Java code.