JetBrains Exposed ORM patterns including DSL queries, DAO pattern, transactions, HikariCP connection pooling, Flyway migrations, and repository pattern.
61
61%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Passed
No known issues
Quality
Discovery
64%Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
The description excels at naming specific technologies and concrete patterns, making it highly distinctive and rich in trigger terms. However, it critically lacks any 'Use when...' guidance, which means Claude has no explicit signal for when to select this skill over others. Adding trigger conditions would significantly improve its effectiveness in a multi-skill selection scenario.
Suggestions
Add a 'Use when...' clause such as 'Use when the user asks about Kotlin database access, JetBrains Exposed setup, writing DSL or DAO queries, configuring HikariCP, or setting up Flyway migrations.'
Consider mentioning 'Kotlin' explicitly as a trigger term since users working with Exposed are Kotlin developers and may phrase requests in terms of Kotlin database patterns.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Lists multiple specific concrete actions/patterns: DSL queries, DAO pattern, transactions, HikariCP connection pooling, Flyway migrations, and repository pattern. These are all concrete, identifiable capabilities. | 3 / 3 |
Completeness | Describes 'what' (Exposed ORM patterns and specific capabilities) but completely lacks a 'Use when...' clause or any explicit trigger guidance for when Claude should select this skill. Per rubric guidelines, a missing 'Use when...' clause should cap completeness at 2, and since the 'when' is entirely absent, this scores 1. | 1 / 3 |
Trigger Term Quality | Includes strong natural keywords users would say: 'JetBrains Exposed', 'ORM', 'DSL queries', 'DAO pattern', 'transactions', 'HikariCP', 'Flyway migrations', 'repository pattern'. These are terms developers naturally use when seeking help with Kotlin/JVM database access. | 3 / 3 |
Distinctiveness Conflict Risk | Highly distinctive due to the specific technology stack mentioned (JetBrains Exposed, HikariCP, Flyway). This is unlikely to conflict with other database or ORM skills targeting different frameworks like Hibernate or SQLAlchemy. | 3 / 3 |
Total | 10 / 12 Passed |
Implementation
42%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
The skill provides comprehensive, executable Kotlin/Exposed patterns with excellent actionability, but suffers severely from verbosity and poor progressive disclosure. It reads more like a complete reference manual dumped into a single file than a concise skill document. The content would benefit enormously from being split into a brief overview with links to detailed sub-documents, and from removing redundant examples (e.g., the HikariCP config appearing twice, DSL queries duplicated in the repository).
Suggestions
Reduce the SKILL.md to a concise overview (~100 lines) with quick-start examples for DSL, DAO, and setup, then move detailed patterns (full repository implementation, JSON columns, testing, advanced queries) into separate referenced files like QUERIES.md, REPOSITORY.md, TESTING.md.
Remove duplicate code—the HikariCP configuration appears twice, and DSL query examples are repeated nearly verbatim in the repository implementation. Show each pattern once.
Add explicit validation/verification steps: e.g., after running Flyway migrations, verify migration status; after batch inserts, verify count; include error handling guidance for common failures like constraint violations.
Cut the 'How It Works' paragraph and the 'When to Use' bullet list—Claude doesn't need to be told when to use database access patterns. Replace with a one-line purpose statement.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The skill is extremely verbose at ~500+ lines, with massive amounts of code that largely repeat patterns Claude already knows. The HikariCP config appears twice, the DSL query examples are redundant with the repository implementation, and the full repository class could be replaced with a brief pattern + one example method. The 'How It Works' section explains basic concepts Claude understands. | 1 / 3 |
Actionability | All code examples are fully executable Kotlin with correct Exposed API usage, including complete table definitions, CRUD operations, repository implementations, test setup, and Gradle dependencies. The examples are copy-paste ready and cover real-world patterns like JSONB columns and LIKE escaping. | 3 / 3 |
Workflow Clarity | The Flyway migration setup shows a clear sequence (configure → migrate → connect), and the testing section shows setup/teardown. However, there are no explicit validation checkpoints for database operations, no error recovery guidance for failed migrations, and no verification steps after batch operations. | 2 / 3 |
Progressive Disclosure | This is a monolithic wall of text with no references to external files. The entire content—table definitions, DSL queries, DAO pattern, repository implementation, JSON columns, testing, and dependencies—is all inline. Much of this should be split into separate reference files (e.g., QUERIES.md, TESTING.md, SETUP.md) with the SKILL.md serving as a concise overview. | 1 / 3 |
Total | 7 / 12 Passed |
Validation
81%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 9 / 11 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
skill_md_line_count | SKILL.md is long (720 lines); consider splitting into references/ and linking | Warning |
frontmatter_unknown_keys | Unknown frontmatter key(s) found; consider removing or moving to metadata | Warning |
Total | 9 / 11 Passed | |
Reviewed
Table of Contents