[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6ADJXYKG2VR0D77X1NP0JQ3":3,"skill-same:01M6ADJXYKG2VR0D77X1NP0JQ3":93},{"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":23,"publishedAt":46,"linkOnly":47,"markdownContent":48,"markdownBody":49,"frontMatter":50,"refName":51,"commitSha":52,"skillDirectory":53,"forksCount":54,"repositoryHtmlUrl":55,"repositoryHomepageUrl":56,"ownerHtmlUrl":57,"ownerBlogUrl":58,"ownerDescription":59,"updatedAt":60,"install":61,"resources":74},"01M6ADJXYKG2VR0D77X1NP0JQ3","fluentui-blazor",null,"Guide for using the Microsoft Fluent UI Blazor component library (Microsoft.FluentUI.AspNetCore.Components NuGet package) in Blazor applications. Use this when the user is building a Blazor app with Fluent UI components, setting up the library, using FluentUI components like FluentButton, FluentDataGrid, FluentDialog, FluentToast, FluentNavMenu, FluentTextField, FluentSelect, FluentAutocomplete, FluentDesignTheme, or any component prefixed with \"Fluent\". Also use when troubleshooting missing providers, JS interop issues, or theming.","github\u002Fawesome-copilot","github","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F9919?v=4","01M6AC83DS133TPXFSP1DHNCC6","GitHub","01M6AD3PBDYPK7NVFJNJ66Y8RS",41081,"MIT","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Ffluentui-blazor\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],"blazor","fluentui","fluentui blazor","ui","when","for","ui components","missing","app","up","guide","applications","Providers","microsoft","library","package","issues","nuget","component library","component","fluent","components","2026-11-10 10:12:30",false,"---\nname: fluentui-blazor\ndescription: >\n  Guide for using the Microsoft Fluent UI Blazor component library\n  (Microsoft.FluentUI.AspNetCore.Components NuGet package) in Blazor applications.\n  Use this when the user is building a Blazor app with Fluent UI components,\n  setting up the library, using FluentUI components like FluentButton, FluentDataGrid,\n  FluentDialog, FluentToast, FluentNavMenu, FluentTextField, FluentSelect,\n  FluentAutocomplete, FluentDesignTheme, or any component prefixed with \"Fluent\".\n  Also use when troubleshooting missing providers, JS interop issues, or theming.\n---\n\n# Fluent UI Blazor — Consumer Usage Guide\n\nThis skill teaches how to correctly use the **Microsoft.FluentUI.AspNetCore.Components** (version 4) NuGet package in Blazor applications.\n\n## Critical Rules\n\n### 1. No manual `\u003Cscript>` or `\u003Clink>` tags needed\n\nThe library auto-loads all CSS and JS via Blazor's static web assets and JS initializers. **Never tell users to add `\u003Cscript>` or `\u003Clink>` tags for the core library.**\n\n### 2. Providers are mandatory for service-based components\n\nThese provider components **MUST** be added to the root layout (e.g. `MainLayout.razor`) for their corresponding services to work. Without them, service calls **fail silently** (no error, no UI).\n\n```razor\n\u003CFluentToastProvider \u002F>\n\u003CFluentDialogProvider \u002F>\n\u003CFluentMessageBarProvider \u002F>\n\u003CFluentTooltipProvider \u002F>\n\u003CFluentKeyCodeProvider \u002F>\n```\n\n### 3. Service registration in Program.cs\n\n```csharp\nbuilder.Services.AddFluentUIComponents();\n\n\u002F\u002F Or with configuration:\nbuilder.Services.AddFluentUIComponents(options =>\n{\n    options.UseTooltipServiceProvider = true;  \u002F\u002F default: true\n    options.ServiceLifetime = ServiceLifetime.Scoped; \u002F\u002F default\n});\n```\n\n**ServiceLifetime rules:**\n- `ServiceLifetime.Scoped` — for Blazor Server \u002F Interactive (default)\n- `ServiceLifetime.Singleton` — for Blazor WebAssembly standalone\n- `ServiceLifetime.Transient` — **throws `NotSupportedException`**\n\n### 4. Icons require a separate NuGet package\n\n```\ndotnet add package Microsoft.FluentUI.AspNetCore.Components.Icons\n```\n\nUsage with a `@using` alias:\n\n```razor\n@using Icons = Microsoft.FluentUI.AspNetCore.Components.Icons\n\n\u003CFluentIcon Value=\"@(Icons.Regular.Size24.Save)\" \u002F>\n\u003CFluentIcon Value=\"@(Icons.Filled.Size20.Delete)\" Color=\"@Color.Error\" \u002F>\n```\n\nPattern: `Icons.[Variant].[Size].[Name]`\n- Variants: `Regular`, `Filled`\n- Sizes: `Size12`, `Size16`, `Size20`, `Size24`, `Size28`, `Size32`, `Size48`\n\nCustom image: `Icon.FromImageUrl(\"\u002Fpath\u002Fto\u002Fimage.png\")`\n\n**Never use string-based icon names** — icons are strongly-typed classes.\n\n### 5. List component binding model\n\n`FluentSelect\u003CTOption>`, `FluentCombobox\u003CTOption>`, `FluentListbox\u003CTOption>`, and `FluentAutocomplete\u003CTOption>` do NOT work like `\u003CInputSelect>`. They use:\n\n- `Items` — the data source (`IEnumerable\u003CTOption>`)\n- `OptionText` — `Func\u003CTOption, string?>` to extract display text\n- `OptionValue` — `Func\u003CTOption, string?>` to extract the value string\n- `SelectedOption` \u002F `SelectedOptionChanged` — for single selection binding\n- `SelectedOptions` \u002F `SelectedOptionsChanged` — for multi-selection binding\n\n```razor\n\u003CFluentSelect Items=\"@countries\"\n              OptionText=\"@(c => c.Name)\"\n              OptionValue=\"@(c => c.Code)\"\n              @bind-SelectedOption=\"@selectedCountry\"\n              Label=\"Country\" \u002F>\n```\n\n**NOT** like this (wrong pattern):\n```razor\n@* WRONG — do not use InputSelect pattern *@\n\u003CFluentSelect @bind-Value=\"@selectedValue\">\n    \u003Coption value=\"1\">One\u003C\u002Foption>\n\u003C\u002FFluentSelect>\n```\n\n### 6. FluentAutocomplete specifics\n\n- Use `ValueText` (NOT `Value` — it's obsolete) for the search input text\n- `OnOptionsSearch` is the required callback to filter options\n- Default is `Multiple=\"true\"`\n\n```razor\n\u003CFluentAutocomplete TOption=\"Person\"\n                    OnOptionsSearch=\"@OnSearch\"\n                    OptionText=\"@(p => p.FullName)\"\n                    @bind-SelectedOptions=\"@selectedPeople\"\n                    Label=\"Search people\" \u002F>\n\n@code {\n    private void OnSearch(OptionsSearchEventArgs\u003CPerson> args)\n    {\n        args.Items = allPeople.Where(p =>\n            p.FullName.Contains(args.Text, StringComparison.OrdinalIgnoreCase));\n    }\n}\n```\n\n### 7. Dialog service pattern\n\n**Do NOT toggle visibility of `\u003CFluentDialog>` tags.** The service pattern is:\n\n1. Create a content component implementing `IDialogContentComponent\u003CTData>`:\n\n```csharp\npublic partial class EditPersonDialog : IDialogContentComponent\u003CPerson>\n{\n    [Parameter] public Person Content { get; set; } = default!;\n\n    [CascadingParameter] public FluentDialog Dialog { get; set; } = default!;\n\n    private async Task SaveAsync()\n    {\n        await Dialog.CloseAsync(Content);\n    }\n\n    private async Task CancelAsync()\n    {\n        await Dialog.CancelAsync();\n    }\n}\n```\n\n2. Show the dialog via `IDialogService`:\n\n```csharp\n[Inject] private IDialogService DialogService { get; set; } = default!;\n\nprivate async Task ShowEditDialog()\n{\n    var dialog = await DialogService.ShowDialogAsync\u003CEditPersonDialog, Person>(\n        person,\n        new DialogParameters\n        {\n            Title = \"Edit Person\",\n            PrimaryAction = \"Save\",\n            SecondaryAction = \"Cancel\",\n            Width = \"500px\",\n            PreventDismissOnOverlayClick = true,\n        });\n\n    var result = await dialog.Result;\n    if (!result.Cancelled)\n    {\n        var updatedPerson = result.Data as Person;\n    }\n}\n```\n\nFor convenience dialogs:\n```csharp\nawait DialogService.ShowConfirmationAsync(\"Are you sure?\", \"Yes\", \"No\");\nawait DialogService.ShowSuccessAsync(\"Done!\");\nawait DialogService.ShowErrorAsync(\"Something went wrong.\");\n```\n\n### 8. Toast notifications\n\n```csharp\n[Inject] private IToastService ToastService { get; set; } = default!;\n\nToastService.ShowSuccess(\"Item saved successfully\");\nToastService.ShowError(\"Failed to save\");\nToastService.ShowWarning(\"Check your input\");\nToastService.ShowInfo(\"New update available\");\n```\n\n`FluentToastProvider` parameters: `Position` (default `TopRight`), `Timeout` (default 7000ms), `MaxToastCount` (default 4).\n\n### 9. Design tokens and themes work only after render\n\nDesign tokens rely on JS interop. **Never set them in `OnInitialized`** — use `OnAfterRenderAsync`.\n\n```razor\n\u003CFluentDesignTheme Mode=\"DesignThemeModes.System\"\n                   OfficeColor=\"OfficeColor.Teams\"\n                   StorageName=\"mytheme\" \u002F>\n```\n\n### 10. FluentEditForm vs EditForm\n\n`FluentEditForm` is only needed inside `FluentWizard` steps (per-step validation). For regular forms, use standard `EditForm` with Fluent form components:\n\n```razor\n\u003CEditForm Model=\"@model\" OnValidSubmit=\"HandleSubmit\">\n    \u003CDataAnnotationsValidator \u002F>\n    \u003CFluentTextField @bind-Value=\"@model.Name\" Label=\"Name\" Required \u002F>\n    \u003CFluentSelect Items=\"@options\"\n                  OptionText=\"@(o => o.Label)\"\n                  @bind-SelectedOption=\"@model.Category\"\n                  Label=\"Category\" \u002F>\n    \u003CFluentValidationSummary \u002F>\n    \u003CFluentButton Type=\"ButtonType.Submit\" Appearance=\"Appearance.Accent\">Save\u003C\u002FFluentButton>\n\u003C\u002FEditForm>\n```\n\nUse `FluentValidationMessage` and `FluentValidationSummary` instead of standard Blazor validation components for Fluent styling.\n\n## Reference files\n\nFor detailed guidance on specific topics, see:\n\n- [Setup and configuration](references\u002FSETUP.md)\n- [Layout and navigation](references\u002FLAYOUT-AND-NAVIGATION.md)\n- [Data grid](references\u002FDATAGRID.md)\n- [Theming](references\u002FTHEMING.md)\n","# Fluent UI Blazor — Consumer Usage Guide\n\nThis skill teaches how to correctly use the **Microsoft.FluentUI.AspNetCore.Components** (version 4) NuGet package in Blazor applications.\n\n## Critical Rules\n\n### 1. No manual `\u003Cscript>` or `\u003Clink>` tags needed\n\nThe library auto-loads all CSS and JS via Blazor's static web assets and JS initializers. **Never tell users to add `\u003Cscript>` or `\u003Clink>` tags for the core library.**\n\n### 2. Providers are mandatory for service-based components\n\nThese provider components **MUST** be added to the root layout (e.g. `MainLayout.razor`) for their corresponding services to work. Without them, service calls **fail silently** (no error, no UI).\n\n```razor\n\u003CFluentToastProvider \u002F>\n\u003CFluentDialogProvider \u002F>\n\u003CFluentMessageBarProvider \u002F>\n\u003CFluentTooltipProvider \u002F>\n\u003CFluentKeyCodeProvider \u002F>\n```\n\n### 3. Service registration in Program.cs\n\n```csharp\nbuilder.Services.AddFluentUIComponents();\n\n\u002F\u002F Or with configuration:\nbuilder.Services.AddFluentUIComponents(options =>\n{\n    options.UseTooltipServiceProvider = true;  \u002F\u002F default: true\n    options.ServiceLifetime = ServiceLifetime.Scoped; \u002F\u002F default\n});\n```\n\n**ServiceLifetime rules:**\n- `ServiceLifetime.Scoped` — for Blazor Server \u002F Interactive (default)\n- `ServiceLifetime.Singleton` — for Blazor WebAssembly standalone\n- `ServiceLifetime.Transient` — **throws `NotSupportedException`**\n\n### 4. Icons require a separate NuGet package\n\n```\ndotnet add package Microsoft.FluentUI.AspNetCore.Components.Icons\n```\n\nUsage with a `@using` alias:\n\n```razor\n@using Icons = Microsoft.FluentUI.AspNetCore.Components.Icons\n\n\u003CFluentIcon Value=\"@(Icons.Regular.Size24.Save)\" \u002F>\n\u003CFluentIcon Value=\"@(Icons.Filled.Size20.Delete)\" Color=\"@Color.Error\" \u002F>\n```\n\nPattern: `Icons.[Variant].[Size].[Name]`\n- Variants: `Regular`, `Filled`\n- Sizes: `Size12`, `Size16`, `Size20`, `Size24`, `Size28`, `Size32`, `Size48`\n\nCustom image: `Icon.FromImageUrl(\"\u002Fpath\u002Fto\u002Fimage.png\")`\n\n**Never use string-based icon names** — icons are strongly-typed classes.\n\n### 5. List component binding model\n\n`FluentSelect\u003CTOption>`, `FluentCombobox\u003CTOption>`, `FluentListbox\u003CTOption>`, and `FluentAutocomplete\u003CTOption>` do NOT work like `\u003CInputSelect>`. They use:\n\n- `Items` — the data source (`IEnumerable\u003CTOption>`)\n- `OptionText` — `Func\u003CTOption, string?>` to extract display text\n- `OptionValue` — `Func\u003CTOption, string?>` to extract the value string\n- `SelectedOption` \u002F `SelectedOptionChanged` — for single selection binding\n- `SelectedOptions` \u002F `SelectedOptionsChanged` — for multi-selection binding\n\n```razor\n\u003CFluentSelect Items=\"@countries\"\n              OptionText=\"@(c => c.Name)\"\n              OptionValue=\"@(c => c.Code)\"\n              @bind-SelectedOption=\"@selectedCountry\"\n              Label=\"Country\" \u002F>\n```\n\n**NOT** like this (wrong pattern):\n```razor\n@* WRONG — do not use InputSelect pattern *@\n\u003CFluentSelect @bind-Value=\"@selectedValue\">\n    \u003Coption value=\"1\">One\u003C\u002Foption>\n\u003C\u002FFluentSelect>\n```\n\n### 6. FluentAutocomplete specifics\n\n- Use `ValueText` (NOT `Value` — it's obsolete) for the search input text\n- `OnOptionsSearch` is the required callback to filter options\n- Default is `Multiple=\"true\"`\n\n```razor\n\u003CFluentAutocomplete TOption=\"Person\"\n                    OnOptionsSearch=\"@OnSearch\"\n                    OptionText=\"@(p => p.FullName)\"\n                    @bind-SelectedOptions=\"@selectedPeople\"\n                    Label=\"Search people\" \u002F>\n\n@code {\n    private void OnSearch(OptionsSearchEventArgs\u003CPerson> args)\n    {\n        args.Items = allPeople.Where(p =>\n            p.FullName.Contains(args.Text, StringComparison.OrdinalIgnoreCase));\n    }\n}\n```\n\n### 7. Dialog service pattern\n\n**Do NOT toggle visibility of `\u003CFluentDialog>` tags.** The service pattern is:\n\n1. Create a content component implementing `IDialogContentComponent\u003CTData>`:\n\n```csharp\npublic partial class EditPersonDialog : IDialogContentComponent\u003CPerson>\n{\n    [Parameter] public Person Content { get; set; } = default!;\n\n    [CascadingParameter] public FluentDialog Dialog { get; set; } = default!;\n\n    private async Task SaveAsync()\n    {\n        await Dialog.CloseAsync(Content);\n    }\n\n    private async Task CancelAsync()\n    {\n        await Dialog.CancelAsync();\n    }\n}\n```\n\n2. Show the dialog via `IDialogService`:\n\n```csharp\n[Inject] private IDialogService DialogService { get; set; } = default!;\n\nprivate async Task ShowEditDialog()\n{\n    var dialog = await DialogService.ShowDialogAsync\u003CEditPersonDialog, Person>(\n        person,\n        new DialogParameters\n        {\n            Title = \"Edit Person\",\n            PrimaryAction = \"Save\",\n            SecondaryAction = \"Cancel\",\n            Width = \"500px\",\n            PreventDismissOnOverlayClick = true,\n        });\n\n    var result = await dialog.Result;\n    if (!result.Cancelled)\n    {\n        var updatedPerson = result.Data as Person;\n    }\n}\n```\n\nFor convenience dialogs:\n```csharp\nawait DialogService.ShowConfirmationAsync(\"Are you sure?\", \"Yes\", \"No\");\nawait DialogService.ShowSuccessAsync(\"Done!\");\nawait DialogService.ShowErrorAsync(\"Something went wrong.\");\n```\n\n### 8. Toast notifications\n\n```csharp\n[Inject] private IToastService ToastService { get; set; } = default!;\n\nToastService.ShowSuccess(\"Item saved successfully\");\nToastService.ShowError(\"Failed to save\");\nToastService.ShowWarning(\"Check your input\");\nToastService.ShowInfo(\"New update available\");\n```\n\n`FluentToastProvider` parameters: `Position` (default `TopRight`), `Timeout` (default 7000ms), `MaxToastCount` (default 4).\n\n### 9. Design tokens and themes work only after render\n\nDesign tokens rely on JS interop. **Never set them in `OnInitialized`** — use `OnAfterRenderAsync`.\n\n```razor\n\u003CFluentDesignTheme Mode=\"DesignThemeModes.System\"\n                   OfficeColor=\"OfficeColor.Teams\"\n                   StorageName=\"mytheme\" \u002F>\n```\n\n### 10. FluentEditForm vs EditForm\n\n`FluentEditForm` is only needed inside `FluentWizard` steps (per-step validation). For regular forms, use standard `EditForm` with Fluent form components:\n\n```razor\n\u003CEditForm Model=\"@model\" OnValidSubmit=\"HandleSubmit\">\n    \u003CDataAnnotationsValidator \u002F>\n    \u003CFluentTextField @bind-Value=\"@model.Name\" Label=\"Name\" Required \u002F>\n    \u003CFluentSelect Items=\"@options\"\n                  OptionText=\"@(o => o.Label)\"\n                  @bind-SelectedOption=\"@model.Category\"\n                  Label=\"Category\" \u002F>\n    \u003CFluentValidationSummary \u002F>\n    \u003CFluentButton Type=\"ButtonType.Submit\" Appearance=\"Appearance.Accent\">Save\u003C\u002FFluentButton>\n\u003C\u002FEditForm>\n```\n\nUse `FluentValidationMessage` and `FluentValidationSummary` instead of standard Blazor validation components for Fluent styling.\n\n## Reference files\n\nFor detailed guidance on specific topics, see:\n\n- [Setup and configuration](references\u002FSETUP.md)\n- [Layout and navigation](references\u002FLAYOUT-AND-NAVIGATION.md)\n- [Data grid](references\u002FDATAGRID.md)\n- [Theming](references\u002FTHEMING.md)\n",{"name":5,"description":7},"main","5269f7ea2d6c3a9bfda5ed878b6726cf509121fd","skills\u002Ffluentui-blazor",5344,"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot","https:\u002F\u002Fawesome-copilot.github.com\u002F","https:\u002F\u002Fgithub.com\u002Fgithub","https:\u002F\u002Fgithub.com\u002Fabout","How people build software.","2026-11-13 02:05:36",{"source":8,"skillName":5,"commands":62,"prompt":72,"zipAvailable":73},[63,66,69],{"tool":64,"command":65},"npx","npx skills add github\u002Fawesome-copilot --skill fluentui-blazor",{"tool":67,"command":68},"bunx","bunx skills add github\u002Fawesome-copilot --skill fluentui-blazor",{"tool":70,"command":71},"pnpm","pnpm dlx skills add github\u002Fawesome-copilot --skill fluentui-blazor","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Ffluentui-blazor\u002FSKILL.md",true,[75,81,85,89],{"path":76,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":79,"sourceHtmlUrl":80},"references\u002FDATAGRID.md","REFERENCE","参考文档",4692,"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Ffluentui-blazor\u002Freferences\u002FDATAGRID.md",{"path":82,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":83,"sourceHtmlUrl":84},"references\u002FLAYOUT-AND-NAVIGATION.md",5079,"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Ffluentui-blazor\u002Freferences\u002FLAYOUT-AND-NAVIGATION.md",{"path":86,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":87,"sourceHtmlUrl":88},"references\u002FSETUP.md",4982,"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Ffluentui-blazor\u002Freferences\u002FSETUP.md",{"path":90,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":91,"sourceHtmlUrl":92},"references\u002FTHEMING.md",3436,"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Ffluentui-blazor\u002Freferences\u002FTHEMING.md",[94,128,155,181,214,231],{"skillNo":95,"name":96,"nameZh":6,"description":97,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":98,"categories":99,"keywords":108,"publishedAt":46},"01M70KXZNX9ES38N2A8M58ZZMZ","supabase-rls-policies","Write, review, and test Supabase Row Level Security (RLS) policies so that one user cannot read or change another user's rows. Use when creating or changing tables, policies, views, or security definer functions in a Supabase project, when reviewing a migration that touches RLS, or when asked to prove user isolation with pgTAP tests that sign in as two users.","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fsupabase-rls-policies\u002FSKILL.md",[100,105],{"categoryNo":101,"categoryName":102,"taxonomyType":103,"taxonomyTypeDesc":104},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":106,"categoryName":107,"taxonomyType":103,"taxonomyTypeDesc":104},"01JBSEEDCAT000000000000023","Skill与智能体开发",[109,110,111,112,113,28,114,115,116,117,118,119,120,121,122,123,124,125,126,127],"supabase","rls","supabase rls","supabase rls policies","project","review","change","read","write","security","isolation","tables","as","tests","prove","use","users","functions","with",{"skillNo":129,"name":130,"nameZh":6,"description":131,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":132,"categories":133,"keywords":135,"publishedAt":46},"01M70KWA5YWXDV6V8DZ19E3T2Y","skill-distribution-audit","Audit a skill collection before release or investigate installer omissions, archived\u002Ftemplate leakage, duplicate identities, and manifest drift. Reconcile the intended public source set, distribution manifest, and actual discovery output for a specified consumer version. Includes a deterministic set-comparison helper.","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fskill-distribution-audit\u002FSKILL.md",[134],{"categoryNo":106,"categoryName":107,"taxonomyType":103,"taxonomyTypeDesc":104},[136,137,138,139,140,141,29,142,143,144,145,146,147,148,149,150,151,152,153,154],"distribution","skill distribution audit","audit","SET","deterministic","installer","discovery","comparison","helper","manifest","version","collection","drift","output","investigate","duplicate","template","release","reconcile",{"skillNo":156,"name":157,"nameZh":6,"description":158,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":159,"sourceHtmlUrl":160,"categories":161,"keywords":165,"publishedAt":46},"01M70KCJPFVW7PPQ49CC5R8JGK","logicapps-custom-code-net10-migration","Migrate Azure Logic Apps Standard local-function custom-code projects from .NET 8 to .NET 10. Use for legacy Logic Apps custom-code workspace upgrades, project\u002Fpackage configuration, custom-worker settings, publication, and integrated VS Code debugging. Not for ordinary .NET applications, standalone Azure Functions, Consumption workflows, or cloud deployment.","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Flogicapps-custom-code-net10-migration\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Flogicapps-custom-code-net10-migration\u002FSKILL.md",[162],{"categoryNo":163,"categoryName":164,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000030","开发工程师",[166,167,168,169,170,171,29,113,172,35,173,174,175,176,39,124,177,178,179,180],"custom","code","logicapps custom code net10 migration","migration","projects","standalone","deployment","local","azure","worker","upgrades","apps","Legacy","debugging","workflows",{"skillNo":182,"name":183,"nameZh":6,"description":184,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":185,"sourceHtmlUrl":186,"categories":187,"keywords":192,"publishedAt":46},"01M6AEBN37RQMXJ3298PEY7PG1","winmd-api-search","Find and explore Windows desktop APIs. Use when building features that need platform capabilities — camera, file access, notifications, UI controls, AI\u002FML, sensors, networking, etc. Discovers the right API for a task and retrieves full type details (methods, properties, events, enumeration values).","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fwinmd-api-search\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fwinmd-api-search\u002FSKILL.md",[188,191],{"categoryNo":189,"categoryName":190,"taxonomyType":103,"taxonomyTypeDesc":104},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":163,"categoryName":164,"taxonomyType":21,"taxonomyTypeDesc":22},[193,194,195,196,197,198,199,27,200,201,202,203,204,205,206,28,207,208,209,210,211,29,212,213],"winmd api search","search","api","windows","desktop","file access","enumeration","ml","file","networking","capabilities","notifications","explore","access","features","full","camera","events","platform","methods","controls",{"skillNo":215,"name":216,"nameZh":6,"description":217,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":218,"licenseFileUrl":219,"sourceHtmlUrl":220,"categories":221,"keywords":227,"publishedAt":46},"01M6AE571R3SC1ZGE202B3NB5S","resemble-detect","Deepfake detection and media safety — detect AI-generated audio, images, video, and text, trace synthesis sources, apply watermarks, verify speaker identity, and analyze media intelligence using Resemble AI","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fresemble-detect\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fresemble-detect\u002FSKILL.md",[222,223,226],{"categoryNo":189,"categoryName":190,"taxonomyType":103,"taxonomyTypeDesc":104},{"categoryNo":224,"categoryName":225,"taxonomyType":103,"taxonomyTypeDesc":104},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":106,"categoryName":107,"taxonomyType":103,"taxonomyTypeDesc":104},[228,139,201,229,230],"resemble detect","https","identity",{"skillNo":232,"name":233,"nameZh":6,"description":234,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":218,"licenseFileUrl":235,"sourceHtmlUrl":236,"categories":237,"keywords":242,"publishedAt":46},"01M6AE30BSK2HCY4TQQ22Z8JRD","quality-playbook","Run a complete quality engineering audit on any codebase. Derives behavioral requirements from the code, generates spec-traced functional tests, runs a three-pass code review with regression tests, executes a multi-model spec audit (Council of Three), and produces a consolidated bug report with TDD-verified patches. Finds the 35% of real defects that structural code review alone cannot catch. Works with any language. Trigger on 'quality playbook', 'spec audit', 'Council of Three', 'fitness-to-purpose', or 'coverage theater'.","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fquality-playbook\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fquality-playbook\u002FSKILL.md",[238,241],{"categoryNo":239,"categoryName":240,"taxonomyType":103,"taxonomyTypeDesc":104},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":106,"categoryName":107,"taxonomyType":103,"taxonomyTypeDesc":104},[243,244,245,246,167,114,9,138,247,248,229,249,250,251,252,253,254,255,256,257,258,259,122,260,261,262,263],"playbook","quality playbook","quality","code review","tdd","run","report","spec","bug report","council","engineering","functional","spec audit","bug","verified","multi-model","three","coverage","model","regression","structural"]