uitk-react-to-harmony-migration
Migrate UITK React codebases to Harmony React using bundled, eval-proven workflows and a bundled component-mapping reference. Use when Codex needs to migrate a full UITK React app, convert a current screen or requested file set, choose between app-wide and current-screen migration modes, or package the Harmony migration workflow into another repository.
IDE:
claude
codex
vscode
Version:
0.0.0
UITK React to Harmony Migration
Overview
Use the bundled workflow references to drive either an app-wide UITK React migration or a current-screen migration. Default to the bundled mapping JSON unless the user explicitly provides a repo-local MAPPING_FILE override.
Choose Mode
- Use
MODE=current-screenwhen the request is about the current screen, current file, or a narrow requested file set. - Use
MODE=app-widewhen the request is about a full app, repo-wide migration, or a broader feature area. - If
MODEis omitted, infercurrent-screenwhen a current file or explicit small file set is central. Otherwise inferapp-wide.
Set Inputs
- Require
APP_ROOT. - Accept optional
MODE. - Accept optional
CURRENT_OPEN_FILEforcurrent-screenmode. - Accept optional
REQUESTED_FILESfor extra in-scope files the developer already named. - Accept optional
MAPPING_FILE. Usereferences/uitk-to-harmony-visual-mapping.jsonwhen the user does not explicitly point to a repo-local mapping file. - Treat the selected mapping file as authoritative for component mapping and prop drift decisions.
- When the developer says
utikoruitk, treat imports as@uhg-harmony/uitk-react. When the developer saysharmony, treat imports as@uhg-harmony/react.
Run The Workflow
- Read
references/workflow-guide.mdandreferences/workflow-manifest.jsonfirst. - Use the bundled mapping JSON as the source of truth unless the developer explicitly overrides it.
- Do not read the mapping JSON whole. It is ~1.1 MB and exceeds the context window. Query it per component with
jq '.[] | select(.uitkCodeComponentName=="<ComponentName>")' references/uitk-to-harmony-visual-mapping.json(orgrep -Aon the component name) and load only the entries in scope. - Do not inspect
@uhg-harmony/reactor@uhg-harmony/icons-reactpackage exports (or similar package export surfaces) to infer mappings. - For
app-wide, follow these bundled references in order:references/full-application/01-inventory-and-scope.mdreferences/full-application/02-foundation-and-import-strategy.mdreferences/full-application/03-straightforward-component-swaps.mdreferences/full-application/04-ambiguous-and-structural-migrations.mdreferences/full-application/05-verify-polish-and-handoff.md
- For
current-screen, followreferences/by-screen/01-migrate-current-screen.md. - Keep the workflow action-oriented: inspect code, edit the workspace, verify the result, and report only the migration details that matter.
Preserve Guardrails
- In
current-screenmode, start fromCURRENT_OPEN_FILEplus anyREQUESTED_FILES. - Before editing adjacent supporting files in
current-screenmode, verify that broader scope with the developer. - Do not turn
current-screenwork into a repo-wide sweep. - For ambiguous mappings, choose intentionally and explain why the selected Harmony component fits the actual usage.
- For non-obvious or behavior-sensitive prop drift, collaborate with the developer instead of guessing.
- If mapping details are missing or ambiguous, report unsupported cases or resolve them with the developer instead of silently falling back to package-export inspection.
- Do not invent Harmony replacements for unsupported or documentation-only top-level null-mapped entries.

