Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
6bcf4a5
feat(migrate): add vercel-to-aws migration assessment skill Adds a ne…
Jul 15, 2026
683b8a2
chore: remove .kiro/specs/vercel-to-aws (local working scratch, not s…
Jul 15, 2026
88eedca
feat(vercel-to-aws): add estimate phase + promote scaffold to full ge…
Jul 15, 2026
d9338a5
fix(vercel-to-aws): complete generate-phase integration (SKILL.md, re…
Jul 15, 2026
1c23375
Merge remote-tracking branch 'origin/main' into feat/vercel-to-aws-ge…
Jul 15, 2026
f9b1d82
Merge remote-tracking branch 'origin/main' into feat/vercel-to-aws-mi…
Jul 15, 2026
8bc4db8
fix(vercel-to-aws): capture/parse split — align prescan/discover with…
Jul 19, 2026
f9d60a0
fix(vercel-to-aws): verify capture whitelist against Vercel REST API …
Jul 19, 2026
dd5b642
fix(vercel-to-aws): sync fixture manifest endpoints with the doc-veri…
Jul 19, 2026
10124f4
Merge remote-tracking branch 'origin/main' into feat/vercel-to-aws-mi…
Jul 19, 2026
d1fa2ab
Merge branch 'feat/vercel-to-aws-migration-skill' into feat/vercel-to…
Jul 19, 2026
21f91bc
chore(vercel-to-aws): sync vendored aws-infra-pricing.json from canon…
Jul 19, 2026
bee0465
style: dprint formatting after merge
Jul 19, 2026
1c1ceaa
fix(vercel-to-aws): constrain the OpenAPI-discovered capture rows Rev…
Jul 19, 2026
f60df37
Merge branch 'feat/vercel-to-aws-migration-skill' into feat/vercel-to…
Jul 19, 2026
dfe017b
feat(vercel-to-aws): best-effort terraform validate in the Generate a…
Jul 19, 2026
7653b0e
fix(vercel-to-aws): commit the missing capture/build manifest fixture…
Jul 19, 2026
192d035
fix(vercel-to-aws): un-ignore the fixture capture/build manifests The…
Jul 19, 2026
26ff9b5
Merge branch 'feat/vercel-to-aws-migration-skill' (capture/build mani…
Jul 19, 2026
5f3bd50
fix(vercel-to-aws): routes-manifest arrays classify path shape, not r…
Jul 19, 2026
ef2c5a8
Merge branch 'feat/vercel-to-aws-migration-skill' (manifest classific…
Jul 19, 2026
c8f8996
test(vercel-to-aws): estimate+generate replay fixtures; price both ti…
Jul 19, 2026
d11db7b
fix(vercel-to-aws): seed phase list includes the declared scaffold ph…
Jul 19, 2026
94e0743
Merge branch 'feat/vercel-to-aws-migration-skill' (scaffold seed fix)…
Jul 19, 2026
8cd312e
fix(vercel-to-aws): Q7 confirms the discovered DB size; estimated run…
Jul 19, 2026
df02238
feat(vercel-to-aws): add post-Estimate what-if workshop checkpoint
Jul 20, 2026
bfb1a56
fix(vercel-to-aws): resume must not recompute Estimate mid-workshop
Jul 20, 2026
bc8b923
feat(vercel-to-aws): render what-if scenarios in assessment report
Jul 20, 2026
39f3a71
docs(vercel-to-aws): list scenarios/ in generated README artifacts
Jul 20, 2026
1072d4e
fix(vercel-to-aws): rename assessment-report.html to migration-report…
Jul 20, 2026
64176ca
fix(vercel-to-aws): make the workshop branch pass mise build Pre-exis…
Jul 20, 2026
6d7e7d2
feat(vercel-to-aws): shareable calculator.aws link per workshop scena…
Jul 20, 2026
5828f69
Merge upstream/main into feat/vercel-what-if-workshop
icarthick Jul 20, 2026
170043d
Merge upstream/main (#159) — re-sync vendored INTERPRETER.md
icarthick Jul 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
{
"name": "migration-to-aws",
"source": "./migrate/plugins/migration-to-aws",
"version": "1.5.0",
"description": "Migrate from GCP or Heroku to AWS — including your entire AI stack. Moves infrastructure (Cloud Run → Fargate, Heroku Dynos → Fargate, databases → RDS/Aurora), OpenAI/Gemini workloads to Amazon Bedrock, and agentic systems (LangChain, CrewAI, AutoGen, OpenAI Agents SDK) to AWS-native frameworks. Generates runnable Terraform, migration scripts, provider adapters, and deployment artifacts. Gives honest model-by-model pricing comparisons so you know exactly when Bedrock saves money and when it doesn't. The bundled llm-to-bedrock skill executes AI/LLM migrations automatically (rewrite, evaluate, deliver a branch)."
"version": "1.6.0",
"description": "Migrate from GCP, Heroku, or Vercel to AWS — including your entire AI stack. Moves infrastructure (Cloud Run → Fargate, Heroku Dynos → Fargate, databases → RDS/Aurora), OpenAI/Gemini workloads to Amazon Bedrock, and agentic systems (LangChain, CrewAI, AutoGen, OpenAI Agents SDK) to AWS-native frameworks. For Vercel: computes a Coupling Score and 10 Pre-Flight Checks, then recommends OpenNext/SST, ECS Fargate, or a Vercel+AWS Hybrid via a fixed, auditable decision order. Generates runnable Terraform, migration scripts, provider adapters, and deployment artifacts. Gives honest model-by-model pricing comparisons so you know exactly when Bedrock saves money and when it doesn't. The bundled llm-to-bedrock skill executes AI/LLM migrations automatically (rewrite, evaluate, deliver a branch)."
},
{
"name": "aws-startup-advisor",
Expand Down
32 changes: 32 additions & 0 deletions migrate/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,16 @@ Point this plugin at your Heroku account (via your authenticated Heroku CLI, rea
- **Generates a layered recommendation, a migration plan, and a deployable POC** — from "which runtime" through a full plan (reusing the migration engine) to runnable proof-of-concept code and deploy scripts on the chosen runtime
- **Not a cloud migration** — this is the entry point for deciding how and where to run agents on AWS, whether you're building fresh, deploying existing code, or adding AgentCore capabilities to agents already on AWS

**For Vercel migrations:**

- **Derives what it can't export** — Vercel's infrastructure (CloudFront-equivalent behaviors, function tuning, edge routing) isn't directly readable, so discovery works from your build output, source configs (`next.config.js`, `middleware.ts`, `vercel.json`), and the Vercel API instead
- **Computes a Coupling Score** — ISR, edge middleware, edge runtime routes, image optimization, streaming SSR, preview deployments, and Vercel-managed stores (KV/Postgres/Blob/Edge Config/Cron), each with a detection method and why it matters
- **Runs 10 named Pre-Flight Checks** — including a flagship check for cached routes that intersect with middleware (a behavior change on every AWS target, not just one), computed unconditionally and filtered to whatever outcome fits you
- **Recommends one of three honest outcomes** — OpenNext/SST (serverless), ECS Fargate (containerized), or a Vercel+AWS Hybrid (your backend moves, your Next.js app and PR previews stay on Vercel) — via a fixed, auditable decision order, never a guess
- **Tells you what you'd lose** — PR preview deployments first, always — and says plainly when this tooling isn't a fit for you (a low-traffic app with no AWS credits is often better served by a VPS)
- **Estimates costs with Vercel comparison** — three-tier AWS projection (Premium/Balanced/Optimized) compared against your current Vercel spend, using cached AWS pricing data with live MCP fallback
- **Generates production-ready Terraform** — `baseline.tf` (GuardDuty, CloudTrail, IMDSv2, budget alerts), VPC, compute (Fargate/Lambda/SST per outcome), peripherals (RDS, ElastiCache, S3, EventBridge), and numbered migration scripts with dry-run defaults

## Plugins

| Plugin | Description | Status |
Expand Down Expand Up @@ -97,6 +107,14 @@ After installation, just describe what you want to migrate:
- "Estimate AWS costs for my Heroku workload"
- "Migrate my Heroku Private Space to AWS"

**Vercel assessments:**

- "Migrate my Next.js app off Vercel"
- "Assess my Vercel migration"
- "Should I migrate off Vercel"
- "Vercel to Fargate"
- "Vercel coupling score"

**Running AI agents on AWS (agent-advisor):**

- "Which runtime should I use for my agent — AgentCore, ECS, EKS, or Lambda?"
Expand Down Expand Up @@ -141,6 +159,18 @@ GCP/Heroku migrations write a `.migration/<session>/` directory; agent-advisor w
| Secrets | Config vars → AWS Secrets Manager or SSM Parameter Store |
| Load Balancing | Web dynos → ALB; non-web → no ALB |

### Vercel → AWS

| Category | Vercel → AWS |
| ------------------- | ----------------------------------------------------------------------------------------------------------------- |
| Compute (Outcome A) | Next.js app → OpenNext/SST (server functions, CloudFront, ISR tag cache + revalidation queue, image optimization) |
| Compute (Outcome B) | Next.js app → ECS Fargate (`next start` behind ALB + CloudFront) |
| Compute (Outcome C) | Backend/API routes → API Gateway + Lambda or Fargate (Terraform); Next.js app + PR previews stay on Vercel |
| Storage | Blob → S3, Postgres → RDS/Aurora (Neon often correct to keep), KV → ElastiCache (Upstash often correct to keep) |
| Config/Secrets | Edge Config → Parameter Store/AppConfig, env vars → Secrets Manager/SSM |
| Scheduling | Cron → EventBridge Scheduler |
| Detect-only | Preview deployments (no AWS equivalent — this drives the Hybrid outcome and is the top "what you lose" item) |

## What You Get That a Base LLM Can't

**Infrastructure:**
Expand Down Expand Up @@ -171,6 +201,7 @@ GCP/Heroku migrations write a `.migration/<session>/` directory; agent-advisor w
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **gcp-to-aws** | "migrate GCP to AWS", "move from GCP", "GCP migration plan", "migrate Cloud SQL to RDS or Aurora", "move Cloud Run to Fargate", "estimate AWS costs for my GCP infrastructure", "migrate my OpenAI app to Bedrock", "migrate my LangChain agents to AWS" |
| **heroku-to-aws** | "migrate from Heroku", "Heroku to AWS", "move off Heroku", "migrate Heroku Postgres to RDS", "migrate dynos to Elastic Beanstalk", "migrate dynos to Fargate", "migrate Heroku Private Space", "leave Heroku", "estimate AWS costs for my Heroku app" |
| **vercel-to-aws** | "migrate from Vercel", "Vercel to AWS", "move off Vercel", "migrate Next.js off Vercel", "assess my Vercel migration", "leave Vercel", "Vercel to Fargate", "Vercel to OpenNext", "should I migrate off Vercel" |
| **agent-advisor** | "which runtime for my agent", "AgentCore vs ECS vs EKS vs Lambda", "deploy an AI agent on AWS", "I have an agent idea — what do I build", "move my agents to AWS with a plan", "add AgentCore memory/gateway/identity to my agent", "migrate Temporal workers to AWS", "run Temporal on AWS", "build a POC for my agent on AWS" |

## MCP Servers
Expand All @@ -188,6 +219,7 @@ GCP/Heroku migrations write a `.migration/<session>/` directory; agent-advisor w
- At least one input source: an authenticated Heroku CLI (Heroku migrations), Terraform files, application code, or billing data
- **For GCP AI/agentic migration:** Application source code is required (billing/IaC alone cannot detect agent architecture)
- **For Heroku migration:** an authenticated Heroku CLI (recommended — live, read-only discovery with your consent) or Terraform files with `heroku_*` resources (Procfile/app.json supplements but cannot stand alone). When both are available, live data is authoritative for current state and Terraform drift is surfaced.
- **For Vercel migration:** repo access with a locally-runnable `next build`, plus a Vercel API token, are both required — the assessment does not run on partial Tier 1 inputs. Vercel tokens can't be permission-scoped to read-only, so scope by resource instead (project-scoped when one project is in scope), pick a short expiration, and revoke after the assessment; the skill only ever issues read (GET) requests, enforced by its capture-step endpoint whitelist
- **For agent-advisor:** `uv` (for deterministic scoring); application source code when deploying/migrating existing agents (an idea-only run needs no code)

## Structure
Expand Down
9 changes: 7 additions & 2 deletions migrate/plugins/migration-to-aws/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "migration-to-aws",
"version": "1.5.0",
"description": "This no-cost tool assesses your current cloud provider's usage, geography, and billing data to estimate and compare AWS services and pricing, and recommends migration or continued use of your current provider. Supports GCP and Heroku migrations. AWS pricing is based on current published pricing and may vary over time. The tool may generate a .migration folder containing comparison and migration execution data, which you may delete upon completion or use to migrate to AWS.",
"description": "This no-cost tool assesses your current cloud provider's usage, geography, and billing data to estimate and compare AWS services and pricing, and recommends migration or continued use of your current provider. Supports GCP, Heroku, and Vercel migrations. AWS pricing is based on current published pricing and may vary over time. The tool may generate a .migration folder containing comparison and migration execution data, which you may delete upon completion or use to migrate to AWS.",
"author": {
"name": "Amazon Web Services"
},
Expand Down Expand Up @@ -56,6 +56,11 @@
"temporal-cloud",
"temporal-workers",
"temporal-to-aws",
"durable-execution"
"durable-execution",
"vercel",
"vercel-to-aws",
"next-js",
"nextjs",
"opennext"
]
}
12 changes: 9 additions & 3 deletions migrate/plugins/migration-to-aws/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "migration-to-aws",
"version": "1.5.0",
"description": "Migrate from GCP or Heroku to AWS — including your entire AI stack. Moves infrastructure (Cloud Run → Fargate, Heroku Dynos → Fargate, databases → RDS/Aurora), OpenAI/Gemini workloads to Amazon Bedrock, and agentic systems (LangChain, CrewAI, AutoGen, OpenAI Agents SDK) to AWS-native frameworks. Generates runnable Terraform, migration scripts, provider adapters, and deployment artifacts. Gives honest model-by-model pricing comparisons so you know exactly when Bedrock saves money and when it doesn't.",
"description": "Migrate from GCP, Heroku, or Vercel to AWS — including your entire AI stack. Moves infrastructure (Cloud Run → Fargate, Heroku Dynos → Fargate, databases → RDS/Aurora), OpenAI/Gemini workloads to Amazon Bedrock, and agentic systems (LangChain, CrewAI, AutoGen, OpenAI Agents SDK) to AWS-native frameworks. Generates runnable Terraform, migration scripts, provider adapters, and deployment artifacts. Gives honest model-by-model pricing comparisons so you know exactly when Bedrock saves money and when it doesn't.",
"author": {
"name": "Amazon Web Services",
"url": "https://aws.amazon.com"
Expand Down Expand Up @@ -59,7 +59,12 @@
"temporal-cloud",
"temporal-workers",
"temporal-to-aws",
"durable-execution"
"durable-execution",
"vercel",
"vercel-to-aws",
"next-js",
"nextjs",
"opennext"
],
"skills": "./skills/",
"mcpServers": "./.mcp.json",
Expand All @@ -79,7 +84,8 @@
"Migrate my OpenAI app to Amazon Bedrock",
"Estimate AWS costs for my GCP workload",
"Generate Terraform for my GCP to AWS migration",
"Migrate my LangChain app from OpenAI to Bedrock"
"Migrate my LangChain app from OpenAI to Bedrock",
"Assess my Vercel migration"
]
}
}
9 changes: 7 additions & 2 deletions migrate/plugins/migration-to-aws/.cursor-plugin/plugin.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "migration-to-aws",
"displayName": "Migration to AWS",
"version": "1.5.0",
"description": "Migrate from GCP or Heroku to AWS — including your entire AI stack. Moves infrastructure (Cloud Run → Fargate, Heroku Dynos → Fargate, databases → RDS/Aurora), OpenAI/Gemini workloads to Amazon Bedrock, and agentic systems (LangChain, CrewAI, AutoGen, OpenAI Agents SDK) to AWS-native frameworks. Generates runnable Terraform, migration scripts, provider adapters, and deployment artifacts. Gives honest model-by-model pricing comparisons so you know exactly when Bedrock saves money and when it doesnt.",
"description": "Migrate from GCP, Heroku, or Vercel to AWS — including your entire AI stack. Moves infrastructure (Cloud Run → Fargate, Heroku Dynos → Fargate, databases → RDS/Aurora), OpenAI/Gemini workloads to Amazon Bedrock, and agentic systems (LangChain, CrewAI, AutoGen, OpenAI Agents SDK) to AWS-native frameworks. Generates runnable Terraform, migration scripts, provider adapters, and deployment artifacts. Gives honest model-by-model pricing comparisons so you know exactly when Bedrock saves money and when it doesn't.",
"author": {
"name": "Amazon Web Services"
},
Expand Down Expand Up @@ -57,6 +57,11 @@
"temporal-cloud",
"temporal-workers",
"temporal-to-aws",
"durable-execution"
"durable-execution",
"vercel",
"vercel-to-aws",
"next-js",
"nextjs",
"opennext"
]
}
Loading
Loading