# Migration Report Template After migration (whether successful or not), write a comprehensive `MIGRATION_REPORT.md` in the project root. This document serves both as human-readable documentation and as structured input for AI agents analyzing the migration. ## Template ```markdown # Migration Report: CocoaPods to SwiftPM Import **Project:** **Module migrated:** **Date:** **Kotlin version:** **Status:** --- ## Pre-Migration State ### CocoaPods Dependencies | Pod | Version | Mode | Notes | |-----|---------|------|-------| | | | Regular / linkOnly | | ### Framework Configuration - **baseName:** - **isStatic:** - **Deployment target:** ### Kotlin Files Using `cocoapods.*` Imports | File | Imports | |------|---------| | | `cocoapods..`, ... | ### Non-KMP CocoaPods ### Atypical Project Configuration --- ## Migration Steps ### Phase 2: Gradle Configuration ### Phase 3: swiftPMDependencies ### Phase 4: Import Transformations | File | Before | After | Source | |------|--------|-------|--------| | | `cocoapods..` | `swiftPMImport...` | swiftPMImport cinterop | | | `cocoapods..` | `cocoapods..` (unchanged) | bundled klib | ### Phase 5: iOS Project Reconfiguration ### Phase 6: CocoaPods Removal ### Phase 7: Verification --- ## Errors Encountered ### Error #N: **Phase:** **Symptom:** **Root cause:** **Fix:** **Generalizable:** --- ## Non-Trivial Decisions --- ## Files Changed ### Gradle Files - ### Kotlin Sources - ### Xcode Project Files - ### Created - ### Deleted - ``` ## Writing Guidelines - **Be specific.** Include actual file paths, class names, error messages. Avoid vague statements like "updated the config." - **Show before/after.** For non-trivial changes, include code snippets of what was changed and why. - **Explain the "why."** Every error and non-trivial decision should include root cause analysis, not just the fix. - **Mark preserved `cocoapods.*` imports clearly.** These are the most confusing aspect of the migration for future readers — explain exactly why each one was kept and which library provides the bundled klib. - **Flag generalizable issues.** Mark errors that are likely to affect other projects so this report can improve the migration tooling. - **Keep it machine-parseable.** Use consistent markdown headings, tables, and the `Error #N` format so AI agents can extract structured data.