Agent skill
cobol-modernization
End-to-end COBOL to Java migration workflow. Handles build setup, mainframe dependency removal, and code migration with test validation.
Install this agent skill to your Project
npx add-skill https://github.com/OpenHands/extensions/tree/main/plugins/cobol-modernization/skills/cobol-modernization-overview
SKILL.md
End-to-end workflow for migrating COBOL codebases to Java.
Overview
This plugin orchestrates a multi-phase COBOL modernization project:
- Build Setup — Configure compilation for both COBOL and Java, create test fixtures
- Mainframe Planning — Document transformations needed to remove mainframe dependencies
- Mainframe Removal — Convert CICS/VSAM code to standard COBOL
- Java Migration — Translate standardized COBOL to idiomatic Java
Prerequisites
- GnuCOBOL compiler (
cobc) - Java 11+ with Maven or Gradle
- Python 3.13 with
uv - LLM API key (Anthropic or OpenAI)
Quick Start
export LLM_API_KEY="your-api-key"
export LLM_MODEL="anthropic/claude-3-5-sonnet-20241022"
uv run python -m lc_sdk_examples.cobol_modernization --src-path /path/to/cobol/project
Workflow Phases
Phase 1: Build Setup
See ../build-setup/SKILL.md
Creates the foundation for the migration:
- COBOL compilation environment (GnuCOBOL)
- Java project structure (Maven/Gradle + JUnit 5)
- Test fixtures with golden outputs from COBOL execution
Outputs:
build_notes.md— Build instructionstest-fixtures/— Input/output test datatest_manifest.json— Test case mapping
Phase 2: Mainframe Planning
See ../mainframe-planning/SKILL.md
Creates a transformation guide without modifying code:
- Maps CICS/VSAM constructs to standard COBOL equivalents
- Documents error handling replacements
- Identifies UI operations to stub
Output:
mainframe_dependency_removal_plan.md
Phase 3: Mainframe Removal
See ../mainfraime-removal/SKILL.md
Applies the transformation guide:
- Replaces EXEC CICS commands with file I/O
- Adds FILE STATUS checking
- Stubs BMS/screen operations
Verification:
- Code compiles with GnuCOBOL
- Runs with test fixtures
Phase 4: Java Migration
See ../to-java-migration/SKILL.md
Translates to idiomatic Java:
- Proper Java conventions (not literal translations)
- JUnit tests using golden outputs
- COBOL references in comments
Done when:
- All code compiles
- All JUnit tests pass
- No TODOs or stubs remain
Output Structure
your-project/
├── .lc-sdk/
│ ├── initial_batch_graph.json
│ ├── fixed_batch_graph.json
│ └── mainframe_dependency_removal_plan.md
├── test-fixtures/
│ ├── inputs/
│ └── expected_outputs/
├── test_manifest.json
├── src/main/java/
└── src/test/java/
Troubleshooting
See ../../references/troubleshooting.md for common issues and solutions.
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?