[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-azure-conversion-task-plan-rules":3,"mdc-aavibe-key":35,"related-repo-azure-conversion-task-plan-rules":1314,"related-org-azure-conversion-task-plan-rules":1417},{"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},"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},"azure","Azure (Microsoft)","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fazure.png","Azure",[13,17,18,21],{"name":14,"slug":15,"type":16},"Operations","operations","tag",{"name":11,"slug":8,"type":16},{"name":19,"slug":20,"type":16},"Migration","migration",{"name":22,"slug":23,"type":16},"Planning","planning",6,"https:\u002F\u002Fgithub.com\u002FAzure\u002Flogicapps-migration-agent","2026-07-12T08:20:17.194993",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\u002Fconversion-task-plan-rules\u002Fmulesoft","---\nname: conversion-task-plan-rules\ndescription: 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.\n---\n\n# Skill: Conversion Task Plan Rules\n\n> **Purpose**: Authoritative rules for how an AI agent should generate the ordered task plan for converting a flow. Follow exactly.\n\n> **⚠️ DEPENDENCY PREREQUISITE**: Whenever source behavior required to fully implement the workflows exists only in custom Java classes, custom Mule modules, or compiled JAR files, you MUST follow skill `dependency-and-decompilation-analysis` to analyse dependencies BEFORE generating conversion tasks. This applies to flows and any workflow-critical logic — custom Java components, custom transformers, DataWeave modules with complex logic, and shared utility libraries. Do NOT generate tasks until all relevant dependencies are analysed and their logic is understood.\n\n---\n\n## 1. Task Derivation\n\nAfter reading planning results (`migration_conversion_getPlanningResults`), determine ALL conversion tasks needed based on the specific flow's planned architecture.\n\n---\n\n## 2. Mandatory Task Order\n\n### 2.1 Task 1 — Scaffold (REQUIRED)\n\n- Type: `scaffold-project`\n- MUST be the first task.\n- Read the skill `scaffold-logic-apps-project` and follow it exactly.\n- Do NOT inline scaffold details — just reference the skill.\n\n### 2.2 Artifact Tasks (Middle)\n\nAfter scaffold, add tasks for:\n\n- Schemas → `{outputLogicAppRoot}\u002FArtifacts\u002FSchemas\u002F`\n- Maps → `{outputLogicAppRoot}\u002FArtifacts\u002FMaps\u002F`\n- Rules → `{outputLogicAppRoot}\u002FArtifacts\u002FRules\u002F`\n- Certificates → `{outputLogicAppRoot}\u002FArtifacts\u002FCertificates\u002F`\n- Local functions → using skill `dotnet-local-functions-logic-apps`\n- Workflows → `{outputLogicAppRoot}\u002F\u003CName>\u002Fworkflow.json`\n- Connections → `{outputLogicAppRoot}\u002Fconnections.json`\n- Cloud resource provisioning (only for connectors with no local alternative)\n\n**IMPORTANT Integration Account decision rule:**\n\n- For every artifact-related task, the agent MUST explicitly think through whether an Integration Account is required.\n- Use an Integration Account when the design requires Integration Account-only capabilities, especially B2B\u002FEDI scenarios such as X12, EDIFACT, AS2, trading partners, agreements, or centralized shared artifact management.\n- If an Integration Account is used for the flow, then ALL deployable artifacts for that flow must be planned for the Integration Account path\u002Fuse model consistently.\n- Do NOT split artifacts between Integration Account and the Logic App artifact folders. These two models are mutually exclusive for a given flow plan.\n- If an Integration Account is used, create\u002Fprovision\u002Fconfigure the Integration Account BEFORE any schema\u002Fmap\u002Fcertificate\u002Ftrading-partner artifact task that depends on it.\n- If an Integration Account is used, the Integration Account provisioning task MUST actually deploy\u002Fcreate the Integration Account resource in Azure in that task itself. It must NOT stop at generating deployment scripts or templates only.\n- That Integration Account provisioning task MUST retrieve the deployed Integration Account resource ID and callback URL, then update `local.settings.json` with `WORKFLOWS_INTEGRATION_ACCOUNT_ID` and `WORKFLOW_INTEGRATION_ACCOUNT_CALLBACK_URL` in that same task.\n- The NEXT Integration Account-related artifact task MUST upload the required schemas\u002Fmaps\u002Fcertificates\u002Fpartners\u002Fagreements into the Integration Account itself. Do NOT leave artifact upload implicit or deferred.\n- **CRITICAL — Agreement Schema References:** When EDIFACT\u002FX12 agreements are created, their `schemaReferences` arrays MUST NOT be left empty. After schemas are uploaded to the Integration Account, the agreements MUST be updated via PATCH or re-PUT so `schemaReferences` links each agreement to the correct message schemas for decode\u002Fencode. Empty `schemaReferences` causes `EdifactDecode` or `X12Decode` actions to fail at runtime with `UnexpectedSegment` errors. The schema-upload task's `executionPrompt` MUST explicitly instruct the agent to update agreement `schemaReferences` after uploading schemas.\n- If the flow does NOT require an Integration Account, then use the Logic App artifact folders only.\n- If an Integration Account is used, the plan MUST also account for the required Logic Apps Standard app settings: `WORKFLOWS_INTEGRATION_ACCOUNT_ID`, with the Integration Account resource ID as its value (example: `\u002Fsubscriptions\u002F{subId}\u002FresourceGroups\u002F{rg}\u002Fproviders\u002FMicrosoft.Logic\u002FintegrationAccounts\u002F{name}`), and `WORKFLOW_INTEGRATION_ACCOUNT_CALLBACK_URL`, with the correct Integration Account callback URL value.\n- Any Integration Account provisioning\u002Fconfiguration task MUST put that app setting requirement directly into its `executionPrompt`, not only in the high-level summary.\n- The task plan MUST make this choice explicit in the artifact task descriptions or execution prompts.\n\n### 2.3 Runtime Validation (REQUIRED)\n\n- Type: `validate-runtime`\n- Must come after all generation tasks.\n- Runs `func start --verbose`, checks for errors, fixes issues, re-runs until clean.\n\n### 2.4 Local E2E Testing (REQUIRED)\n\n- Type: `test-workflows`\n- Name: \"End to End Testing (Local Environment)\"\n- Must come after runtime validation.\n- Full test matrix (see skill `runtime-validation-and-testing`).\n\n### 2.5 Local Black Box Testing (OPTIONAL)\n\n- Type: `local-blackbox-test`\n- Name: \"Local Black Box Testing (Only if test data provided)\"\n- Must come after local E2E testing (`test-workflows`).\n- Mark as `optional: true` — user decides whether to execute or skip.\n- When the user executes this task, the extension prompts for a **test data folder**. That folder MUST contain:\n    - Input\u002Foutput content files representing real or expected integration payloads.\n    - A `TEST-INSTRUCTIONS.md` file with source-platform-specific instructions for how the agent should validate the Logic App against those input\u002Foutput files.\n- **Validation**: The extension will reject the selected folder and abort the task if `TEST-INSTRUCTIONS.md` is not found in it. The user must re-select a valid folder.\n- The agent MUST:\n    1. Read `TEST-INSTRUCTIONS.md` from the provided folder.\n    2. Understand the instructions — they may reference the source platform (MuleSoft, BizTalk, etc.) and describe expected transformations, routing, enrichments, or validations.\n    3. For each input file, send it to the appropriate Logic App workflow trigger (HTTP, file, queue, etc.).\n    4. Compare the actual output against the expected output files.\n    5. Report pass\u002Ffail for each test case with details on mismatches.\n    6. **MANDATORY**: Generate `BLACKBOX-TEST-REPORT.md` in the project root with: test date, flow name, per-test-case results (input file, expected output, actual result, pass\u002Ffail, mismatch details), and a summary table with total\u002Fpassed\u002Ffailed counts. Do NOT consider the task complete until this file is created.\n- The `executionPrompt` for this task MUST include: \"Read the TEST-INSTRUCTIONS.md from the user-provided test data folder first, then execute all tests described in it against the local Logic App runtime. After all tests, generate BLACKBOX-TEST-REPORT.md in the project root.\"\n\n### 2.6 Cloud Testing (OPTIONAL — LAST)\n\n- Type: `cloud-deploy-test`\n- Name: \"End to End Testing (Cloud Environment) (Only if required)\"\n- MUST be the ABSOLUTE LAST task.\n- Mark as `optional: true` — user decides whether to execute or skip.\n- If a `BLACKBOX-TEST-REPORT.md` exists in the project root (generated by the local black box testing task), the cloud testing agent MUST also read it and re-execute all test cases from that report against the deployed Azure Logic App, in addition to the standard `TEST-REPORT.md` scenarios.\n\n---\n\n## 3. Task ID Rules\n\n- Task IDs MUST be descriptive: e.g. `scaffold-project`, `convert-schemas`, `generate-workflow-receive-order`, `provision-servicebus`, `validate-runtime`, `test-workflows`, `local-blackbox-test`, `cloud-deploy-test`.\n- NEVER use generic sequential IDs like `task-1`, `task-2` — they will be REJECTED by the tool.\n\n---\n\n## 4. Required Task Fields\n\nEach task needs:\n\n| Field              | Type     | Required | Description                                       |\n| ------------------ | -------- | -------- | ------------------------------------------------- |\n| `id`               | string   | Yes      | Descriptive unique ID                             |\n| `type`             | string   | Yes      | Short type label                                  |\n| `name`             | string   | Yes      | Human-readable name                               |\n| `description`      | string   | Yes      | Concise user-facing summary (1-2 lines)           |\n| `executionPrompt`  | string   | No       | Detailed agent-only instructions for execution    |\n| `dependsOn`        | string[] | Yes      | Prerequisite task IDs                             |\n| `order`            | number   | Yes      | 1-based execution sequence                        |\n| `artifactIds`      | string[] | No       | Artifact IDs this task operates on                |\n| `estimatedMinutes` | number   | No       | Effort estimate                                   |\n| `optional`         | boolean  | No       | True for user-skippable tasks (e.g. cloud-deploy) |\n\n---\n\n## 5. Output Path Conventions\n\n- Workspace root: `{outputProjectRoot}\u002F`\n- Logic App project: `{outputLogicAppRoot}\u002F`\n- Workspace file: `{outputProjectRoot}\u002F{outputProjectName}.code-workspace`\n- Every task description MUST state the exact output file path relative to the project root.\n- NEVER scaffold into the source project root.\n\n---\n\n## 6. Key Rules for Task Descriptions\n\n- For each task, set `description` to a concise user-facing summary (1-2 lines).\n- Put all detailed implementation steps\u002Frules into `executionPrompt`.\n- Workflow generation tasks MUST include: \"Read skill `source-to-logic-apps-mapping` first, then search reference workflows.\"\n- Connection generation tasks MUST include: \"Search with `category=connection` to find exact `connections.json` format.\"\n- Local function tasks MUST reference skill `dotnet-local-functions-logic-apps`.\n- ALL code generation tasks MUST follow skill `no-stubs-code-generation`.\n",{"data":36,"body":37},{"name":4,"description":6},{"type":38,"children":39},"root",[40,49,65,87,91,98,111,114,120,127,166,172,177,262,270,457,463,494,500,536,542,705,711,764,767,773,854,857,863,868,1167,1170,1176,1222,1225,1231],{"type":41,"tag":42,"props":43,"children":45},"element","h1",{"id":44},"skill-conversion-task-plan-rules",[46],{"type":47,"value":48},"text","Skill: Conversion Task Plan Rules",{"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 how an AI agent should generate the ordered task plan for converting a flow. Follow exactly.",{"type":41,"tag":50,"props":66,"children":67},{},[68],{"type":41,"tag":54,"props":69,"children":70},{},[71,76,78,85],{"type":41,"tag":58,"props":72,"children":73},{},[74],{"type":47,"value":75},"⚠️ DEPENDENCY PREREQUISITE",{"type":47,"value":77},": Whenever source behavior required to fully implement the workflows exists only in custom Java classes, custom Mule modules, or compiled JAR files, you MUST follow skill ",{"type":41,"tag":79,"props":80,"children":82},"code",{"className":81},[],[83],{"type":47,"value":84},"dependency-and-decompilation-analysis",{"type":47,"value":86}," to analyse dependencies BEFORE generating conversion tasks. This applies to flows and any workflow-critical logic — custom Java components, custom transformers, DataWeave modules with complex logic, and shared utility libraries. Do NOT generate tasks until all relevant dependencies are analysed and their logic is understood.",{"type":41,"tag":88,"props":89,"children":90},"hr",{},[],{"type":41,"tag":92,"props":93,"children":95},"h2",{"id":94},"_1-task-derivation",[96],{"type":47,"value":97},"1. Task Derivation",{"type":41,"tag":54,"props":99,"children":100},{},[101,103,109],{"type":47,"value":102},"After reading planning results (",{"type":41,"tag":79,"props":104,"children":106},{"className":105},[],[107],{"type":47,"value":108},"migration_conversion_getPlanningResults",{"type":47,"value":110},"), determine ALL conversion tasks needed based on the specific flow's planned architecture.",{"type":41,"tag":88,"props":112,"children":113},{},[],{"type":41,"tag":92,"props":115,"children":117},{"id":116},"_2-mandatory-task-order",[118],{"type":47,"value":119},"2. Mandatory Task Order",{"type":41,"tag":121,"props":122,"children":124},"h3",{"id":123},"_21-task-1-scaffold-required",[125],{"type":47,"value":126},"2.1 Task 1 — Scaffold (REQUIRED)",{"type":41,"tag":128,"props":129,"children":130},"ul",{},[131,143,148,161],{"type":41,"tag":132,"props":133,"children":134},"li",{},[135,137],{"type":47,"value":136},"Type: ",{"type":41,"tag":79,"props":138,"children":140},{"className":139},[],[141],{"type":47,"value":142},"scaffold-project",{"type":41,"tag":132,"props":144,"children":145},{},[146],{"type":47,"value":147},"MUST be the first task.",{"type":41,"tag":132,"props":149,"children":150},{},[151,153,159],{"type":47,"value":152},"Read the skill ",{"type":41,"tag":79,"props":154,"children":156},{"className":155},[],[157],{"type":47,"value":158},"scaffold-logic-apps-project",{"type":47,"value":160}," and follow it exactly.",{"type":41,"tag":132,"props":162,"children":163},{},[164],{"type":47,"value":165},"Do NOT inline scaffold details — just reference the skill.",{"type":41,"tag":121,"props":167,"children":169},{"id":168},"_22-artifact-tasks-middle",[170],{"type":47,"value":171},"2.2 Artifact Tasks (Middle)",{"type":41,"tag":54,"props":173,"children":174},{},[175],{"type":47,"value":176},"After scaffold, add tasks for:",{"type":41,"tag":128,"props":178,"children":179},{},[180,191,202,213,224,235,246,257],{"type":41,"tag":132,"props":181,"children":182},{},[183,185],{"type":47,"value":184},"Schemas → ",{"type":41,"tag":79,"props":186,"children":188},{"className":187},[],[189],{"type":47,"value":190},"{outputLogicAppRoot}\u002FArtifacts\u002FSchemas\u002F",{"type":41,"tag":132,"props":192,"children":193},{},[194,196],{"type":47,"value":195},"Maps → ",{"type":41,"tag":79,"props":197,"children":199},{"className":198},[],[200],{"type":47,"value":201},"{outputLogicAppRoot}\u002FArtifacts\u002FMaps\u002F",{"type":41,"tag":132,"props":203,"children":204},{},[205,207],{"type":47,"value":206},"Rules → ",{"type":41,"tag":79,"props":208,"children":210},{"className":209},[],[211],{"type":47,"value":212},"{outputLogicAppRoot}\u002FArtifacts\u002FRules\u002F",{"type":41,"tag":132,"props":214,"children":215},{},[216,218],{"type":47,"value":217},"Certificates → ",{"type":41,"tag":79,"props":219,"children":221},{"className":220},[],[222],{"type":47,"value":223},"{outputLogicAppRoot}\u002FArtifacts\u002FCertificates\u002F",{"type":41,"tag":132,"props":225,"children":226},{},[227,229],{"type":47,"value":228},"Local functions → using skill ",{"type":41,"tag":79,"props":230,"children":232},{"className":231},[],[233],{"type":47,"value":234},"dotnet-local-functions-logic-apps",{"type":41,"tag":132,"props":236,"children":237},{},[238,240],{"type":47,"value":239},"Workflows → ",{"type":41,"tag":79,"props":241,"children":243},{"className":242},[],[244],{"type":47,"value":245},"{outputLogicAppRoot}\u002F\u003CName>\u002Fworkflow.json",{"type":41,"tag":132,"props":247,"children":248},{},[249,251],{"type":47,"value":250},"Connections → ",{"type":41,"tag":79,"props":252,"children":254},{"className":253},[],[255],{"type":47,"value":256},"{outputLogicAppRoot}\u002Fconnections.json",{"type":41,"tag":132,"props":258,"children":259},{},[260],{"type":47,"value":261},"Cloud resource provisioning (only for connectors with no local alternative)",{"type":41,"tag":54,"props":263,"children":264},{},[265],{"type":41,"tag":58,"props":266,"children":267},{},[268],{"type":47,"value":269},"IMPORTANT Integration Account decision rule:",{"type":41,"tag":128,"props":271,"children":272},{},[273,278,283,288,293,298,303,332,337,408,413,440,452],{"type":41,"tag":132,"props":274,"children":275},{},[276],{"type":47,"value":277},"For every artifact-related task, the agent MUST explicitly think through whether an Integration Account is required.",{"type":41,"tag":132,"props":279,"children":280},{},[281],{"type":47,"value":282},"Use an Integration Account when the design requires Integration Account-only capabilities, especially B2B\u002FEDI scenarios such as X12, EDIFACT, AS2, trading partners, agreements, or centralized shared artifact management.",{"type":41,"tag":132,"props":284,"children":285},{},[286],{"type":47,"value":287},"If an Integration Account is used for the flow, then ALL deployable artifacts for that flow must be planned for the Integration Account path\u002Fuse model consistently.",{"type":41,"tag":132,"props":289,"children":290},{},[291],{"type":47,"value":292},"Do NOT split artifacts between Integration Account and the Logic App artifact folders. These two models are mutually exclusive for a given flow plan.",{"type":41,"tag":132,"props":294,"children":295},{},[296],{"type":47,"value":297},"If an Integration Account is used, create\u002Fprovision\u002Fconfigure the Integration Account BEFORE any schema\u002Fmap\u002Fcertificate\u002Ftrading-partner artifact task that depends on it.",{"type":41,"tag":132,"props":299,"children":300},{},[301],{"type":47,"value":302},"If an Integration Account is used, the Integration Account provisioning task MUST actually deploy\u002Fcreate the Integration Account resource in Azure in that task itself. It must NOT stop at generating deployment scripts or templates only.",{"type":41,"tag":132,"props":304,"children":305},{},[306,308,314,316,322,324,330],{"type":47,"value":307},"That Integration Account provisioning task MUST retrieve the deployed Integration Account resource ID and callback URL, then update ",{"type":41,"tag":79,"props":309,"children":311},{"className":310},[],[312],{"type":47,"value":313},"local.settings.json",{"type":47,"value":315}," with ",{"type":41,"tag":79,"props":317,"children":319},{"className":318},[],[320],{"type":47,"value":321},"WORKFLOWS_INTEGRATION_ACCOUNT_ID",{"type":47,"value":323}," and ",{"type":41,"tag":79,"props":325,"children":327},{"className":326},[],[328],{"type":47,"value":329},"WORKFLOW_INTEGRATION_ACCOUNT_CALLBACK_URL",{"type":47,"value":331}," in that same task.",{"type":41,"tag":132,"props":333,"children":334},{},[335],{"type":47,"value":336},"The NEXT Integration Account-related artifact task MUST upload the required schemas\u002Fmaps\u002Fcertificates\u002Fpartners\u002Fagreements into the Integration Account itself. Do NOT leave artifact upload implicit or deferred.",{"type":41,"tag":132,"props":338,"children":339},{},[340,345,347,353,355,360,362,367,369,375,377,383,385,391,393,399,401,406],{"type":41,"tag":58,"props":341,"children":342},{},[343],{"type":47,"value":344},"CRITICAL — Agreement Schema References:",{"type":47,"value":346}," When EDIFACT\u002FX12 agreements are created, their ",{"type":41,"tag":79,"props":348,"children":350},{"className":349},[],[351],{"type":47,"value":352},"schemaReferences",{"type":47,"value":354}," arrays MUST NOT be left empty. After schemas are uploaded to the Integration Account, the agreements MUST be updated via PATCH or re-PUT so ",{"type":41,"tag":79,"props":356,"children":358},{"className":357},[],[359],{"type":47,"value":352},{"type":47,"value":361}," links each agreement to the correct message schemas for decode\u002Fencode. Empty ",{"type":41,"tag":79,"props":363,"children":365},{"className":364},[],[366],{"type":47,"value":352},{"type":47,"value":368}," causes ",{"type":41,"tag":79,"props":370,"children":372},{"className":371},[],[373],{"type":47,"value":374},"EdifactDecode",{"type":47,"value":376}," or ",{"type":41,"tag":79,"props":378,"children":380},{"className":379},[],[381],{"type":47,"value":382},"X12Decode",{"type":47,"value":384}," actions to fail at runtime with ",{"type":41,"tag":79,"props":386,"children":388},{"className":387},[],[389],{"type":47,"value":390},"UnexpectedSegment",{"type":47,"value":392}," errors. The schema-upload task's ",{"type":41,"tag":79,"props":394,"children":396},{"className":395},[],[397],{"type":47,"value":398},"executionPrompt",{"type":47,"value":400}," MUST explicitly instruct the agent to update agreement ",{"type":41,"tag":79,"props":402,"children":404},{"className":403},[],[405],{"type":47,"value":352},{"type":47,"value":407}," after uploading schemas.",{"type":41,"tag":132,"props":409,"children":410},{},[411],{"type":47,"value":412},"If the flow does NOT require an Integration Account, then use the Logic App artifact folders only.",{"type":41,"tag":132,"props":414,"children":415},{},[416,418,423,425,431,433,438],{"type":47,"value":417},"If an Integration Account is used, the plan MUST also account for the required Logic Apps Standard app settings: ",{"type":41,"tag":79,"props":419,"children":421},{"className":420},[],[422],{"type":47,"value":321},{"type":47,"value":424},", with the Integration Account resource ID as its value (example: ",{"type":41,"tag":79,"props":426,"children":428},{"className":427},[],[429],{"type":47,"value":430},"\u002Fsubscriptions\u002F{subId}\u002FresourceGroups\u002F{rg}\u002Fproviders\u002FMicrosoft.Logic\u002FintegrationAccounts\u002F{name}",{"type":47,"value":432},"), and ",{"type":41,"tag":79,"props":434,"children":436},{"className":435},[],[437],{"type":47,"value":329},{"type":47,"value":439},", with the correct Integration Account callback URL value.",{"type":41,"tag":132,"props":441,"children":442},{},[443,445,450],{"type":47,"value":444},"Any Integration Account provisioning\u002Fconfiguration task MUST put that app setting requirement directly into its ",{"type":41,"tag":79,"props":446,"children":448},{"className":447},[],[449],{"type":47,"value":398},{"type":47,"value":451},", not only in the high-level summary.",{"type":41,"tag":132,"props":453,"children":454},{},[455],{"type":47,"value":456},"The task plan MUST make this choice explicit in the artifact task descriptions or execution prompts.",{"type":41,"tag":121,"props":458,"children":460},{"id":459},"_23-runtime-validation-required",[461],{"type":47,"value":462},"2.3 Runtime Validation (REQUIRED)",{"type":41,"tag":128,"props":464,"children":465},{},[466,476,481],{"type":41,"tag":132,"props":467,"children":468},{},[469,470],{"type":47,"value":136},{"type":41,"tag":79,"props":471,"children":473},{"className":472},[],[474],{"type":47,"value":475},"validate-runtime",{"type":41,"tag":132,"props":477,"children":478},{},[479],{"type":47,"value":480},"Must come after all generation tasks.",{"type":41,"tag":132,"props":482,"children":483},{},[484,486,492],{"type":47,"value":485},"Runs ",{"type":41,"tag":79,"props":487,"children":489},{"className":488},[],[490],{"type":47,"value":491},"func start --verbose",{"type":47,"value":493},", checks for errors, fixes issues, re-runs until clean.",{"type":41,"tag":121,"props":495,"children":497},{"id":496},"_24-local-e2e-testing-required",[498],{"type":47,"value":499},"2.4 Local E2E Testing (REQUIRED)",{"type":41,"tag":128,"props":501,"children":502},{},[503,513,518,523],{"type":41,"tag":132,"props":504,"children":505},{},[506,507],{"type":47,"value":136},{"type":41,"tag":79,"props":508,"children":510},{"className":509},[],[511],{"type":47,"value":512},"test-workflows",{"type":41,"tag":132,"props":514,"children":515},{},[516],{"type":47,"value":517},"Name: \"End to End Testing (Local Environment)\"",{"type":41,"tag":132,"props":519,"children":520},{},[521],{"type":47,"value":522},"Must come after runtime validation.",{"type":41,"tag":132,"props":524,"children":525},{},[526,528,534],{"type":47,"value":527},"Full test matrix (see skill ",{"type":41,"tag":79,"props":529,"children":531},{"className":530},[],[532],{"type":47,"value":533},"runtime-validation-and-testing",{"type":47,"value":535},").",{"type":41,"tag":121,"props":537,"children":539},{"id":538},"_25-local-black-box-testing-optional",[540],{"type":47,"value":541},"2.5 Local Black Box Testing (OPTIONAL)",{"type":41,"tag":128,"props":543,"children":544},{},[545,555,560,571,584,617,634,693],{"type":41,"tag":132,"props":546,"children":547},{},[548,549],{"type":47,"value":136},{"type":41,"tag":79,"props":550,"children":552},{"className":551},[],[553],{"type":47,"value":554},"local-blackbox-test",{"type":41,"tag":132,"props":556,"children":557},{},[558],{"type":47,"value":559},"Name: \"Local Black Box Testing (Only if test data provided)\"",{"type":41,"tag":132,"props":561,"children":562},{},[563,565,570],{"type":47,"value":564},"Must come after local E2E testing (",{"type":41,"tag":79,"props":566,"children":568},{"className":567},[],[569],{"type":47,"value":512},{"type":47,"value":535},{"type":41,"tag":132,"props":572,"children":573},{},[574,576,582],{"type":47,"value":575},"Mark as ",{"type":41,"tag":79,"props":577,"children":579},{"className":578},[],[580],{"type":47,"value":581},"optional: true",{"type":47,"value":583}," — user decides whether to execute or skip.",{"type":41,"tag":132,"props":585,"children":586},{},[587,589,594,596],{"type":47,"value":588},"When the user executes this task, the extension prompts for a ",{"type":41,"tag":58,"props":590,"children":591},{},[592],{"type":47,"value":593},"test data folder",{"type":47,"value":595},". That folder MUST contain:\n",{"type":41,"tag":128,"props":597,"children":598},{},[599,604],{"type":41,"tag":132,"props":600,"children":601},{},[602],{"type":47,"value":603},"Input\u002Foutput content files representing real or expected integration payloads.",{"type":41,"tag":132,"props":605,"children":606},{},[607,609,615],{"type":47,"value":608},"A ",{"type":41,"tag":79,"props":610,"children":612},{"className":611},[],[613],{"type":47,"value":614},"TEST-INSTRUCTIONS.md",{"type":47,"value":616}," file with source-platform-specific instructions for how the agent should validate the Logic App against those input\u002Foutput files.",{"type":41,"tag":132,"props":618,"children":619},{},[620,625,627,632],{"type":41,"tag":58,"props":621,"children":622},{},[623],{"type":47,"value":624},"Validation",{"type":47,"value":626},": The extension will reject the selected folder and abort the task if ",{"type":41,"tag":79,"props":628,"children":630},{"className":629},[],[631],{"type":47,"value":614},{"type":47,"value":633}," is not found in it. The user must re-select a valid folder.",{"type":41,"tag":132,"props":635,"children":636},{},[637,639],{"type":47,"value":638},"The agent MUST:\n",{"type":41,"tag":640,"props":641,"children":642},"ol",{},[643,655,660,665,670,675],{"type":41,"tag":132,"props":644,"children":645},{},[646,648,653],{"type":47,"value":647},"Read ",{"type":41,"tag":79,"props":649,"children":651},{"className":650},[],[652],{"type":47,"value":614},{"type":47,"value":654}," from the provided folder.",{"type":41,"tag":132,"props":656,"children":657},{},[658],{"type":47,"value":659},"Understand the instructions — they may reference the source platform (MuleSoft, BizTalk, etc.) and describe expected transformations, routing, enrichments, or validations.",{"type":41,"tag":132,"props":661,"children":662},{},[663],{"type":47,"value":664},"For each input file, send it to the appropriate Logic App workflow trigger (HTTP, file, queue, etc.).",{"type":41,"tag":132,"props":666,"children":667},{},[668],{"type":47,"value":669},"Compare the actual output against the expected output files.",{"type":41,"tag":132,"props":671,"children":672},{},[673],{"type":47,"value":674},"Report pass\u002Ffail for each test case with details on mismatches.",{"type":41,"tag":132,"props":676,"children":677},{},[678,683,685,691],{"type":41,"tag":58,"props":679,"children":680},{},[681],{"type":47,"value":682},"MANDATORY",{"type":47,"value":684},": Generate ",{"type":41,"tag":79,"props":686,"children":688},{"className":687},[],[689],{"type":47,"value":690},"BLACKBOX-TEST-REPORT.md",{"type":47,"value":692}," in the project root with: test date, flow name, per-test-case results (input file, expected output, actual result, pass\u002Ffail, mismatch details), and a summary table with total\u002Fpassed\u002Ffailed counts. Do NOT consider the task complete until this file is created.",{"type":41,"tag":132,"props":694,"children":695},{},[696,698,703],{"type":47,"value":697},"The ",{"type":41,"tag":79,"props":699,"children":701},{"className":700},[],[702],{"type":47,"value":398},{"type":47,"value":704}," for this task MUST include: \"Read the TEST-INSTRUCTIONS.md from the user-provided test data folder first, then execute all tests described in it against the local Logic App runtime. After all tests, generate BLACKBOX-TEST-REPORT.md in the project root.\"",{"type":41,"tag":121,"props":706,"children":708},{"id":707},"_26-cloud-testing-optional-last",[709],{"type":47,"value":710},"2.6 Cloud Testing (OPTIONAL — LAST)",{"type":41,"tag":128,"props":712,"children":713},{},[714,724,729,734,744],{"type":41,"tag":132,"props":715,"children":716},{},[717,718],{"type":47,"value":136},{"type":41,"tag":79,"props":719,"children":721},{"className":720},[],[722],{"type":47,"value":723},"cloud-deploy-test",{"type":41,"tag":132,"props":725,"children":726},{},[727],{"type":47,"value":728},"Name: \"End to End Testing (Cloud Environment) (Only if required)\"",{"type":41,"tag":132,"props":730,"children":731},{},[732],{"type":47,"value":733},"MUST be the ABSOLUTE LAST task.",{"type":41,"tag":132,"props":735,"children":736},{},[737,738,743],{"type":47,"value":575},{"type":41,"tag":79,"props":739,"children":741},{"className":740},[],[742],{"type":47,"value":581},{"type":47,"value":583},{"type":41,"tag":132,"props":745,"children":746},{},[747,749,754,756,762],{"type":47,"value":748},"If a ",{"type":41,"tag":79,"props":750,"children":752},{"className":751},[],[753],{"type":47,"value":690},{"type":47,"value":755}," exists in the project root (generated by the local black box testing task), the cloud testing agent MUST also read it and re-execute all test cases from that report against the deployed Azure Logic App, in addition to the standard ",{"type":41,"tag":79,"props":757,"children":759},{"className":758},[],[760],{"type":47,"value":761},"TEST-REPORT.md",{"type":47,"value":763}," scenarios.",{"type":41,"tag":88,"props":765,"children":766},{},[],{"type":41,"tag":92,"props":768,"children":770},{"id":769},"_3-task-id-rules",[771],{"type":47,"value":772},"3. Task ID Rules",{"type":41,"tag":128,"props":774,"children":775},{},[776,834],{"type":41,"tag":132,"props":777,"children":778},{},[779,781,786,788,794,795,801,802,808,809,814,815,820,821,826,827,832],{"type":47,"value":780},"Task IDs MUST be descriptive: e.g. ",{"type":41,"tag":79,"props":782,"children":784},{"className":783},[],[785],{"type":47,"value":142},{"type":47,"value":787},", ",{"type":41,"tag":79,"props":789,"children":791},{"className":790},[],[792],{"type":47,"value":793},"convert-schemas",{"type":47,"value":787},{"type":41,"tag":79,"props":796,"children":798},{"className":797},[],[799],{"type":47,"value":800},"generate-workflow-receive-order",{"type":47,"value":787},{"type":41,"tag":79,"props":803,"children":805},{"className":804},[],[806],{"type":47,"value":807},"provision-servicebus",{"type":47,"value":787},{"type":41,"tag":79,"props":810,"children":812},{"className":811},[],[813],{"type":47,"value":475},{"type":47,"value":787},{"type":41,"tag":79,"props":816,"children":818},{"className":817},[],[819],{"type":47,"value":512},{"type":47,"value":787},{"type":41,"tag":79,"props":822,"children":824},{"className":823},[],[825],{"type":47,"value":554},{"type":47,"value":787},{"type":41,"tag":79,"props":828,"children":830},{"className":829},[],[831],{"type":47,"value":723},{"type":47,"value":833},".",{"type":41,"tag":132,"props":835,"children":836},{},[837,839,845,846,852],{"type":47,"value":838},"NEVER use generic sequential IDs like ",{"type":41,"tag":79,"props":840,"children":842},{"className":841},[],[843],{"type":47,"value":844},"task-1",{"type":47,"value":787},{"type":41,"tag":79,"props":847,"children":849},{"className":848},[],[850],{"type":47,"value":851},"task-2",{"type":47,"value":853}," — they will be REJECTED by the tool.",{"type":41,"tag":88,"props":855,"children":856},{},[],{"type":41,"tag":92,"props":858,"children":860},{"id":859},"_4-required-task-fields",[861],{"type":47,"value":862},"4. Required Task Fields",{"type":41,"tag":54,"props":864,"children":865},{},[866],{"type":47,"value":867},"Each task needs:",{"type":41,"tag":869,"props":870,"children":871},"table",{},[872,901],{"type":41,"tag":873,"props":874,"children":875},"thead",{},[876],{"type":41,"tag":877,"props":878,"children":879},"tr",{},[880,886,891,896],{"type":41,"tag":881,"props":882,"children":883},"th",{},[884],{"type":47,"value":885},"Field",{"type":41,"tag":881,"props":887,"children":888},{},[889],{"type":47,"value":890},"Type",{"type":41,"tag":881,"props":892,"children":893},{},[894],{"type":47,"value":895},"Required",{"type":41,"tag":881,"props":897,"children":898},{},[899],{"type":47,"value":900},"Description",{"type":41,"tag":902,"props":903,"children":904},"tbody",{},[905,933,958,983,1008,1033,1062,1088,1116,1141],{"type":41,"tag":877,"props":906,"children":907},{},[908,918,923,928],{"type":41,"tag":909,"props":910,"children":911},"td",{},[912],{"type":41,"tag":79,"props":913,"children":915},{"className":914},[],[916],{"type":47,"value":917},"id",{"type":41,"tag":909,"props":919,"children":920},{},[921],{"type":47,"value":922},"string",{"type":41,"tag":909,"props":924,"children":925},{},[926],{"type":47,"value":927},"Yes",{"type":41,"tag":909,"props":929,"children":930},{},[931],{"type":47,"value":932},"Descriptive unique ID",{"type":41,"tag":877,"props":934,"children":935},{},[936,945,949,953],{"type":41,"tag":909,"props":937,"children":938},{},[939],{"type":41,"tag":79,"props":940,"children":942},{"className":941},[],[943],{"type":47,"value":944},"type",{"type":41,"tag":909,"props":946,"children":947},{},[948],{"type":47,"value":922},{"type":41,"tag":909,"props":950,"children":951},{},[952],{"type":47,"value":927},{"type":41,"tag":909,"props":954,"children":955},{},[956],{"type":47,"value":957},"Short type label",{"type":41,"tag":877,"props":959,"children":960},{},[961,970,974,978],{"type":41,"tag":909,"props":962,"children":963},{},[964],{"type":41,"tag":79,"props":965,"children":967},{"className":966},[],[968],{"type":47,"value":969},"name",{"type":41,"tag":909,"props":971,"children":972},{},[973],{"type":47,"value":922},{"type":41,"tag":909,"props":975,"children":976},{},[977],{"type":47,"value":927},{"type":41,"tag":909,"props":979,"children":980},{},[981],{"type":47,"value":982},"Human-readable name",{"type":41,"tag":877,"props":984,"children":985},{},[986,995,999,1003],{"type":41,"tag":909,"props":987,"children":988},{},[989],{"type":41,"tag":79,"props":990,"children":992},{"className":991},[],[993],{"type":47,"value":994},"description",{"type":41,"tag":909,"props":996,"children":997},{},[998],{"type":47,"value":922},{"type":41,"tag":909,"props":1000,"children":1001},{},[1002],{"type":47,"value":927},{"type":41,"tag":909,"props":1004,"children":1005},{},[1006],{"type":47,"value":1007},"Concise user-facing summary (1-2 lines)",{"type":41,"tag":877,"props":1009,"children":1010},{},[1011,1019,1023,1028],{"type":41,"tag":909,"props":1012,"children":1013},{},[1014],{"type":41,"tag":79,"props":1015,"children":1017},{"className":1016},[],[1018],{"type":47,"value":398},{"type":41,"tag":909,"props":1020,"children":1021},{},[1022],{"type":47,"value":922},{"type":41,"tag":909,"props":1024,"children":1025},{},[1026],{"type":47,"value":1027},"No",{"type":41,"tag":909,"props":1029,"children":1030},{},[1031],{"type":47,"value":1032},"Detailed agent-only instructions for execution",{"type":41,"tag":877,"props":1034,"children":1035},{},[1036,1045,1053,1057],{"type":41,"tag":909,"props":1037,"children":1038},{},[1039],{"type":41,"tag":79,"props":1040,"children":1042},{"className":1041},[],[1043],{"type":47,"value":1044},"dependsOn",{"type":41,"tag":909,"props":1046,"children":1047},{},[1048,1049],{"type":47,"value":922},{"type":41,"tag":1050,"props":1051,"children":1052},"span",{},[],{"type":41,"tag":909,"props":1054,"children":1055},{},[1056],{"type":47,"value":927},{"type":41,"tag":909,"props":1058,"children":1059},{},[1060],{"type":47,"value":1061},"Prerequisite task IDs",{"type":41,"tag":877,"props":1063,"children":1064},{},[1065,1074,1079,1083],{"type":41,"tag":909,"props":1066,"children":1067},{},[1068],{"type":41,"tag":79,"props":1069,"children":1071},{"className":1070},[],[1072],{"type":47,"value":1073},"order",{"type":41,"tag":909,"props":1075,"children":1076},{},[1077],{"type":47,"value":1078},"number",{"type":41,"tag":909,"props":1080,"children":1081},{},[1082],{"type":47,"value":927},{"type":41,"tag":909,"props":1084,"children":1085},{},[1086],{"type":47,"value":1087},"1-based execution sequence",{"type":41,"tag":877,"props":1089,"children":1090},{},[1091,1100,1107,1111],{"type":41,"tag":909,"props":1092,"children":1093},{},[1094],{"type":41,"tag":79,"props":1095,"children":1097},{"className":1096},[],[1098],{"type":47,"value":1099},"artifactIds",{"type":41,"tag":909,"props":1101,"children":1102},{},[1103,1104],{"type":47,"value":922},{"type":41,"tag":1050,"props":1105,"children":1106},{},[],{"type":41,"tag":909,"props":1108,"children":1109},{},[1110],{"type":47,"value":1027},{"type":41,"tag":909,"props":1112,"children":1113},{},[1114],{"type":47,"value":1115},"Artifact IDs this task operates on",{"type":41,"tag":877,"props":1117,"children":1118},{},[1119,1128,1132,1136],{"type":41,"tag":909,"props":1120,"children":1121},{},[1122],{"type":41,"tag":79,"props":1123,"children":1125},{"className":1124},[],[1126],{"type":47,"value":1127},"estimatedMinutes",{"type":41,"tag":909,"props":1129,"children":1130},{},[1131],{"type":47,"value":1078},{"type":41,"tag":909,"props":1133,"children":1134},{},[1135],{"type":47,"value":1027},{"type":41,"tag":909,"props":1137,"children":1138},{},[1139],{"type":47,"value":1140},"Effort estimate",{"type":41,"tag":877,"props":1142,"children":1143},{},[1144,1153,1158,1162],{"type":41,"tag":909,"props":1145,"children":1146},{},[1147],{"type":41,"tag":79,"props":1148,"children":1150},{"className":1149},[],[1151],{"type":47,"value":1152},"optional",{"type":41,"tag":909,"props":1154,"children":1155},{},[1156],{"type":47,"value":1157},"boolean",{"type":41,"tag":909,"props":1159,"children":1160},{},[1161],{"type":47,"value":1027},{"type":41,"tag":909,"props":1163,"children":1164},{},[1165],{"type":47,"value":1166},"True for user-skippable tasks (e.g. cloud-deploy)",{"type":41,"tag":88,"props":1168,"children":1169},{},[],{"type":41,"tag":92,"props":1171,"children":1173},{"id":1172},"_5-output-path-conventions",[1174],{"type":47,"value":1175},"5. Output Path Conventions",{"type":41,"tag":128,"props":1177,"children":1178},{},[1179,1190,1201,1212,1217],{"type":41,"tag":132,"props":1180,"children":1181},{},[1182,1184],{"type":47,"value":1183},"Workspace root: ",{"type":41,"tag":79,"props":1185,"children":1187},{"className":1186},[],[1188],{"type":47,"value":1189},"{outputProjectRoot}\u002F",{"type":41,"tag":132,"props":1191,"children":1192},{},[1193,1195],{"type":47,"value":1194},"Logic App project: ",{"type":41,"tag":79,"props":1196,"children":1198},{"className":1197},[],[1199],{"type":47,"value":1200},"{outputLogicAppRoot}\u002F",{"type":41,"tag":132,"props":1202,"children":1203},{},[1204,1206],{"type":47,"value":1205},"Workspace file: ",{"type":41,"tag":79,"props":1207,"children":1209},{"className":1208},[],[1210],{"type":47,"value":1211},"{outputProjectRoot}\u002F{outputProjectName}.code-workspace",{"type":41,"tag":132,"props":1213,"children":1214},{},[1215],{"type":47,"value":1216},"Every task description MUST state the exact output file path relative to the project root.",{"type":41,"tag":132,"props":1218,"children":1219},{},[1220],{"type":47,"value":1221},"NEVER scaffold into the source project root.",{"type":41,"tag":88,"props":1223,"children":1224},{},[],{"type":41,"tag":92,"props":1226,"children":1228},{"id":1227},"_6-key-rules-for-task-descriptions",[1229],{"type":47,"value":1230},"6. Key Rules for Task Descriptions",{"type":41,"tag":128,"props":1232,"children":1233},{},[1234,1246,1257,1270,1291,1302],{"type":41,"tag":132,"props":1235,"children":1236},{},[1237,1239,1244],{"type":47,"value":1238},"For each task, set ",{"type":41,"tag":79,"props":1240,"children":1242},{"className":1241},[],[1243],{"type":47,"value":994},{"type":47,"value":1245}," to a concise user-facing summary (1-2 lines).",{"type":41,"tag":132,"props":1247,"children":1248},{},[1249,1251,1256],{"type":47,"value":1250},"Put all detailed implementation steps\u002Frules into ",{"type":41,"tag":79,"props":1252,"children":1254},{"className":1253},[],[1255],{"type":47,"value":398},{"type":47,"value":833},{"type":41,"tag":132,"props":1258,"children":1259},{},[1260,1262,1268],{"type":47,"value":1261},"Workflow generation tasks MUST include: \"Read skill ",{"type":41,"tag":79,"props":1263,"children":1265},{"className":1264},[],[1266],{"type":47,"value":1267},"source-to-logic-apps-mapping",{"type":47,"value":1269}," first, then search reference workflows.\"",{"type":41,"tag":132,"props":1271,"children":1272},{},[1273,1275,1281,1283,1289],{"type":47,"value":1274},"Connection generation tasks MUST include: \"Search with ",{"type":41,"tag":79,"props":1276,"children":1278},{"className":1277},[],[1279],{"type":47,"value":1280},"category=connection",{"type":47,"value":1282}," to find exact ",{"type":41,"tag":79,"props":1284,"children":1286},{"className":1285},[],[1287],{"type":47,"value":1288},"connections.json",{"type":47,"value":1290}," format.\"",{"type":41,"tag":132,"props":1292,"children":1293},{},[1294,1296,1301],{"type":47,"value":1295},"Local function tasks MUST reference skill ",{"type":41,"tag":79,"props":1297,"children":1299},{"className":1298},[],[1300],{"type":47,"value":234},{"type":47,"value":833},{"type":41,"tag":132,"props":1303,"children":1304},{},[1305,1307,1313],{"type":47,"value":1306},"ALL code generation tasks MUST follow skill ",{"type":41,"tag":79,"props":1308,"children":1310},{"className":1309},[],[1311],{"type":47,"value":1312},"no-stubs-code-generation",{"type":47,"value":833},{"items":1315,"total":1416},[1316,1333,1353,1370,1377,1392,1402],{"slug":1317,"name":1317,"fn":1318,"description":1319,"org":1320,"tags":1321,"stars":24,"repoUrl":25,"updatedAt":1332},"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},[1322,1325,1326,1329],{"name":1323,"slug":1324,"type":16},"Architecture","architecture",{"name":11,"slug":8,"type":16},{"name":1327,"slug":1328,"type":16},"Code Analysis","code-analysis",{"name":1330,"slug":1331,"type":16},"Diagrams","diagrams","2026-07-12T08:19:15.81605",{"slug":1334,"name":1334,"fn":1335,"description":1336,"org":1337,"tags":1338,"stars":24,"repoUrl":25,"updatedAt":1352},"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},[1339,1340,1343,1346,1349],{"name":11,"slug":8,"type":16},{"name":1341,"slug":1342,"type":16},"Bicep","bicep",{"name":1344,"slug":1345,"type":16},"Deployment","deployment",{"name":1347,"slug":1348,"type":16},"Reporting","reporting",{"name":1350,"slug":1351,"type":16},"Testing","testing","2026-07-12T08:20:12.210407",{"slug":1354,"name":1354,"fn":1355,"description":1356,"org":1357,"tags":1358,"stars":24,"repoUrl":25,"updatedAt":1369},"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},[1359,1362,1363,1366],{"name":1360,"slug":1361,"type":16},"Automation","automation",{"name":11,"slug":8,"type":16},{"name":1364,"slug":1365,"type":16},"Configuration","configuration",{"name":1367,"slug":1368,"type":16},"Workflow Automation","workflow-automation","2026-07-12T08:20:28.730402",{"slug":4,"name":4,"fn":5,"description":6,"org":1371,"tags":1372,"stars":24,"repoUrl":25,"updatedAt":26},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1373,1374,1375,1376],{"name":11,"slug":8,"type":16},{"name":19,"slug":20,"type":16},{"name":14,"slug":15,"type":16},{"name":22,"slug":23,"type":16},{"slug":84,"name":84,"fn":1378,"description":1379,"org":1380,"tags":1381,"stars":24,"repoUrl":25,"updatedAt":1391},"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},[1382,1383,1384,1387,1390],{"name":11,"slug":8,"type":16},{"name":1327,"slug":1328,"type":16},{"name":1385,"slug":1386,"type":16},"Java","java",{"name":1388,"slug":1389,"type":16},"Maven","maven",{"name":19,"slug":20,"type":16},"2026-07-12T08:20:04.462447",{"slug":1393,"name":1393,"fn":1394,"description":1395,"org":1396,"tags":1397,"stars":24,"repoUrl":25,"updatedAt":1401},"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},[1398,1399,1400],{"name":1323,"slug":1324,"type":16},{"name":11,"slug":8,"type":16},{"name":19,"slug":20,"type":16},"2026-07-12T08:20:08.228065",{"slug":234,"name":234,"fn":1403,"description":1404,"org":1405,"tags":1406,"stars":24,"repoUrl":25,"updatedAt":1415},"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},[1407,1410,1413,1414],{"name":1408,"slug":1409,"type":16},".NET","net",{"name":1411,"slug":1412,"type":16},"API Development","api-development",{"name":1360,"slug":1361,"type":16},{"name":11,"slug":8,"type":16},"2026-07-12T08:19:23.722956",12,{"items":1418,"total":1589},[1419,1438,1453,1470,1483,1498,1511,1526,1537,1551,1564,1577],{"slug":1420,"name":1420,"fn":1421,"description":1422,"org":1423,"tags":1424,"stars":1435,"repoUrl":1436,"updatedAt":1437},"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},[1425,1426,1429,1432],{"name":11,"slug":8,"type":16},{"name":1427,"slug":1428,"type":16},"Compliance","compliance",{"name":1430,"slug":1431,"type":16},"Governance","governance",{"name":1433,"slug":1434,"type":16},"Policy","policy",1686,"https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-policy","2026-07-12T08:17:48.378432",{"slug":1439,"name":1439,"fn":1440,"description":1441,"org":1442,"tags":1443,"stars":1450,"repoUrl":1451,"updatedAt":1452},"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},[1444,1445,1446,1449],{"name":11,"slug":8,"type":16},{"name":1344,"slug":1345,"type":16},{"name":1447,"slug":1448,"type":16},"Infrastructure as Code","infrastructure-as-code",{"name":19,"slug":20,"type":16},260,"https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-blueprints","2026-07-12T08:17:49.646405",{"slug":1454,"name":1454,"fn":1455,"description":1456,"org":1457,"tags":1458,"stars":1467,"repoUrl":1468,"updatedAt":1469},"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},[1459,1460,1461,1464],{"name":1411,"slug":1412,"type":16},{"name":11,"slug":8,"type":16},{"name":1462,"slug":1463,"type":16},"Code Review","code-review",{"name":1465,"slug":1466,"type":16},"Documentation","documentation",133,"https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-tools","2026-07-12T08:17:43.350876",{"slug":1471,"name":1471,"fn":1472,"description":1473,"org":1474,"tags":1475,"stars":1467,"repoUrl":1468,"updatedAt":1482},"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},[1476,1477,1478,1481],{"name":11,"slug":8,"type":16},{"name":1344,"slug":1345,"type":16},{"name":1479,"slug":1480,"type":16},"SDK","sdk",{"name":1350,"slug":1351,"type":16},"2026-07-12T08:17:44.718943",{"slug":1484,"name":1484,"fn":1485,"description":1486,"org":1487,"tags":1488,"stars":1467,"repoUrl":1468,"updatedAt":1497},"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},[1489,1490,1493,1496],{"name":11,"slug":8,"type":16},{"name":1491,"slug":1492,"type":16},"GitHub","github",{"name":1494,"slug":1495,"type":16},"Project Management","project-management",{"name":1479,"slug":1480,"type":16},"2026-07-12T08:17:38.345387",{"slug":1499,"name":1499,"fn":1500,"description":1501,"org":1502,"tags":1503,"stars":1467,"repoUrl":1468,"updatedAt":1510},"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},[1504,1505,1508,1509],{"name":11,"slug":8,"type":16},{"name":1506,"slug":1507,"type":16},"CI\u002FCD","ci-cd",{"name":1344,"slug":1345,"type":16},{"name":1479,"slug":1480,"type":16},"2026-07-12T08:17:34.27607",{"slug":1512,"name":1512,"fn":1513,"description":1514,"org":1515,"tags":1516,"stars":1467,"repoUrl":1468,"updatedAt":1525},"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},[1517,1518,1519,1522],{"name":1411,"slug":1412,"type":16},{"name":11,"slug":8,"type":16},{"name":1520,"slug":1521,"type":16},"OpenAPI","openapi",{"name":1523,"slug":1524,"type":16},"Technical Writing","technical-writing","2026-07-12T08:17:39.603232",{"slug":1527,"name":1527,"fn":1528,"description":1529,"org":1530,"tags":1531,"stars":1467,"repoUrl":1468,"updatedAt":1536},"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},[1532,1533,1534,1535],{"name":11,"slug":8,"type":16},{"name":1506,"slug":1507,"type":16},{"name":1479,"slug":1480,"type":16},{"name":1350,"slug":1351,"type":16},"2026-07-12T08:17:37.08523",{"slug":1538,"name":1538,"fn":1539,"description":1540,"org":1541,"tags":1542,"stars":1467,"repoUrl":1468,"updatedAt":1550},"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},[1543,1546,1549],{"name":1544,"slug":1545,"type":16},"LLM","llm",{"name":1547,"slug":1548,"type":16},"Performance","performance",{"name":1523,"slug":1524,"type":16},"2026-07-12T08:17:42.080413",{"slug":1552,"name":1552,"fn":1553,"description":1554,"org":1555,"tags":1556,"stars":1467,"repoUrl":1468,"updatedAt":1563},"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},[1557,1558,1559,1562],{"name":11,"slug":8,"type":16},{"name":1506,"slug":1507,"type":16},{"name":1560,"slug":1561,"type":16},"Debugging","debugging",{"name":1479,"slug":1480,"type":16},"2026-07-12T08:17:40.821512",{"slug":1565,"name":1565,"fn":1566,"description":1567,"org":1568,"tags":1569,"stars":1467,"repoUrl":1468,"updatedAt":1576},"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},[1570,1571,1572,1575],{"name":11,"slug":8,"type":16},{"name":1427,"slug":1428,"type":16},{"name":1573,"slug":1574,"type":16},"Process Optimization","process-optimization",{"name":1523,"slug":1524,"type":16},"2026-07-12T08:17:32.970921",{"slug":1578,"name":1578,"fn":1579,"description":1580,"org":1581,"tags":1582,"stars":1467,"repoUrl":1468,"updatedAt":1588},"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},[1583,1584,1587],{"name":1465,"slug":1466,"type":16},{"name":1585,"slug":1586,"type":16},"Plugin Development","plugin-development",{"name":1523,"slug":1524,"type":16},"2026-07-12T08:17:35.873862",109]