Use when you need to apply data-oriented programming best practices in Java — including separating code (behavior) from data structures using records, designing immutable data with pure transformation functions, keeping data flat and denormalized with ID-based references, starting with generic data structures converting to specific types when needed, ensuring data integrity through pure validation functions, and creating flexible generic data access layers. This should trigger for requests such as Improve the code with Data-Oriented Programming; Apply Data-Oriented Programming; Refactor the code with Data-Oriented Programming; Apply Data-Oriented Programming; Refactor the code with Data-Oriented Programming. Part of cursor-rules-java project
79
73%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./skills/144-java-data-oriented-programming/SKILL.mdQuality
Discovery
85%Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
This description is strong in specificity and completeness, clearly articulating both what the skill does and when to use it, with a well-defined niche around Data-Oriented Programming in Java. Its main weaknesses are the duplicated trigger phrases (two identical pairs) and somewhat narrow trigger term coverage that misses common abbreviations and alternative phrasings users might employ.
Suggestions
Remove the duplicated trigger phrases ('Apply Data-Oriented Programming' and 'Refactor the code with Data-Oriented Programming' each appear twice) and add natural variations like 'DOP', 'data-first design', or 'separate data from behavior'.
Add common abbreviations and alternative phrasings users might use, such as 'DOP patterns', 'value types in Java', or 'functional data transformation'.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Lists multiple specific concrete actions: separating code from data using records, designing immutable data with pure transformation functions, keeping data flat and denormalized with ID-based references, starting with generic data structures, ensuring data integrity through pure validation functions, and creating flexible generic data access layers. | 3 / 3 |
Completeness | Clearly answers both 'what' (applying DOP best practices including specific techniques like records, immutable data, pure functions, etc.) and 'when' (explicit 'Use when' clause at the start plus 'This should trigger for requests such as...' with example phrases). | 3 / 3 |
Trigger Term Quality | Includes relevant terms like 'Data-Oriented Programming', 'Java', 'records', 'immutable data', 'refactor', but the trigger phrases are repetitive (duplicated entries) and miss natural variations users might say like 'DOP', 'value objects', 'data classes', or 'functional data modeling'. | 2 / 3 |
Distinctiveness Conflict Risk | Highly distinctive — targets a specific programming paradigm (Data-Oriented Programming) in a specific language (Java) with very particular techniques. Unlikely to conflict with general Java skills or other programming paradigm skills. | 3 / 3 |
Total | 11 / 12 Passed |
Implementation
62%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
The skill has a solid workflow structure with proper validation checkpoints and clear sequencing, which is its strongest aspect. However, it lacks any concrete code examples of the data-oriented patterns it teaches, deferring all substantive guidance to a reference file. The content also suffers from redundancy (repeated trigger phrases, restated summaries) and explains concepts Claude already understands.
Suggestions
Add at least one concrete before/after code example showing a key pattern (e.g., separating data from behavior using records) directly in the SKILL.md rather than deferring everything to the reference file.
Remove the redundant 'What is covered' section since it restates the opening paragraph, and deduplicate the 'When to use' trigger phrases.
Include a brief inline example of a pure transformation function or flat denormalized structure to make the skill actionable without requiring the reference file.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The skill has some unnecessary repetition (e.g., 'Apply Data-Oriented Programming' listed 3+ times in 'When to use'), the 'What is covered' section largely restates the opening paragraph, and it explains concepts Claude already knows (what records are, what immutability means). However, it's not excessively verbose overall. | 2 / 3 |
Actionability | The skill provides concrete commands (mvnw compile, mvnw clean verify) and references a detailed guide, but contains no executable code examples of the actual data-oriented patterns. The actual refactoring guidance is entirely deferred to the reference file, leaving the skill itself with only abstract descriptions of what to do. | 2 / 3 |
Workflow Clarity | The workflow is clearly sequenced with explicit validation checkpoints: compile before changes, stop on failure, apply changes, then verify with full build. The feedback loop for compilation failure is explicit ('stop immediately — do not proceed until resolved'), which is appropriate for destructive/batch refactoring operations. | 3 / 3 |
Progressive Disclosure | The skill correctly references a single external file for detailed examples, which is good one-level-deep disclosure. However, without bundle files to verify the reference exists, and given that the skill body itself contains very little actionable content (almost everything is deferred), the balance between overview and reference is skewed — the skill is too thin as a standalone overview and relies entirely on the reference for substance. | 2 / 3 |
Total | 9 / 12 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 — 11 / 11 Passed
Validation for skill structure
No warnings or errors.
762cb86
Table of Contents
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.