UI draft — Painel de issues e planos no terminal (OPS109)

O mantenedor abre a TUI no terminal (mesa ou SSH do laptop/celular): lista de issues com estado, prioridade e o que esperam dele; detalhe com plano de intenção e de implementação e o status de cada um; leitor de markdown renderizado. Do detalhe também abre o rascunho UI no browser da máquina e anexa à sessão do agente que está rodando aquela issue. Read-only sobre tracker e planos.

Cena estática — sem interação, sem dados reais. Cinza = estrutura · acento sky = seleção/foco · cores de estado = leitura funcional · barras cinza = conteúdo não especificado.

Cena 1 · desktop (~100 colunas) — lista com filtro por estado

teqo · issues | repo fsolla/teqo última sync: 14:32
1 todas (43) 2 em andamento (3) 3 aguardando (12) 4 concluídas (28)
estado id título plano prio
● em andamento C163 Título de exemplo da issue em curso impl em execução P1
◌ aguardando OPS000 Título de exemplo aguardando aprovação intenção: aguardando P2
■ travada B000 Título de exemplo com dependência aberta depends OPS111 P2
○ pronta C000 Título de exemplo pronto para claim intenção: aprovado P2
✓ concluída OPS097 Título de exemplo já entregue impl entregue P2
○ pronta OPS000 Título de exemplo sem plano ligado sem plano P3
↑↓ navegar enter abrir 1-4 filtrar / buscar r recarregar q sair

Cena 2 · desktop — detalhe da issue: resumo + planos e status

OPS000 — Título de exemplo aguardando aprovação ◌ aguardando
Issue #0000 · prio P2 · kind feature · depends — · github.com/fsolla/teqo/issues/0000

resumo

Duas linhas de exemplo do resumo de produto, na voz do humano que pediu o item. Sem números reais e sem promessa que o plano não faça.

planos

✓ intenção · docs/plans/ops000-exemplo.md · aprovado (gate humano 2026-09-10) · enter abre
◌ implementação · docs/plans/ops000-exemplo-impl.md · aguardando aprovação · enter abre

ações

w abrir rascunho UI no browser · docs/plans/ops000-exemplo-ui-draft.html
s abrir sessão do agente · run ativo · worktree do exemplo
esc voltar enter abrir plano w rascunho UI s sessão do agente o abrir no GitHub

Cena 3 · desktop — leitor de plano: markdown renderizado no terminal

docs/plans/ops000-exemplo-impl.md Status: aprovado 64% · ↑↓ rolar

# Impl: OPS000 — Título de exemplo

Parágrafo de exemplo com negrito e alguma decisão de implementação já tomada — o leitor de terminal precisa distinguir hierarquia sem browser.

## Fases verificáveis

1. Tracer bullet — esqueleto navegável

2. UI — encaixe na tela existente

3. Gates — pnpm gate:fast, push

## Alternativas rejeitadas

| Opção | Por que caiu |
|-------------|--------------------------------|
| A | exemplo de motivo |
| B | exemplo de motivo |

```text

fluxo de exemplo → outcome

```

> citação de exemplo do plano

↑↓ rolar pgup/pgdn página esc voltar à issue

Cena 4 · estados críticos — sem token (erro claro), filtro vazio e sem ações

teqo · issues

erro: GITHUB_TOKEN não definido no ambiente.

Nada foi alterado. Defina o token e rode de novo:

GITHUB_TOKEN=… pnpm issues:tui

r tentar de novo q sair
teqo · issues · aguardando

Nenhuma issue aguardando aprovação no momento.

1 ver todas · 2 em andamento · 4 concluídas

1-4 trocar filtro q sair
teqo · issues · ações

sessão do agente: nenhuma ativa.

O painel não inicia run — dispare pelo worktree/skill.

rascunho UI: não tem (classe A).

Um caminho longo de exemplo é impresso no lugar.

esc voltar q sair

Cena 5 · celular (~390px) — terminal estreito: lista e leitor

teqo · issues
todas andam. aguard. feitas

● em andamento · C163 · P1

Título de exemplo da issue em curv…

s abrir sessão (run ativo)

◌ aguardando · OPS000 · P2

Título de exemplo aguardando aprovaç…

■ travada · B000 · P2

Título de exemplo com dependência ab…

✓ concluída · OPS097 · P2

Título de exemplo já entregue

↑↓ mover enter abrir q sair

ops000-exemplo-impl.md

Status: aprovado · 64%

# Impl: OPS000 —

Título de exemplo

Parágrafo de exemplo com

negrito e decisão já tomada.

## Fases verificáveis

1. Tracer bullet — esqueleto

2. UI — encaixe na tela

3. Gates — gate:fast

## Alternativas

A · exemplo de motivo

B · exemplo de motivo

↑↓ rolar esc voltar