[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6AE915D4RP6K8RDCDRRC10W":3,"skill-same:01M6AE915D4RP6K8RDCDRRC10W":74},{"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":45,"linkOnly":46,"markdownContent":47,"markdownBody":48,"frontMatter":49,"refName":50,"commitSha":51,"skillDirectory":52,"forksCount":53,"repositoryHtmlUrl":54,"repositoryHomepageUrl":55,"ownerHtmlUrl":56,"ownerBlogUrl":57,"ownerDescription":58,"updatedAt":59,"install":60,"resources":73},"01M6AE915D4RP6K8RDCDRRC10W","system-commandline-cli",null,"Use this skill when adding, modifying, or reviewing CLI commands in a .NET project built with System.CommandLine. Triggers include: creating a new CLI command, adding options or arguments, wiring command handlers, registering subcommands, building command groups, or any architecture decision about CLI command structure. Also use when the user mentions 'System.CommandLine', 'CommandBase', 'SetAction', 'ParseResult', 'RootCommand', 'subcommand', or asks to add a verb to the CLI. Do NOT use for general C# coding, web APIs, UI work, or non-CLI projects.","github\u002Fawesome-copilot","github","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F9919?v=4","01M6AC83DS133TPXFSP1DHNCC6","GitHub","01M6AD3PBDYPK7NVFJNJ66Y8RS",41046,"MIT","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fsystem-commandline-cli\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],"system commandline cli","system","cli","command","new","when","wiring","for","add","commands","project","structure","options","do","work","decision","coding","projects","ui","architecture","web","2026-11-10 10:12:30",false,"---\nname: system-commandline-cli\ndescription: \"Use this skill when adding, modifying, or reviewing CLI commands in a .NET project built with System.CommandLine. Triggers include: creating a new CLI command, adding options or arguments, wiring command handlers, registering subcommands, building command groups, or any architecture decision about CLI command structure. Also use when the user mentions 'System.CommandLine', 'CommandBase', 'SetAction', 'ParseResult', 'RootCommand', 'subcommand', or asks to add a verb to the CLI. Do NOT use for general C# coding, web APIs, UI work, or non-CLI projects.\"\n---\n\n# System.CommandLine CLI Developer Skill\n\nYou are working on a .NET CLI application built with **System.CommandLine v2.x.x**, targeting **.NET 8 or later** or any **.NET Standard 2.0** implementation, including **.NET Framework 4.6.1 or later** and **.NET Core 2.0 or later**.\nFollow these rules and patterns strictly when creating or modifying CLI commands.\n\n---\n\n## Architecture Overview\n\n```\n\u003CCLI Project>\u002F\n├── Program.cs                       # Entry point and command invocation\n└── Commands\u002F\n    ├── CommandBase.cs               # Base class for all commands\n    ├── GlobalOptions.cs             # Defines global options for the CLI\n    ├── RootCommand.cs               # Registers top-level commands\n    └── \u003CGroup>\u002F                     # One folder per command group\n        ├── \u003CGroup>Command.cs        # Parent command that registers its children\n        └── \u003CGroup>\u003CVerb>Command.cs  # Leaf command with its handler\n```\n\n\n---\n\n## RULE 1 — Prefer a Project-Specific Command Base Class\n\nPrefer defining a project-specific abstract `CommandBase` that inherits from `System.CommandLine.Command`. Concrete commands should inherit from this base class so shared behavior and conventions remain centralized.\n\n```csharp\ninternal abstract class CommandBase : Command\n{\n    protected CommandBase(string name, string? description = null)\n        : base(name, description)\n    {\n    }\n}\n\ninternal sealed class MyCommand : CommandBase\n{\n    public MyCommand()\n        : base(\"command-name\", \"Help text shown in --help\")\n    {\n        this.SetAction(CommandHandler);\n    }\n\n    private async Task\u003Cint> CommandHandler(\n        ParseResult parseResult,\n        CancellationToken cancellationToken)\n    {\n        \u002F\u002F implementation\n        return 0;\n    }\n}\n```\n\nWhen the project already has a command base class, preserve its established conventions. Otherwise, introduce one when commands need shared behavior; simple applications may inherit from `Command` directly when a base class adds no meaningful value.\n\n---\n\n## RULE 2 — Options and Arguments\n\n### Defining Options\n\n```csharp\nprivate readonly Option\u003Cstring> _myOption;\n\n\u002F\u002F In constructor:\n_myOption = new Option\u003Cstring>(\"--my-option\")\n{\n    Description = \"Clear description of what this option does\",\n    Required = true,   \u002F\u002F or false\n};\n_myOption.Aliases.Add(\"-m\");       \u002F\u002F Add a short alias\nthis.Options.Add(_myOption);\n```\n\n### Defining Arguments (positional)\n\n```csharp\nprivate readonly Argument\u003Cstring> _fileArgument;\n\n\u002F\u002F In constructor:\n_fileArgument = new Argument\u003Cstring>(\"file\")\n{\n    Description = \"Path to the input file\"\n};\nthis.Arguments.Add(_fileArgument);\n```\n\n### Reading Values in Handlers\n\n```csharp\n\u002F\u002F Required option\u002Fargument — use GetValue:\nvar value = parseResult.GetValue(_myOption);\n```\n\n---\n\n## RULE 3 — Command Handler Pattern\n\nHandlers are **async methods** wired via `SetAction`:\n\n```csharp\nthis.SetAction(CommandHandler);\n\nprivate async Task\u003Cint> CommandHandler(ParseResult parseResult, CancellationToken cancellationToken)\n{\n    \u002F\u002F 1. Read option\u002Fargument values\n    \u002F\u002F 2. Load session settings (if needed)\n    \u002F\u002F 3. Validate configuration early — fail fast with clear error\n    \u002F\u002F 4. Execute business logic\n    \u002F\u002F 5. Output results with Console\n\n    return 0; \u002F\u002F or non-zero exit code\n}\n```\n\n---\n\n## RULE 4 — Command Group (Parent with Subcommands)\n\nA **group command** registers children but does **not** call `SetAction`:\n\n```csharp\ninternal class MyGroupCommand : CommandBase\n{\n    public MyGroupCommand()\n        : base(\"mygroup\", \"Manages my-group resources\")\n    {\n        this.Subcommands.Add(new MyGroupListCommand());\n        this.Subcommands.Add(new MyGroupCreateCommand());\n        this.Subcommands.Add(new MyGroupDeleteCommand());\n    }\n}\n```\n\nA command may define both an action and subcommands when the direct invocation has meaningful behavior.\n\n---\n\n## RULE 5 — Registration\n\n- **Top-level commands** → register in `RootCommand.cs`:\n  ```csharp\n  this.Subcommands.Add(new MyGroupCommand());\n  ```\n\n- **Subcommands** → register inside the parent command's constructor:\n  ```csharp\n  this.Subcommands.Add(new MyGroupCreateCommand());\n  ```\n\n---\n\n## RULE 6 — User Confirmation for Destructive Operations\n\n```csharp\nConsole.WriteLine(\"Are you sure you want to delete X? This action cannot be undone. (yes\u002Fno)\");\nvar confirmation = Console.ReadLine();\nif (confirmation?.ToLower() != \"yes\" && confirmation?.ToLower() != \"y\")\n{\n    Console.WriteLine(\"Operation cancelled.\");\n    return 0;\n}\n```\n\n---\n\n## RULE 7 — Command Logic\n\nThe logic of each command should be in one or more **service classes** that implement interfaces.\nThe command receives interfaces through **dependency injection (DI)**, not concrete implementations.\nThe command handler should not contain business logic.\nThe command handler should be thin, responsible only for:\n1. Parsing input\n2. Validating configuration\n3. Calling the service method\n4. Outputting results\n\nService class should be injected in the command constructor via DI, not instantiated directly.\n\n---\n\n## RULE 8 — Dependency Injection\n\nServices are registered in `Program.cs`:\n\n```csharp\nserviceCollection.TryAddSingleton\u003CIMyService, MyServiceImpl>();\n```\n\nAdd a convenience extension in `ServiceProviderExtensions.cs`:\n\n```csharp\npublic static IMyService GetMyService(this ServiceProvider provider)\n    => provider.GetRequiredService\u003CIMyService>();\n```\n\n---\n\n## RULE 9 — Naming Conventions\n\n| Element | Convention | Example |\n|---------|-----------|---------|\n| CLI command name | lowercase kebab-case | `agent create`, `set show` |\n| Command class | PascalCase + `Command` suffix | `AgentCreateCommand` |\n| Option field | `_camelCaseOption` (private readonly) | `_projectNameOption` |\n| Option long name | `--kebab-case` | `--project-name` |\n| Option short alias | `-x` (1-2 chars) | `-p`, `-id`, `-md` |\n| Argument field | `_camelCaseArgument` | `_fileArgument` |\n| Namespace | `MyProject.Commands.\u003CGroup>` | `MyProject.Commands.Agent` |\n| Folder | `Commands\u002F\u003CGroup>\u002F` | `Commands\u002FAgent\u002F` |\n\n---\n\n## RULE 10 — Visibility\n\n- All command classes are `internal`.\n\n---\n\n## RULE 11 — Global Options and Validation\n\nDefine options shared by the entire command tree once in `GlobalOptions.cs`. Reuse the same\n`Option\u003CT>` instance when registering, validating, and reading the option.\n\n```csharp\ninternal static class GlobalOptions\n{\n    public static readonly Option\u003Cstring> EndpointOption = CreateEndpointOption();\n\n    private static Option\u003Cstring> CreateEndpointOption()\n    {\n        var option = new Option\u003Cstring>(...);\n\n        \u002F\u002F add option description, aliases, and Required flag\n        \u002F\u002F Add validation to the option's Validators collection\n\n        return option;\n    }\n}\n```\n\n### Using Global Options in a Command\n\nExpose repeated parsing or conversion through protected `CommandBase` helpers:\n\n```csharp\n\u002F\u002F\u002F \u003Csummary>Resolves the validated endpoint from the global option.\u003C\u002Fsummary>\nprotected Uri GetEndpoint(ParseResult parseResult)\n{\n    var baseUrl = parseResult.GetValue(GlobalOptions.EndpointOption)!;\n    return new Uri(baseUrl);\n}\n\n\u002F\u002F\u002F \u003Csummary>Resolves the optional key from the global option.\u003C\u002Fsummary>\nprotected string? GetKey(ParseResult parseResult)\n    => parseResult.GetValue(GlobalOptions.KeyOption);\n```\n\nConsume those helpers from the leaf command's handler. The command must not add the global options to its own\n`Options` collection; recursive registration on the root already makes them available in its `ParseResult`.\n\n```csharp\nprivate async Task\u003Cint> CommandHandler(\n    ParseResult parseResult,\n    CancellationToken cancellationToken)\n{\n    var endpoint = GetEndpoint(parseResult);\n    var key = GetKey(parseResult);\n\n    ...\n\n    return 0;\n}\n```\n\nRead a global option directly in a leaf handler only when no shared conversion or fallback logic is needed.\nAlways use the static `GlobalOptions` symbol; never create a second `Option\u003CT>` with the same aliases.\n\nFollow these requirements:\n\n1. Set `Recursive = true` so the option is accepted for every descendant command.\n2. Add each global option exactly once to `RootCommand.Options`; do not duplicate it on leaf commands.\n3. Read values through the shared symbol, for example\n   `parseResult.GetValue(GlobalOptions.Endpoint)`, preferably behind a `CommandBase` helper.\n4. Add validation to the option's `Validators` collection so invalid input becomes a parse error and\n   the command handler is not invoked. Do not rely on exceptions from `new Uri(...)` or downstream services.\n5. Validate endpoint options as nonblank absolute `http` or `https` URIs. Reject unsupported schemes,\n   relative URIs, query strings, and fragments because appending a fixed endpoint path would change their meaning.\n6. For optional secret options such as `--key`, allow omission but reject an explicitly supplied blank or\n   whitespace-only value. Validate the value without logging, displaying, trimming, or otherwise mutating it.\n7. Keep validation separate from derivation.\n8. Use stable, actionable validation messages that name the option and the accepted format.\n9. Test global options through the root parser, including the default, explicit valid values, invalid values,\n   and placement before and after a representative subcommand. Verify invalid input prevents handler execution.\n\n---\n\n## RULE 12 — Checklist for New Commands\n\nWhen creating a new command, verify:\n\n1. ✅ Inherits from the project’s command base class when one exists or provides meaningful shared behavior\n2. ✅ Constructor passes `name`, `description` to base\n3. ✅ All options have `Description`, `Required`\n4. ✅ Handler wired via `this.SetAction(CommandHandler)`\n5. ✅ Handler signature: `async Task\u003Cint> CommandHandler(ParseResult, CancellationToken)`\n6. ✅ Command registered in parent (RootCommand or group command)\n7. ✅ Class is `internal`\n8. ✅ File placed in `Commands\u002F\u003CGroup>\u002F` folder\n9. ✅ Namespace matches folder: `MyProject.CLI.Commands.\u003CGroup>`\n","# System.CommandLine CLI Developer Skill\n\nYou are working on a .NET CLI application built with **System.CommandLine v2.x.x**, targeting **.NET 8 or later** or any **.NET Standard 2.0** implementation, including **.NET Framework 4.6.1 or later** and **.NET Core 2.0 or later**.\nFollow these rules and patterns strictly when creating or modifying CLI commands.\n\n---\n\n## Architecture Overview\n\n```\n\u003CCLI Project>\u002F\n├── Program.cs                       # Entry point and command invocation\n└── Commands\u002F\n    ├── CommandBase.cs               # Base class for all commands\n    ├── GlobalOptions.cs             # Defines global options for the CLI\n    ├── RootCommand.cs               # Registers top-level commands\n    └── \u003CGroup>\u002F                     # One folder per command group\n        ├── \u003CGroup>Command.cs        # Parent command that registers its children\n        └── \u003CGroup>\u003CVerb>Command.cs  # Leaf command with its handler\n```\n\n\n---\n\n## RULE 1 — Prefer a Project-Specific Command Base Class\n\nPrefer defining a project-specific abstract `CommandBase` that inherits from `System.CommandLine.Command`. Concrete commands should inherit from this base class so shared behavior and conventions remain centralized.\n\n```csharp\ninternal abstract class CommandBase : Command\n{\n    protected CommandBase(string name, string? description = null)\n        : base(name, description)\n    {\n    }\n}\n\ninternal sealed class MyCommand : CommandBase\n{\n    public MyCommand()\n        : base(\"command-name\", \"Help text shown in --help\")\n    {\n        this.SetAction(CommandHandler);\n    }\n\n    private async Task\u003Cint> CommandHandler(\n        ParseResult parseResult,\n        CancellationToken cancellationToken)\n    {\n        \u002F\u002F implementation\n        return 0;\n    }\n}\n```\n\nWhen the project already has a command base class, preserve its established conventions. Otherwise, introduce one when commands need shared behavior; simple applications may inherit from `Command` directly when a base class adds no meaningful value.\n\n---\n\n## RULE 2 — Options and Arguments\n\n### Defining Options\n\n```csharp\nprivate readonly Option\u003Cstring> _myOption;\n\n\u002F\u002F In constructor:\n_myOption = new Option\u003Cstring>(\"--my-option\")\n{\n    Description = \"Clear description of what this option does\",\n    Required = true,   \u002F\u002F or false\n};\n_myOption.Aliases.Add(\"-m\");       \u002F\u002F Add a short alias\nthis.Options.Add(_myOption);\n```\n\n### Defining Arguments (positional)\n\n```csharp\nprivate readonly Argument\u003Cstring> _fileArgument;\n\n\u002F\u002F In constructor:\n_fileArgument = new Argument\u003Cstring>(\"file\")\n{\n    Description = \"Path to the input file\"\n};\nthis.Arguments.Add(_fileArgument);\n```\n\n### Reading Values in Handlers\n\n```csharp\n\u002F\u002F Required option\u002Fargument — use GetValue:\nvar value = parseResult.GetValue(_myOption);\n```\n\n---\n\n## RULE 3 — Command Handler Pattern\n\nHandlers are **async methods** wired via `SetAction`:\n\n```csharp\nthis.SetAction(CommandHandler);\n\nprivate async Task\u003Cint> CommandHandler(ParseResult parseResult, CancellationToken cancellationToken)\n{\n    \u002F\u002F 1. Read option\u002Fargument values\n    \u002F\u002F 2. Load session settings (if needed)\n    \u002F\u002F 3. Validate configuration early — fail fast with clear error\n    \u002F\u002F 4. Execute business logic\n    \u002F\u002F 5. Output results with Console\n\n    return 0; \u002F\u002F or non-zero exit code\n}\n```\n\n---\n\n## RULE 4 — Command Group (Parent with Subcommands)\n\nA **group command** registers children but does **not** call `SetAction`:\n\n```csharp\ninternal class MyGroupCommand : CommandBase\n{\n    public MyGroupCommand()\n        : base(\"mygroup\", \"Manages my-group resources\")\n    {\n        this.Subcommands.Add(new MyGroupListCommand());\n        this.Subcommands.Add(new MyGroupCreateCommand());\n        this.Subcommands.Add(new MyGroupDeleteCommand());\n    }\n}\n```\n\nA command may define both an action and subcommands when the direct invocation has meaningful behavior.\n\n---\n\n## RULE 5 — Registration\n\n- **Top-level commands** → register in `RootCommand.cs`:\n  ```csharp\n  this.Subcommands.Add(new MyGroupCommand());\n  ```\n\n- **Subcommands** → register inside the parent command's constructor:\n  ```csharp\n  this.Subcommands.Add(new MyGroupCreateCommand());\n  ```\n\n---\n\n## RULE 6 — User Confirmation for Destructive Operations\n\n```csharp\nConsole.WriteLine(\"Are you sure you want to delete X? This action cannot be undone. (yes\u002Fno)\");\nvar confirmation = Console.ReadLine();\nif (confirmation?.ToLower() != \"yes\" && confirmation?.ToLower() != \"y\")\n{\n    Console.WriteLine(\"Operation cancelled.\");\n    return 0;\n}\n```\n\n---\n\n## RULE 7 — Command Logic\n\nThe logic of each command should be in one or more **service classes** that implement interfaces.\nThe command receives interfaces through **dependency injection (DI)**, not concrete implementations.\nThe command handler should not contain business logic.\nThe command handler should be thin, responsible only for:\n1. Parsing input\n2. Validating configuration\n3. Calling the service method\n4. Outputting results\n\nService class should be injected in the command constructor via DI, not instantiated directly.\n\n---\n\n## RULE 8 — Dependency Injection\n\nServices are registered in `Program.cs`:\n\n```csharp\nserviceCollection.TryAddSingleton\u003CIMyService, MyServiceImpl>();\n```\n\nAdd a convenience extension in `ServiceProviderExtensions.cs`:\n\n```csharp\npublic static IMyService GetMyService(this ServiceProvider provider)\n    => provider.GetRequiredService\u003CIMyService>();\n```\n\n---\n\n## RULE 9 — Naming Conventions\n\n| Element | Convention | Example |\n|---------|-----------|---------|\n| CLI command name | lowercase kebab-case | `agent create`, `set show` |\n| Command class | PascalCase + `Command` suffix | `AgentCreateCommand` |\n| Option field | `_camelCaseOption` (private readonly) | `_projectNameOption` |\n| Option long name | `--kebab-case` | `--project-name` |\n| Option short alias | `-x` (1-2 chars) | `-p`, `-id`, `-md` |\n| Argument field | `_camelCaseArgument` | `_fileArgument` |\n| Namespace | `MyProject.Commands.\u003CGroup>` | `MyProject.Commands.Agent` |\n| Folder | `Commands\u002F\u003CGroup>\u002F` | `Commands\u002FAgent\u002F` |\n\n---\n\n## RULE 10 — Visibility\n\n- All command classes are `internal`.\n\n---\n\n## RULE 11 — Global Options and Validation\n\nDefine options shared by the entire command tree once in `GlobalOptions.cs`. Reuse the same\n`Option\u003CT>` instance when registering, validating, and reading the option.\n\n```csharp\ninternal static class GlobalOptions\n{\n    public static readonly Option\u003Cstring> EndpointOption = CreateEndpointOption();\n\n    private static Option\u003Cstring> CreateEndpointOption()\n    {\n        var option = new Option\u003Cstring>(...);\n\n        \u002F\u002F add option description, aliases, and Required flag\n        \u002F\u002F Add validation to the option's Validators collection\n\n        return option;\n    }\n}\n```\n\n### Using Global Options in a Command\n\nExpose repeated parsing or conversion through protected `CommandBase` helpers:\n\n```csharp\n\u002F\u002F\u002F \u003Csummary>Resolves the validated endpoint from the global option.\u003C\u002Fsummary>\nprotected Uri GetEndpoint(ParseResult parseResult)\n{\n    var baseUrl = parseResult.GetValue(GlobalOptions.EndpointOption)!;\n    return new Uri(baseUrl);\n}\n\n\u002F\u002F\u002F \u003Csummary>Resolves the optional key from the global option.\u003C\u002Fsummary>\nprotected string? GetKey(ParseResult parseResult)\n    => parseResult.GetValue(GlobalOptions.KeyOption);\n```\n\nConsume those helpers from the leaf command's handler. The command must not add the global options to its own\n`Options` collection; recursive registration on the root already makes them available in its `ParseResult`.\n\n```csharp\nprivate async Task\u003Cint> CommandHandler(\n    ParseResult parseResult,\n    CancellationToken cancellationToken)\n{\n    var endpoint = GetEndpoint(parseResult);\n    var key = GetKey(parseResult);\n\n    ...\n\n    return 0;\n}\n```\n\nRead a global option directly in a leaf handler only when no shared conversion or fallback logic is needed.\nAlways use the static `GlobalOptions` symbol; never create a second `Option\u003CT>` with the same aliases.\n\nFollow these requirements:\n\n1. Set `Recursive = true` so the option is accepted for every descendant command.\n2. Add each global option exactly once to `RootCommand.Options`; do not duplicate it on leaf commands.\n3. Read values through the shared symbol, for example\n   `parseResult.GetValue(GlobalOptions.Endpoint)`, preferably behind a `CommandBase` helper.\n4. Add validation to the option's `Validators` collection so invalid input becomes a parse error and\n   the command handler is not invoked. Do not rely on exceptions from `new Uri(...)` or downstream services.\n5. Validate endpoint options as nonblank absolute `http` or `https` URIs. Reject unsupported schemes,\n   relative URIs, query strings, and fragments because appending a fixed endpoint path would change their meaning.\n6. For optional secret options such as `--key`, allow omission but reject an explicitly supplied blank or\n   whitespace-only value. Validate the value without logging, displaying, trimming, or otherwise mutating it.\n7. Keep validation separate from derivation.\n8. Use stable, actionable validation messages that name the option and the accepted format.\n9. Test global options through the root parser, including the default, explicit valid values, invalid values,\n   and placement before and after a representative subcommand. Verify invalid input prevents handler execution.\n\n---\n\n## RULE 12 — Checklist for New Commands\n\nWhen creating a new command, verify:\n\n1. ✅ Inherits from the project’s command base class when one exists or provides meaningful shared behavior\n2. ✅ Constructor passes `name`, `description` to base\n3. ✅ All options have `Description`, `Required`\n4. ✅ Handler wired via `this.SetAction(CommandHandler)`\n5. ✅ Handler signature: `async Task\u003Cint> CommandHandler(ParseResult, CancellationToken)`\n6. ✅ Command registered in parent (RootCommand or group command)\n7. ✅ Class is `internal`\n8. ✅ File placed in `Commands\u002F\u003CGroup>\u002F` folder\n9. ✅ Namespace matches folder: `MyProject.CLI.Commands.\u003CGroup>`\n",{"name":5,"description":7},"main","5269f7ea2d6c3a9bfda5ed878b6726cf509121fd","skills\u002Fsystem-commandline-cli",5340,"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-11 13:41:32",{"source":8,"skillName":5,"commands":61,"prompt":71,"zipAvailable":72},[62,65,68],{"tool":63,"command":64},"npx","npx skills add github\u002Fawesome-copilot --skill system-commandline-cli",{"tool":66,"command":67},"bunx","bunx skills add github\u002Fawesome-copilot --skill system-commandline-cli",{"tool":69,"command":70},"pnpm","pnpm dlx skills add github\u002Fawesome-copilot --skill system-commandline-cli","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fsystem-commandline-cli\u002FSKILL.md",true,[],[75,104,131,160,193,210],{"skillNo":76,"name":77,"nameZh":6,"description":78,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":79,"categories":80,"keywords":85,"publishedAt":45},"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",[81,84],{"categoryNo":82,"categoryName":83,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[86,87,88,89,34,29,90,91,92,93,94,95,96,97,98,99,100,101,102,103],"supabase","rls","supabase rls","supabase rls policies","review","change","read","write","security","isolation","tables","as","tests","prove","use","users","functions","with",{"skillNo":105,"name":106,"nameZh":6,"description":107,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":108,"categories":109,"keywords":111,"publishedAt":45},"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",[110],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[112,113,114,115,116,117,31,118,119,120,121,122,123,124,125,126,127,128,129,130],"distribution","skill distribution audit","audit","SET","deterministic","installer","discovery","comparison","helper","manifest","version","collection","drift","output","investigate","duplicate","template","release","reconcile",{"skillNo":132,"name":133,"nameZh":6,"description":134,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":135,"sourceHtmlUrl":136,"categories":137,"keywords":143,"publishedAt":45},"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",[138],{"categoryNo":139,"categoryName":140,"taxonomyType":141,"taxonomyTypeDesc":142},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[144,145,146,147,41,148,31,34,149,150,151,152,153,154,155,100,156,157,158,159],"custom","code","logicapps custom code net10 migration","migration","standalone","deployment","applications","local","azure","worker","upgrades","package","apps","Legacy","debugging","workflows",{"skillNo":161,"name":162,"nameZh":6,"description":163,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":164,"sourceHtmlUrl":165,"categories":166,"keywords":171,"publishedAt":45},"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",[167,170],{"categoryNo":168,"categoryName":169,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":139,"categoryName":140,"taxonomyType":141,"taxonomyTypeDesc":142},[172,173,174,175,176,177,178,42,179,180,181,182,183,184,185,29,186,187,188,189,190,31,191,192],"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":194,"name":195,"nameZh":6,"description":196,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":197,"licenseFileUrl":198,"sourceHtmlUrl":199,"categories":200,"keywords":206,"publishedAt":45},"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",[201,202,205],{"categoryNo":168,"categoryName":169,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":203,"categoryName":204,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[207,115,180,208,209],"resemble detect","https","identity",{"skillNo":211,"name":212,"nameZh":6,"description":213,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":197,"licenseFileUrl":214,"sourceHtmlUrl":215,"categories":216,"keywords":221,"publishedAt":45},"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",[217,220],{"categoryNo":218,"categoryName":219,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[222,223,224,225,145,90,9,114,226,227,208,228,229,230,231,232,233,234,235,236,237,238,98,239,240,241,242],"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"]