[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-azure-runtime-validation-and-testing":3,"mdc-c3manf-key":35,"related-org-azure-runtime-validation-and-testing":636,"related-repo-azure-runtime-validation-and-testing":813},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":24,"repoUrl":25,"updatedAt":26,"license":27,"forks":28,"topics":29,"repo":30,"sourceUrl":33,"mdContent":34},"runtime-validation-and-testing","validate and test Logic Apps migrations","Rules for runtime validation and end-to-end testing of converted Logic Apps Standard projects. Covers func start validation, local E2E test matrix, splitOn verification, retry\u002Ftimeout adaptation, test reporting, and no-source-platform-infra policy.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"azure","Azure (Microsoft)","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fazure.png","Azure",[13,15,18,21],{"name":11,"slug":8,"type":14},"tag",{"name":16,"slug":17,"type":14},"Automation","automation",{"name":19,"slug":20,"type":14},"Migration","migration",{"name":22,"slug":23,"type":14},"Testing","testing",6,"https:\u002F\u002Fgithub.com\u002FAzure\u002Flogicapps-migration-agent","2026-07-12T08:20:24.855496",null,7,[],{"repoUrl":25,"stars":24,"forks":28,"topics":31,"description":32},[],"VS Code Extension for migrating BizTalk, MuleSoft, and other integration platforms to Azure Logic Apps Standard","https:\u002F\u002Fgithub.com\u002FAzure\u002Flogicapps-migration-agent\u002Ftree\u002FHEAD\u002Fresources\u002Fskills\u002Fruntime-validation-and-testing\u002Ftibco","---\nname: runtime-validation-and-testing\ndescription: Rules for runtime validation and end-to-end testing of converted Logic Apps Standard projects. Covers func start validation, local E2E test matrix, splitOn verification, retry\u002Ftimeout adaptation, test reporting, and no-source-platform-infra policy.\n---\n\n# Skill: Runtime Validation and Testing\n\n> **Purpose**: Authoritative rules for validating and testing converted Logic Apps Standard projects. Follow exactly.\n\n---\n\n## 1. Runtime Validation\n\n- Run `func start --verbose` in the generated project folder.\n- Check for errors in the output.\n- Fix any issues found (bad connections, missing settings, schema errors).\n- Re-run until the runtime starts cleanly with no errors.\n\n---\n\n## 2. Local E2E Test Matrix\n\nTest ALL workflows end-to-end locally. Run EVERY scenario:\n\n1. **Happy path** — valid input, expected successful output.\n2. **Error\u002Ffailure path** — invalid or malformed input, verify error handling works.\n3. **Cross-workflow chain** — if workflow A triggers workflow B, test the ENTIRE chain.\n4. **Timeout\u002Fretry path** — if any workflow has timeout or retry logic, test it.\n5. **Resubmission path** — if the flow supports message resubmission, test it.\n6. **SplitOn check** — if any trigger returns an array and uses a `For_each` loop instead of `splitOn`, refactor to use `splitOn` and re-test.\n\nTrigger each workflow based on trigger type:\n\n- HTTP → `curl` \u002F `Invoke-WebRequest`\n- File → place file in `mountPath`\n- Service Bus → send message\n- Timer → check logs\n\nIf a workflow fails, fix the issue and re-test until all scenarios pass.\n\n---\n\n## 2a. Output Content Validation\n\nWorkflow completion (status = Succeeded) is NOT sufficient. For every output produced during E2E testing, perform **field-level content validation**:\n\n1. **Parse every output file\u002Fmessage** — read the actual XML\u002FJSON content produced by each workflow action that writes to an external destination (file, HTTP response, queue message).\n2. **Verify non-empty fields** — every element\u002Fproperty that should carry a value from the source message MUST be non-empty. Flag any empty elements that should contain propagated data.\n3. **Verify value propagation** — trace key business fields (IDs, amounts, dates, counts) from input through every transformation to output. Confirm the correct value appears at each stage.\n4. **Verify constant\u002Fstatic values** — check that hardcoded values (status codes, acknowledgment strings, booleans) match the expected constants from the source orchestration logic.\n5. **Verify collection preservation** — if the source message contains repeating elements (arrays\u002Flists), confirm all items survive through mass-copy\u002Fpass-through transforms (not just the first item).\n6. **Compare against source behavior** — determine what the source platform (BizTalk, MuleSoft, TIBCO, etc.) would produce for the same input, and verify the migrated Logic App produces semantically equivalent output.\n\nIf any field is empty, truncated, or contains the wrong value, treat it as a **test failure** even if the workflow status is Succeeded. Fix the root cause (wrong action input, incorrect XSLT XPath, missing mapping) and re-test.\n\n---\n\n## 3. Test Adaptation Rules\n\n- NEVER skip tests due to long delays, timers, retry intervals, or timeouts.\n- Instead, temporarily reduce these values to test-friendly durations (seconds instead of hours).\n- Run all tests.\n- Then REVERT to original production values after testing.\n- Document all adaptations and reversions in the test report.\n\n---\n\n## 4. No Source Platform Infrastructure\n\nDuring testing, NEVER connect to or use original source platform infrastructure (on-premises SQL servers, file shares, message queues, FTP servers, etc.).\n\n- For local-capable connectors (File System, HTTP, Timer) → use LOCAL resources.\n- For cloud-only connectors (Service Bus, Event Hubs, etc.) → use ONLY Azure resources provisioned in the configured resource group.\n- Ensure Azurite is running before `func start` (`AzureWebJobsStorage` uses `UseDevelopmentStorage=true`).\n\n---\n\n## 5. Local-First Resource Strategy\n\n- Use Azurite (`UseDevelopmentStorage=true`) for `AzureWebJobsStorage`.\n- Use local file paths for File System connector `mountPath`.\n- Use `localhost` for HTTP triggers.\n- For SQL Server, Cosmos DB, SFTP, PostgreSQL, MySQL → use Docker containers.\n- Check Docker availability with `docker --version`.\n- Only provision Azure resources for connectors with NO local\u002FDocker alternative (Service Bus, Event Hubs, Integration Account).\n\n---\n\n## 6. TEST-REPORT.md\n\nAfter testing, generate `TEST-REPORT.md` in the project root with:\n\n- This report is MANDATORY. Do NOT consider the local testing task complete until `TEST-REPORT.md` has been created and populated.\n\n- Test results per workflow.\n- **Output content validation results** — for each workflow, list fields checked, values found, and pass\u002Ffail per field. Flag any empty\u002Fwrong values.\n- Azure resources provisioned.\n- Adjustments made during testing.\n- Design deviations from plan (should be none — see plan adherence).\n- Deployment notes.\n- Re-test instructions with exact commands.\n\n---\n\n## 7. Completion Gate\n\nDo NOT call `migration_conversion_finalize` until ALL tests pass and `TEST-REPORT.md` exists. The delivered workspace MUST be fully working with zero manual setup.\n\n\n",{"data":36,"body":37},{"name":4,"description":6},{"type":38,"children":39},"root",[40,49,65,69,76,110,113,119,124,211,216,259,264,267,273,285,348,360,363,369,397,400,406,411,453,456,462,530,533,539,552,607,610,616],{"type":41,"tag":42,"props":43,"children":45},"element","h1",{"id":44},"skill-runtime-validation-and-testing",[46],{"type":47,"value":48},"text","Skill: Runtime Validation and Testing",{"type":41,"tag":50,"props":51,"children":52},"blockquote",{},[53],{"type":41,"tag":54,"props":55,"children":56},"p",{},[57,63],{"type":41,"tag":58,"props":59,"children":60},"strong",{},[61],{"type":47,"value":62},"Purpose",{"type":47,"value":64},": Authoritative rules for validating and testing converted Logic Apps Standard projects. Follow exactly.",{"type":41,"tag":66,"props":67,"children":68},"hr",{},[],{"type":41,"tag":70,"props":71,"children":73},"h2",{"id":72},"_1-runtime-validation",[74],{"type":47,"value":75},"1. Runtime Validation",{"type":41,"tag":77,"props":78,"children":79},"ul",{},[80,95,100,105],{"type":41,"tag":81,"props":82,"children":83},"li",{},[84,86,93],{"type":47,"value":85},"Run ",{"type":41,"tag":87,"props":88,"children":90},"code",{"className":89},[],[91],{"type":47,"value":92},"func start --verbose",{"type":47,"value":94}," in the generated project folder.",{"type":41,"tag":81,"props":96,"children":97},{},[98],{"type":47,"value":99},"Check for errors in the output.",{"type":41,"tag":81,"props":101,"children":102},{},[103],{"type":47,"value":104},"Fix any issues found (bad connections, missing settings, schema errors).",{"type":41,"tag":81,"props":106,"children":107},{},[108],{"type":47,"value":109},"Re-run until the runtime starts cleanly with no errors.",{"type":41,"tag":66,"props":111,"children":112},{},[],{"type":41,"tag":70,"props":114,"children":116},{"id":115},"_2-local-e2e-test-matrix",[117],{"type":47,"value":118},"2. Local E2E Test Matrix",{"type":41,"tag":54,"props":120,"children":121},{},[122],{"type":47,"value":123},"Test ALL workflows end-to-end locally. Run EVERY scenario:",{"type":41,"tag":125,"props":126,"children":127},"ol",{},[128,138,148,158,168,178],{"type":41,"tag":81,"props":129,"children":130},{},[131,136],{"type":41,"tag":58,"props":132,"children":133},{},[134],{"type":47,"value":135},"Happy path",{"type":47,"value":137}," — valid input, expected successful output.",{"type":41,"tag":81,"props":139,"children":140},{},[141,146],{"type":41,"tag":58,"props":142,"children":143},{},[144],{"type":47,"value":145},"Error\u002Ffailure path",{"type":47,"value":147}," — invalid or malformed input, verify error handling works.",{"type":41,"tag":81,"props":149,"children":150},{},[151,156],{"type":41,"tag":58,"props":152,"children":153},{},[154],{"type":47,"value":155},"Cross-workflow chain",{"type":47,"value":157}," — if workflow A triggers workflow B, test the ENTIRE chain.",{"type":41,"tag":81,"props":159,"children":160},{},[161,166],{"type":41,"tag":58,"props":162,"children":163},{},[164],{"type":47,"value":165},"Timeout\u002Fretry path",{"type":47,"value":167}," — if any workflow has timeout or retry logic, test it.",{"type":41,"tag":81,"props":169,"children":170},{},[171,176],{"type":41,"tag":58,"props":172,"children":173},{},[174],{"type":47,"value":175},"Resubmission path",{"type":47,"value":177}," — if the flow supports message resubmission, test it.",{"type":41,"tag":81,"props":179,"children":180},{},[181,186,188,194,196,202,204,209],{"type":41,"tag":58,"props":182,"children":183},{},[184],{"type":47,"value":185},"SplitOn check",{"type":47,"value":187}," — if any trigger returns an array and uses a ",{"type":41,"tag":87,"props":189,"children":191},{"className":190},[],[192],{"type":47,"value":193},"For_each",{"type":47,"value":195}," loop instead of ",{"type":41,"tag":87,"props":197,"children":199},{"className":198},[],[200],{"type":47,"value":201},"splitOn",{"type":47,"value":203},", refactor to use ",{"type":41,"tag":87,"props":205,"children":207},{"className":206},[],[208],{"type":47,"value":201},{"type":47,"value":210}," and re-test.",{"type":41,"tag":54,"props":212,"children":213},{},[214],{"type":47,"value":215},"Trigger each workflow based on trigger type:",{"type":41,"tag":77,"props":217,"children":218},{},[219,238,249,254],{"type":41,"tag":81,"props":220,"children":221},{},[222,224,230,232],{"type":47,"value":223},"HTTP → ",{"type":41,"tag":87,"props":225,"children":227},{"className":226},[],[228],{"type":47,"value":229},"curl",{"type":47,"value":231}," \u002F ",{"type":41,"tag":87,"props":233,"children":235},{"className":234},[],[236],{"type":47,"value":237},"Invoke-WebRequest",{"type":41,"tag":81,"props":239,"children":240},{},[241,243],{"type":47,"value":242},"File → place file in ",{"type":41,"tag":87,"props":244,"children":246},{"className":245},[],[247],{"type":47,"value":248},"mountPath",{"type":41,"tag":81,"props":250,"children":251},{},[252],{"type":47,"value":253},"Service Bus → send message",{"type":41,"tag":81,"props":255,"children":256},{},[257],{"type":47,"value":258},"Timer → check logs",{"type":41,"tag":54,"props":260,"children":261},{},[262],{"type":47,"value":263},"If a workflow fails, fix the issue and re-test until all scenarios pass.",{"type":41,"tag":66,"props":265,"children":266},{},[],{"type":41,"tag":70,"props":268,"children":270},{"id":269},"_2a-output-content-validation",[271],{"type":47,"value":272},"2a. Output Content Validation",{"type":41,"tag":54,"props":274,"children":275},{},[276,278,283],{"type":47,"value":277},"Workflow completion (status = Succeeded) is NOT sufficient. For every output produced during E2E testing, perform ",{"type":41,"tag":58,"props":279,"children":280},{},[281],{"type":47,"value":282},"field-level content validation",{"type":47,"value":284},":",{"type":41,"tag":125,"props":286,"children":287},{},[288,298,308,318,328,338],{"type":41,"tag":81,"props":289,"children":290},{},[291,296],{"type":41,"tag":58,"props":292,"children":293},{},[294],{"type":47,"value":295},"Parse every output file\u002Fmessage",{"type":47,"value":297}," — read the actual XML\u002FJSON content produced by each workflow action that writes to an external destination (file, HTTP response, queue message).",{"type":41,"tag":81,"props":299,"children":300},{},[301,306],{"type":41,"tag":58,"props":302,"children":303},{},[304],{"type":47,"value":305},"Verify non-empty fields",{"type":47,"value":307}," — every element\u002Fproperty that should carry a value from the source message MUST be non-empty. Flag any empty elements that should contain propagated data.",{"type":41,"tag":81,"props":309,"children":310},{},[311,316],{"type":41,"tag":58,"props":312,"children":313},{},[314],{"type":47,"value":315},"Verify value propagation",{"type":47,"value":317}," — trace key business fields (IDs, amounts, dates, counts) from input through every transformation to output. Confirm the correct value appears at each stage.",{"type":41,"tag":81,"props":319,"children":320},{},[321,326],{"type":41,"tag":58,"props":322,"children":323},{},[324],{"type":47,"value":325},"Verify constant\u002Fstatic values",{"type":47,"value":327}," — check that hardcoded values (status codes, acknowledgment strings, booleans) match the expected constants from the source orchestration logic.",{"type":41,"tag":81,"props":329,"children":330},{},[331,336],{"type":41,"tag":58,"props":332,"children":333},{},[334],{"type":47,"value":335},"Verify collection preservation",{"type":47,"value":337}," — if the source message contains repeating elements (arrays\u002Flists), confirm all items survive through mass-copy\u002Fpass-through transforms (not just the first item).",{"type":41,"tag":81,"props":339,"children":340},{},[341,346],{"type":41,"tag":58,"props":342,"children":343},{},[344],{"type":47,"value":345},"Compare against source behavior",{"type":47,"value":347}," — determine what the source platform (BizTalk, MuleSoft, TIBCO, etc.) would produce for the same input, and verify the migrated Logic App produces semantically equivalent output.",{"type":41,"tag":54,"props":349,"children":350},{},[351,353,358],{"type":47,"value":352},"If any field is empty, truncated, or contains the wrong value, treat it as a ",{"type":41,"tag":58,"props":354,"children":355},{},[356],{"type":47,"value":357},"test failure",{"type":47,"value":359}," even if the workflow status is Succeeded. Fix the root cause (wrong action input, incorrect XSLT XPath, missing mapping) and re-test.",{"type":41,"tag":66,"props":361,"children":362},{},[],{"type":41,"tag":70,"props":364,"children":366},{"id":365},"_3-test-adaptation-rules",[367],{"type":47,"value":368},"3. Test Adaptation Rules",{"type":41,"tag":77,"props":370,"children":371},{},[372,377,382,387,392],{"type":41,"tag":81,"props":373,"children":374},{},[375],{"type":47,"value":376},"NEVER skip tests due to long delays, timers, retry intervals, or timeouts.",{"type":41,"tag":81,"props":378,"children":379},{},[380],{"type":47,"value":381},"Instead, temporarily reduce these values to test-friendly durations (seconds instead of hours).",{"type":41,"tag":81,"props":383,"children":384},{},[385],{"type":47,"value":386},"Run all tests.",{"type":41,"tag":81,"props":388,"children":389},{},[390],{"type":47,"value":391},"Then REVERT to original production values after testing.",{"type":41,"tag":81,"props":393,"children":394},{},[395],{"type":47,"value":396},"Document all adaptations and reversions in the test report.",{"type":41,"tag":66,"props":398,"children":399},{},[],{"type":41,"tag":70,"props":401,"children":403},{"id":402},"_4-no-source-platform-infrastructure",[404],{"type":47,"value":405},"4. No Source Platform Infrastructure",{"type":41,"tag":54,"props":407,"children":408},{},[409],{"type":47,"value":410},"During testing, NEVER connect to or use original source platform infrastructure (on-premises SQL servers, file shares, message queues, FTP servers, etc.).",{"type":41,"tag":77,"props":412,"children":413},{},[414,419,424],{"type":41,"tag":81,"props":415,"children":416},{},[417],{"type":47,"value":418},"For local-capable connectors (File System, HTTP, Timer) → use LOCAL resources.",{"type":41,"tag":81,"props":420,"children":421},{},[422],{"type":47,"value":423},"For cloud-only connectors (Service Bus, Event Hubs, etc.) → use ONLY Azure resources provisioned in the configured resource group.",{"type":41,"tag":81,"props":425,"children":426},{},[427,429,435,437,443,445,451],{"type":47,"value":428},"Ensure Azurite is running before ",{"type":41,"tag":87,"props":430,"children":432},{"className":431},[],[433],{"type":47,"value":434},"func start",{"type":47,"value":436}," (",{"type":41,"tag":87,"props":438,"children":440},{"className":439},[],[441],{"type":47,"value":442},"AzureWebJobsStorage",{"type":47,"value":444}," uses ",{"type":41,"tag":87,"props":446,"children":448},{"className":447},[],[449],{"type":47,"value":450},"UseDevelopmentStorage=true",{"type":47,"value":452},").",{"type":41,"tag":66,"props":454,"children":455},{},[],{"type":41,"tag":70,"props":457,"children":459},{"id":458},"_5-local-first-resource-strategy",[460],{"type":47,"value":461},"5. Local-First Resource Strategy",{"type":41,"tag":77,"props":463,"children":464},{},[465,484,495,508,513,525],{"type":41,"tag":81,"props":466,"children":467},{},[468,470,475,477,482],{"type":47,"value":469},"Use Azurite (",{"type":41,"tag":87,"props":471,"children":473},{"className":472},[],[474],{"type":47,"value":450},{"type":47,"value":476},") for ",{"type":41,"tag":87,"props":478,"children":480},{"className":479},[],[481],{"type":47,"value":442},{"type":47,"value":483},".",{"type":41,"tag":81,"props":485,"children":486},{},[487,489,494],{"type":47,"value":488},"Use local file paths for File System connector ",{"type":41,"tag":87,"props":490,"children":492},{"className":491},[],[493],{"type":47,"value":248},{"type":47,"value":483},{"type":41,"tag":81,"props":496,"children":497},{},[498,500,506],{"type":47,"value":499},"Use ",{"type":41,"tag":87,"props":501,"children":503},{"className":502},[],[504],{"type":47,"value":505},"localhost",{"type":47,"value":507}," for HTTP triggers.",{"type":41,"tag":81,"props":509,"children":510},{},[511],{"type":47,"value":512},"For SQL Server, Cosmos DB, SFTP, PostgreSQL, MySQL → use Docker containers.",{"type":41,"tag":81,"props":514,"children":515},{},[516,518,524],{"type":47,"value":517},"Check Docker availability with ",{"type":41,"tag":87,"props":519,"children":521},{"className":520},[],[522],{"type":47,"value":523},"docker --version",{"type":47,"value":483},{"type":41,"tag":81,"props":526,"children":527},{},[528],{"type":47,"value":529},"Only provision Azure resources for connectors with NO local\u002FDocker alternative (Service Bus, Event Hubs, Integration Account).",{"type":41,"tag":66,"props":531,"children":532},{},[],{"type":41,"tag":70,"props":534,"children":536},{"id":535},"_6-test-reportmd",[537],{"type":47,"value":538},"6. TEST-REPORT.md",{"type":41,"tag":54,"props":540,"children":541},{},[542,544,550],{"type":47,"value":543},"After testing, generate ",{"type":41,"tag":87,"props":545,"children":547},{"className":546},[],[548],{"type":47,"value":549},"TEST-REPORT.md",{"type":47,"value":551}," in the project root with:",{"type":41,"tag":77,"props":553,"children":554},{},[555,567,572,582,587,592,597,602],{"type":41,"tag":81,"props":556,"children":557},{},[558,560,565],{"type":47,"value":559},"This report is MANDATORY. Do NOT consider the local testing task complete until ",{"type":41,"tag":87,"props":561,"children":563},{"className":562},[],[564],{"type":47,"value":549},{"type":47,"value":566}," has been created and populated.",{"type":41,"tag":81,"props":568,"children":569},{},[570],{"type":47,"value":571},"Test results per workflow.",{"type":41,"tag":81,"props":573,"children":574},{},[575,580],{"type":41,"tag":58,"props":576,"children":577},{},[578],{"type":47,"value":579},"Output content validation results",{"type":47,"value":581}," — for each workflow, list fields checked, values found, and pass\u002Ffail per field. Flag any empty\u002Fwrong values.",{"type":41,"tag":81,"props":583,"children":584},{},[585],{"type":47,"value":586},"Azure resources provisioned.",{"type":41,"tag":81,"props":588,"children":589},{},[590],{"type":47,"value":591},"Adjustments made during testing.",{"type":41,"tag":81,"props":593,"children":594},{},[595],{"type":47,"value":596},"Design deviations from plan (should be none — see plan adherence).",{"type":41,"tag":81,"props":598,"children":599},{},[600],{"type":47,"value":601},"Deployment notes.",{"type":41,"tag":81,"props":603,"children":604},{},[605],{"type":47,"value":606},"Re-test instructions with exact commands.",{"type":41,"tag":66,"props":608,"children":609},{},[],{"type":41,"tag":70,"props":611,"children":613},{"id":612},"_7-completion-gate",[614],{"type":47,"value":615},"7. Completion Gate",{"type":41,"tag":54,"props":617,"children":618},{},[619,621,627,629,634],{"type":47,"value":620},"Do NOT call ",{"type":41,"tag":87,"props":622,"children":624},{"className":623},[],[625],{"type":47,"value":626},"migration_conversion_finalize",{"type":47,"value":628}," until ALL tests pass and ",{"type":41,"tag":87,"props":630,"children":632},{"className":631},[],[633],{"type":47,"value":549},{"type":47,"value":635}," exists. The delivered workspace MUST be fully working with zero manual setup.",{"items":637,"total":812},[638,657,674,693,706,721,734,749,760,774,787,800],{"slug":639,"name":639,"fn":640,"description":641,"org":642,"tags":643,"stars":654,"repoUrl":655,"updatedAt":656},"azure-arg-external-evaluation-policy-author","author and test Azure Resource Graph policies","Use when the user wants to author, design, or test an Azure Policy that queries Azure Resource Graph (ARG) at request-time — i.e. a policy whose deny\u002Faudit decision depends on data from elsewhere in the subscription (sibling\u002Fparent resource state, RG-wide invariants, multi-hop relationships, etc.). Formally called Azure Policy External Evaluation; sometimes referred to colloquially as \"Invoke\". Drives an iterative KQL co-design loop against the user's real subscription via `az graph query`, then emits a policy definition, assignment, `.http` test flow, and an `EXPLANATION.md` companion. Read-only; never provisions anything.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[644,645,648,651],{"name":11,"slug":8,"type":14},{"name":646,"slug":647,"type":14},"Compliance","compliance",{"name":649,"slug":650,"type":14},"Governance","governance",{"name":652,"slug":653,"type":14},"Policy","policy",1686,"https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-policy","2026-07-12T08:17:48.378432",{"slug":658,"name":658,"fn":659,"description":660,"org":661,"tags":662,"stars":671,"repoUrl":672,"updatedAt":673},"azure-blueprints-migration","migrate Azure Blueprints to Template Specs","Use when a user needs to migrate off Azure Blueprints (definitions and\u002For assignments) to Template Specs and Deployment Stacks before the January 31, 2027 retirement. Covers inventory, export, conversion to Bicep, policy decoupling, Template Spec publishing, Deployment Stack deployment with deny-settings, validation, and cutover.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[663,664,667,670],{"name":11,"slug":8,"type":14},{"name":665,"slug":666,"type":14},"Deployment","deployment",{"name":668,"slug":669,"type":14},"Infrastructure as Code","infrastructure-as-code",{"name":19,"slug":20,"type":14},260,"https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-blueprints","2026-07-12T08:17:49.646405",{"slug":675,"name":675,"fn":676,"description":677,"org":678,"tags":679,"stars":690,"repoUrl":691,"updatedAt":692},"apiview-feedback-resolution","resolve APIView feedback on Azure SDKs","Analyze and resolve APIView review feedback on Azure SDK PRs. **UTILITY SKILL**. USE FOR: APIView comments, API review feedback, SDK API surface changes. DO NOT USE FOR: general code review, non-APIView feedback. INVOKES: azure-sdk-mcp:azsdk_apiview_get_comments, azure-sdk-mcp:azsdk_typespec_customized_code_update.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[680,683,684,687],{"name":681,"slug":682,"type":14},"API Development","api-development",{"name":11,"slug":8,"type":14},{"name":685,"slug":686,"type":14},"Code Review","code-review",{"name":688,"slug":689,"type":14},"Documentation","documentation",133,"https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-tools","2026-07-12T08:17:43.350876",{"slug":694,"name":694,"fn":695,"description":696,"org":697,"tags":698,"stars":690,"repoUrl":691,"updatedAt":705},"azsdk-common-live-and-recorded-tests","deploy resources and run Azure SDK tests","Deploy test resources and run Azure SDK tests in live, record, or playback mode. WHEN: \"run live tests\", \"run recorded tests\", \"deploy test resources\", \"record tests\", \"run tests in record mode\", \"clean up test resources\", \"run tests against live resources\". DO NOT USE FOR: writing new tests, authoring Bicep templates, playback-only test runs without resource deployment. INVOKES: azure-sdk-mcp:azsdk_package_run_tests.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[699,700,701,704],{"name":11,"slug":8,"type":14},{"name":665,"slug":666,"type":14},{"name":702,"slug":703,"type":14},"SDK","sdk",{"name":22,"slug":23,"type":14},"2026-07-12T08:17:44.718943",{"slug":707,"name":707,"fn":708,"description":709,"org":710,"tags":711,"stars":690,"repoUrl":691,"updatedAt":720},"azsdk-common-prepare-release-plan","manage Azure SDK release plan work items","Create, get, update, abandon, and link SDK PRs to release plan work items for Azure SDK releases. **UTILITY SKILL**. USE FOR: \"create release plan\", \"get release plan\", \"update release plan\", \"update API spec in release plan\", \"update SDK details in release plan\", \"abandon release plan\", \"link SDK PR to plan\", \"namespace approval\", \"check release plan status\". DO NOT USE FOR: SDK code generation, pipeline troubleshooting, API review feedback. INVOKES: azure-sdk-mcp:azsdk_create_release_plan, azure-sdk-mcp:azsdk_get_release_plan, azure-sdk-mcp:azsdk_get_release_plan_for_spec_pr, azure-sdk-mcp:azsdk_update_release_plan, azure-sdk-mcp:azsdk_update_api_spec_pull_request_in_release_plan, azure-sdk-mcp:azsdk_update_sdk_details_in_release_plan, azure-sdk-mcp:azsdk_abandon_release_plan, azure-sdk-mcp:azsdk_link_sdk_pull_request_to_release_plan, azure-sdk-mcp:azsdk_link_namespace_approval_issue.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[712,713,716,719],{"name":11,"slug":8,"type":14},{"name":714,"slug":715,"type":14},"GitHub","github",{"name":717,"slug":718,"type":14},"Project Management","project-management",{"name":702,"slug":703,"type":14},"2026-07-12T08:17:38.345387",{"slug":722,"name":722,"fn":723,"description":724,"org":725,"tags":726,"stars":690,"repoUrl":691,"updatedAt":733},"azsdk-common-sdk-release","release Azure SDK packages","Check release readiness and trigger the release pipeline for Azure SDK packages. **UTILITY SKILL**. USE FOR: \"release SDK\", \"trigger release\", \"check release readiness\", \"release pipeline\", \"publish package\", \"ship SDK\". DO NOT USE FOR: SDK development, code generation, pipeline debugging, release plan creation. INVOKES: azure-sdk-mcp:azsdk_release_sdk.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[727,728,731,732],{"name":11,"slug":8,"type":14},{"name":729,"slug":730,"type":14},"CI\u002FCD","ci-cd",{"name":665,"slug":666,"type":14},{"name":702,"slug":703,"type":14},"2026-07-12T08:17:34.27607",{"slug":735,"name":735,"fn":736,"description":737,"org":738,"tags":739,"stars":690,"repoUrl":691,"updatedAt":748},"azure-typespec-author","author and modify Azure TypeSpec API specifications","Authors and modifies Azure TypeSpec (.tsp) API specifications. USE FOR: any TypeSpec\u002Ftsp change — api versions (add, bump, preview, stable, promote), resources, operations, models, properties, decorators, visibility, constraints, breaking changes, LRO, suppressions, operationId, spread model. Covers ARM resource-manager and data-plane services. DO NOT USE FOR: SDK generation, releasing SDK packages, or single MCP tool calls. INVOKES: azure-sdk-mcp:azsdk_typespec_generate_authoring_plan, azure-sdk-mcp:azsdk_run_typespec_validation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[740,741,742,745],{"name":681,"slug":682,"type":14},{"name":11,"slug":8,"type":14},{"name":743,"slug":744,"type":14},"OpenAPI","openapi",{"name":746,"slug":747,"type":14},"Technical Writing","technical-writing","2026-07-12T08:17:39.603232",{"slug":750,"name":750,"fn":751,"description":752,"org":753,"tags":754,"stars":690,"repoUrl":691,"updatedAt":759},"generate-sdk-locally","generate and test Azure SDKs locally","Generate, build, and test Azure SDKs locally from TypeSpec with automatic customization. WHEN: \"generate SDK locally\", \"build SDK\", \"run SDK tests\", \"run CI checks\", \"validate package\", \"run checks\", \"update changelog\", \"fix SDK build errors\", \"fix breaking changes\", \"resolve SDK generation errors\", \"customize TypeSpec\", \"rename SDK client\", \"rename SDK model\", \"hide operation from SDK\", \"fix analyzer errors\", \"resolve customization drift\", \"create subclient\", \"update metadata\", \"update version\". DO NOT USE FOR: publishing to package registries, CI pipeline configuration, API design review. INVOKES: azsdk_verify_setup, azsdk_package_generate_code, azsdk_package_build_code, azsdk_package_run_check, azsdk_package_run_tests, azsdk_customized_code_update, azsdk_package_update_changelog_content, azsdk_package_update_metadata, azsdk_package_update_version.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[755,756,757,758],{"name":11,"slug":8,"type":14},{"name":729,"slug":730,"type":14},{"name":702,"slug":703,"type":14},{"name":22,"slug":23,"type":14},"2026-07-12T08:17:37.08523",{"slug":761,"name":761,"fn":762,"description":763,"org":764,"tags":765,"stars":690,"repoUrl":691,"updatedAt":773},"markdown-token-optimizer","optimize markdown files for token efficiency","Analyze markdown files for token efficiency and reduce context-window bloat. **UTILITY SKILL**. DO NOT USE FOR: code optimization, general file editing, non-markdown files. TRIGGERS: optimize markdown, reduce tokens, token count, token bloat, too many tokens, make concise, shrink file, file too large, optimize for AI, token efficiency, verbose markdown, reduce file size. INVOKES: waza CLI.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[766,769,772],{"name":767,"slug":768,"type":14},"LLM","llm",{"name":770,"slug":771,"type":14},"Performance","performance",{"name":746,"slug":747,"type":14},"2026-07-12T08:17:42.080413",{"slug":775,"name":775,"fn":776,"description":777,"org":778,"tags":779,"stars":690,"repoUrl":691,"updatedAt":786},"pipeline-troubleshooting","troubleshoot Azure SDK CI pipelines","Diagnose and resolve failures in Azure SDK CI and generation pipelines. **UTILITY SKILL**. USE FOR: \"pipeline failed\", \"build failure\", \"CI check failing\", \"SDK generation error\", \"reproduce pipeline locally\", \"debug SDK pipeline\". DO NOT USE FOR: local build issues without pipeline context, API design review, SDK publishing. INVOKES: azure-sdk-mcp:azsdk_analyze_pipeline, azure-sdk-mcp:azsdk_package_build_code, azure-sdk-mcp:azsdk_package_run_check.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[780,781,782,785],{"name":11,"slug":8,"type":14},{"name":729,"slug":730,"type":14},{"name":783,"slug":784,"type":14},"Debugging","debugging",{"name":702,"slug":703,"type":14},"2026-07-12T08:17:40.821512",{"slug":788,"name":788,"fn":789,"description":790,"org":791,"tags":792,"stars":690,"repoUrl":691,"updatedAt":799},"sensei","improve skill frontmatter compliance","**WORKFLOW SKILL** — Iteratively improve skill frontmatter compliance using the Ralph loop pattern. WHEN: \"run sensei\", \"sensei help\", \"improve skill\", \"fix frontmatter\", \"skill compliance\", \"frontmatter audit\", \"score skill\", \"check skill tokens\". INVOKES: token counting tools, test runners, git commands. FOR SINGLE OPERATIONS: use token CLI directly for counts\u002Fchecks.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[793,794,795,798],{"name":11,"slug":8,"type":14},{"name":646,"slug":647,"type":14},{"name":796,"slug":797,"type":14},"Process Optimization","process-optimization",{"name":746,"slug":747,"type":14},"2026-07-12T08:17:32.970921",{"slug":801,"name":801,"fn":802,"description":803,"org":804,"tags":805,"stars":690,"repoUrl":691,"updatedAt":811},"skill-authoring","author agent skills for agentskills.io","Write Agent Skills that comply with the agentskills.io specification. WHEN: \"create a skill\", \"new skill\", \"write a skill\", \"skill template\", \"skill structure\", \"review skill\", \"skill PR\", \"skill compliance\", \"SKILL.md format\", \"skill frontmatter\", \"skill best practices\". DO NOT USE FOR: improving existing skills (use sensei), general documentation. INVOKES: waza CLI.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[806,807,810],{"name":688,"slug":689,"type":14},{"name":808,"slug":809,"type":14},"Plugin Development","plugin-development",{"name":746,"slug":747,"type":14},"2026-07-12T08:17:35.873862",109,{"items":814,"total":917},[815,832,848,863,878,894,904],{"slug":816,"name":816,"fn":817,"description":818,"org":819,"tags":820,"stars":24,"repoUrl":25,"updatedAt":831},"analyse-source-design","analyze TIBCO flow architecture","Rules for analysing a single TIBCO flow group's architecture. Covers source file reading depth, Mermaid diagram rules, flow\u002Fsub-process rendering, processor mapping priority ladder, and the required multi-step store tool sequence.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[821,824,825,828],{"name":822,"slug":823,"type":14},"Architecture","architecture",{"name":11,"slug":8,"type":14},{"name":826,"slug":827,"type":14},"Code Analysis","code-analysis",{"name":829,"slug":830,"type":14},"Diagrams","diagrams","2026-07-12T08:19:15.81605",{"slug":833,"name":833,"fn":834,"description":835,"org":836,"tags":837,"stars":24,"repoUrl":25,"updatedAt":847},"cloud-deployment-and-testing","deploy and test Azure Logic Apps","Rules for optional cloud deployment and testing of Logic Apps Standard projects. Covers ARM\u002FBicep generation, deployment method, app settings management, cloud test execution, and reporting.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[838,839,842,843,846],{"name":11,"slug":8,"type":14},{"name":840,"slug":841,"type":14},"Bicep","bicep",{"name":665,"slug":666,"type":14},{"name":844,"slug":845,"type":14},"Reporting","reporting",{"name":22,"slug":23,"type":14},"2026-07-12T08:20:12.210407",{"slug":849,"name":849,"fn":850,"description":851,"org":852,"tags":853,"stars":24,"repoUrl":25,"updatedAt":862},"connections-json-generation-rules","generate connections.json files for Logic Apps","Rules for generating connections.json files for Logic Apps Standard. Covers serviceProviderConnections format, mandatory reference lookup, FileSystem mountPath rule, and connector parameter constraints.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[854,855,856,859],{"name":16,"slug":17,"type":14},{"name":11,"slug":8,"type":14},{"name":857,"slug":858,"type":14},"Configuration","configuration",{"name":860,"slug":861,"type":14},"Workflow Automation","workflow-automation","2026-07-12T08:20:28.730402",{"slug":864,"name":864,"fn":865,"description":866,"org":867,"tags":868,"stars":24,"repoUrl":25,"updatedAt":877},"conversion-task-plan-rules","generate ordered conversion task plans","Rules for generating ordered conversion task plans. Covers mandatory task ordering, required task types, descriptive task ID rules, optional vs non-optional tasks, output path conventions, and what each task must contain.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[869,870,871,874],{"name":11,"slug":8,"type":14},{"name":19,"slug":20,"type":14},{"name":872,"slug":873,"type":14},"Operations","operations",{"name":875,"slug":876,"type":14},"Planning","planning","2026-07-12T08:20:17.194993",{"slug":879,"name":879,"fn":880,"description":881,"org":882,"tags":883,"stars":24,"repoUrl":25,"updatedAt":893},"dependency-and-decompilation-analysis","analyze MuleSoft dependencies and decompiled Java code","Rules for discovering, analysing, and classifying missing dependencies during MuleSoft flow analysis. Covers JAR\u002FJava decompilation, Maven dependency analysis, custom module classification, and what blocks migration.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[884,885,886,889,892],{"name":11,"slug":8,"type":14},{"name":826,"slug":827,"type":14},{"name":887,"slug":888,"type":14},"Java","java",{"name":890,"slug":891,"type":14},"Maven","maven",{"name":19,"slug":20,"type":14},"2026-07-12T08:20:04.462447",{"slug":895,"name":895,"fn":896,"description":897,"org":898,"tags":899,"stars":24,"repoUrl":25,"updatedAt":903},"detect-logical-groups","group MuleSoft integration artifacts","Rules for detecting and grouping MuleSoft integration artifacts into logical flow groups using flow-reference strategy. Covers flow-ref call-chain rules, fallback grouping when no sources exist, and required output fields.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[900,901,902],{"name":822,"slug":823,"type":14},{"name":11,"slug":8,"type":14},{"name":19,"slug":20,"type":14},"2026-07-12T08:20:08.228065",{"slug":905,"name":905,"fn":906,"description":907,"org":908,"tags":909,"stars":24,"repoUrl":25,"updatedAt":916},"dotnet-local-functions-logic-apps","create .NET local functions for Logic Apps","Creates .NET local functions (custom code) for Azure Logic Apps Standard. Covers exact NuGet packages, namespaces, csproj, MSBuild targets, VS Code config, function.json, and workflow InvokeFunction patterns for both .NET 8 and .NET Framework 4.7.2.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[910,913,914,915],{"name":911,"slug":912,"type":14},".NET","net",{"name":681,"slug":682,"type":14},{"name":16,"slug":17,"type":14},{"name":11,"slug":8,"type":14},"2026-07-12T08:19:23.722956",12]