# Migration Scoring

> Evaluate code migration quality with coverage, correctness, and style scoring. Generates executive reports with actionable recommendations.

- Skill: `openhands/migration-scoring` (Agent Skill)
- Install (CLI): `npx skillmds add openhands/migration-scoring`
- Raw SKILL.md: https://api.skillmd.com/api/skills/openhands/migration-scoring/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: MIT
- Author: openhands (https://skillmd.com/u/openhands)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/openhands/migration-scoring

---


Comprehensive quality evaluation for code migration projects.

## Overview

This plugin evaluates completed migrations through multiple lenses:

1. **Mapping** — Document source-to-target file relationships
2. **Quality Scoring** — Measure coverage and correctness
3. **Style Scoring** — Evaluate code quality and conventions
4. **Reporting** — Generate executive summary with recommendations

## Prerequisites

- Completed migration with both source and target code present
- Python 3.13 with `uv`
- LLM API key (Anthropic or OpenAI)
- Optional: Custom style rubric file

## Quick Start

```bash
export LLM_API_KEY="your-api-key"
export LLM_MODEL="anthropic/claude-3-5-sonnet-20241022"

uv run python -m lc_sdk_examples.migration_scoring \
  --src-path /path/to/migration/project \
  --rubric-path /path/to/style_rubric.txt
```

PowerShell equivalent for the environment setup:

```powershell
$env:LLM_API_KEY = "your-api-key"
$env:LLM_MODEL = "anthropic/claude-3-5-sonnet-20241022"

uv run python -m lc_sdk_examples.migration_scoring `
  --src-path C:\path\to\migration\project `
  --rubric-path C:\path\to\style_rubric.txt
```

## Workflow Phases

### Phase 1: Migration Mapping

See [../migration-mapping/SKILL.md](../migration-mapping/SKILL.md)

Creates a source→target file mapping:
- Identifies which target files implement each source file
- Supports many-to-many relationships
- Flags unmigrated source files

**Output:** `migration_mapping.json`

```json
{
  "CALC001.cbl": ["InvoiceCalculator.java", "TaxCalculator.java"],
  "CUST002.cbl": ["CustomerService.java"]
}
```

### Phase 2: Quality Scoring

See [../score-quality/SKILL.md](../score-quality/SKILL.md)

Scores each source file on:
- **Coverage (1-5)**: How much functionality was migrated
- **Correctness (1-5)**: How accurately behavior was preserved

**Output:** `migration_score.json`

```json
{
  "CALC001.cbl": {
    "coverage": 4,
    "correctness": 5,
    "justification": "All calculation logic migrated..."
  }
}
```

### Phase 3: Style Scoring

See [../score-style/SKILL.md](../score-style/SKILL.md)

Evaluates target code against style guidelines:
- Naming conventions
- Code organization
- Error handling
- Documentation
- Idiomaticity

**Output:** `style_score.json`

### Phase 4: Executive Report

See [../migration-report/SKILL.md](../migration-report/SKILL.md)

Generates a comprehensive report:
- Overall health assessment
- Score statistics and distribution
- Risk categorization (Green/Yellow/Red)
- Prioritized recommendations

**Output:** `final_report.md`

## Output Structure

```
your-project/
├── .lc-sdk/
│   ├── migration_mapping.json
│   ├── migration_score.json
│   ├── style_score.json
│   └── final_report.md
```

## Scoring Criteria

See [../score-quality/references/scoring-criteria.md](../score-quality/references/scoring-criteria.md) for the 1-5 scoring scales.

### Risk Categories

- **Green**: All scores ≥ 4
- **Yellow**: Any score 3-4
- **Red**: Any score < 3

