[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-azure-logic-apps-planning-rules":3,"mdc--4s3rge-key":35,"related-repo-azure-logic-apps-planning-rules":749,"related-org-azure-logic-apps-planning-rules":857},{"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},"logic-apps-planning-rules","plan MuleSoft to Azure Logic Apps migration","Rules for planning the migration of a MuleSoft flow to Azure Logic Apps Standard. Covers workflow split policy, 1-flow-to-1-workflow rule, source coverage requirements, planning artifact store sequence, and design constraints.",{"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},"Architecture","architecture",{"name":22,"slug":23,"type":16},"Migration","migration",6,"https:\u002F\u002Fgithub.com\u002FAzure\u002Flogicapps-migration-agent","2026-07-12T08:20:00.320462",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\u002Flogic-apps-planning-rules\u002Fmulesoft","---\nname: logic-apps-planning-rules\ndescription: Rules for planning the migration of a MuleSoft flow to Azure Logic Apps Standard. Covers workflow split policy, 1-flow-to-1-workflow rule, source coverage requirements, planning artifact store sequence, and design constraints.\n---\n\n# Skill: Logic Apps Planning Rules\n\n> **Purpose**: Authoritative rules for how an AI agent should plan the target Logic Apps Standard architecture for a MuleSoft migration. 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 JARs, you MUST follow skill `dependency-and-decompilation-analysis` to analyse dependencies BEFORE designing the target architecture. 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 proceed with planning until all relevant dependencies are analysed and their logic is understood.\n\n---\n\n## 1. Workflow Split Policy\n\n- **Every discovered flow** (including sub-flows invoked via `flow-ref`) MUST map to its own separate Logic Apps workflow.\n- Do NOT collapse sub-flows into local functions or merge them into a parent workflow.\n- Use the Workflow action type (`InvokeWorkflow`) to call child workflows from parent workflows, mirroring the `flow-ref` pattern.\n- Small, simple sub-flows (2–3 processors, no branching) MAY be inlined into the parent workflow if it simplifies the design — document this explicitly.\n- You MUST enumerate ALL discovered flows and scenarios (happy path + branch\u002Ferror\u002Fcontingency paths) before deciding the workflow split.\n\n---\n\n## 2. Source Coverage Requirement\n\nBuild a one-to-one source coverage map: every discovered flow\u002Fsub-flow\u002Fprocessor MUST appear in:\n\n- workflow definitions, OR\n- action mappings, OR\n- an explicit gap entry.\n\nNothing from the source may be silently dropped.\n\n---\n\n## 3. Design Constraints\n\n### 3.00 Integration Account Decision Rule\n\n- Explicitly decide during planning whether this flow needs an Integration Account.\n- Use an Integration Account only for Integration Account-specific capabilities, especially B2B\u002FEDI scenarios such as X12, EDIFACT, AS2, trading partners, agreements, or centrally managed shared B2B artifacts.\n- Do NOT choose Integration Account when Logic Apps Standard artifact folders are sufficient for schemas, maps, templates, and other workflow-local artifacts.\n- If Integration Account is used, use it consistently for the flow's deployable artifacts. Do NOT split artifacts between Integration Account and Logic App artifact folders for the same flow.\n- If Integration Account is used, the plan MUST include a provisioning task that deploys the Integration Account first, then captures the deployed resource ID and callback URL into `local.settings.json` as `WORKFLOWS_INTEGRATION_ACCOUNT_ID` and `WORKFLOW_INTEGRATION_ACCOUNT_CALLBACK_URL`.\n- If Integration Account is used, the plan MUST include a follow-on artifact upload task that uploads the required Integration Account artifacts after provisioning succeeds.\n\n### 3.0 Preserve Source Design\n\n> **⚠️ MANDATORY DESIGN PRESERVATION RULE:** Do NOT independently simplify, optimize, refactor, merge, reorder, or redesign the source flow. The target plan MUST preserve the **same source design and execution intent** unless there is a documented platform gap or the user explicitly asks for a redesign.\n\n- Preserve the original flow boundaries, sub-flow call structure, choice branching, scatter-gather parallelism, foreach iteration, sequencing, and error-handler decomposition as closely as Logic Apps permits.\n- Do NOT combine separate source processors into one target step merely because it looks simpler, unless the source already treated them as one logical unit or an unavoidable platform limitation requires it.\n- Do NOT remove intermediate steps, set-variable operations, logger steps, or transformation stages unless they are explicitly proven redundant from the source behavior.\n- If any deviation from source design is unavoidable, document it explicitly in action mappings and gaps with the exact reason.\n\n### 3.1 SplitOn over ForEach\n\nWhen a trigger returns an array (batch of messages), ALWAYS use `splitOn` on the trigger instead of wrapping actions in a `For_each` loop. SplitOn debatches the array so each item fires a separate workflow run. Only use `For_each` if splitOn is not supported by that trigger type.\n\n### 3.2 File System Trigger Semantics\n\nDo NOT add delete\u002Fremove\u002Fcleanup actions that remove the trigger input file by default. The runtime does not re-trigger on the same unchanged file, so deleting is unnecessary unless the user explicitly requests it.\n\n### 3.3 Component Priority Ladder\n\n> **⚠️ MANDATORY OVERRIDE — READ THIS FIRST:**\n> Source custom code — custom Java classes, custom Mule modules\u002Fconnectors, Java-interop MEL expressions, custom message processors — MUST **ALWAYS** map to **.NET local functions**. Do NOT simplify custom code to expressions, inline code, or any other level. This overrides the ladder below. Translate the real business logic from source code — never approximate with expressions.\n\nFor all **other** (non-custom-code) components:\n\n1. Built-in actions (HTTP, Compose, Parse JSON, Select, SQL Connector, Service Bus, Transform XML\u002FXslt, XmlParse, XmlValidation, Flat File Decode\u002FEncode) → 2. Expressions → 3. Data Mapper\u002FLiquid (for DataWeave conversions) → 4. Inline Code → 5. .NET local functions → 6. Azure Functions (last resort).\n\n> **AUTO-APPLY RULE**: Always choose the HIGHEST applicable level without asking the user. If a built-in action exists (e.g. SQL Connector for db:select, HTTP for http:request), use it — do NOT fall back to expressions or ask.\n\n> **DATAWEAVE PROCESSING RULE**: For DataWeave transformations (`ee:transform`), assess complexity. Simple field mappings (payload.field, basic map\u002Ffilter) → Liquid templates or Compose actions. Complex scripts with reduce, groupBy, match, custom functions → .NET local functions. Always flag DataWeave conversions as gaps requiring review.\n\n---\n\n## 4. Reference Lookup (MANDATORY)\n\nBefore generating any workflow definition:\n\n1. Read the skill `source-to-logic-apps-mapping` to look up the exact Logic Apps Standard equivalent for every MuleSoft processor.\n2. Call `migration_searchReferenceWorkflows` and `migration_readReferenceWorkflow` to find real reference examples.\n3. Use the operation names from the mapping skill as search terms.\n4. Copy exact `serviceProviderConfiguration` and `operationId` values from references — do NOT invent these.\n5. If the first search returns no relevant results, RETRY 2-4 more times with different word combinations.\n6. Also call `migration_readReferenceDoc` to verify connector capabilities.\n\n---\n\n## 5. Required Planning Store Sequence\n\nStore planning results in THIS order:\n\n1. `migration_planning_storeMeta` — flowId, flowName, explanation, summary.\n2. `migration_planning_storeArchitecture` — flowId and Mermaid `flowchart TB` diagram.\n3. `migration_planning_storeWorkflowDefinition` — call once PER workflow. Each call MUST include `flowId`, `name`, `workflowDefinition` (with `definition.triggers`, `definition.actions` with `runAfter`, `type` for each action), and a `mermaid` field with a `flowchart TB` diagram. The mermaid field is ENFORCED and will be rejected if missing when multiple workflows exist.\n4. `migration_planning_storeAzureComponents` — flowId and components array.\n5. `migration_planning_storeActionMappings` — flowId and mappings array (source → target for each component; include `workflowName` when multiple workflows exist).\n6. `migration_planning_storeGaps` — flowId and gaps array (empty if none).\n7. `migration_planning_storePatterns` — flowId and patterns array (empty if none).\n8. `migration_planning_storeArtifactDispositions` — flowId and dispositions array. ONLY include artifacts that need conversion or upload: DataWeave scripts (.dwl → Liquid\u002FXSLT), RAML\u002FOAS specs, JSON\u002FXML schemas, custom Java code (.java → local function), certificates. Do NOT include flow XMLs or property files. Each entry needs: artifactName, artifactType, conversionRequired, uploadDestination (integration-account \u002F logic-app-artifact-folder \u002F azure-function \u002F not-applicable), uploadNotes (REQUIRED). When conversionRequired=true, also include conversionFrom, conversionTo, conversionNotes. If the plan uses Integration Account, artifact dispositions must consistently use `integration-account` instead of mixing destinations.\n9. `migration_planning_finalize` — flowId to validate and display the plan.\n",{"data":36,"body":37},{"name":4,"description":6},{"type":38,"children":39},"root",[40,49,65,87,91,98,156,159,165,170,188,193,196,202,209,266,272,292,315,321,349,355,360,366,393,405,414,427,448,451,457,462,541,544,550,555],{"type":41,"tag":42,"props":43,"children":45},"element","h1",{"id":44},"skill-logic-apps-planning-rules",[46],{"type":47,"value":48},"text","Skill: Logic Apps Planning 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 plan the target Logic Apps Standard architecture for a MuleSoft migration. 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 JARs, 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 designing the target architecture. 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 proceed with planning 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-workflow-split-policy",[96],{"type":47,"value":97},"1. Workflow Split Policy",{"type":41,"tag":99,"props":100,"children":101},"ul",{},[102,121,126,146,151],{"type":41,"tag":103,"props":104,"children":105},"li",{},[106,111,113,119],{"type":41,"tag":58,"props":107,"children":108},{},[109],{"type":47,"value":110},"Every discovered flow",{"type":47,"value":112}," (including sub-flows invoked via ",{"type":41,"tag":79,"props":114,"children":116},{"className":115},[],[117],{"type":47,"value":118},"flow-ref",{"type":47,"value":120},") MUST map to its own separate Logic Apps workflow.",{"type":41,"tag":103,"props":122,"children":123},{},[124],{"type":47,"value":125},"Do NOT collapse sub-flows into local functions or merge them into a parent workflow.",{"type":41,"tag":103,"props":127,"children":128},{},[129,131,137,139,144],{"type":47,"value":130},"Use the Workflow action type (",{"type":41,"tag":79,"props":132,"children":134},{"className":133},[],[135],{"type":47,"value":136},"InvokeWorkflow",{"type":47,"value":138},") to call child workflows from parent workflows, mirroring the ",{"type":41,"tag":79,"props":140,"children":142},{"className":141},[],[143],{"type":47,"value":118},{"type":47,"value":145}," pattern.",{"type":41,"tag":103,"props":147,"children":148},{},[149],{"type":47,"value":150},"Small, simple sub-flows (2–3 processors, no branching) MAY be inlined into the parent workflow if it simplifies the design — document this explicitly.",{"type":41,"tag":103,"props":152,"children":153},{},[154],{"type":47,"value":155},"You MUST enumerate ALL discovered flows and scenarios (happy path + branch\u002Ferror\u002Fcontingency paths) before deciding the workflow split.",{"type":41,"tag":88,"props":157,"children":158},{},[],{"type":41,"tag":92,"props":160,"children":162},{"id":161},"_2-source-coverage-requirement",[163],{"type":47,"value":164},"2. Source Coverage Requirement",{"type":41,"tag":54,"props":166,"children":167},{},[168],{"type":47,"value":169},"Build a one-to-one source coverage map: every discovered flow\u002Fsub-flow\u002Fprocessor MUST appear in:",{"type":41,"tag":99,"props":171,"children":172},{},[173,178,183],{"type":41,"tag":103,"props":174,"children":175},{},[176],{"type":47,"value":177},"workflow definitions, OR",{"type":41,"tag":103,"props":179,"children":180},{},[181],{"type":47,"value":182},"action mappings, OR",{"type":41,"tag":103,"props":184,"children":185},{},[186],{"type":47,"value":187},"an explicit gap entry.",{"type":41,"tag":54,"props":189,"children":190},{},[191],{"type":47,"value":192},"Nothing from the source may be silently dropped.",{"type":41,"tag":88,"props":194,"children":195},{},[],{"type":41,"tag":92,"props":197,"children":199},{"id":198},"_3-design-constraints",[200],{"type":47,"value":201},"3. Design Constraints",{"type":41,"tag":203,"props":204,"children":206},"h3",{"id":205},"_300-integration-account-decision-rule",[207],{"type":47,"value":208},"3.00 Integration Account Decision Rule",{"type":41,"tag":99,"props":210,"children":211},{},[212,217,222,227,232,261],{"type":41,"tag":103,"props":213,"children":214},{},[215],{"type":47,"value":216},"Explicitly decide during planning whether this flow needs an Integration Account.",{"type":41,"tag":103,"props":218,"children":219},{},[220],{"type":47,"value":221},"Use an Integration Account only for Integration Account-specific capabilities, especially B2B\u002FEDI scenarios such as X12, EDIFACT, AS2, trading partners, agreements, or centrally managed shared B2B artifacts.",{"type":41,"tag":103,"props":223,"children":224},{},[225],{"type":47,"value":226},"Do NOT choose Integration Account when Logic Apps Standard artifact folders are sufficient for schemas, maps, templates, and other workflow-local artifacts.",{"type":41,"tag":103,"props":228,"children":229},{},[230],{"type":47,"value":231},"If Integration Account is used, use it consistently for the flow's deployable artifacts. Do NOT split artifacts between Integration Account and Logic App artifact folders for the same flow.",{"type":41,"tag":103,"props":233,"children":234},{},[235,237,243,245,251,253,259],{"type":47,"value":236},"If Integration Account is used, the plan MUST include a provisioning task that deploys the Integration Account first, then captures the deployed resource ID and callback URL into ",{"type":41,"tag":79,"props":238,"children":240},{"className":239},[],[241],{"type":47,"value":242},"local.settings.json",{"type":47,"value":244}," as ",{"type":41,"tag":79,"props":246,"children":248},{"className":247},[],[249],{"type":47,"value":250},"WORKFLOWS_INTEGRATION_ACCOUNT_ID",{"type":47,"value":252}," and ",{"type":41,"tag":79,"props":254,"children":256},{"className":255},[],[257],{"type":47,"value":258},"WORKFLOW_INTEGRATION_ACCOUNT_CALLBACK_URL",{"type":47,"value":260},".",{"type":41,"tag":103,"props":262,"children":263},{},[264],{"type":47,"value":265},"If Integration Account is used, the plan MUST include a follow-on artifact upload task that uploads the required Integration Account artifacts after provisioning succeeds.",{"type":41,"tag":203,"props":267,"children":269},{"id":268},"_30-preserve-source-design",[270],{"type":47,"value":271},"3.0 Preserve Source Design",{"type":41,"tag":50,"props":273,"children":274},{},[275],{"type":41,"tag":54,"props":276,"children":277},{},[278,283,285,290],{"type":41,"tag":58,"props":279,"children":280},{},[281],{"type":47,"value":282},"⚠️ MANDATORY DESIGN PRESERVATION RULE:",{"type":47,"value":284}," Do NOT independently simplify, optimize, refactor, merge, reorder, or redesign the source flow. The target plan MUST preserve the ",{"type":41,"tag":58,"props":286,"children":287},{},[288],{"type":47,"value":289},"same source design and execution intent",{"type":47,"value":291}," unless there is a documented platform gap or the user explicitly asks for a redesign.",{"type":41,"tag":99,"props":293,"children":294},{},[295,300,305,310],{"type":41,"tag":103,"props":296,"children":297},{},[298],{"type":47,"value":299},"Preserve the original flow boundaries, sub-flow call structure, choice branching, scatter-gather parallelism, foreach iteration, sequencing, and error-handler decomposition as closely as Logic Apps permits.",{"type":41,"tag":103,"props":301,"children":302},{},[303],{"type":47,"value":304},"Do NOT combine separate source processors into one target step merely because it looks simpler, unless the source already treated them as one logical unit or an unavoidable platform limitation requires it.",{"type":41,"tag":103,"props":306,"children":307},{},[308],{"type":47,"value":309},"Do NOT remove intermediate steps, set-variable operations, logger steps, or transformation stages unless they are explicitly proven redundant from the source behavior.",{"type":41,"tag":103,"props":311,"children":312},{},[313],{"type":47,"value":314},"If any deviation from source design is unavoidable, document it explicitly in action mappings and gaps with the exact reason.",{"type":41,"tag":203,"props":316,"children":318},{"id":317},"_31-spliton-over-foreach",[319],{"type":47,"value":320},"3.1 SplitOn over ForEach",{"type":41,"tag":54,"props":322,"children":323},{},[324,326,332,334,340,342,347],{"type":47,"value":325},"When a trigger returns an array (batch of messages), ALWAYS use ",{"type":41,"tag":79,"props":327,"children":329},{"className":328},[],[330],{"type":47,"value":331},"splitOn",{"type":47,"value":333}," on the trigger instead of wrapping actions in a ",{"type":41,"tag":79,"props":335,"children":337},{"className":336},[],[338],{"type":47,"value":339},"For_each",{"type":47,"value":341}," loop. SplitOn debatches the array so each item fires a separate workflow run. Only use ",{"type":41,"tag":79,"props":343,"children":345},{"className":344},[],[346],{"type":47,"value":339},{"type":47,"value":348}," if splitOn is not supported by that trigger type.",{"type":41,"tag":203,"props":350,"children":352},{"id":351},"_32-file-system-trigger-semantics",[353],{"type":47,"value":354},"3.2 File System Trigger Semantics",{"type":41,"tag":54,"props":356,"children":357},{},[358],{"type":47,"value":359},"Do NOT add delete\u002Fremove\u002Fcleanup actions that remove the trigger input file by default. The runtime does not re-trigger on the same unchanged file, so deleting is unnecessary unless the user explicitly requests it.",{"type":41,"tag":203,"props":361,"children":363},{"id":362},"_33-component-priority-ladder",[364],{"type":47,"value":365},"3.3 Component Priority Ladder",{"type":41,"tag":50,"props":367,"children":368},{},[369],{"type":41,"tag":54,"props":370,"children":371},{},[372,377,379,384,386,391],{"type":41,"tag":58,"props":373,"children":374},{},[375],{"type":47,"value":376},"⚠️ MANDATORY OVERRIDE — READ THIS FIRST:",{"type":47,"value":378},"\nSource custom code — custom Java classes, custom Mule modules\u002Fconnectors, Java-interop MEL expressions, custom message processors — MUST ",{"type":41,"tag":58,"props":380,"children":381},{},[382],{"type":47,"value":383},"ALWAYS",{"type":47,"value":385}," map to ",{"type":41,"tag":58,"props":387,"children":388},{},[389],{"type":47,"value":390},".NET local functions",{"type":47,"value":392},". Do NOT simplify custom code to expressions, inline code, or any other level. This overrides the ladder below. Translate the real business logic from source code — never approximate with expressions.",{"type":41,"tag":54,"props":394,"children":395},{},[396,398,403],{"type":47,"value":397},"For all ",{"type":41,"tag":58,"props":399,"children":400},{},[401],{"type":47,"value":402},"other",{"type":47,"value":404}," (non-custom-code) components:",{"type":41,"tag":406,"props":407,"children":408},"ol",{},[409],{"type":41,"tag":103,"props":410,"children":411},{},[412],{"type":47,"value":413},"Built-in actions (HTTP, Compose, Parse JSON, Select, SQL Connector, Service Bus, Transform XML\u002FXslt, XmlParse, XmlValidation, Flat File Decode\u002FEncode) → 2. Expressions → 3. Data Mapper\u002FLiquid (for DataWeave conversions) → 4. Inline Code → 5. .NET local functions → 6. Azure Functions (last resort).",{"type":41,"tag":50,"props":415,"children":416},{},[417],{"type":41,"tag":54,"props":418,"children":419},{},[420,425],{"type":41,"tag":58,"props":421,"children":422},{},[423],{"type":47,"value":424},"AUTO-APPLY RULE",{"type":47,"value":426},": Always choose the HIGHEST applicable level without asking the user. If a built-in action exists (e.g. SQL Connector for db:select, HTTP for http:request), use it — do NOT fall back to expressions or ask.",{"type":41,"tag":50,"props":428,"children":429},{},[430],{"type":41,"tag":54,"props":431,"children":432},{},[433,438,440,446],{"type":41,"tag":58,"props":434,"children":435},{},[436],{"type":47,"value":437},"DATAWEAVE PROCESSING RULE",{"type":47,"value":439},": For DataWeave transformations (",{"type":41,"tag":79,"props":441,"children":443},{"className":442},[],[444],{"type":47,"value":445},"ee:transform",{"type":47,"value":447},"), assess complexity. Simple field mappings (payload.field, basic map\u002Ffilter) → Liquid templates or Compose actions. Complex scripts with reduce, groupBy, match, custom functions → .NET local functions. Always flag DataWeave conversions as gaps requiring review.",{"type":41,"tag":88,"props":449,"children":450},{},[],{"type":41,"tag":92,"props":452,"children":454},{"id":453},"_4-reference-lookup-mandatory",[455],{"type":47,"value":456},"4. Reference Lookup (MANDATORY)",{"type":41,"tag":54,"props":458,"children":459},{},[460],{"type":47,"value":461},"Before generating any workflow definition:",{"type":41,"tag":406,"props":463,"children":464},{},[465,478,498,503,523,528],{"type":41,"tag":103,"props":466,"children":467},{},[468,470,476],{"type":47,"value":469},"Read the skill ",{"type":41,"tag":79,"props":471,"children":473},{"className":472},[],[474],{"type":47,"value":475},"source-to-logic-apps-mapping",{"type":47,"value":477}," to look up the exact Logic Apps Standard equivalent for every MuleSoft processor.",{"type":41,"tag":103,"props":479,"children":480},{},[481,483,489,490,496],{"type":47,"value":482},"Call ",{"type":41,"tag":79,"props":484,"children":486},{"className":485},[],[487],{"type":47,"value":488},"migration_searchReferenceWorkflows",{"type":47,"value":252},{"type":41,"tag":79,"props":491,"children":493},{"className":492},[],[494],{"type":47,"value":495},"migration_readReferenceWorkflow",{"type":47,"value":497}," to find real reference examples.",{"type":41,"tag":103,"props":499,"children":500},{},[501],{"type":47,"value":502},"Use the operation names from the mapping skill as search terms.",{"type":41,"tag":103,"props":504,"children":505},{},[506,508,514,515,521],{"type":47,"value":507},"Copy exact ",{"type":41,"tag":79,"props":509,"children":511},{"className":510},[],[512],{"type":47,"value":513},"serviceProviderConfiguration",{"type":47,"value":252},{"type":41,"tag":79,"props":516,"children":518},{"className":517},[],[519],{"type":47,"value":520},"operationId",{"type":47,"value":522}," values from references — do NOT invent these.",{"type":41,"tag":103,"props":524,"children":525},{},[526],{"type":47,"value":527},"If the first search returns no relevant results, RETRY 2-4 more times with different word combinations.",{"type":41,"tag":103,"props":529,"children":530},{},[531,533,539],{"type":47,"value":532},"Also call ",{"type":41,"tag":79,"props":534,"children":536},{"className":535},[],[537],{"type":47,"value":538},"migration_readReferenceDoc",{"type":47,"value":540}," to verify connector capabilities.",{"type":41,"tag":88,"props":542,"children":543},{},[],{"type":41,"tag":92,"props":545,"children":547},{"id":546},"_5-required-planning-store-sequence",[548],{"type":47,"value":549},"5. Required Planning Store Sequence",{"type":41,"tag":54,"props":551,"children":552},{},[553],{"type":47,"value":554},"Store planning results in THIS order:",{"type":41,"tag":406,"props":556,"children":557},{},[558,569,588,667,678,697,708,719,738],{"type":41,"tag":103,"props":559,"children":560},{},[561,567],{"type":41,"tag":79,"props":562,"children":564},{"className":563},[],[565],{"type":47,"value":566},"migration_planning_storeMeta",{"type":47,"value":568}," — flowId, flowName, explanation, summary.",{"type":41,"tag":103,"props":570,"children":571},{},[572,578,580,586],{"type":41,"tag":79,"props":573,"children":575},{"className":574},[],[576],{"type":47,"value":577},"migration_planning_storeArchitecture",{"type":47,"value":579}," — flowId and Mermaid ",{"type":41,"tag":79,"props":581,"children":583},{"className":582},[],[584],{"type":47,"value":585},"flowchart TB",{"type":47,"value":587}," diagram.",{"type":41,"tag":103,"props":589,"children":590},{},[591,597,599,605,607,613,614,620,622,628,629,635,637,643,644,650,652,658,660,665],{"type":41,"tag":79,"props":592,"children":594},{"className":593},[],[595],{"type":47,"value":596},"migration_planning_storeWorkflowDefinition",{"type":47,"value":598}," — call once PER workflow. Each call MUST include ",{"type":41,"tag":79,"props":600,"children":602},{"className":601},[],[603],{"type":47,"value":604},"flowId",{"type":47,"value":606},", ",{"type":41,"tag":79,"props":608,"children":610},{"className":609},[],[611],{"type":47,"value":612},"name",{"type":47,"value":606},{"type":41,"tag":79,"props":615,"children":617},{"className":616},[],[618],{"type":47,"value":619},"workflowDefinition",{"type":47,"value":621}," (with ",{"type":41,"tag":79,"props":623,"children":625},{"className":624},[],[626],{"type":47,"value":627},"definition.triggers",{"type":47,"value":606},{"type":41,"tag":79,"props":630,"children":632},{"className":631},[],[633],{"type":47,"value":634},"definition.actions",{"type":47,"value":636}," with ",{"type":41,"tag":79,"props":638,"children":640},{"className":639},[],[641],{"type":47,"value":642},"runAfter",{"type":47,"value":606},{"type":41,"tag":79,"props":645,"children":647},{"className":646},[],[648],{"type":47,"value":649},"type",{"type":47,"value":651}," for each action), and a ",{"type":41,"tag":79,"props":653,"children":655},{"className":654},[],[656],{"type":47,"value":657},"mermaid",{"type":47,"value":659}," field with a ",{"type":41,"tag":79,"props":661,"children":663},{"className":662},[],[664],{"type":47,"value":585},{"type":47,"value":666}," diagram. The mermaid field is ENFORCED and will be rejected if missing when multiple workflows exist.",{"type":41,"tag":103,"props":668,"children":669},{},[670,676],{"type":41,"tag":79,"props":671,"children":673},{"className":672},[],[674],{"type":47,"value":675},"migration_planning_storeAzureComponents",{"type":47,"value":677}," — flowId and components array.",{"type":41,"tag":103,"props":679,"children":680},{},[681,687,689,695],{"type":41,"tag":79,"props":682,"children":684},{"className":683},[],[685],{"type":47,"value":686},"migration_planning_storeActionMappings",{"type":47,"value":688}," — flowId and mappings array (source → target for each component; include ",{"type":41,"tag":79,"props":690,"children":692},{"className":691},[],[693],{"type":47,"value":694},"workflowName",{"type":47,"value":696}," when multiple workflows exist).",{"type":41,"tag":103,"props":698,"children":699},{},[700,706],{"type":41,"tag":79,"props":701,"children":703},{"className":702},[],[704],{"type":47,"value":705},"migration_planning_storeGaps",{"type":47,"value":707}," — flowId and gaps array (empty if none).",{"type":41,"tag":103,"props":709,"children":710},{},[711,717],{"type":41,"tag":79,"props":712,"children":714},{"className":713},[],[715],{"type":47,"value":716},"migration_planning_storePatterns",{"type":47,"value":718}," — flowId and patterns array (empty if none).",{"type":41,"tag":103,"props":720,"children":721},{},[722,728,730,736],{"type":41,"tag":79,"props":723,"children":725},{"className":724},[],[726],{"type":47,"value":727},"migration_planning_storeArtifactDispositions",{"type":47,"value":729}," — flowId and dispositions array. ONLY include artifacts that need conversion or upload: DataWeave scripts (.dwl → Liquid\u002FXSLT), RAML\u002FOAS specs, JSON\u002FXML schemas, custom Java code (.java → local function), certificates. Do NOT include flow XMLs or property files. Each entry needs: artifactName, artifactType, conversionRequired, uploadDestination (integration-account \u002F logic-app-artifact-folder \u002F azure-function \u002F not-applicable), uploadNotes (REQUIRED). When conversionRequired=true, also include conversionFrom, conversionTo, conversionNotes. If the plan uses Integration Account, artifact dispositions must consistently use ",{"type":41,"tag":79,"props":731,"children":733},{"className":732},[],[734],{"type":47,"value":735},"integration-account",{"type":47,"value":737}," instead of mixing destinations.",{"type":41,"tag":103,"props":739,"children":740},{},[741,747],{"type":41,"tag":79,"props":742,"children":744},{"className":743},[],[745],{"type":47,"value":746},"migration_planning_finalize",{"type":47,"value":748}," — flowId to validate and display the plan.",{"items":750,"total":856},[751,766,786,803,816,831,841],{"slug":752,"name":752,"fn":753,"description":754,"org":755,"tags":756,"stars":24,"repoUrl":25,"updatedAt":765},"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},[757,758,759,762],{"name":19,"slug":20,"type":16},{"name":11,"slug":8,"type":16},{"name":760,"slug":761,"type":16},"Code Analysis","code-analysis",{"name":763,"slug":764,"type":16},"Diagrams","diagrams","2026-07-12T08:19:15.81605",{"slug":767,"name":767,"fn":768,"description":769,"org":770,"tags":771,"stars":24,"repoUrl":25,"updatedAt":785},"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},[772,773,776,779,782],{"name":11,"slug":8,"type":16},{"name":774,"slug":775,"type":16},"Bicep","bicep",{"name":777,"slug":778,"type":16},"Deployment","deployment",{"name":780,"slug":781,"type":16},"Reporting","reporting",{"name":783,"slug":784,"type":16},"Testing","testing","2026-07-12T08:20:12.210407",{"slug":787,"name":787,"fn":788,"description":789,"org":790,"tags":791,"stars":24,"repoUrl":25,"updatedAt":802},"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},[792,795,796,799],{"name":793,"slug":794,"type":16},"Automation","automation",{"name":11,"slug":8,"type":16},{"name":797,"slug":798,"type":16},"Configuration","configuration",{"name":800,"slug":801,"type":16},"Workflow Automation","workflow-automation","2026-07-12T08:20:28.730402",{"slug":804,"name":804,"fn":805,"description":806,"org":807,"tags":808,"stars":24,"repoUrl":25,"updatedAt":815},"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},[809,810,811,812],{"name":11,"slug":8,"type":16},{"name":22,"slug":23,"type":16},{"name":14,"slug":15,"type":16},{"name":813,"slug":814,"type":16},"Planning","planning","2026-07-12T08:20:17.194993",{"slug":84,"name":84,"fn":817,"description":818,"org":819,"tags":820,"stars":24,"repoUrl":25,"updatedAt":830},"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},[821,822,823,826,829],{"name":11,"slug":8,"type":16},{"name":760,"slug":761,"type":16},{"name":824,"slug":825,"type":16},"Java","java",{"name":827,"slug":828,"type":16},"Maven","maven",{"name":22,"slug":23,"type":16},"2026-07-12T08:20:04.462447",{"slug":832,"name":832,"fn":833,"description":834,"org":835,"tags":836,"stars":24,"repoUrl":25,"updatedAt":840},"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},[837,838,839],{"name":19,"slug":20,"type":16},{"name":11,"slug":8,"type":16},{"name":22,"slug":23,"type":16},"2026-07-12T08:20:08.228065",{"slug":842,"name":842,"fn":843,"description":844,"org":845,"tags":846,"stars":24,"repoUrl":25,"updatedAt":855},"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},[847,850,853,854],{"name":848,"slug":849,"type":16},".NET","net",{"name":851,"slug":852,"type":16},"API Development","api-development",{"name":793,"slug":794,"type":16},{"name":11,"slug":8,"type":16},"2026-07-12T08:19:23.722956",12,{"items":858,"total":1029},[859,878,893,910,923,938,951,966,977,991,1004,1017],{"slug":860,"name":860,"fn":861,"description":862,"org":863,"tags":864,"stars":875,"repoUrl":876,"updatedAt":877},"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},[865,866,869,872],{"name":11,"slug":8,"type":16},{"name":867,"slug":868,"type":16},"Compliance","compliance",{"name":870,"slug":871,"type":16},"Governance","governance",{"name":873,"slug":874,"type":16},"Policy","policy",1686,"https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-policy","2026-07-12T08:17:48.378432",{"slug":879,"name":879,"fn":880,"description":881,"org":882,"tags":883,"stars":890,"repoUrl":891,"updatedAt":892},"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},[884,885,886,889],{"name":11,"slug":8,"type":16},{"name":777,"slug":778,"type":16},{"name":887,"slug":888,"type":16},"Infrastructure as Code","infrastructure-as-code",{"name":22,"slug":23,"type":16},260,"https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-blueprints","2026-07-12T08:17:49.646405",{"slug":894,"name":894,"fn":895,"description":896,"org":897,"tags":898,"stars":907,"repoUrl":908,"updatedAt":909},"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},[899,900,901,904],{"name":851,"slug":852,"type":16},{"name":11,"slug":8,"type":16},{"name":902,"slug":903,"type":16},"Code Review","code-review",{"name":905,"slug":906,"type":16},"Documentation","documentation",133,"https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-tools","2026-07-12T08:17:43.350876",{"slug":911,"name":911,"fn":912,"description":913,"org":914,"tags":915,"stars":907,"repoUrl":908,"updatedAt":922},"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},[916,917,918,921],{"name":11,"slug":8,"type":16},{"name":777,"slug":778,"type":16},{"name":919,"slug":920,"type":16},"SDK","sdk",{"name":783,"slug":784,"type":16},"2026-07-12T08:17:44.718943",{"slug":924,"name":924,"fn":925,"description":926,"org":927,"tags":928,"stars":907,"repoUrl":908,"updatedAt":937},"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},[929,930,933,936],{"name":11,"slug":8,"type":16},{"name":931,"slug":932,"type":16},"GitHub","github",{"name":934,"slug":935,"type":16},"Project Management","project-management",{"name":919,"slug":920,"type":16},"2026-07-12T08:17:38.345387",{"slug":939,"name":939,"fn":940,"description":941,"org":942,"tags":943,"stars":907,"repoUrl":908,"updatedAt":950},"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},[944,945,948,949],{"name":11,"slug":8,"type":16},{"name":946,"slug":947,"type":16},"CI\u002FCD","ci-cd",{"name":777,"slug":778,"type":16},{"name":919,"slug":920,"type":16},"2026-07-12T08:17:34.27607",{"slug":952,"name":952,"fn":953,"description":954,"org":955,"tags":956,"stars":907,"repoUrl":908,"updatedAt":965},"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},[957,958,959,962],{"name":851,"slug":852,"type":16},{"name":11,"slug":8,"type":16},{"name":960,"slug":961,"type":16},"OpenAPI","openapi",{"name":963,"slug":964,"type":16},"Technical Writing","technical-writing","2026-07-12T08:17:39.603232",{"slug":967,"name":967,"fn":968,"description":969,"org":970,"tags":971,"stars":907,"repoUrl":908,"updatedAt":976},"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},[972,973,974,975],{"name":11,"slug":8,"type":16},{"name":946,"slug":947,"type":16},{"name":919,"slug":920,"type":16},{"name":783,"slug":784,"type":16},"2026-07-12T08:17:37.08523",{"slug":978,"name":978,"fn":979,"description":980,"org":981,"tags":982,"stars":907,"repoUrl":908,"updatedAt":990},"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},[983,986,989],{"name":984,"slug":985,"type":16},"LLM","llm",{"name":987,"slug":988,"type":16},"Performance","performance",{"name":963,"slug":964,"type":16},"2026-07-12T08:17:42.080413",{"slug":992,"name":992,"fn":993,"description":994,"org":995,"tags":996,"stars":907,"repoUrl":908,"updatedAt":1003},"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},[997,998,999,1002],{"name":11,"slug":8,"type":16},{"name":946,"slug":947,"type":16},{"name":1000,"slug":1001,"type":16},"Debugging","debugging",{"name":919,"slug":920,"type":16},"2026-07-12T08:17:40.821512",{"slug":1005,"name":1005,"fn":1006,"description":1007,"org":1008,"tags":1009,"stars":907,"repoUrl":908,"updatedAt":1016},"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},[1010,1011,1012,1015],{"name":11,"slug":8,"type":16},{"name":867,"slug":868,"type":16},{"name":1013,"slug":1014,"type":16},"Process Optimization","process-optimization",{"name":963,"slug":964,"type":16},"2026-07-12T08:17:32.970921",{"slug":1018,"name":1018,"fn":1019,"description":1020,"org":1021,"tags":1022,"stars":907,"repoUrl":908,"updatedAt":1028},"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},[1023,1024,1027],{"name":905,"slug":906,"type":16},{"name":1025,"slug":1026,"type":16},"Plugin Development","plugin-development",{"name":963,"slug":964,"type":16},"2026-07-12T08:17:35.873862",109]