Agent skill
migration-mapping
Create a mapping from source language files to target language files for code migrations. Use when evaluating or documenting a migration project.
Stars
78
Forks
21
Install this agent skill to your Project
npx add-skill https://github.com/OpenHands/extensions/tree/main/plugins/migration-scoring/skills/migration-mapping
SKILL.md
Create a mapping from source language files (e.g., COBOL) to target language files (e.g., Java) to document which target files implement the functionality of each source file.
Task
Examine all source language files and identify the corresponding target language files that implement the same functionality. This mapping is essential for:
- Migration quality evaluation
- Traceability documentation
- Gap analysis
Output Format
Save the mapping as a JSON file with this structure:
json
{
"source_file_1.cbl": ["target_file_a.java", "target_file_b.java"],
"source_file_2.cbl": ["target_file_c.java"],
"source_file_3.cbl": []
}
Rules
- Many-to-many mapping: A source file may map to multiple target files, and a target file may implement logic from multiple source files
- Complete coverage: EVERY source file must appear as a key in the mapping
- Complete target coverage: EVERY target file should appear as a value at least once
- Empty arrays: If a source file has no corresponding target implementation, use an empty array
[] - Incremental: If a mapping file already exists, update it rather than replacing it
How to Identify Mappings
Look for:
- Matching class/program names
- Similar function/paragraph names
- Matching business logic patterns
- Comments referencing source files
- Import/include statements
- Data structure similarities
Example
For a COBOL-to-Java migration:
json
{
"CALC001.cbl": ["InvoiceCalculator.java", "TaxCalculator.java"],
"CUST002.cbl": ["CustomerService.java", "CustomerRepository.java"],
"UTIL003.cbl": ["StringUtils.java"],
"SCREEN001.cbl": []
}
Note: SCREEN001.cbl maps to nothing because UI code was not migrated.
Verification
After creating the mapping:
- Every source file is a key
- No duplicate keys
- Target files are relative paths from project root
- JSON is valid and well-formatted
Didn't find tool you were looking for?