What problem does it solve? Migrating three divergent legacy Angular apps (PC, Mobile, Hana) means the same business logic exists in three copies. This Skill lifts that shared logic into framework-agnostic packages/shared-* modules with tests, reconciling cross-app divergence and enforcing the shared-domain secret boundary before any page-level migration begins. ## Core Features & Use Cases - TDD Package Extraction: Runs a package-extractor agent that moves candidates into packages/shared-* with test-first development, then verifies with tsc and vitest. - Contract-Authoritative Schemas: When a contractsDir is configured, shared-types and shared-data transcribe authoritative zod schemas from contract Markdown instead of reverse-engineering legacy any DTOs. - Concurrency-Safe State Management: Acquires package and tracker locks, refuses runs when dependents have in-flight flag flips, and invalidates gate evidence on every page importing a rewritten package. - Use Case: During Phase 0 of an Angular-to-React migration, extract UtilDateService and other shared candidates into shared-domain so all three apps import one tested implementation before per-page generation starts. ## Quick Start Run /frontend-migration-plugin:fm-extract shared-domain --app pc to extract the shared domain package from the legacy PC app with tests.