Converts Spock/Groovy test files in a Gradle module to equivalent JUnit 5 Java tests. Use when asked to "migrate groovy", "convert groovy to java", "g2j", or when a module has .groovy test files that need to be replaced with .java equivalents.
80
75%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./.claude/skills/migrate-groovy-to-java/SKILL.mdQuality
Discovery
100%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 is an excellent skill description that clearly defines a narrow, specific task with concrete actions and explicit trigger guidance. It covers both natural language triggers and shorthand ('g2j'), and the technology-specific focus makes it highly distinguishable from other skills.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | The description lists a concrete action: 'Converts Spock/Groovy test files in a Gradle module to equivalent JUnit 5 Java tests.' This specifies the source format (Spock/Groovy), target format (JUnit 5 Java), and context (Gradle module). | 3 / 3 |
Completeness | Clearly answers both 'what' (converts Spock/Groovy tests to JUnit 5 Java tests in Gradle modules) and 'when' (explicit 'Use when...' clause with multiple trigger scenarios including command aliases and file-based detection). | 3 / 3 |
Trigger Term Quality | Includes natural trigger terms users would say: 'migrate groovy', 'convert groovy to java', 'g2j', '.groovy test files', and '.java equivalents'. Good coverage of both shorthand and full phrases. | 3 / 3 |
Distinctiveness Conflict Risk | Highly distinctive niche: Spock/Groovy to JUnit 5 conversion in Gradle modules. Very unlikely to conflict with other skills due to the specific technology stack and migration direction. | 3 / 3 |
Total | 12 / 12 Passed |
Implementation
50%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
The skill provides useful, domain-specific guidance for Groovy-to-Java test migration with good coverage of conversion rules and @TableTest usage. However, it lacks concrete before/after examples, explicit validation checkpoints before destructive steps, and could better organize its content with external references for detailed rules. The workflow would benefit from specific commands and error recovery steps.
Suggestions
Add a concrete before/after example showing a Spock test converted to JUnit 5 Java, including @TableTest usage, to make the guidance fully actionable.
Add explicit validation checkpoints: specify how to compare test counts (e.g., a command), and require verification before removing Groovy files (step 4 should only proceed after step 3 passes).
Move the detailed TableTest usage section to a separate TABLETEST.md reference file and link to it from the main skill, improving progressive disclosure.
Include specific commands or tool invocations for listing Groovy files and running tests (e.g., `./gradlew :module:test`) to make the workflow steps executable.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The content is mostly efficient and avoids explaining basic concepts, but some bullet points are somewhat redundant (e.g., the TableTest eligibility rules are partially restated between the main section and the TableTest usage section). The guidance on assertEquals vs assertTrue and throws clauses are things Claude likely knows, adding minor bloat. | 2 / 3 |
Actionability | The skill provides concrete conversion rules and a code snippet for @TableTest syntax, but lacks executable end-to-end examples showing a Groovy Spock test converted to its Java JUnit 5 equivalent. The high-level steps (list files, convert, verify test count) don't include specific commands or tool invocations. | 2 / 3 |
Workflow Clarity | The 5-step workflow is clearly sequenced, and step 3 mentions verifying tests pass and test count hasn't changed. However, there's no explicit validation/feedback loop (e.g., what to do if tests fail, how to compare test counts, or how to handle partial failures). For a destructive operation (removing Groovy files), the lack of an explicit checkpoint before deletion is a gap. | 2 / 3 |
Progressive Disclosure | The content has some structure with a separate 'TableTest usage' section, but all content is inline in a single file with no references to external files for detailed examples or API references. The TableTest section could benefit from being a separate reference file, and the main body mixes high-level workflow with detailed conversion rules without clear navigation. | 2 / 3 |
Total | 8 / 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.
4ee2247
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.