Spec — Galho 4 da trilha Terminal (TUIs de Dev / Lazygit + Lazydocker)
Leitura de 11 min
Spec — Galho 4 da trilha Terminal (TUIs de Dev / Lazygit + Lazydocker)
1. Contexto e motivação
Este é o quarto galho da trilha Terminal (roadmap em docs/superpowers/specs/2026-05-18-trilha-terminal-design.md; galhos 1-3 já entregues). Pressupõe leitura do roadmap — tríade Iniciado/Adepto/Magus, tronco/galho e iteração vertical não são repetidos.
O usuário está em adoção em curso de ambas as ferramentas. Já instalou Lazygit e Lazydocker mas ainda não rodou em workflow diário com elas — não configurou config.yml custom, não escreveu customCommands, não usou bisect via UI. Os exemplos das notas devem ser um mix: neutros (alice, myproj) ou hipotéticos explícitos (# hipotético: ...) pra coisas que ele ainda não testou, e ancorados em situações que ele vai começar a fazer com base nas próprias notas. Sem fabricação de uso pessoal — se um caso de uso não foi vivido, escrever em terceira pessoa ou hipotético.
Lazygit e Lazydocker são TUIs do mesmo autor (Jesse Duffield) com filosofia semelhante: keyboard-first, painéis discoverable, integração nativa com docker-compose / git workflow. Por estarem no mesmo galho — mesmo o conteúdo sendo independente — 7 notas atendem (5 Lazygit + 2 Lazydocker), com proporção 2 Iniciado / 3 Adepto / 2 Magus. Lazygit ganha mais notas porque tem mais features estabelecidas e customização mais profunda (customCommands, keybinding, gui.theme, git.paging).
2. Objetivo
Produzir, em uma sessão de execução dedicada, 7 notas atômicas + 1 MOC do galho + expansão do Dicionário do Terminal em 03-Dominios/Terminal/TUIs/ e 03-Dominios/Terminal/, todas publish: true, em PT-BR, distribuídas em 3 fases (2 Iniciado + 3 Adepto + 2 Magus).
A trilha precisa ser:
Operacional — leitor consegue rodar Lazygit e Lazydocker confiantemente após Iniciado; configurar e customizar após Adepto; estender com customCommands e debug docker-compose após Magus.
Honesta — keybindings testados, configs verificáveis. Sem invenção de comandos ou features. Custom commands citados devem ser sintaxe válida no config.yml atual.
Atômica — cada nota cobre um tópico bem-delimitado; wikilinks ricos pro restante do galho e pro Dicionário.
Frontmatter padrão (title: "TUIs de Dev", tags terminal/tuis/lazygit/lazydocker/moc, aliases TUIs de Dev/Lazygit/Lazydocker)
Conteúdo agrupado em 3 H3 (Iniciado/Adepto/Magus)
2-3 rotas alternativas:
Apenas Lazygit: 01 → 03 → 04 → 06
Apenas Lazydocker: 02 → 05 → 07
Onboarding completo: 01 → 02 → 03 → 05 → 06
Bloco “Versões assumidas” com Lazygit e Lazydocker versions capturadas no pré-flight
3.3. Expansão do Dicionário do Terminal
03-Dominios/Terminal/Dicionário do Terminal.md ganha novo bloco## TUIs de Dev / Lazygit / Lazydocker (após ## Multiplexer / Zellij), com 14 verbetes em ordem alfabética case-insensitive:
Verbete
Resumo
Bisect (Lazygit)
UI visual do git bisect no Lazygit
Cherry-pick
Copiar commit de branch A pra branch B
Command log
Painel do Lazygit que mostra cada comando git executado
Custom command (Lazygit)
Atalho YAML mapeando key → shell command com prompts
Docker-compose
Orquestrador multi-container Docker
Editor preset
Preset YAML do Lazygit pra abrir arquivo no editor configurado
Exec (Lazydocker)
Abrir shell interativo dentro de container rodando
Hunk
Bloco contíguo de mudanças num diff
Interactive rebase
git rebase -i com UI Lazygit (reorder/squash/edit/drop)
Lazydocker
TUI pra Docker (containers, images, logs, stats)
Lazygit
TUI pra git (status, branches, commits, stash)
Reflog
Log de movimentos de HEAD (visualizado com Y no Lazygit)
TUI
Terminal User Interface (UI keyboard-first dentro do terminal)
Worktree
Múltiplos working dirs do mesmo repo
Cada verbete tem Veja também: apontando pra nota canônica do tópico.
3.4. Tronco — ativar wikilink
03-Dominios/Terminal/index.md: trocar - TUIs de Dev — galho 4 (planejado): Lazygit, Lazydocker por - [[03-Dominios/Terminal/TUIs/index|TUIs de Dev]] — galho 4: Lazygit + Lazydocker (operações, config, debugging).
Rebase interativo: painel Commits, e (edit/interactive) em commit → tela de rebase → reorder com K/J, squash com s, fixup com f, drop com d, edit com e. Continue com m (after fix).
Cherry-pick:c (copy) em commit (modo COPY) → ir pra branch destino → v (paste).
Staging por hunks:enter no diff view de Files → entra no diff inline view → space stage linha individual; tab alterna entre +/- contextos. enter mais profundo na linha.
Discard:d em arquivo Modified → menu (Discard all / Discard changes), confirmation.
Reflog:Y em qualquer painel → painel Reflog (todas movimentações de HEAD). Útil pra recuperar branch deletada.
Merge conflicts: após merge/rebase, Lazygit mostra arquivos em conflict; enter no arquivo abre conflict view com space pra escolher hunk.
Task 2: Bloco ## TUIs de Dev / Lazygit / Lazydocker vazio no Dicionário
Notas (Tasks 3-9): uma task por nota, ordem fase-progressiva. Cada task:
Implementer subagent (Sonnet) com spec completo + restrições
Reviewer combinado (Sonnet)
Fix subagent (Sonnet) se Critical/Important
Mark complete
Passes finais (Tasks 10-13):
Task 10: Pass final MOC (versões reais)
Task 11: Pass final Dicionário (alfabético + Veja também)
Task 12: Tronco wikilink
Task 13: Validação final (verificar-wikilinks)
8. Critério de pronto
8 arquivos em 03-Dominios/Terminal/TUIs/: 7 notas + index.md
≥12 verbetes novos no bloco ## TUIs de Dev / Lazygit / Lazydocker do Dicionário
Tronco Terminal/index.md com wikilink ativo
verificar-wikilinks em TUIs/ sem broken links
Quartz build limpo (cross-repo — fora do escopo desta sessão)
Todos commits sem Co-Authored-By: Claude
Cada nota com ≥5 armadilhas (4 labels), ≥7 wikilinks, “Em inglês” em bullets bilíngues
Cada verbete com “Veja também”
9. Risco e mitigação
Keybindings mudam entre versões: Lazygit/Lazydocker evoluem ativamente; atalhos podem ter sido refeitos. Mitigação: Step 1 (pesquisa-âncora) de cada nota verifica keybindings via doc oficial mais recente; quando ambíguo, escrever “verifique ? na sua versão”.
Custom commands sintaxe muda: schema YAML pode evoluir (campos novos como loadingText, output). Mitigação: verificar contra docs/Custom_Command_Keybindings.md antes de cada exemplo; preferir exemplos minimal.
docker compose v1 (hífen) vs v2 (espaço): muitos sistemas ainda têm v1. Mitigação: mencionar ambos; documentar commandTemplates pra rebind se necessário.
Fabricação de uso pessoal: ambos em adoção; tentação de afirmar “no meu workflow X…” é alta. Mitigação: reforço nos prompts de cada implementer subagent.
Lazygit hooks “Lazygit-specific” não existem: o usuário pode esperar plugin system; Lazygit só respeita git hooks nativos. Mitigação: Magus 06 documenta explicitamente “Lazygit não tem hooks próprios extensíveis; usa git hooks nativos”.