1kalin/afrexai-legacy-modernization/SKILL.md
# Legacy System Modernization Engine Complete methodology for assessing, planning, and executing legacy system modernization — from monolith decomposition to cloud migration. Works for any tech stack, any scale. --- ## Phase 1: System Assessment ### Modernization Brief ```yaml system_name: "[Name]" age_years: 0 primary_language: "" framework: "" database: "" deployment: "on-prem | VM | container | serverless" lines_of_code: 0 team_size: 0 monthly_users: 0 annual_revenue_supported: "$0" comp
npx skillsauth add openclaw/skills 1kalin/afrexai-legacy-modernizationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Complete methodology for assessing, planning, and executing legacy system modernization — from monolith decomposition to cloud migration. Works for any tech stack, any scale.
system_name: "[Name]"
age_years: 0
primary_language: ""
framework: ""
database: ""
deployment: "on-prem | VM | container | serverless"
lines_of_code: 0
team_size: 0
monthly_users: 0
annual_revenue_supported: "$0"
compliance_requirements: []
known_pain_points: []
business_driver: "cost | speed | talent | risk | compliance | scale"
timeline_pressure: "low | medium | high | critical"
budget_range: "$0-$0"
sponsor: ""
Score each dimension 1-5 (1=critical, 5=healthy):
| Dimension | Score | Evidence | |-----------|-------|----------| | Code quality — test coverage, complexity, duplication | | | | Architecture — coupling, modularity, clear boundaries | | | | Infrastructure — deployment automation, monitoring, scaling | | | | Dependencies — outdated libraries, EOL frameworks, security vulns | | | | Data — schema quality, migration history, backup/recovery | | | | Documentation — accuracy, coverage, onboarding effectiveness | | | | Operations — deployment frequency, MTTR, incident rate | | | | Security — auth patterns, encryption, audit trail, compliance gaps | | | | Developer experience — build time, local setup, debugging tools | | | | Business logic clarity — documented rules, test coverage of logic | | |
Total: /50
For each major dependency:
dependency: ""
current_version: ""
latest_version: ""
eol_date: "" # End of life
security_vulns: 0 # Known CVEs
upgrade_difficulty: "trivial | moderate | hard | rewrite"
business_risk: "low | medium | high | critical"
alternatives: []
Priority rules:
| Strategy | When to Use | Risk | Cost | Speed | Disruption | |----------|-------------|------|------|-------|------------| | Rehost (lift & shift) | Datacenter exit, minimal change | Low | Low | Fast | Low | | Replatform (lift & optimize) | Cloud benefits without rewrite | Low-Med | Medium | Medium | Low-Med | | Refactor (restructure) | Good code, bad architecture | Medium | Medium | Medium | Medium | | Re-architect (rebuild patterns) | Monolith→services, new patterns | High | High | Slow | High | | Rebuild (rewrite) | Small system, clear requirements | Very High | Very High | Very Slow | Very High | | Replace (buy/SaaS) | Commodity functionality | Medium | Variable | Fast | High | | Retire | No longer needed | None | Negative | Instant | Low | | Retain (do nothing) | Working fine, other priorities | None | Ongoing | N/A | None |
Is the system still needed?
├─ No → RETIRE
├─ Yes → Is it a commodity (CRM, email, etc.)?
│ ├─ Yes → REPLACE (buy SaaS)
│ └─ No → Is the code maintainable?
│ ├─ Yes → Is the architecture the problem?
│ │ ├─ Yes → RE-ARCHITECT (strangler fig)
│ │ └─ No → Is the infrastructure the problem?
│ │ ├─ Yes → REPLATFORM
│ │ └─ No → REFACTOR incrementally
│ └─ No → Is the system small (<50K LOC)?
│ ├─ Yes → Can requirements be clearly defined?
│ │ ├─ Yes → REBUILD
│ │ └─ No → REFACTOR + RE-ARCHITECT
│ └─ No → STRANGLER FIG (never big-bang rewrite)
NEVER do a full rewrite of a large system. It fails 70%+ of the time because:
Always use Strangler Fig instead. Replace piece by piece.
facade_name: "[API Gateway / Reverse Proxy / BFF]"
routing_rules:
- path: "/api/users/*"
target: "new-service"
status: "migrated"
migrated_date: "2025-01-15"
- path: "/api/orders/*"
target: "legacy"
status: "planned"
target_date: "2025-Q2"
- path: "/api/reports/*"
target: "legacy"
status: "not-planned"
notes: "Low priority, rarely used"
| Pattern | When | Complexity | Risk | |---------|------|-----------|------| | Dual write | Both systems write simultaneously | High | Data inconsistency | | CDC (Change Data Capture) | Stream changes from old→new DB | Medium | Lag, ordering | | ETL batch sync | Periodic bulk sync | Low | Stale data | | Event sourcing bridge | Events from old, replay in new | High | Schema mapping | | Read from new, write to old | Transition period | Medium | Routing complexity |
Golden rule: Pick ONE source of truth. Never let both systems own the same data simultaneously.
Before splitting a monolith, identify bounded contexts:
context_name: ""
description: ""
team: ""
entities: []
commands: []
events_published: []
events_consumed: []
database_tables: []
external_integrations: []
coupling_score: 0 # 0=independent, 10=deeply coupled
extraction_difficulty: "easy | moderate | hard | very-hard"
business_value: "low | medium | high | critical"
Plot contexts on: Business Value (Y) × Extraction Difficulty (X)
| | Easy | Moderate | Hard | |---|---|---|---| | High value | 🟢 Do first | 🟡 Do second | 🟠 Plan carefully | | Medium value | 🟢 Quick win | 🟡 Evaluate ROI | 🔴 Probably not worth it | | Low value | 🟡 If easy, why not | 🔴 Skip | 🔴 Definitely skip |
For each service being extracted:
| Strategy | Description | Downtime | Risk | |----------|-------------|----------|------| | Parallel run | New DB alongside old, sync both | Zero | High complexity | | Blue-green | Full copy, switch DNS | Minutes | Medium | | Rolling | Migrate table by table | Zero per table | Medium | | Big bang | Stop, migrate, start | Hours | High |
Before migrating data:
table: ""
row_count_source: 0
row_count_target: 0
count_match: false
checksum_match: false
null_analysis: "pass | fail"
referential_integrity: "pass | fail"
business_rule_validation: "pass | fail"
sample_manual_review: "pass | fail"
performance_benchmark: "pass | fail"
rollback_tested: false
Rule: All gates must pass before cutover. No exceptions.
Score each workload:
| Factor | Score (1-5) | Notes | |--------|-------------|-------| | Stateless design | | | | Configuration externalized | | | | Logging to stdout | | | | Health check endpoint | | | | Graceful shutdown | | | | Horizontal scalability | | | | Secret management | | | | 12-factor compliance | | |
35-40: Cloud-native ready 25-34: Minor modifications needed 15-24: Significant refactoring 8-14: Major redesign required
For legacy systems without APIs:
endpoint: "/api/v2/orders"
legacy_source: "stored_procedure: sp_GetOrders"
new_implementation: "orders-service"
migration_status: "legacy | dual-run | new-only"
contract_changes:
- field: "order_date"
old_format: "MM/DD/YYYY string"
new_format: "ISO 8601"
adapter: "date_format_adapter"
- field: "status"
old_values: ["A", "C", "P"]
new_values: ["active", "completed", "pending"]
adapter: "status_code_mapper"
parity_tests: 47
parity_passing: 47
/ Smoke Tests \ ← Whole system alive?
/ Parity Tests \ ← Same behavior old vs new?
/ Integration Tests \ ← Services work together?
/ Contract Tests \ ← API contracts honored?
/ Performance Tests \ ← Not slower than before?
/ Data Validation Tests \ ← Data migrated correctly?
/ Unit Tests \ ← New code works?
For EVERY migrated feature:
feature: ""
test_type: "api_parity | ui_parity | data_parity"
method: "shadow traffic | replay | parallel run"
sample_size: 0
match_rate: "0%" # Target: 99.9%+
mismatches_investigated: 0
mismatches_accepted: 0 # Known intentional differences
mismatches_bugs: 0
sign_off: false
Shadow traffic — copy production requests to new system, compare responses (don't serve new responses to users yet).
| Role | Responsibility | When Needed | |------|---------------|-------------| | Modernization Lead | Strategy, sequencing, blockers | Full-time | | Legacy Expert | Knows where the bodies are buried | Part-time, on-call | | New Platform Engineer | Builds target architecture | Full-time | | Data Engineer | Migration, sync, validation | Phase-dependent | | QA/Test Engineer | Parity testing, automation | Full-time | | DevOps/Platform | CI/CD, infrastructure | Part-time | | Product Owner | Business priority, acceptance | Part-time |
The most dangerous part of modernization is losing undocumented business rules.
| Audience | Frequency | Content | |----------|-----------|---------| | Executive sponsor | Bi-weekly | Progress, risks, budget, timeline | | Engineering team | Weekly | Sprint goals, technical decisions, blockers | | Dependent teams | Monthly | Upcoming changes, migration dates, API changes | | End users | Per migration | What's changing, when, how it affects them |
| # | Risk | Likelihood | Impact | Mitigation | |---|------|-----------|--------|------------| | 1 | Undocumented business rules lost | High | Critical | Code archaeology + stakeholder interviews + parity tests | | 2 | Timeline underestimation | Very High | High | 2x initial estimate, phase-gated checkpoints | | 3 | Data migration corruption | Medium | Critical | Checksums, parallel runs, rollback plans | | 4 | Feature parity gaps | High | High | Shadow traffic testing, user acceptance testing | | 5 | Team knowledge loss (people leave) | Medium | High | Document everything, pair programming, knowledge sharing | | 6 | Legacy system changes during migration | High | Medium | Feature freeze or dual-write contract | | 7 | Performance regression | Medium | High | Load testing at every phase, performance budgets | | 8 | Scope creep (improve while migrating) | Very High | Medium | Strict "migrate, don't improve" rule for Phase 1 | | 9 | Integration failures | Medium | High | Contract testing, circuit breakers, fallback routing | | 10 | Stakeholder fatigue | High | Medium | Quick wins early, visible progress dashboard |
Stop the modernization if:
If kill criteria triggered: Stabilize what's done, document learnings, reassess in 6 months.
Java → Modern Java (8→17+)
Python 2→3
2to3 tool for automated conversionjQuery→React/Vue
Monolith→Microservices
On-Prem→Cloud
| Anti-Pattern | Symptom | Fix | |-------------|---------|-----| | Distributed monolith | Services must deploy together | Identify and break coupling | | Shared database | Multiple services write same tables | Database-per-service | | Synchronous chains | A calls B calls C calls D | Async events, choreography | | Nano-services | Hundreds of tiny services | Merge related services | | Shared libraries for business logic | Library update breaks consumers | Duplicate code > shared coupling | | No API versioning | Breaking changes cascade | Semantic versioning, deprecation policy |
project: ""
assessment_date: ""
overall_health: "green | yellow | red"
progress:
modules_total: 0
modules_migrated: 0
modules_in_progress: 0
percent_complete: "0%"
velocity:
modules_per_sprint: 0
estimated_completion: ""
on_track: true
quality:
parity_test_pass_rate: "0%"
production_incidents_from_migration: 0
rollbacks: 0
risk:
open_risks: 0
p0_risks: 0
blocked_items: 0
cost:
budget_total: "$0"
budget_spent: "$0"
budget_remaining: "$0"
burn_rate_monthly: "$0"
| Dimension | Weight | Score (0-10) | Weighted | |-----------|--------|-------------|----------| | Strategy clarity | 15% | | | | Risk management | 15% | | | | Testing rigor | 15% | | | | Data integrity | 15% | | | | Architecture quality | 10% | | | | Team capability | 10% | | | | Stakeholder alignment | 10% | | | | Documentation | 10% | | | | Total | 100% | | /100 |
90-100: Exemplary — reference project 70-89: Strong — minor improvements 50-69: Adequate — address gaps Below 50: At risk — pause and reassess
## Modernization Status — Week of [DATE]
### Progress
- Modules migrated this week: [N]
- Total migrated: [N]/[TOTAL] ([X]%)
- On track for [TARGET DATE]: [Yes/No]
### Completed
- [What shipped this week]
### In Progress
- [What's being worked on]
### Blockers
- [What's stuck and what's needed]
### Risks
- [New or changed risks]
### Next Week
- [Plan for next sprint]
| Command | Action | |---------|--------| | "Assess this system for modernization" | Run full Technical Debt Inventory | | "Which modernization strategy should we use?" | Walk through Strategy Decision Tree | | "Plan a strangler fig migration" | Generate Strangler Facade YAML + sequence | | "Decompose this monolith" | Domain discovery + Bounded Context mapping | | "Migrate this database" | Data Quality Gates + migration strategy | | "Check cloud readiness" | Run Cloud Readiness Assessment | | "Create a migration testing plan" | Build Testing Pyramid with parity tests | | "What are the risks?" | Generate Top 10 risk register | | "How do we migrate from [X] to [Y]?" | Pattern-specific playbook | | "Status update for modernization" | Generate Weekly Status Template | | "Score this modernization project" | Run 100-Point Quality Rubric | | "Should we kill this modernization?" | Evaluate Kill Criteria |
tools
Use when the user wants to connect to, test, or use the McDonalds service at mcp.mcd.cn, including checking authentication, probing MCP endpoints, listing tools, or calling McDonalds MCP tools through a reusable local CLI.
development
Web scraping platform — Twitter/X data, Vinted marketplace, and general web scraping API
development
SlowMist AI Agent Security Review — comprehensive security framework for skills, repositories, URLs, on-chain addresses, and products (Claude Code version)
data-ai
去除中文文本中的 AI 写作痕迹,使其读起来自然。基于维基百科 AI 写作特征指南,检测 24 种 AI 模式。触发词:humanizer-cn、去除 AI 痕迹、去除 AI 写作痕迹、中文文本人性化。