[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6BTDEC1PGPBA8S4X5FDYVSH":3,"skill-same:01M6BTDEC1PGPBA8S4X5FDYVSH":72},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":43,"commitSha":44,"skillDirectory":45,"forksCount":46,"repositoryHtmlUrl":47,"repositoryHomepageUrl":6,"ownerHtmlUrl":48,"ownerBlogUrl":49,"ownerDescription":50,"updatedAt":51,"install":52,"resources":65},"01M6BTDEC1PGPBA8S4X5FDYVSH","translate-a-sample",null,"Translate the Azure SDK sample from python to C# and generate markdownn file for the sample. Parameters: \u003Ccs_root> C# SDK repository root; \u003Cpython_root> python SDK repository root; \u003Cpackage_name> Package name: one of Azure.AI.Projects, Azure.AI.Projects.Agents or Azure.AI.Extensions.OpenAI; \u003Csample_name> The name of sample file in Python SDK repository.","Azure\u002Fazure-sdk-for-net","Azure","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6844498?v=4","01M6BT15ZBDTV4D9RM7HCC4D8A","Microsoft Azure","01M6BT163EEHB7Y52MKZJ322Q8",6073,"MIT","https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-for-net\u002Fblob\u002Fmain\u002Fsdk\u002Fai\u002F.github\u002Fskills\u002Fazure-ai-projects-sample-skill\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"translate","sample","translate a sample","azure sdk","for","extensions","root","C#","name","python sdk","projects","python","repository","file","package","openai","generate","azure","sdk","2026-11-10 10:12:30",false,"---\nname: translate-a-sample\ndescription: \"Translate the Azure SDK sample from python to C# and generate markdownn file for the sample. Parameters: \u003Ccs_root> C# SDK repository root; \u003Cpython_root> python SDK repository root; \u003Cpackage_name> Package name: one of Azure.AI.Projects, Azure.AI.Projects.Agents or Azure.AI.Extensions.OpenAI; \u003Csample_name> The name of sample file in Python SDK repository.\"\n---\n\n# Basic information.\nThis skill require four inputs: \u003Cpython_root> (repository root for python) and \u003Ccs_root> (repository root for C#), \u003Cpackage_name>  and \u003Csample_name> the sample to be processed. the C# package name. All the consequent paths are given relatively to the repository root. Python package is located in \u003Cpython_root>\u002Fsdk\u002Fai\u002Fazure-ai-projects, C# project is located in \u003Ccs_root>\u002Fsdk\u002Fai\u002F\u003Cpackage_name>. All python samples are located in \u003Cpython_root>\u002Fsdk\u002Fai\u002Fazure-ai-projects\u002Fsamples, they are organized by folders according to their topic. In most cases the sample has sync and async implementation. For example, `feature.py` and `feature_async.py` are demonstrating sync and async features. C# sample consists of two parts: the source code in the folder \u003Ccs_root>\u002Fsdk\u002Fai\u002F\u003Cpackage_name>\u002Ftests\u002FSamples and corresponding .md files go to \u003Ccs_root>\u002Fsdk\u002Fai\u002F\u003Cpackage_name>\u002FSamples.\n\n# Instruction\nPlease analyze the sample provided sample in \u003Csample_name> and generate the sample and .md file in C#. The C# file should demonstrate both sync and async API when appropriate. See the example below:\n\n## Asynchronous Sample\n```C#\n#if SNIPPET\n        var projectEndpoint = System.Environment.GetEnvironmentVariable(\"FOUNDRY_PROJECT_ENDPOINT\");\n        var modelDeploymentName = System.Environment.GetEnvironmentVariable(\"FOUNDRY_MODEL_NAME\");\n#else\n        var projectEndpoint = TestEnvironment.FOUNDRY_PROJECT_ENDPOINT;\n        var modelDeploymentName = TestEnvironment.FOUNDRY_MODEL_NAME;\n#endif\n        AIProjectClient projectClient = new(endpoint: new Uri(projectEndpoint), tokenProvider: new DefaultAzureCredential());\nDeclarativeAgentDefinition agentDefinition = new(model: modelDeploymentName)\n{\n    Instructions = \"You are a prompt agent.\"\n};\nProjectsAgentVersion agentVersion1 = await projectClient.AgentAdministrationClient.CreateAgentVersionAsync(\n    agentName: \"myAgent1\",\n    options: new(agentDefinition));\n```\n\n## Synchronous Sample\n```C#\n#if SNIPPET\n        var projectEndpoint = System.Environment.GetEnvironmentVariable(\"FOUNDRY_PROJECT_ENDPOINT\");\n        var modelDeploymentName = System.Environment.GetEnvironmentVariable(\"FOUNDRY_MODEL_NAME\");\n#else\n        var projectEndpoint = TestEnvironment.FOUNDRY_PROJECT_ENDPOINT;\n        var modelDeploymentName = TestEnvironment.FOUNDRY_MODEL_NAME;\n#endif\n        AIProjectClient projectClient = new(endpoint: new Uri(projectEndpoint), tokenProvider: new DefaultAzureCredential());\nDeclarativeAgentDefinition agentDefinition = new(model: modelDeploymentName)\n{\n    Instructions = \"You are a prompt agent.\"\n};\nProjectsAgentVersion agentVersion1 = projectClient.AgentAdministrationClient.CreateAgentVersion(\n    agentName: \"myAgent1\",\n    options: new(agentDefinition));\n```\n\nThe code needs tro be logically split into blocks, which usage should be explained in .md file. Each blocks is marked in the source code as follows:\n\n```C#\n#region Snippet:Sample_FunctionFoo_MySampl_Async\npublic async Task Foo()\n{\n    await Task.Delay(1000);\n    Console.WriteLine(\"Hello world!\")\n} \n#endregion\n```\n\nThese blocks will be rendered in the .md file code block based on the region name (it will be done by automation):\n```C# Snippet:Sample_FunctionFoo_MySampl_Async\npublic async Task Foo()\n{\n    await Task.Delay(1000);\n    Console.WriteLine(\"Hello world!\")\n}\n```\n\nIf the code block has sync and async counterpart, please create code block for each of them. Provide the short explanation for each code block. \nTo make sure that it is the case, please run the script below. If there are errors, please iterate over it until the script will complete without errors.\n\n```powershell\ncd \u003Ccs_root>\neng\\scripts\\Update-Snippets.ps1 ai\\\u003Cpackage>\n```\n\n```bash\ncd \u003Ccs_root>\neng\\scripts\\Update-Snippets.ps1 ai\\\u003Cpackage>\n```\n","# Basic information.\nThis skill require four inputs: \u003Cpython_root> (repository root for python) and \u003Ccs_root> (repository root for C#), \u003Cpackage_name>  and \u003Csample_name> the sample to be processed. the C# package name. All the consequent paths are given relatively to the repository root. Python package is located in \u003Cpython_root>\u002Fsdk\u002Fai\u002Fazure-ai-projects, C# project is located in \u003Ccs_root>\u002Fsdk\u002Fai\u002F\u003Cpackage_name>. All python samples are located in \u003Cpython_root>\u002Fsdk\u002Fai\u002Fazure-ai-projects\u002Fsamples, they are organized by folders according to their topic. In most cases the sample has sync and async implementation. For example, `feature.py` and `feature_async.py` are demonstrating sync and async features. C# sample consists of two parts: the source code in the folder \u003Ccs_root>\u002Fsdk\u002Fai\u002F\u003Cpackage_name>\u002Ftests\u002FSamples and corresponding .md files go to \u003Ccs_root>\u002Fsdk\u002Fai\u002F\u003Cpackage_name>\u002FSamples.\n\n# Instruction\nPlease analyze the sample provided sample in \u003Csample_name> and generate the sample and .md file in C#. The C# file should demonstrate both sync and async API when appropriate. See the example below:\n\n## Asynchronous Sample\n```C#\n#if SNIPPET\n        var projectEndpoint = System.Environment.GetEnvironmentVariable(\"FOUNDRY_PROJECT_ENDPOINT\");\n        var modelDeploymentName = System.Environment.GetEnvironmentVariable(\"FOUNDRY_MODEL_NAME\");\n#else\n        var projectEndpoint = TestEnvironment.FOUNDRY_PROJECT_ENDPOINT;\n        var modelDeploymentName = TestEnvironment.FOUNDRY_MODEL_NAME;\n#endif\n        AIProjectClient projectClient = new(endpoint: new Uri(projectEndpoint), tokenProvider: new DefaultAzureCredential());\nDeclarativeAgentDefinition agentDefinition = new(model: modelDeploymentName)\n{\n    Instructions = \"You are a prompt agent.\"\n};\nProjectsAgentVersion agentVersion1 = await projectClient.AgentAdministrationClient.CreateAgentVersionAsync(\n    agentName: \"myAgent1\",\n    options: new(agentDefinition));\n```\n\n## Synchronous Sample\n```C#\n#if SNIPPET\n        var projectEndpoint = System.Environment.GetEnvironmentVariable(\"FOUNDRY_PROJECT_ENDPOINT\");\n        var modelDeploymentName = System.Environment.GetEnvironmentVariable(\"FOUNDRY_MODEL_NAME\");\n#else\n        var projectEndpoint = TestEnvironment.FOUNDRY_PROJECT_ENDPOINT;\n        var modelDeploymentName = TestEnvironment.FOUNDRY_MODEL_NAME;\n#endif\n        AIProjectClient projectClient = new(endpoint: new Uri(projectEndpoint), tokenProvider: new DefaultAzureCredential());\nDeclarativeAgentDefinition agentDefinition = new(model: modelDeploymentName)\n{\n    Instructions = \"You are a prompt agent.\"\n};\nProjectsAgentVersion agentVersion1 = projectClient.AgentAdministrationClient.CreateAgentVersion(\n    agentName: \"myAgent1\",\n    options: new(agentDefinition));\n```\n\nThe code needs tro be logically split into blocks, which usage should be explained in .md file. Each blocks is marked in the source code as follows:\n\n```C#\n#region Snippet:Sample_FunctionFoo_MySampl_Async\npublic async Task Foo()\n{\n    await Task.Delay(1000);\n    Console.WriteLine(\"Hello world!\")\n} \n#endregion\n```\n\nThese blocks will be rendered in the .md file code block based on the region name (it will be done by automation):\n```C# Snippet:Sample_FunctionFoo_MySampl_Async\npublic async Task Foo()\n{\n    await Task.Delay(1000);\n    Console.WriteLine(\"Hello world!\")\n}\n```\n\nIf the code block has sync and async counterpart, please create code block for each of them. Provide the short explanation for each code block. \nTo make sure that it is the case, please run the script below. If there are errors, please iterate over it until the script will complete without errors.\n\n```powershell\ncd \u003Ccs_root>\neng\\scripts\\Update-Snippets.ps1 ai\\\u003Cpackage>\n```\n\n```bash\ncd \u003Ccs_root>\neng\\scripts\\Update-Snippets.ps1 ai\\\u003Cpackage>\n```\n",{"name":5,"description":7},"main","dbc5eb654c3492137a4fbeeb6776c804f0042063","sdk\u002Fai\u002F.github\u002Fskills\u002Fazure-ai-projects-sample-skill",5229,"https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-for-net","https:\u002F\u002Fgithub.com\u002FAzure","https:\u002F\u002Fdocs.microsoft.com\u002Fen-us\u002Fazure\u002F","APIs, SDKs and open source projects from Microsoft Azure","2026-11-12 03:22:00",{"source":8,"skillName":5,"commands":53,"prompt":63,"zipAvailable":64},[54,57,60],{"tool":55,"command":56},"npx","npx skills add Azure\u002Fazure-sdk-for-net --skill translate-a-sample",{"tool":58,"command":59},"bunx","bunx skills add Azure\u002Fazure-sdk-for-net --skill translate-a-sample",{"tool":61,"command":62},"pnpm","pnpm dlx skills add Azure\u002Fazure-sdk-for-net --skill translate-a-sample","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-for-net\u002Fblob\u002Fmain\u002Fsdk\u002Fai\u002F.github\u002Fskills\u002Fazure-ai-projects-sample-skill\u002FSKILL.md",true,[66],{"path":67,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":70,"sourceHtmlUrl":71},"scripts\u002FProgram.cs","SCRIPT","脚本",198,"https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-for-net\u002Fblob\u002Fmain\u002Fsdk\u002Fai\u002F.github\u002Fskills\u002Fazure-ai-projects-sample-skill\u002Fscripts\u002FProgram.cs",[73,101,136,159,182,197],{"skillNo":74,"name":75,"nameZh":6,"description":76,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":89,"publishedAt":38},"01M6BTE1QTJPYDAN115GS2EHDQ","update-chat-api","Use when: updating, exporting, refreshing, or validating the public API baseline for Azure.Messaging.WebPubSub.Chat after a public API change.","https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-for-net\u002Fblob\u002Fmain\u002Fsdk\u002Fwebpubsub\u002F.github\u002Fskills\u002Fupdate-chat-api\u002FSKILL.md",[79,84],{"categoryNo":80,"categoryName":81,"taxonomyType":82,"taxonomyTypeDesc":83},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":85,"categoryName":86,"taxonomyType":87,"taxonomyTypeDesc":88},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[90,91,92,93,94,36,95,96,97,98,99,23,100],"update","api","update chat api","chat","change","messaging","baseline","public","use","public api","when",{"skillNo":102,"name":103,"nameZh":6,"description":104,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":105,"categories":106,"keywords":114,"publishedAt":38},"01M6BTDYJS2RSGZR2T2BTJJ6YC","search-documents","E2E workflow skill for Azure.Search.Documents SDK (TypeSpec + heavy customization). Handles full release cycles and partial updates: SHA update; code generation; build; customization fixes; ServiceVersion sync; testing; API export; changelog; version; samples; formatting; release metadata. WHEN: create new package version for Azure.Search.Documents; regenerate Azure.Search.Documents; fix Azure.Search.Documents bug; release Azure.Search.Documents; update Azure.Search.Documents spec. Do not use for Azure.ResourceManager.Search or Azure.Provisioning.Search.","https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-for-net\u002Fblob\u002Fmain\u002Fsdk\u002Fsearch\u002FAzure.Search.Documents\u002F.github\u002Fskills\u002Fsearch-documents\u002FSKILL.md",[107,110,113],{"categoryNo":108,"categoryName":109,"taxonomyType":82,"taxonomyTypeDesc":83},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":111,"categoryName":112,"taxonomyType":82,"taxonomyTypeDesc":83},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":85,"categoryName":86,"taxonomyType":87,"taxonomyTypeDesc":88},[115,116,117,118,119,37,120,121,36,122,123,90,124,125,126,33,127,128,129,91,130,131,132,133,134,100,135],"documents","search","search documents","testing","spec","workflow","sync","typespec","create","code","release","changelog","Code Generation","e2e","provisioning","fix","bug","workflow skill","updates","new package","new",{"skillNo":137,"name":138,"nameZh":6,"description":139,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":140,"categories":141,"keywords":142,"publishedAt":38},"01M6BTDVJGZ0N7F7DXR5Z7E0QH","search-documents-version-diff","Diff the current Azure.Search.Documents public API surface against a previous published version and detect preview-to-preview regressions where the SDK customization layer was not bubbled up after a TypeSpec change. Use whenever the user asks to compare Azure.Search.Documents betas, verify no Azure.Search.Documents preview features dropped, regression audit between Azure.Search.Documents versions, sanity-check a release branch for Azure.Search.Documents, or investigate a missing Azure.Search.Documents preview feature — even if they don't say the word \"diff\". Specifically catches dropped wrappers (QueryAnswer\u002FQueryCaption\u002FQueryRewrites style), lost SearchOptions aggregator redirectors, `@@access(\"internal\")` flips, deleted-instead-of-gated `#if AZURE_SEARCH_PREVIEW` blocks, dropped `ServiceVersion` enum values, and convenience-to-protocol downgrades.","https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-for-net\u002Fblob\u002Fmain\u002Fsdk\u002Fsearch\u002FAzure.Search.Documents\u002F.github\u002Fskills\u002Fsearch-documents-version-diff\u002FSKILL.md",[],[115,116,143,117,144,145,37,94,36,122,125,146,147,91,148,149,150,151,152,153,154,155,99,156,157,158],"search documents version diff","version","diff","protocol","audit","verify","investigate","access","regression","branch","up","preview","aggregator","sanity","layer","features",{"skillNo":160,"name":161,"nameZh":6,"description":162,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":163,"categories":164,"keywords":166,"publishedAt":38},"01M6BTDRCG0SXKPKCFWR75FY8T","search-documents-typespec-validation","TypeSpec validation skill for Azure.Search.Documents SDK. Performs a COMPLETE validation of ALL operations, ALL models, ALL enums, and ALL properties against the TypeSpec definition at any pinned commit. Works for any API version. Generates a full gap report: missing features, extra features, naming mismatches, and recommended fix location. WHEN: \"validate Azure.Search.Documents SDK against TypeSpec\", \"detect Azure.Search.Documents typespec feature gaps\", \"what is missing from the Azure.Search.Documents SDK\", \"compare Azure.Search.Documents SDK to spec\", \"full spec coverage audit for Azure.Search.Documents\". Do NOT use for version-to-version diff or regression detection — use search-documents-version-diff instead.","https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-for-net\u002Fblob\u002Fmain\u002Fsdk\u002Fsearch\u002FAzure.Search.Documents\u002F.github\u002Fskills\u002Fsearch-documents-typespec-validation\u002FSKILL.md",[165],{"categoryNo":111,"categoryName":112,"taxonomyType":82,"taxonomyTypeDesc":83},[115,122,167,116,168,117,119,37,169,170,171,172,36,173,147,174,91,151,175,176,130,177,178,179,158,180,181,100],"validation","search documents typespec validation","to spec","commit","validate","gap report","report","detection","extra","coverage","do","full","at","api version","definition",{"skillNo":183,"name":184,"nameZh":6,"description":185,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":186,"categories":187,"keywords":188,"publishedAt":38},"01M6BTDP9JS9KNT1H9ED8AGZF5","test-skill_file","Roll dice using a random number generator.","https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-for-net\u002Fblob\u002Fmain\u002Fsdk\u002Fai\u002FAzure.AI.Projects.Agents\u002Ftests\u002FTestData\u002Froll-dice\u002FSKILL.md",[],[189,190,32,191,192,193,194,195,196],"test","Test Skill","test skill file","roll dice","dice","random","generator","number",{"skillNo":198,"name":199,"nameZh":6,"description":200,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":201,"categories":202,"keywords":203,"publishedAt":38},"01M6BTDMF2VK2CM53SSHZNWX7T","roll-dice","Roll dice using a random number generator. Use when asked to roll a die (d6, d20, etc.), roll dice, or generate a random dice roll.","https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-for-net\u002Fblob\u002Fmain\u002Fsdk\u002Fai\u002FAzure.AI.Projects.Agents\u002Ftests\u002FSamples\u002Froll-dice\u002FSKILL.md",[],[192,193,35,98,194,195,196,100]]