What problem does it solve? Adding CLI argument parsing to .NET console apps and global dotnet tools is full of traps: System.CommandLine's GA API differs sharply from the beta API shown in most blog posts, help output defaults to stdout which corrupts stdio MCP protocol streams, and archived parsers like Cocona still lurk in existing tools. This Skill provides empirically verified, version-pinned guidance so you avoid compile errors, silent misbehavior, and protocol corruption. ## Core Features & Use Cases - Parser landscape verdicts: Compares System.CommandLine 2.0.x GA, Spectre.Console.Cli, Cocona (archived — do not adopt), and McMaster.Extensions, with maintenance guidance for existing Cocona-based tools. - Pinned GA API idioms: Parse-first patterns, HelpAction/VersionOptionAction detection, Option.Validators for custom value grammars, instance-based GetValue reads for duplicate aliases, and the two-root pattern for optional subcommands. - Stdio MCP / JSON-RPC safety: Ensures help, version, and error text render to stderr so they never corrupt the protocol stream on stdout, with test patterns to lock the behavior. - Use Case: You are building a dotnet global tool that exposes an MCP server over stdio. Use this Skill to parse args with System.CommandLine 2.0.10, route all CLI text to stderr, handle the WebApplicationFactory hidden-flag triplet in E2E tests, and keep secrets out of argv. ## Quick Start Ask the agent to add System.CommandLine 2.0.10 argument parsing to your .NET tool with help and version routed to stderr for stdio MCP compatibility.