Skip to content

Koder Triage — unified inventory & triage surface

operator-cockpit specs/operator-cockpit/cockpit.kmd

Koder Triage é o módulo oficial unificado de inventário/triagem de objetos da Koder Stack: ícones, nomes de componentes, tickets e assuntos/tarefas extraídos de chats (WhatsApp/Telegram). Superfície web única (Koder Jet, landing + URL próprias, auth Koder ID) onde o owner/operador revisa listas/batches acionáveis e age: selecionar/classificar, excluir (→ lixeira 30d), adiar, ou promover (a IA cria/implementa tickets nos backlogs certos). Armazenamento = data-area NÃO- versionada do KVS (parte integrante do repo — kvs#253). Substitui os silos soltos (triagem de ícones, de nomes na :8765, Imago, …). DISTINTO de: **Kli** (UI rica pra IAs CLI) e **Koder Console** planejado (customer-facing).

When this spec applies

All triggers

Specification body

Spec — Koder Triage

Recast 2026-06-22 (owner via /k-arch→/k-go). Já se chamou "Operator Cockpit" e depois, por engano, "Koder Kli". Modelo correto: três coisas distintas — (1) Triage (este doc): inventário/triagem + KVS data-area, módulo oficial; (2) Kli: a UI rica pra IAs CLI; (3) Krew (agent-console-RFC-001): duplicado cross-sessão (unificado 2026-06-23 → products/dev/kli) do conceito Kli → unificado no Kli (products/dev/kli). Path do arquivo mantido por ora; produto = Koder Triage (products/dev/triage).

1. Propósito (Meta-First, regra-dos-3)

≥3 superfícies fragmentadas de triagem IA↔owner (ícones, nomes, tópicos-de-chat) → um módulo único, Triage. Superfície-padrão (operator-cockpit-standard-surface.kmd): nenhuma IA cria página ad-hoc. Distinto de meta.koder.dev, do Kli e do Koder Console.

2. Colocação & forma

  • Koder Triage (products/dev/triage, slug triage). Web-only, Koder Jet, landing + triage.koder.dev. Auth Koder ID (operador via RBAC). Chrome reusa shell SDK; cards Verge.

3. Item-types plugáveis

  • topics (chat), icons (de meta/brand/icons), names (da :8765), Backlog/ Drafts/Notices (viewers, Fase 2).

4. Contrato de triagem

Itens por assunto/batch; seleção item OU assunto inteiro; em lote:

  • Excluir → lixeira 30d (§6); assunto = exclui assunto + itens.
  • Adiar → tira da avaliação.
  • Promover → a IA cria/implementa tickets nos backlogs corretos (cross-module). Paridade item × assunto.

4.1 Diretiva de IA por-tarefa (TRIAGE-023)

Cada tarefa carrega uma diretiva opcional "operator marca → IA executa", ortogonal ao Status: o owner escolhe o que a IA deve fazer com a tarefa e um prompt livre opcional. Persistido no tenantstore como ai_action / ai_prompt / ai_queued_at (gravado via /api/action verbos set-ai-action / set-ai-prompt / queue-ai; nunca altera o Status da tarefa). Vocabulário fechado de ai_action: implement · open-ticket · research · decompose · delete (valor fora da lista → 400). Contrato de consumo: no próximo /k-triage (sem --scan) ou /k-go, a IA lê as tarefas com ai_action setado e executa cada uma pela ação — implement (faz e leva a done no componente dono, cadência lock/commit/push) · open-ticket (promove com corpo AI-authored no backlog certo) · research (investiga//k-arch, reporta, sem tocar código) · decompose (quebra em subtarefas) · delete (soft-delete 30d) — e, se ai_prompt estiver presente, ele aumenta/sobrepõe o prompt default daquela ação.

5. Pipeline Chat→Tópicos (um item-type)

/k-triage --scan lê (whatsmeow/MTProto; device/Iris fallback), extrai tópicos→tarefas e adiciona ao Triage (item-type topics). Sessões/tokens cifrados, owner-only. Descoberta quando --chats omitido: varre WhatsApp + Telegram, lista os chats com mensagens enviadas na janela (default 15 dias, --period omitido) e apresenta app + nome do chat pro owner selecionar — nunca inventaria todos silenciosamente.

6. Armazenamento (KVS data-area, não kdb)

data-area não-versionada de um repo KVS (kvs#253), parte do repo → backups repo→Drive. 1 registro=1 arquivo (atômico) + mídia. Single-writer. Lixeira 30d (soft-delete + purge). Bootstrap: dir gitignored + /k-backup até o kvs#253.

7. Superfície-padrão

Toda lista/batch acionável IA↔owner aparece no Triage; o comando de ingestão termina exibindo a URL do Triage. Normativo: operator-cockpit-standard-surface.kmd.

8. Comandos

  • /k-triage — abre o Triage (qualquer status).
  • /k-triage --scan [<chats>] [<período>] — sem <chats>: descobre os chats ativos na janela (default 15d) e o owner seleciona; depois ingestão → grava no Triage → abre.

9. Decisões

  1. ✅ Identidade (2026-06-22): este módulo é Koder Triage, não "Kli". Kli = UI pra IAs CLI (à parte); Krew = duplicado do Kli (unificado 2026-06-23). Reverte o rescope anterior.
  2. ✅ Storage = KVS data-area (kvs#253).
  3. ✅ Ingestão = protocolo (whatsmeow/MTProto) + device/Iris fallback.
  4. ✅ Superfície-padrão.

10. Faseamento

  • Fase 0: spec+policy · store · ingestão · triagem (topics) · promover→tickets · Koder ID.
  • Fase 1: migrar ícones/nomes pro Triage.
  • Fase 2: item-types Backlog · Drafts · Notices.

References