# COCKPIT — PROPOSTA DA FASE 3 (preparação; NÃO implementada) — 2026-10-12

Missão `tarefa.md` §7. Proposta objetiva, derivada da arquitetura existente e do
estado verificado da Fase 2 LIVE. **Nada abaixo foi implementado nesta missão.**

## Estado de entrada verificado (fatos, não planos)

| Fato | Evidência |
|---|---|
| 186 registros catalogados (16 A · 34 B · 136 C); `knowledge_items = 0` até decisão humana | suíte `tests/test_homologation.py` |
| Mecanismo de homologação completo e testado (aprovação → revisão → consolidação → auditoria) | `tests/test_homologation_approval.py` + `tests/test_homologacao_simulada.py` |
| Migração 0006 validada (aplicar/reverter/reaplicar), não aplicada | `COCKPIT_MIGRACAO_0006_VALIDACAO_ISOLADA.md` |
| Personas/skills **documentais**: catálogo de executores vazio (`capabilities.PERSONA_EXECUTORS == frozenset()`) | `tests/test_homologation.py::OrchestratorSafetyTests` |
| Orquestrador com recuperação de requisições interrompidas; jobs `waiting_human` preservados | correções da rodada anterior (`recover_interrupted_requests`) |
| Provedores externos (Perplexity/OpenRouter) não configurados; agenda de pesquisa pausada por autorização | `COCKPIT_HANDOFF.md` |
| Adapter Context Core é stub | `COCKPIT_HANDOFF.md` |
| Automação de navegador bloqueada por política (`COCKPIT_ALLOW_BROWSER_AUTOMATION`, default off) | correção desta linha |
| 7 decisões do proprietário pendentes (migração, homologação, pendências, quarentena, reinício, higiene, hardening) | `retorno.md` seção I |

## Critério de entrada global da Fase 3

A Fase 3 só começa quando a **Fase 2 estiver formalmente encerrada**, ou seja:

1. As 7 decisões do proprietário respondidas e executadas (migração 0006 aplicada
   ou formalmente adiada; 16 candidatos decididos; pendências/quarentena com
   decisão registrada; serviço reiniciado para carregar as correções).
2. Suíte completa verde (incluindo a homologação simulada) e
   `PRAGMA integrity_check = ok` no banco operacional.
3. Backup corrente verificado (SHA-256) na mesma janela.

## Pacotes de trabalho, dependências e sequência

### F3.1 — Conhecimento operacional (depende: decisões 1–2 da Fase 2)

- **Objetivo:** a biblioteca canônica deixa de ser zero e passa a ser consultável.
- **Escopo:** após aprovação dos 16, validar que `draft → in_review → revised →
  consolidated` reflete a revisão real; exposição das fontes/versões no painel
  (já suportado pela API); política de exibição de autoria nos itens.
- **Fora de escopo:** inventar material novo; promover algo fora dos 16 aprovados.
- **Critério de saída:** ≥1 material consolidado com autoria `agent` e trilha completa.

### F3.2 — Integração personas × conhecimento (depende: F3.1)

- **Objetivo:** personas passam a **consultar** o conhecimento homologado como
  fonte de contexto (contexto de conversa e de job), sem executar nada.
- **Escopo:** mecanismo de seleção por afinidade (o rascunho de keyword matching
  já existe e é documentado como *candidato* — promovê-lo a consulta real com
  limite de itens e citação de fonte); gate: só material `consolidated`.
- **Fora de escopo:** novas personas; execução automática de skills; mudança visual.
- **Critério de saída:** uma pergunta de domínio de um material consolidado
  produz resposta com citação rastreável (item + versão + fonte).

### F3.3 — Orquestração confiável + execução supervisionada (depende: F3.2)

- **Objetivo:** jobs com ciclo de vida previsível e execução sempre humana no loop.
- **Escopo:** tratamento explícito de `waiting_human` (retomada, expiração,
  cancelamento); registro de executores de persona/skill **com aprovação por
  execução** (a pendência histórica do HANDOFF, hoje vazia por segurança);
  idempotência e deduplicação já existentes passam a valer para o fluxo completo.
- **Fora de escopo:** ativação de serviços externos sem autorização; automação de
  navegador; tocar em `COCKPIT_CAR_ENFORCE`.
- **Critério de saída:** um job interrompido retoma ou fecha com razão registrada;
  nenhuma execução ocorre sem aprovação humana explícita.

### F3.4 — Recuperação contextual (depende: F3.3)

- **Objetivo:** após reinício, o sistema reconstrói o contexto (conversa, job,
  estado de revisão) sem perda nem duplicação.
- **Escopo:** o `recover_interrupted_requests` existente passa a reconciliar
  também o contexto de sessão/chat; ponto de verificação persistente por job.
- **Critério de saída:** reinício com trabalho em `waiting_human` preserva
  contexto e não duplica efeitos (exercício em banco de teste, como na simulação).

### F3.5 — Observabilidade (depende: F3.3; paralelizável com F3.4)

- **Objetivo:** enxergar o estado real sem inspecionar o banco.
- **Escopo:** métricas derivadas de dados existentes (jobs por estado, latência,
  falhas, itens homologados, decisões na trilha de auditoria); health aprofundado
  (já responde 200; acrescentar agregados); leitura da trilha
  `logs/homologation-audit.jsonl` no painel (somente metadados).
- **Fora de escopo:** novos provedores/telemetria externa.

### F3.6 — Segurança e permissões (depende: nenhuma técnica; pode correr cedo)

- **Objetivo:** fechar as recomendações P2/P3 já identificadas.
- **Escopo:** rate limit de login com backoff persistente; `password_hash` como
  `SecretStr`; separação de permissões por módulo (Conhecimento/Ecossistema/
  Aprovação) respeitando o modelo de sessão atual.
- **Restrição:** qualquer mudança de política de segurança segue exigindo
  autorização expressa; esta etapa só **prepara e executa o aprovado**.

## Sequência recomendada

```
Fase 2 encerrada (7 decisões)
   └─> F3.1 Conhecimento operacional
         └─> F3.2 Personas × conhecimento
               └─> F3.3 Orquestração + execução supervisionada
                     ├─> F3.4 Recuperação contextual
                     └─> F3.5 Observabilidade (paralelo)
F3.6 Segurança/permissões (independente; iniciar quando o proprietário autorizar)
```

**Regra de continuidade:** cada pacote entra com backup, suíte verde e saída com
evidência — o mesmo formato desta Fase 2. Nenhuma fase recomeça a anterior.
