Help us improve
Share bugs, ideas, or general feedback.
From migration-planner
Compare migration approaches side-by-side. The user provides a comparison topic as an argument (e.g., `/migrate compare PaaS vs IaaS`, `/migrate compare SQL MI vs SQL VM`).
npx claudepluginhub twofoldtech-dakota/plugin-migration-plannerHow this skill is triggered — by the user, by Claude, or both
Slash command
/migration-planner:migrate-compareThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Compare migration approaches side-by-side. The user provides a comparison topic as an argument (e.g., `/migrate compare PaaS vs IaaS`, `/migrate compare SQL MI vs SQL VM`).
Designs cloud-agnostic architectures and compares compute, storage, and database services across AWS, Azure, and GCP. Includes multi-cloud patterns for DR, best-of-breed, geographic distribution, and abstraction.
Use when making technology, hosting, or infrastructure decisions — recommends services, databases, and deployment strategies based on project requirements and what the user actually has available
Guides AWS, GCP, Azure service selection with multi-cloud strategies, serverless vs container trade-offs, managed vs self-hosted decisions, and cost optimization for infrastructure design.
Share bugs, ideas, or general feedback.
Compare migration approaches side-by-side. The user provides a comparison topic as an argument (e.g., /migrate compare PaaS vs IaaS, /migrate compare SQL MI vs SQL VM).
The user's argument describes what to compare. Common comparisons include:
If the comparison topic is unclear, ask the user to clarify.
get_assessment with project_path (current working directory). Fall back to .migration/assessment.json for project context.get_discovery with the assessment ID for relevant discovery data. Fall back to reading .migration/discovery/ files.skills/migrate-knowledge/knowledge/skills/migrate-knowledge/heuristics/base-effort-hours.json for effort differencesFor each approach being compared, evaluate:
Based on the project's specific context (topology, scale, requirements):
Write .migration/comparisons/<comparison-name>.json:
{
"generated_at": "ISO date",
"topic": "SQL MI vs SQL VM",
"options": [
{
"name": "Azure SQL Managed Instance",
"migration_effort": { "hours_delta": 0, "notes": "Baseline approach" },
"monthly_cost_range": "$X - $Y",
"risk_level": "medium",
"sitecore_compatibility": "Full — near-100% SQL Server compatibility",
"timeline_impact": "Standard",
"pros": ["Managed service", "Built-in HA", "Automated backups", "No OS patching"],
"cons": ["Higher base cost", "Some SQL features unavailable", "Dedicated subnet required"],
"best_when": "Standard Sitecore deployment without exotic SQL features"
},
{
"name": "SQL Server on Azure VM",
"migration_effort": { "hours_delta": 16, "notes": "Additional OS-level DB management setup" },
"monthly_cost_range": "$X - $Y",
"risk_level": "medium",
"sitecore_compatibility": "Full — identical to on-prem SQL Server",
"timeline_impact": "Slightly longer due to OS-level setup",
"pros": ["Full SQL Server feature set", "Lower base cost at small scale", "Full control"],
"cons": ["OS patching responsibility", "Manual HA setup", "Manual backup config"],
"best_when": "Requires SQL features not in MI, or team prefers full control"
}
],
"recommendation": {
"preferred": "Azure SQL Managed Instance",
"rationale": "For this deployment with...",
"conditions": "Would change to SQL VM if..."
},
"context_factors": {
"database_count": 12,
"ha_required": true,
"total_size_gb": 150
}
}
Display as a side-by-side comparison:
Comparison: SQL MI vs SQL Server on Azure VM
════════════════════════════════════════════
SQL Managed Instance SQL Server on VM
───────────────── ──────────────────── ────────────────
Migration Effort Baseline +16 hours
Monthly Cost $X–$Y/mo $X–$Y/mo
Risk Level Medium Medium
Sitecore Compat. Full (near-100%) Full (100%)
HA Approach Built-in (BC tier) Manual Always On AG
Patching Automated Manual
Timeline Impact Standard +1 week
Recommendation: SQL Managed Instance
Rationale: ...
If the user didn't specify a comparison topic or the argument is empty, show available comparison topics and ask them to choose.