Agent skill

to-java-migration

Migrate COBOL code to idiomatic Java, preserving business logic while following Java best practices. Use for COBOL modernization projects.

Stars 78
Forks 21

Install this agent skill to your Project

npx add-skill https://github.com/OpenHands/extensions/tree/main/plugins/cobol-modernization/skills/to-java-migration

SKILL.md

Migrate COBOL code to idiomatic Java, preserving all business logic.

Code Style Requirements

Write idiomatic Java, NOT literal COBOL translations:

  • Use Java conventions: camelCase names, standard collections (List, Map)
  • Use Java standard library instead of rolling your own
  • No god classes — split into cohesive, single-responsibility classes
  • No TODO comments or stub implementations — fully implement everything

Robustness Requirements

  • Validate inputs at method entry (null checks, range validation)
  • Use try-catch for all I/O and external operations
  • Use try-with-resources for files, streams, connections
  • Handle errors gracefully with meaningful messages

Configuration Requirements

  • No hardcoded file paths or credentials — use environment variables
  • No magic numbers — use named constants
  • Make limits and timeouts configurable

Documentation Requirements

  • Add COBOL references: // COBOL equivalent: BNK1CRA.cbl 145-167
  • Document assumptions made during conversion
  • Add Javadoc to public methods

Testing Requirements

If test fixtures exist (see cobol-build-setup skill):

  • Create a JUnit test class for each migrated program
  • Load inputs from fixtures, assert output matches expected (golden) output
  • All tests must pass before migration is complete

References

  • See references/cobol-to-java-example.md for a complete transformation example
  • See references/datatype-mappings.md for COBOL→Java type mappings

Done When

✓ Code compiles without errors ✓ All JUnit tests pass (Java output matches COBOL golden output) ✓ No TODO or stub implementations remain ✓ COBOL references documented in comments

Expand your agent's capabilities with these related and highly-rated skills.

OpenHands/extensions

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.

78 21
Explore
OpenHands/extensions

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.

78 21
Explore
OpenHands/extensions

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/.

78 21
Explore
OpenHands/extensions

add-javadoc

Add comprehensive JavaDoc documentation to Java classes and methods. Use when documenting Java code, adding API documentation, or improving code documentation.

78 21
Explore
OpenHands/extensions

flarglebargle

A test skill that responds to the magic word "flarglebargle" with a compliment. Use for testing skill activation and trigger functionality.

78 21
Explore
OpenHands/extensions

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.

78 21
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results