Agent skill
score-style
Score migrated code against style guidelines and best practices. Evaluates code quality independent of functional correctness.
Install this agent skill to your Project
npx add-skill https://github.com/OpenHands/extensions/tree/main/plugins/migration-scoring/skills/score-style
SKILL.md
Evaluate migrated code against style guidelines and best practices.
This skill scores code quality aspects that are independent of functional correctness — focusing on readability, maintainability, and adherence to conventions.
Default Scoring Criteria
Unless a custom rubric is provided, score on these attributes (1-5 scale):
Naming Conventions (1-5)
- 1: Inconsistent or meaningless names
- 3: Mostly follows conventions, some issues
- 5: Clear, consistent, idiomatic names
Code Organization (1-5)
- 1: Monolithic, hard to navigate
- 3: Some structure, could be cleaner
- 5: Well-organized, logical structure
Error Handling (1-5)
- 1: Missing or swallowed exceptions
- 3: Basic error handling present
- 5: Comprehensive, appropriate error handling
Documentation (1-5)
- 1: No documentation
- 3: Some documentation, inconsistent
- 5: Thorough, helpful documentation
Idiomaticity (1-5)
- 1: Non-idiomatic, smells like translated code
- 3: Mostly idiomatic, some foreign patterns
- 5: Fully idiomatic, natural code
Output Format
Save scores as a JSON file:
{
"target_file_a.java": {
"naming_conventions": 4,
"code_organization": 3,
"error_handling": 5,
"documentation": 4,
"idiomaticity": 4,
"justification": "Good naming and error handling. Some methods could be extracted for better organization."
}
}
Custom Rubric
If a custom rubric is provided, use its attributes and scoring criteria instead of the defaults. The rubric should define:
- Attribute names
- Score meanings for each level (1-5)
- Examples of good/bad code for each attribute
Evaluation Guidelines
What to Look For
Positive indicators:
- Consistent naming (camelCase for Java, snake_case for Python)
- Appropriate class/method sizes
- Single responsibility principle followed
- Meaningful comments (not obvious ones)
- Standard library usage over custom implementations
- Defensive programming practices
Negative indicators:
- Literal translations (COBOL-style Java)
- God classes or methods
- Magic numbers
- Excessive comments or no comments
- Reinvented wheels
- Swallowed exceptions
- Hardcoded values
Language-Specific Considerations
Java:
- Streams vs. for loops (both acceptable, but be consistent)
- Optional vs. null checks
- Record types for data classes
- Builder pattern for complex objects
Python:
- Type hints
- List comprehensions
- Context managers
- Pythonic idioms
Incremental Scoring
If a score file already exists, update it with new scores rather than replacing it entirely.
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
releasenotes
Generate formatted changelogs from git history since the last release tag. Use when preparing release notes that categorize changes into breaking changes, features, fixes, and other sections.
bitbucket
Interact with Bitbucket repositories and pull requests using the BITBUCKET_TOKEN environment variable. Use when working with code hosted on Bitbucket or managing Bitbucket resources via API.
add-skill
Add an external skill from a GitHub repository to the current workspace. Use when users want to import, install, or add a skill from a GitHub URL (e.g., `/add-skill https://github.com/OpenHands/extensions/tree/main/skills/codereview` or "add the codereview skill from https://github.com/OpenHands/extensions/"). Handles fetching the skill files and placing them in .agents/skills/.
add-javadoc
Add comprehensive JavaDoc documentation to Java classes and methods. Use when documenting Java code, adding API documentation, or improving code documentation.
flarglebargle
A test skill that responds to the magic word "flarglebargle" with a compliment. Use for testing skill activation and trigger functionality.
codereview-roasted
Brutally honest code review in the style of Linus Torvalds, focusing on data structures, simplicity, and pragmatism. Use when you want critical, no-nonsense feedback that prioritizes engineering fundamentals over style preferences.
Didn't find tool you were looking for?