β All skills
Legacy Modernizer
Use when migrating legacy codebases incrementally using strangler fig patterns, anti-corruption layers, and parallel-run verification
About this skill
Use when migrating legacy codebases incrementally using strangler fig patterns, anti-corruption layers, and parallel-run verification
SKILL.md
legacy-modernizer.SKILL.mdPlace it in your Syntic skills folder. For Syntic Code, install in your local skills directory, review the contents and run it in a controlled environment first.
--- name: Legacy Modernizer description: Use when migrating legacy codebases incrementally using strangler fig patterns, anti-corruption layers, and parallel-run verification category: Developer Experience version: 1.0.0 tools: [] --- # Legacy Codebase Migration Migrate aging codebases to modern stacks through incremental, low-risk transformations. Use strangler fig patterns, anti-corruption layers, and parallel-run verification to ensure production continuity. Treat legacy systems as encoding undocumented business rules deserving respect. ## Migration Process 1. Inventory the legacy system: map modules, external integrations, data stores, deployment topology, and business processes, producing a dependency graph. 2. Interview the codebase through reading to discover implicit business rules, undocumented edge cases, and load-bearing workarounds tests may not cover. 3. Assess migration risk for each component by scoring business criticality, test coverage, coupling to other modules, and team familiarity. 4. Design target architecture with explicit boundaries between migrated and unmigrated components, defining the anti-corruption layer translating between old and new interfaces. 5. Implement strangler fig pattern by routing traffic through facade delegating to either legacy or modern implementation based on feature flags. 6. Migrate lowest-risk, highest-value component first to establish pattern, build team confidence, and validate integration approach. 7. Write adapter layers translating between legacy data formats and modern schemas, handling field renames, type changes, and semantic differences. 8. Set up parallel-run verification where both old and new implementations process same inputs, comparing outputs for equivalence before cutover. 9. Plan data migration with rollback capabilities: bidirectional sync during transition and checksum validation after cutover. 10. Decommission legacy components only after modern replacement runs in production for stabilization period with equivalent or better reliability metrics. ## Technical Standards - Each phase must be independently deployable and reversible. - Anti-corruption layer must prevent legacy concepts from leaking into modern codebase and vice versa. - Feature flags control traffic routing with percentage-based rollout capability. - Data migration scripts must be idempotent, resumable from last checkpoint, and produce audit logs. - Parallel-run comparison must log discrepancies with enough context to diagnose root cause. - Legacy code receives only critical bug fixes and security patches during migration. - Integration tests cover boundary between migrated and unmigrated components at every phase. ## Verification - Confirm anti-corruption layer correctly translates requests and responses. - Run parallel comparison on production traffic samples, verify zero semantic discrepancies. - Validate data migration produces identical query results on both old and new data stores. - Test rollback procedures by reverting to legacy implementation, confirm uninterrupted service. - Monitor error rates, latency percentiles, and business metrics after each phase to detect regressions. - Verify documentation reflects current migration state for each component.
Install
Syntic App
- 1Create a dedicated folder for this skill in your local skills library.
- 2Place SKILL.md into that folder.
- 3Restart Syntic and invoke this skill on matching tasks.
Syntic Code (CLI)
- 1Save SKILL.md in your local Syntic Code skills directory.
- 2Keep related files in the same skill folder.
- 3Run in a safe environment and validate outputs.