[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-azure-azure-typespec-author":3,"mdc-ch2tf5-key":35,"related-repo-azure-azure-typespec-author":898,"related-org-azure-azure-typespec-author":993},{"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},"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},"azure","Azure (Microsoft)","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fazure.png","Azure",[13,15,18,21],{"name":11,"slug":8,"type":14},"tag",{"name":16,"slug":17,"type":14},"API Development","api-development",{"name":19,"slug":20,"type":14},"OpenAPI","openapi",{"name":22,"slug":23,"type":14},"Technical Writing","technical-writing",133,"https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-tools","2026-07-12T08:17:39.603232","MIT",248,[],{"repoUrl":25,"stars":24,"forks":28,"topics":31,"description":32},[],"Tools repository leveraged by the Azure SDK team.","https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-tools\u002Ftree\u002FHEAD\u002Fplugins\u002Fazure-sdk-tools\u002Fskills\u002Fazure-typespec-author","---\nname: azure-typespec-author\nlicense: MIT\nmetadata:\n  version: \"1.0.0\"\ndescription: \"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.\"\ncompatibility: \"azure-sdk-mcp server with azsdk_typespec_generate_authoring_plan and azsdk_run_typespec_validation tools\"\n---\n\n# Azure TypeSpec Author\n\n## MCP Tools\n\n| Tool                                                   | Purpose                                                   |\n| ------------------------------------------------------ | --------------------------------------------------------- |\n| `azure-sdk-mcp:azsdk_typespec_generate_authoring_plan` | Generate grounded authoring plan (General Authoring only) |\n| `azure-sdk-mcp:azsdk_run_typespec_validation`          | Validate TypeSpec                                         |\n\n**Prerequisite:** `azure-sdk-mcp` server must be running.\n\n## Constraints\n\n- **Always follow the full workflow** — even seemingly simple changes (e.g. adding a default value) can require complex versioning decorator changes. Never skip steps.\n- **Mandatory for ALL `.tsp` edits** — even a single `?` change can be breaking.\n- **Minimal, scoped edits** — only change what the request requires.\n- **Always validate** — run every steps in [validation](references\u002Fvalidation.md) after every edit.\n- **Always cite references** — provide links that justify the approach.\n- **Follow the authoring plan exactly** — code changes in Step 4 MUST follow the authoring plan generated in Step 3. Do not deviate by referring to existing code patterns in the TypeSpec project; the authoring plan is the single source of truth for what to change.\n\n---\n\n## Workflow\n\n> Classify → Intake → Plan → Apply → Validate\n\n### Progress Checklist\n\nCopy and update as you progress:\n\n- [ ] Step 1: Analyzed project & classified as: \\_\\_\\_\n- [ ] Step 2: Collected intake inputs\n- [ ] Step 3: Retrieved authoring plan\n- [ ] Step 4: Applied changes\n- [ ] Step 5: Validated with TypeSpec validation and `tsp compile .`\n\n### Step 1: Analyze & Classify\n\nFollow [analyze project & classify task](references\u002Fanalyze-project-and-classify-task.md).\n\nClassify as exactly one:\n\n| Task Type                 | When                                                                              | `azsdk_typespec_generate_authoring_plan` |\n| ------------------------- | --------------------------------------------------------------------------------- | ---------------------------------------- |\n| **API Version Evolution** | Adding a new preview or stable API version to an existing ARM service. (ARM only) | **MUST NOT** call                        |\n| **General Authoring**     | Any other `.tsp` change (resources, operations, models, properties, etc.)         | **MUST** call                            |\n\nState your classification explicitly before proceeding.\n\n---\n\n### Step 2: Intake\n\nCollect inputs needed for the change. Branch by task type:\n\n- **API Version Evolution** → Follow [API version evolution reference — Step 2](references\u002Fapi-version-evolution.md#step-2-intake).\n- **General Authoring** → Follow [intake guide](references\u002Fgeneral-authoring-intake.md).\n\n---\n\n### Step 3: Retrieve Authoring Plan\n\nCheck your classification from Step 1, then branch:\n\n- **API Version Evolution** → Follow [API version evolution reference — Step 3](references\u002Fapi-version-evolution.md#step-3-retrieve-authoring-plan). **MUST NOT** call `azsdk_typespec_generate_authoring_plan`.\n- **General Authoring** → **MUST** invoke `azure-sdk-mcp:azsdk_typespec_generate_authoring_plan` with:\n\n  | Parameter                 | Value                                                                                                                                                                       |\n  | ------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n  | `request`                 | User request (verbatim)                                                                                                                                                     |\n  | `additionalInformation`   | All content gathered from Steps 1–2 (intake analysis, user answers, relevant `.tsp` code read from the project), **including any case-specific Defaults noted in Step 2.2** |\n  | `typeSpecProjectRootPath` | TypeSpec project root path                                                                                                                                                  |\n\n  Do not proceed without an authoring plan from this tool.\n\n---\n\n### Step 4: Apply Changes\n\nConfirm uncertainties with the user, then make minimal `.tsp` edits.\n\n- **API Version Evolution** → Apply the plan from Step 3.\n- **General Authoring** → Apply the authoring plan from Step 3.\n\n---\n\n### Step 5: Validate\n\nSee [validation guide](references\u002Fvalidation.md) for sub-steps. You must run TypeSpec validation (5.1), `tsp compile .` (5.2), and example verification (5.3, API Version Evolution only).\n\n---\n\n## Reference Files\n\n| File                                                                                    | Purpose                                   |\n| --------------------------------------------------------------------------------------- | ----------------------------------------- |\n| [analyze-project-and-classify-task.md](references\u002Fanalyze-project-and-classify-task.md) | Step 1: project analysis + classification |\n| [api-version-evolution.md](references\u002Fapi-version-evolution.md)                         | Steps 2–4 for API Version Evolution tasks |\n| [general-authoring-intake.md](references\u002Fgeneral-authoring-intake.md)                   | Step 2 for General Authoring tasks        |\n| [agentic-search.md](references\u002Fagentic-search.md)                                       | Procedure for fetching external docs      |\n| [validation.md](references\u002Fvalidation.md)                                               | Step 5: validation sub-steps              |\n\n## Examples\n\n- \"Add a new preview API version 2026-01-01-preview for widget resource manager\"\n- \"Bump to stable version 2026-01-01 for Microsoft.Widget\"\n- \"Add an ARM resource named Asset with CRUD operations\"\n- \"Add a new property to the Widget model\"\n\n## Troubleshooting\n\n- **TypeSpec validation fails** — display all errors, provide fix suggestions, re-run validation.\n- **API Version Evolution** — use the versioning guide URLs in the [version evolution reference](references\u002Fapi-version-evolution.md); do not call the authoring plan tool.\n",{"data":36,"body":40},{"name":4,"license":27,"metadata":37,"description":6,"compatibility":39},{"version":38},"1.0.0","azure-sdk-mcp server with azsdk_typespec_generate_authoring_plan and azsdk_run_typespec_validation tools",{"type":41,"children":42},"root",[43,51,58,121,141,147,237,241,247,256,263,268,328,334,347,352,441,446,449,455,460,494,497,503,508,652,655,661,673,694,697,703,722,725,731,834,840,863,869],{"type":44,"tag":45,"props":46,"children":47},"element","h1",{"id":4},[48],{"type":49,"value":50},"text","Azure TypeSpec Author",{"type":44,"tag":52,"props":53,"children":55},"h2",{"id":54},"mcp-tools",[56],{"type":49,"value":57},"MCP Tools",{"type":44,"tag":59,"props":60,"children":61},"table",{},[62,81],{"type":44,"tag":63,"props":64,"children":65},"thead",{},[66],{"type":44,"tag":67,"props":68,"children":69},"tr",{},[70,76],{"type":44,"tag":71,"props":72,"children":73},"th",{},[74],{"type":49,"value":75},"Tool",{"type":44,"tag":71,"props":77,"children":78},{},[79],{"type":49,"value":80},"Purpose",{"type":44,"tag":82,"props":83,"children":84},"tbody",{},[85,104],{"type":44,"tag":67,"props":86,"children":87},{},[88,99],{"type":44,"tag":89,"props":90,"children":91},"td",{},[92],{"type":44,"tag":93,"props":94,"children":96},"code",{"className":95},[],[97],{"type":49,"value":98},"azure-sdk-mcp:azsdk_typespec_generate_authoring_plan",{"type":44,"tag":89,"props":100,"children":101},{},[102],{"type":49,"value":103},"Generate grounded authoring plan (General Authoring only)",{"type":44,"tag":67,"props":105,"children":106},{},[107,116],{"type":44,"tag":89,"props":108,"children":109},{},[110],{"type":44,"tag":93,"props":111,"children":113},{"className":112},[],[114],{"type":49,"value":115},"azure-sdk-mcp:azsdk_run_typespec_validation",{"type":44,"tag":89,"props":117,"children":118},{},[119],{"type":49,"value":120},"Validate TypeSpec",{"type":44,"tag":122,"props":123,"children":124},"p",{},[125,131,133,139],{"type":44,"tag":126,"props":127,"children":128},"strong",{},[129],{"type":49,"value":130},"Prerequisite:",{"type":49,"value":132}," ",{"type":44,"tag":93,"props":134,"children":136},{"className":135},[],[137],{"type":49,"value":138},"azure-sdk-mcp",{"type":49,"value":140}," server must be running.",{"type":44,"tag":52,"props":142,"children":144},{"id":143},"constraints",[145],{"type":49,"value":146},"Constraints",{"type":44,"tag":148,"props":149,"children":150},"ul",{},[151,162,188,198,217,227],{"type":44,"tag":152,"props":153,"children":154},"li",{},[155,160],{"type":44,"tag":126,"props":156,"children":157},{},[158],{"type":49,"value":159},"Always follow the full workflow",{"type":49,"value":161}," — even seemingly simple changes (e.g. adding a default value) can require complex versioning decorator changes. Never skip steps.",{"type":44,"tag":152,"props":163,"children":164},{},[165,178,180,186],{"type":44,"tag":126,"props":166,"children":167},{},[168,170,176],{"type":49,"value":169},"Mandatory for ALL ",{"type":44,"tag":93,"props":171,"children":173},{"className":172},[],[174],{"type":49,"value":175},".tsp",{"type":49,"value":177}," edits",{"type":49,"value":179}," — even a single ",{"type":44,"tag":93,"props":181,"children":183},{"className":182},[],[184],{"type":49,"value":185},"?",{"type":49,"value":187}," change can be breaking.",{"type":44,"tag":152,"props":189,"children":190},{},[191,196],{"type":44,"tag":126,"props":192,"children":193},{},[194],{"type":49,"value":195},"Minimal, scoped edits",{"type":49,"value":197}," — only change what the request requires.",{"type":44,"tag":152,"props":199,"children":200},{},[201,206,208,215],{"type":44,"tag":126,"props":202,"children":203},{},[204],{"type":49,"value":205},"Always validate",{"type":49,"value":207}," — run every steps in ",{"type":44,"tag":209,"props":210,"children":212},"a",{"href":211},"references\u002Fvalidation.md",[213],{"type":49,"value":214},"validation",{"type":49,"value":216}," after every edit.",{"type":44,"tag":152,"props":218,"children":219},{},[220,225],{"type":44,"tag":126,"props":221,"children":222},{},[223],{"type":49,"value":224},"Always cite references",{"type":49,"value":226}," — provide links that justify the approach.",{"type":44,"tag":152,"props":228,"children":229},{},[230,235],{"type":44,"tag":126,"props":231,"children":232},{},[233],{"type":49,"value":234},"Follow the authoring plan exactly",{"type":49,"value":236}," — code changes in Step 4 MUST follow the authoring plan generated in Step 3. Do not deviate by referring to existing code patterns in the TypeSpec project; the authoring plan is the single source of truth for what to change.",{"type":44,"tag":238,"props":239,"children":240},"hr",{},[],{"type":44,"tag":52,"props":242,"children":244},{"id":243},"workflow",[245],{"type":49,"value":246},"Workflow",{"type":44,"tag":248,"props":249,"children":250},"blockquote",{},[251],{"type":44,"tag":122,"props":252,"children":253},{},[254],{"type":49,"value":255},"Classify → Intake → Plan → Apply → Validate",{"type":44,"tag":257,"props":258,"children":260},"h3",{"id":259},"progress-checklist",[261],{"type":49,"value":262},"Progress Checklist",{"type":44,"tag":122,"props":264,"children":265},{},[266],{"type":49,"value":267},"Copy and update as you progress:",{"type":44,"tag":148,"props":269,"children":272},{"className":270},[271],"contains-task-list",[273,286,295,304,313],{"type":44,"tag":152,"props":274,"children":277},{"className":275},[276],"task-list-item",[278,284],{"type":44,"tag":279,"props":280,"children":283},"input",{"disabled":281,"type":282},true,"checkbox",[],{"type":49,"value":285}," Step 1: Analyzed project & classified as: ___",{"type":44,"tag":152,"props":287,"children":289},{"className":288},[276],[290,293],{"type":44,"tag":279,"props":291,"children":292},{"disabled":281,"type":282},[],{"type":49,"value":294}," Step 2: Collected intake inputs",{"type":44,"tag":152,"props":296,"children":298},{"className":297},[276],[299,302],{"type":44,"tag":279,"props":300,"children":301},{"disabled":281,"type":282},[],{"type":49,"value":303}," Step 3: Retrieved authoring plan",{"type":44,"tag":152,"props":305,"children":307},{"className":306},[276],[308,311],{"type":44,"tag":279,"props":309,"children":310},{"disabled":281,"type":282},[],{"type":49,"value":312}," Step 4: Applied changes",{"type":44,"tag":152,"props":314,"children":316},{"className":315},[276],[317,320,322],{"type":44,"tag":279,"props":318,"children":319},{"disabled":281,"type":282},[],{"type":49,"value":321}," Step 5: Validated with TypeSpec validation and ",{"type":44,"tag":93,"props":323,"children":325},{"className":324},[],[326],{"type":49,"value":327},"tsp compile .",{"type":44,"tag":257,"props":329,"children":331},{"id":330},"step-1-analyze-classify",[332],{"type":49,"value":333},"Step 1: Analyze & Classify",{"type":44,"tag":122,"props":335,"children":336},{},[337,339,345],{"type":49,"value":338},"Follow ",{"type":44,"tag":209,"props":340,"children":342},{"href":341},"references\u002Fanalyze-project-and-classify-task.md",[343],{"type":49,"value":344},"analyze project & classify task",{"type":49,"value":346},".",{"type":44,"tag":122,"props":348,"children":349},{},[350],{"type":49,"value":351},"Classify as exactly one:",{"type":44,"tag":59,"props":353,"children":354},{},[355,380],{"type":44,"tag":63,"props":356,"children":357},{},[358],{"type":44,"tag":67,"props":359,"children":360},{},[361,366,371],{"type":44,"tag":71,"props":362,"children":363},{},[364],{"type":49,"value":365},"Task Type",{"type":44,"tag":71,"props":367,"children":368},{},[369],{"type":49,"value":370},"When",{"type":44,"tag":71,"props":372,"children":373},{},[374],{"type":44,"tag":93,"props":375,"children":377},{"className":376},[],[378],{"type":49,"value":379},"azsdk_typespec_generate_authoring_plan",{"type":44,"tag":82,"props":381,"children":382},{},[383,409],{"type":44,"tag":67,"props":384,"children":385},{},[386,394,399],{"type":44,"tag":89,"props":387,"children":388},{},[389],{"type":44,"tag":126,"props":390,"children":391},{},[392],{"type":49,"value":393},"API Version Evolution",{"type":44,"tag":89,"props":395,"children":396},{},[397],{"type":49,"value":398},"Adding a new preview or stable API version to an existing ARM service. (ARM only)",{"type":44,"tag":89,"props":400,"children":401},{},[402,407],{"type":44,"tag":126,"props":403,"children":404},{},[405],{"type":49,"value":406},"MUST NOT",{"type":49,"value":408}," call",{"type":44,"tag":67,"props":410,"children":411},{},[412,420,432],{"type":44,"tag":89,"props":413,"children":414},{},[415],{"type":44,"tag":126,"props":416,"children":417},{},[418],{"type":49,"value":419},"General Authoring",{"type":44,"tag":89,"props":421,"children":422},{},[423,425,430],{"type":49,"value":424},"Any other ",{"type":44,"tag":93,"props":426,"children":428},{"className":427},[],[429],{"type":49,"value":175},{"type":49,"value":431}," change (resources, operations, models, properties, etc.)",{"type":44,"tag":89,"props":433,"children":434},{},[435,440],{"type":44,"tag":126,"props":436,"children":437},{},[438],{"type":49,"value":439},"MUST",{"type":49,"value":408},{"type":44,"tag":122,"props":442,"children":443},{},[444],{"type":49,"value":445},"State your classification explicitly before proceeding.",{"type":44,"tag":238,"props":447,"children":448},{},[],{"type":44,"tag":257,"props":450,"children":452},{"id":451},"step-2-intake",[453],{"type":49,"value":454},"Step 2: Intake",{"type":44,"tag":122,"props":456,"children":457},{},[458],{"type":49,"value":459},"Collect inputs needed for the change. Branch by task type:",{"type":44,"tag":148,"props":461,"children":462},{},[463,479],{"type":44,"tag":152,"props":464,"children":465},{},[466,470,472,478],{"type":44,"tag":126,"props":467,"children":468},{},[469],{"type":49,"value":393},{"type":49,"value":471}," → Follow ",{"type":44,"tag":209,"props":473,"children":475},{"href":474},"references\u002Fapi-version-evolution.md#step-2-intake",[476],{"type":49,"value":477},"API version evolution reference — Step 2",{"type":49,"value":346},{"type":44,"tag":152,"props":480,"children":481},{},[482,486,487,493],{"type":44,"tag":126,"props":483,"children":484},{},[485],{"type":49,"value":419},{"type":49,"value":471},{"type":44,"tag":209,"props":488,"children":490},{"href":489},"references\u002Fgeneral-authoring-intake.md",[491],{"type":49,"value":492},"intake guide",{"type":49,"value":346},{"type":44,"tag":238,"props":495,"children":496},{},[],{"type":44,"tag":257,"props":498,"children":500},{"id":499},"step-3-retrieve-authoring-plan",[501],{"type":49,"value":502},"Step 3: Retrieve Authoring Plan",{"type":44,"tag":122,"props":504,"children":505},{},[506],{"type":49,"value":507},"Check your classification from Step 1, then branch:",{"type":44,"tag":148,"props":509,"children":510},{},[511,539],{"type":44,"tag":152,"props":512,"children":513},{},[514,518,519,525,527,531,533,538],{"type":44,"tag":126,"props":515,"children":516},{},[517],{"type":49,"value":393},{"type":49,"value":471},{"type":44,"tag":209,"props":520,"children":522},{"href":521},"references\u002Fapi-version-evolution.md#step-3-retrieve-authoring-plan",[523],{"type":49,"value":524},"API version evolution reference — Step 3",{"type":49,"value":526},". ",{"type":44,"tag":126,"props":528,"children":529},{},[530],{"type":49,"value":406},{"type":49,"value":532}," call ",{"type":44,"tag":93,"props":534,"children":536},{"className":535},[],[537],{"type":49,"value":379},{"type":49,"value":346},{"type":44,"tag":152,"props":540,"children":541},{},[542,546,548,552,554,559,561,646,650],{"type":44,"tag":126,"props":543,"children":544},{},[545],{"type":49,"value":419},{"type":49,"value":547}," → ",{"type":44,"tag":126,"props":549,"children":550},{},[551],{"type":49,"value":439},{"type":49,"value":553}," invoke ",{"type":44,"tag":93,"props":555,"children":557},{"className":556},[],[558],{"type":49,"value":98},{"type":49,"value":560}," with:",{"type":44,"tag":59,"props":562,"children":563},{},[564,580],{"type":44,"tag":63,"props":565,"children":566},{},[567],{"type":44,"tag":67,"props":568,"children":569},{},[570,575],{"type":44,"tag":71,"props":571,"children":572},{},[573],{"type":49,"value":574},"Parameter",{"type":44,"tag":71,"props":576,"children":577},{},[578],{"type":49,"value":579},"Value",{"type":44,"tag":82,"props":581,"children":582},{},[583,600,629],{"type":44,"tag":67,"props":584,"children":585},{},[586,595],{"type":44,"tag":89,"props":587,"children":588},{},[589],{"type":44,"tag":93,"props":590,"children":592},{"className":591},[],[593],{"type":49,"value":594},"request",{"type":44,"tag":89,"props":596,"children":597},{},[598],{"type":49,"value":599},"User request (verbatim)",{"type":44,"tag":67,"props":601,"children":602},{},[603,612],{"type":44,"tag":89,"props":604,"children":605},{},[606],{"type":44,"tag":93,"props":607,"children":609},{"className":608},[],[610],{"type":49,"value":611},"additionalInformation",{"type":44,"tag":89,"props":613,"children":614},{},[615,617,622,624],{"type":49,"value":616},"All content gathered from Steps 1–2 (intake analysis, user answers, relevant ",{"type":44,"tag":93,"props":618,"children":620},{"className":619},[],[621],{"type":49,"value":175},{"type":49,"value":623}," code read from the project), ",{"type":44,"tag":126,"props":625,"children":626},{},[627],{"type":49,"value":628},"including any case-specific Defaults noted in Step 2.2",{"type":44,"tag":67,"props":630,"children":631},{},[632,641],{"type":44,"tag":89,"props":633,"children":634},{},[635],{"type":44,"tag":93,"props":636,"children":638},{"className":637},[],[639],{"type":49,"value":640},"typeSpecProjectRootPath",{"type":44,"tag":89,"props":642,"children":643},{},[644],{"type":49,"value":645},"TypeSpec project root path",{"type":44,"tag":647,"props":648,"children":649},"br",{},[],{"type":49,"value":651},"Do not proceed without an authoring plan from this tool.",{"type":44,"tag":238,"props":653,"children":654},{},[],{"type":44,"tag":257,"props":656,"children":658},{"id":657},"step-4-apply-changes",[659],{"type":49,"value":660},"Step 4: Apply Changes",{"type":44,"tag":122,"props":662,"children":663},{},[664,666,671],{"type":49,"value":665},"Confirm uncertainties with the user, then make minimal ",{"type":44,"tag":93,"props":667,"children":669},{"className":668},[],[670],{"type":49,"value":175},{"type":49,"value":672}," edits.",{"type":44,"tag":148,"props":674,"children":675},{},[676,685],{"type":44,"tag":152,"props":677,"children":678},{},[679,683],{"type":44,"tag":126,"props":680,"children":681},{},[682],{"type":49,"value":393},{"type":49,"value":684}," → Apply the plan from Step 3.",{"type":44,"tag":152,"props":686,"children":687},{},[688,692],{"type":44,"tag":126,"props":689,"children":690},{},[691],{"type":49,"value":419},{"type":49,"value":693}," → Apply the authoring plan from Step 3.",{"type":44,"tag":238,"props":695,"children":696},{},[],{"type":44,"tag":257,"props":698,"children":700},{"id":699},"step-5-validate",[701],{"type":49,"value":702},"Step 5: Validate",{"type":44,"tag":122,"props":704,"children":705},{},[706,708,713,715,720],{"type":49,"value":707},"See ",{"type":44,"tag":209,"props":709,"children":710},{"href":211},[711],{"type":49,"value":712},"validation guide",{"type":49,"value":714}," for sub-steps. You must run TypeSpec validation (5.1), ",{"type":44,"tag":93,"props":716,"children":718},{"className":717},[],[719],{"type":49,"value":327},{"type":49,"value":721}," (5.2), and example verification (5.3, API Version Evolution only).",{"type":44,"tag":238,"props":723,"children":724},{},[],{"type":44,"tag":52,"props":726,"children":728},{"id":727},"reference-files",[729],{"type":49,"value":730},"Reference Files",{"type":44,"tag":59,"props":732,"children":733},{},[734,749],{"type":44,"tag":63,"props":735,"children":736},{},[737],{"type":44,"tag":67,"props":738,"children":739},{},[740,745],{"type":44,"tag":71,"props":741,"children":742},{},[743],{"type":49,"value":744},"File",{"type":44,"tag":71,"props":746,"children":747},{},[748],{"type":49,"value":80},{"type":44,"tag":82,"props":750,"children":751},{},[752,768,785,801,818],{"type":44,"tag":67,"props":753,"children":754},{},[755,763],{"type":44,"tag":89,"props":756,"children":757},{},[758],{"type":44,"tag":209,"props":759,"children":760},{"href":341},[761],{"type":49,"value":762},"analyze-project-and-classify-task.md",{"type":44,"tag":89,"props":764,"children":765},{},[766],{"type":49,"value":767},"Step 1: project analysis + classification",{"type":44,"tag":67,"props":769,"children":770},{},[771,780],{"type":44,"tag":89,"props":772,"children":773},{},[774],{"type":44,"tag":209,"props":775,"children":777},{"href":776},"references\u002Fapi-version-evolution.md",[778],{"type":49,"value":779},"api-version-evolution.md",{"type":44,"tag":89,"props":781,"children":782},{},[783],{"type":49,"value":784},"Steps 2–4 for API Version Evolution tasks",{"type":44,"tag":67,"props":786,"children":787},{},[788,796],{"type":44,"tag":89,"props":789,"children":790},{},[791],{"type":44,"tag":209,"props":792,"children":793},{"href":489},[794],{"type":49,"value":795},"general-authoring-intake.md",{"type":44,"tag":89,"props":797,"children":798},{},[799],{"type":49,"value":800},"Step 2 for General Authoring tasks",{"type":44,"tag":67,"props":802,"children":803},{},[804,813],{"type":44,"tag":89,"props":805,"children":806},{},[807],{"type":44,"tag":209,"props":808,"children":810},{"href":809},"references\u002Fagentic-search.md",[811],{"type":49,"value":812},"agentic-search.md",{"type":44,"tag":89,"props":814,"children":815},{},[816],{"type":49,"value":817},"Procedure for fetching external docs",{"type":44,"tag":67,"props":819,"children":820},{},[821,829],{"type":44,"tag":89,"props":822,"children":823},{},[824],{"type":44,"tag":209,"props":825,"children":826},{"href":211},[827],{"type":49,"value":828},"validation.md",{"type":44,"tag":89,"props":830,"children":831},{},[832],{"type":49,"value":833},"Step 5: validation sub-steps",{"type":44,"tag":52,"props":835,"children":837},{"id":836},"examples",[838],{"type":49,"value":839},"Examples",{"type":44,"tag":148,"props":841,"children":842},{},[843,848,853,858],{"type":44,"tag":152,"props":844,"children":845},{},[846],{"type":49,"value":847},"\"Add a new preview API version 2026-01-01-preview for widget resource manager\"",{"type":44,"tag":152,"props":849,"children":850},{},[851],{"type":49,"value":852},"\"Bump to stable version 2026-01-01 for Microsoft.Widget\"",{"type":44,"tag":152,"props":854,"children":855},{},[856],{"type":49,"value":857},"\"Add an ARM resource named Asset with CRUD operations\"",{"type":44,"tag":152,"props":859,"children":860},{},[861],{"type":49,"value":862},"\"Add a new property to the Widget model\"",{"type":44,"tag":52,"props":864,"children":866},{"id":865},"troubleshooting",[867],{"type":49,"value":868},"Troubleshooting",{"type":44,"tag":148,"props":870,"children":871},{},[872,882],{"type":44,"tag":152,"props":873,"children":874},{},[875,880],{"type":44,"tag":126,"props":876,"children":877},{},[878],{"type":49,"value":879},"TypeSpec validation fails",{"type":49,"value":881}," — display all errors, provide fix suggestions, re-run validation.",{"type":44,"tag":152,"props":883,"children":884},{},[885,889,891,896],{"type":44,"tag":126,"props":886,"children":887},{},[888],{"type":49,"value":393},{"type":49,"value":890}," — use the versioning guide URLs in the ",{"type":44,"tag":209,"props":892,"children":893},{"href":776},[894],{"type":49,"value":895},"version evolution reference",{"type":49,"value":897},"; do not call the authoring plan tool.",{"items":899,"total":992},[900,915,932,947,960,967,978],{"slug":901,"name":901,"fn":902,"description":903,"org":904,"tags":905,"stars":24,"repoUrl":25,"updatedAt":914},"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},[906,907,908,911],{"name":16,"slug":17,"type":14},{"name":11,"slug":8,"type":14},{"name":909,"slug":910,"type":14},"Code Review","code-review",{"name":912,"slug":913,"type":14},"Documentation","documentation","2026-07-12T08:17:43.350876",{"slug":916,"name":916,"fn":917,"description":918,"org":919,"tags":920,"stars":24,"repoUrl":25,"updatedAt":931},"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},[921,922,925,928],{"name":11,"slug":8,"type":14},{"name":923,"slug":924,"type":14},"Deployment","deployment",{"name":926,"slug":927,"type":14},"SDK","sdk",{"name":929,"slug":930,"type":14},"Testing","testing","2026-07-12T08:17:44.718943",{"slug":933,"name":933,"fn":934,"description":935,"org":936,"tags":937,"stars":24,"repoUrl":25,"updatedAt":946},"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},[938,939,942,945],{"name":11,"slug":8,"type":14},{"name":940,"slug":941,"type":14},"GitHub","github",{"name":943,"slug":944,"type":14},"Project Management","project-management",{"name":926,"slug":927,"type":14},"2026-07-12T08:17:38.345387",{"slug":948,"name":948,"fn":949,"description":950,"org":951,"tags":952,"stars":24,"repoUrl":25,"updatedAt":959},"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},[953,954,957,958],{"name":11,"slug":8,"type":14},{"name":955,"slug":956,"type":14},"CI\u002FCD","ci-cd",{"name":923,"slug":924,"type":14},{"name":926,"slug":927,"type":14},"2026-07-12T08:17:34.27607",{"slug":4,"name":4,"fn":5,"description":6,"org":961,"tags":962,"stars":24,"repoUrl":25,"updatedAt":26},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[963,964,965,966],{"name":16,"slug":17,"type":14},{"name":11,"slug":8,"type":14},{"name":19,"slug":20,"type":14},{"name":22,"slug":23,"type":14},{"slug":968,"name":968,"fn":969,"description":970,"org":971,"tags":972,"stars":24,"repoUrl":25,"updatedAt":977},"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},[973,974,975,976],{"name":11,"slug":8,"type":14},{"name":955,"slug":956,"type":14},{"name":926,"slug":927,"type":14},{"name":929,"slug":930,"type":14},"2026-07-12T08:17:37.08523",{"slug":979,"name":979,"fn":980,"description":981,"org":982,"tags":983,"stars":24,"repoUrl":25,"updatedAt":991},"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},[984,987,990],{"name":985,"slug":986,"type":14},"LLM","llm",{"name":988,"slug":989,"type":14},"Performance","performance",{"name":22,"slug":23,"type":14},"2026-07-12T08:17:42.080413",10,{"items":994,"total":1117},[995,1014,1031,1038,1045,1052,1059,1066,1073,1079,1092,1105],{"slug":996,"name":996,"fn":997,"description":998,"org":999,"tags":1000,"stars":1011,"repoUrl":1012,"updatedAt":1013},"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},[1001,1002,1005,1008],{"name":11,"slug":8,"type":14},{"name":1003,"slug":1004,"type":14},"Compliance","compliance",{"name":1006,"slug":1007,"type":14},"Governance","governance",{"name":1009,"slug":1010,"type":14},"Policy","policy",1686,"https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-policy","2026-07-12T08:17:48.378432",{"slug":1015,"name":1015,"fn":1016,"description":1017,"org":1018,"tags":1019,"stars":1028,"repoUrl":1029,"updatedAt":1030},"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},[1020,1021,1022,1025],{"name":11,"slug":8,"type":14},{"name":923,"slug":924,"type":14},{"name":1023,"slug":1024,"type":14},"Infrastructure as Code","infrastructure-as-code",{"name":1026,"slug":1027,"type":14},"Migration","migration",260,"https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-blueprints","2026-07-12T08:17:49.646405",{"slug":901,"name":901,"fn":902,"description":903,"org":1032,"tags":1033,"stars":24,"repoUrl":25,"updatedAt":914},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1034,1035,1036,1037],{"name":16,"slug":17,"type":14},{"name":11,"slug":8,"type":14},{"name":909,"slug":910,"type":14},{"name":912,"slug":913,"type":14},{"slug":916,"name":916,"fn":917,"description":918,"org":1039,"tags":1040,"stars":24,"repoUrl":25,"updatedAt":931},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1041,1042,1043,1044],{"name":11,"slug":8,"type":14},{"name":923,"slug":924,"type":14},{"name":926,"slug":927,"type":14},{"name":929,"slug":930,"type":14},{"slug":933,"name":933,"fn":934,"description":935,"org":1046,"tags":1047,"stars":24,"repoUrl":25,"updatedAt":946},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1048,1049,1050,1051],{"name":11,"slug":8,"type":14},{"name":940,"slug":941,"type":14},{"name":943,"slug":944,"type":14},{"name":926,"slug":927,"type":14},{"slug":948,"name":948,"fn":949,"description":950,"org":1053,"tags":1054,"stars":24,"repoUrl":25,"updatedAt":959},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1055,1056,1057,1058],{"name":11,"slug":8,"type":14},{"name":955,"slug":956,"type":14},{"name":923,"slug":924,"type":14},{"name":926,"slug":927,"type":14},{"slug":4,"name":4,"fn":5,"description":6,"org":1060,"tags":1061,"stars":24,"repoUrl":25,"updatedAt":26},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1062,1063,1064,1065],{"name":16,"slug":17,"type":14},{"name":11,"slug":8,"type":14},{"name":19,"slug":20,"type":14},{"name":22,"slug":23,"type":14},{"slug":968,"name":968,"fn":969,"description":970,"org":1067,"tags":1068,"stars":24,"repoUrl":25,"updatedAt":977},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1069,1070,1071,1072],{"name":11,"slug":8,"type":14},{"name":955,"slug":956,"type":14},{"name":926,"slug":927,"type":14},{"name":929,"slug":930,"type":14},{"slug":979,"name":979,"fn":980,"description":981,"org":1074,"tags":1075,"stars":24,"repoUrl":25,"updatedAt":991},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1076,1077,1078],{"name":985,"slug":986,"type":14},{"name":988,"slug":989,"type":14},{"name":22,"slug":23,"type":14},{"slug":1080,"name":1080,"fn":1081,"description":1082,"org":1083,"tags":1084,"stars":24,"repoUrl":25,"updatedAt":1091},"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},[1085,1086,1087,1090],{"name":11,"slug":8,"type":14},{"name":955,"slug":956,"type":14},{"name":1088,"slug":1089,"type":14},"Debugging","debugging",{"name":926,"slug":927,"type":14},"2026-07-12T08:17:40.821512",{"slug":1093,"name":1093,"fn":1094,"description":1095,"org":1096,"tags":1097,"stars":24,"repoUrl":25,"updatedAt":1104},"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},[1098,1099,1100,1103],{"name":11,"slug":8,"type":14},{"name":1003,"slug":1004,"type":14},{"name":1101,"slug":1102,"type":14},"Process Optimization","process-optimization",{"name":22,"slug":23,"type":14},"2026-07-12T08:17:32.970921",{"slug":1106,"name":1106,"fn":1107,"description":1108,"org":1109,"tags":1110,"stars":24,"repoUrl":25,"updatedAt":1116},"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},[1111,1112,1115],{"name":912,"slug":913,"type":14},{"name":1113,"slug":1114,"type":14},"Plugin Development","plugin-development",{"name":22,"slug":23,"type":14},"2026-07-12T08:17:35.873862",109]