O que cli-developer faz?
Use ao construir ferramentas CLI, implementar análise de argumentos ou adicionar prompts interativos. Invocar para análise de flags e subcomandos, exibir barras de progresso e spinners, gerar scripts de conclusão bash/zsh/fish, design de CLI, conclusões de shell e aplicativos de terminal multiplataforma usando commander, click, typer ou cobra.
Descrição Detalhada
O skill jeffallan/cli-developer é seu assistente dedicado para construir ferramentas de linha de comando robustas e amigáveis. Ele cobre todo o ciclo de vida do desenvolvimento de uma CLI, desde o design inicial e a implementação da análise de argumentos até a construção de recursos avançados de usabilidade.
Funcionalidades Principais
- Análise de Argumentos e Opções: Ajuda a implementar e validar argumentos, flags, opções e subcomandos de forma eficiente, utilizando as bibliotecas
commander,click,typeroucobra. - Prompts Interativos: Fornece orientação sobre como adicionar prompts para entrada do usuário, melhorando a interatividade da sua ferramenta.
- Indicadores Visuais: Auxilia na exibição de barras de progresso e spinners para informar o usuário sobre o andamento de operações longas.
- Scripts de Conclusão: Gera scripts de conclusão para os shells
bash,zshefish, tornando sua CLI mais fácil de usar. - Design de CLI: Oferece conselhos sobre melhores práticas de design, estrutura de comando, nomes e saída de ajuda.
- Aplicativos Multiplataforma: Garante que sua aplicação funcione corretamente em diferentes sistemas operacionais (Linux, macOS, Windows).
Plataformas Suportadas
commander(Node.js)click(Python)typer(Python)cobra(Go)
Como Usar
Simplesmente invoque este skill quando você precisar de ajuda com qualquer aspecto do desenvolvimento de CLI. Forneça detalhes sobre a tarefa específica, como a estrutura desejada, os comandos, as opções e o comportamento esperado.
Exemplo de Uso
"Estou usando
commanderpara construir uma ferramenta de linha de comando que gerencia tarefas. Preciso de ajuda para implementar um subcomando 'add' que aceita um argumento obrigatório (o nome da tarefa) e uma flag opcional '--priority'. Como eu estruturo isso?"