CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

311-frameworks-spring-jdbc

Use when you need to write or review programmatic JDBC with Spring — including JdbcClient (Spring Framework 7+) as the default API, JdbcTemplate only where batch/streaming APIs require JdbcOperations, NamedParameterJdbcTemplate for legacy named-param code, parameterized SQL, RowMapper mapping to records, batch operations, transactions, safe handling of generated keys, DataAccessException handling, read-only transactions, streaming large result sets, and @JdbcTest slice testing. This should trigger for requests such as Review Java code for Spring JDBC (JdbcTemplate, JdbcClient, NamedParameterJdbcTemplate); Apply best practices for Spring JDBC data access in Java code; Detect and fix SQL injection risks in JDBC code; Improve transaction boundaries or exception handling for JDBC operations; Review JdbcClient usage in Spring Framework 7. Part of Plinth Toolkit

71

Quality

89%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

78%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A well-structured overview body with correct progressive disclosure and real validation gates (compile-before, verify-after). The main gaps are redundancy between the body and the frontmatter description, no inline executable example of the core SQL-injection rule, and an abort-only failure path instead of a fix-retry loop.

Suggestions

Remove the duplicated 'When to use this skill' section (it repeats the frontmatter trigger phrases verbatim), de-duplicate the generated-keys bullet, and state 'read the reference first' once instead of in both Constraints and Workflow step 1.

Inline one minimal good/bad snippet for the highest-stakes rule — parameterized bind variable vs. concatenated SQL — so the core guidance is actionable without opening the reference file.

Replace 'If compilation fails, stop immediately' with a short recovery loop (review the error, fix, re-run `./mvnw compile`, proceed only when green) to add the error-recovery feedback the database-operations context calls for.

DimensionReasoningScore

Conciseness

The body is efficient — it lists coverage, gives concrete commands, and defers detail to the reference without explaining concepts Claude already knows — but has avoidable duplication: the 'When to use this skill' section repeats the frontmatter trigger phrases verbatim, "generated keys" appears twice in the coverage list ("Batch operations and generated keys" and "Safe handling of generated keys"), and 'read the reference first' is stated in both Constraints and Workflow step 1. This fits the 4 anchor ('efficient; minor instances... that could be trimmed') better than 5's 'every token earns its place', and is well above 3's 'unnecessary explanation'.

4 / 5

Actionability

Concrete, executable commands are present ("Run `./mvnw compile` or `mvn compile`", "Run `./mvnw clean verify`"), the reference path is explicit, and the workflow says exactly what to do at each step — matching the 4 anchor's 'concrete code or commands with minor gaps'. It is not a 5 because the body contains no inline example of the skill's core guidance (e.g., a parameterized-vs-concatenated SQL snippet), so the reader must open the reference for anything technical; it is above 3 because the commands and file pointers are fully executable rather than hints.

4 / 5

Workflow Clarity

The four-step workflow has a clear sequence and genuine validation checkpoints — a MANDATORY pre-change compile gate, "If compilation fails, stop immediately", and a post-change full verify — which matches the 4 anchor ('clear sequence with most checkpoints present'). It falls short of the 5 anchor because there is no error-recovery loop: on compile/verify failure the only instruction is to stop, not to review the error, fix, and re-run — a feedback loop the scoring notes specifically call for in database-operation skills.

4 / 5

Progressive Disclosure

The body is a concise overview that clearly signals a single one-level-deep reference ([references/311-frameworks-spring-jdbc.md](references/311-frameworks-spring-jdbc.md), which exists and is internally organized with its own TOC and 15 example sections but links to no further .md files). This matches the 5 anchor ('clear overview with well-signaled one-level-deep references; content appropriately split; easy navigation') — nothing that belongs in the overview is inlined and no nested reference chains exist.

5 / 5

Total

17

/

20

Passed

Description

95%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

An unusually strong description: comprehensive concrete capabilities, natural trigger phrases users would actually say, explicit what/when, and a well-delineated niche. The only deduction is the second-person phrasing ("you need to"), which the rubric guidelines penalize on specificity.

DimensionReasoningScore

Specificity

The description lists many concrete capabilities ("parameterized SQL", "RowMapper mapping to records", "batch operations", "safe handling of generated keys", "@JdbcTest slice testing") with comprehensive coverage of the domain, which matches the 5 anchor; however, it opens in second person ("Use when you need to write or review"), which the judging guidelines direct to penalize by reducing specificity by 1. Without that voice violation this would be a clear 5 — it is well above the 4 anchor's 'minor gaps in coverage'.

4 / 5

Completeness

Both questions are explicitly answered: 'what' via the detailed capability enumeration and 'when' via both "Use when you need to write or review programmatic JDBC with Spring" and the explicit "This should trigger for requests such as..." list of concrete trigger phrases. This is a direct match for the 5 anchor's 'clearly and explicitly answers both what AND when with concrete trigger phrases'; the 4 anchor's weaker 'when' does not apply.

5 / 5

Trigger Term Quality

Trigger phrases mirror natural user requests ("Review Java code for Spring JDBC (JdbcTemplate, JdbcClient, NamedParameterJdbcTemplate)", "Detect and fix SQL injection risks in JDBC code", "Improve transaction boundaries") and include the key API names and synonyms users would actually type. This matches the comprehensive-coverage anchor; the 4 anchor would require noticeably missing natural terms, and none of the common phrasings for this domain are absent.

5 / 5

Distinctiveness Conflict Risk

It carves a clear niche — programmatic Spring JDBC with named APIs (JdbcClient, JdbcTemplate, NamedParameterJdbcTemplate, KeyHolder, DataAccessException) — so it would not fire for unrelated skills, matching the 'clear niche with distinct triggers; minimal conflict risk' anchor. It sits at 5 rather than 4 because the triggers (SQL injection in JDBC, JdbcClient in Spring Framework 7, transaction boundaries) are specific to this skill alone; the trailing 'Part of Plinth Toolkit' is harmless provenance noise.

5 / 5

Total

19

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

jabrena/plinth

Path

skills/311-frameworks-spring-jdbc/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.