create-cli
Design command-line interface parameters and UX: arguments, flags, subcommands, help text, output formats, error messages, exit codes, prompts, config/env precedence, and safe/dry-run behavior. Use when you’re designing a CLI spec (before implementation) or refactoring an
Installation
Pick a client and clone the repository into its skills directory.
Installation
About this skill
Design command-line interface parameters and UX: arguments, flags, subcommands, help text, output formats, error messages, exit codes, prompts, config/env precedence, and safe/dry-run behavior. Use when you’re designing a CLI spec (before implementation) or refactoring an existing CLI’s surface area for consistency, composability, and discoverability.
How to use
Przygotuj podstawowe informacje o swoim CLI: nazwę komendy i jedno zdanie opisujące jej cel. Określ, czy będzie używana głównie przez ludzi, skrypty czy oba.
Wyjaśnij źródła danych wejściowych – czy będziesz przyjmować argumenty, dane ze standardowego wejścia, pliki czy adresy URL. Zastanów się, jak będziesz obsługiwać dane wrażliwe (nigdy przez flagi).
Zdefiniuj kontrakt wyjścia: czy chcesz tekst dla człowieka, opcję
--jsondla maszyn,--plaindla skryptów. Określ też kody wyjścia dla głównych scenariuszy błędów.Zdecyduj o interaktywności: czy CLI będzie pytać użytkownika o potwierdzenie, czy potrzebujesz flagi
--no-inputdla trybu nieinteraktywnego. Zaplanuj--dry-rundla operacji destrukcyjnych.Ustal model konfiguracji i kolejność priorytetów: flagi powinny przesłaniać zmienne środowiskowe, które przesłaniają plik konfiguracji projektu, który przesłania konfigurację użytkownika. Wybierz między standardem XDG a konfiguracją lokalną w repozytorium.
Umiejętność wygeneruje kompletną specyfikację: drzewo komend, tabelę argumentów i flag z typami i przykładami, semantykę podkomend, reguły bezpieczeństwa i mapę kodów błędów – gotowe do implementacji.