add azure-cloud-migrate skill for cross-cloud workload migration#1069
add azure-cloud-migrate skill for cross-cloud workload migration#1069MadhuraBharadwaj-MSFT wants to merge 34 commits intomicrosoft:mainfrom
Conversation
- SKILL.md with 13 rules and comprehensive error handling - Assessment, code-migration, and global-rules references - Lambda-to-Functions service mapping with EventGrid Bicep patterns - JavaScript/TypeScript/Python/C#/Java/PowerShell runtime references - Proposed updates for azure-prepare, azure-validate, azure-deploy - Captures 7 key learnings from real Flex Consumption + EventGrid migration
- Update azure-migrate description with USE FOR clause and migration keywords - Remove 'ANY' catch-all language from azure-prepare description - Add migration exception caveat to azure-prepare entry point - Add explicit DO NOT USE FOR migration keywords in azure-prepare - Update specialized-routing.md priority rule for AWS Lambda - Update analyze.md decision tree to route cross-cloud migration - Register azure-migrate in tests/skills.json
…duplicate runtime rules
There was a problem hiding this comment.
Pull request overview
Adds a new azure-cloud-migrate skill (assessment + code migration docs for cross-cloud workloads, starting with AWS Lambda → Azure Functions) and updates azure-prepare routing/docs so Lambda/cross-cloud migration prompts are directed to the new skill. Also introduces a new test suite (unit/trigger/integration) and registers the skill in the scheduled skill test matrix.
Changes:
- Added
plugin/skills/azure-cloud-migrate/with SKILL.md and Azure Functions migration references (assessment, code migration, global rules, runtime patterns, Lambda→Functions mapping). - Updated
azure-preparerouting/analysis docs and frontmatter to route cross-cloud migration prompts toazure-cloud-migrate. - Added
tests/azure-cloud-migrate/and registeredazure-cloud-migrateintests/skills.json.
Reviewed changes
Copilot reviewed 19 out of 19 changed files in this pull request and generated 16 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/skills.json | Registers azure-cloud-migrate in the skills list and integration schedule. |
| tests/azure-cloud-migrate/unit.test.ts | Adds unit tests validating skill frontmatter/content expectations. |
| tests/azure-cloud-migrate/triggers.test.ts | Adds prompt-based trigger tests and snapshots for keyword extraction. |
| tests/azure-cloud-migrate/integration.test.ts | Adds brownfield integration tests using real AWS sample repos. |
| tests/azure-cloud-migrate/snapshots/triggers.test.ts.snap | Snapshots for extracted keywords + description metadata. |
| plugin/skills/azure-prepare/references/specialized-routing.md | Adds priority routing row to invoke azure-cloud-migrate for migration prompts. |
| plugin/skills/azure-prepare/references/analyze.md | Updates decision tree to route cross-cloud migration to azure-cloud-migrate. |
| plugin/skills/azure-prepare/SKILL.md | Updates frontmatter description and trigger guidance to exclude Lambda/cross-cloud migration. |
| plugin/skills/azure-cloud-migrate/SKILL.md | New skill definition and workflow (Assess → Migrate Code → ask user → handoff to azure-prepare). |
| plugin/skills/azure-cloud-migrate/references/services/functions/assessment.md | New assessment-phase guidance + mandatory report template. |
| plugin/skills/azure-cloud-migrate/references/services/functions/code-migration.md | New code migration-phase rules, steps, and config templates. |
| plugin/skills/azure-cloud-migrate/references/services/functions/global-rules.md | New global rules for destructive actions, identity-first auth, and Flex Consumption specifics. |
| plugin/skills/azure-cloud-migrate/references/services/functions/lambda-to-functions.md | New AWS Lambda → Azure Functions mappings, Flex Consumption gotchas, and auth patterns. |
| plugin/skills/azure-cloud-migrate/references/services/functions/runtimes/javascript.md | Node.js v4 programming model trigger/binding patterns + migration rules. |
| plugin/skills/azure-cloud-migrate/references/services/functions/runtimes/typescript.md | TypeScript guidance for the Node.js v4 programming model. |
| plugin/skills/azure-cloud-migrate/references/services/functions/runtimes/python.md | Python v2 programming model trigger/binding patterns. |
| plugin/skills/azure-cloud-migrate/references/services/functions/runtimes/powershell.md | PowerShell binding model guidance (function.json + run.ps1). |
| plugin/skills/azure-cloud-migrate/references/services/functions/runtimes/java.md | Java annotation-based trigger/binding patterns. |
| plugin/skills/azure-cloud-migrate/references/services/functions/runtimes/csharp.md | C# isolated worker trigger/binding patterns. |
Comments suppressed due to low confidence (1)
plugin/skills/azure-cloud-migrate/references/services/functions/code-migration.md:75
- The link target here is incorrect relative to
code-migration.md(it adds an extraservices/functions/segment). This will break navigation. Update the link to the correct relative path (e.g.,lambda-to-functions.md#...).
| **Storage Queue Data Contributor** RBAC | Identity-based queue access for poison messages | 403 errors during blob trigger indexing |
See [lambda-to-functions.md](services/functions/lambda-to-functions.md#flex-consumption--blob-trigger-with-eventgrid-source) for Bicep patterns.
plugin/skills/azure-cloud-migrate/references/services/functions/code-migration.md
Outdated
Show resolved
Hide resolved
plugin/skills/azure-cloud-migrate/references/services/functions/lambda-to-functions.md
Show resolved
Hide resolved
plugin/skills/azure-cloud-migrate/references/services/functions/assessment.md
Outdated
Show resolved
Hide resolved
plugin/skills/azure-cloud-migrate/references/services/functions/code-migration.md
Outdated
Show resolved
Hide resolved
plugin/skills/azure-cloud-migrate/references/services/functions/lambda-to-functions.md
Show resolved
Hide resolved
- Slim SKILL.md from 1402 to <500 tokens (within budget) - Fix 4 broken markdown reference links - Extract Status Tracking + Error Handling to references/workflow-details.md - Update unit tests for new structure - Fix trigger tests: replace false-positive prompts, adjust confidence threshold
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
plugin/skills/azure-cloud-migrate/references/services/functions/assessment.md
Show resolved
Hide resolved
plugin/skills/azure-cloud-migrate/references/services/functions/code-migration.md
Outdated
Show resolved
Hide resolved
plugin/skills/azure-cloud-migrate/references/services/functions/runtimes/python.md
Show resolved
Hide resolved
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Updated environment variable names for Azure Functions.
plugin/skills/azure-cloud-migrate/references/services/functions/lambda-to-functions.md
Outdated
Show resolved
Hide resolved
plugin/skills/azure-cloud-migrate/references/services/functions/global-rules.md
Outdated
Show resolved
Hide resolved
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
MadhuraBharadwaj-MSFT
left a comment
There was a problem hiding this comment.
Addressed some of copilot's comments.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
plugin/skills/azure-cloud-migrate/references/services/functions/assessment.md
Show resolved
Hide resolved
plugin/skills/azure-cloud-migrate/references/services/functions/code-migration.md
Show resolved
Hide resolved
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 20 out of 20 changed files in this pull request and generated 4 comments.
Comments suppressed due to low confidence (1)
plugin/skills/azure-cloud-migrate/SKILL.md:38
- This skill’s text includes "deployment"/"deploy" (Step 5), which causes the trigger keyword extractor to include
deploy. With the current TriggerMatcher logic (>=2 keyword matches), prompts like "deploy to Azure" will incorrectly triggerazure-cloud-migrate(matchesazure+deploy). Consider rephrasing the handoff step to avoid deploy-related terms (since this skill explicitly hands off before deployment), and add a negative trigger test to lock this behavior in.
1. **Create** `<source-folder>-azure/` at workspace root
2. **Assess** — Analyze source, map services, generate report → [assessment.md](references/services/functions/assessment.md)
3. **Migrate** — Convert code using target programming model → [code-migration.md](references/services/functions/code-migration.md)
4. **Ask User** — "Migration complete. Test locally or deploy to Azure?"
5. **Hand off** to azure-prepare for infrastructure, testing, and deployment
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This reverts commit 78e1af5.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 20 out of 20 changed files in this pull request and generated 2 comments.
Comments suppressed due to low confidence (1)
plugin/skills/azure-cloud-migrate/references/services/functions/runtimes/python.md:35
- The blob input/output decorators are shown without being applied to any function. In the v2 Python programming model, these decorators must be stacked on an actual function definition (they can’t be declared as standalone lines). Please revise this section to show a complete function example that combines trigger + input/output bindings correctly.
# Input
@app.blob_input(arg_name="inputblob", path="input/{name}", connection="AzureWebJobsStorage")
# Output
@app.blob_output(arg_name="outputblob", path="output/{name}", connection="AzureWebJobsStorage")



This pull request introduces comprehensive documentation and rule sets for the new
azure-cloud-migrateskill, which guides the assessment and migration of cloud workloads (especially AWS Lambda) to Azure Functions. The documentation includes authoritative migration steps, assessment and code migration procedures, global rules for safe and compliant operation, and detailed scenario-specific guidance. The changes ensure that migrations follow best practices, enforce non-destructive workflows, and use the latest Azure technologies.Key changes grouped by theme:
1. Core Skill Documentation and Workflow
SKILL.mdto define theazure-cloud-migrateskill, outlining its purpose, triggers, step-by-step migration workflow, output directory conventions, required tools, and error handling strategies. This file serves as the authoritative guide for all migration operations and compliance requirements.2. Migration Assessment Phase
assessment.mdreference, detailing the assessment process for AWS Lambda to Azure Functions migration. This includes inventorying functions, mapping AWS services and triggers to Azure equivalents, analyzing dependencies, generating architecture diagrams, and producing a standardized assessment report with strict section requirements.3. Code Migration Phase
code-migration.mdreference, specifying the step-by-step process for converting Lambda code to Azure Functions. It enforces the use of bindings over SDKs, mandates the latest supported runtimes, and provides configuration templates and infrastructure requirements (e.g., for blob triggers and managed identities). It also describes the handoff to theazure-prepareskill for infrastructure provisioning and deployment.4. Global Rules and Best Practices
global-rules.mdto establish non-negotiable rules for all migration phases, including mandatory user confirmation for destructive actions, preference for managed identities, strict usage of the latest runtimes, and identity-first authentication patterns. It also covers Flex Consumption plan specifics and safe initialization workflows.## SummaryAdds a new
azure-cloud-migrateskill that assesses and migrates existing cloud workloads (starting with AWS Lambda) to Azure services. Decoupled from theazure-preparepipeline —azure-cloud-migratehandles assessment and code migration, then hands off toazure-preparefor infrastructure and deployment.What's included
New skill:
azure-cloud-migrate<aws-folder>-azure/at workspace root, leaving the original source untouchedReference docs (
references/services/functions/)global-rules.mdto avoid duplicationRouting changes to
azure-prepareEXCEPT Lambda to Azure/Functions migrationandDO NOT USE FORmigration keywordsspecialized-routing.md— Priority table routes migration prompts toazure-cloud-migrateanalyze.md— Decision tree updated for cross-cloud migrationTests
azure-cloud-migrateskill is selectedazure-cloud-migrateregistered in skills array and integration scheduleStats
18 files changed, 2,316 insertions(+), 8 deletions(-)