Pular para conteúdo

Fluxo de dados e arquitetura v2

A arquitetura v2 conecta ingestão, evidências, estado de carreira, propostas e execução local sem entregar o source of truth a um provider de IA. O fluxo favorece dados tipados, revisão humana e rastreabilidade em vez de automação implícita.

Visão geral

fontes e documentos
  → parsers/importadores
  → candidatos na Evidence Inbox
  → Evidence Graph revisado
  → Career State determinístico
  → Next Best Actions
  → plano e proposta do Copilot
  → aprovação humana
  → application service
  → SQLite, snapshots e audit
  → outcomes e novo Career State

Camadas

Interfaces

React Web, extensão e Local Companion são clientes. Eles apresentam dados e iniciam comandos, mas não implementam regras autoritativas de Career State ou aprovação.

API local

FastAPI expõe contratos /api/v1 preservados e as superfícies /api/v2 de evidence, portfolio, Career State, approvals, Copilot, audit e search. Pairing, sessão e CSRF protegem mutações web no modo API Real.

Domínio

Parsers e módulos de carreira normalizam dados; Evidence Graph preserva proveniência e revisão; Career State e NBA executam regras determinísticas; o Copilot cria planos e propostas usando um registry fechado.

Application services

Application services são a única passagem autorizada para efeitos locais. Eles recebem inputs já validados e, para writes do Copilot, somente depois da approval boundary.

Persistência

SQLite schema 8 é o writer dos domínios v2. Snapshots e audit preservam contexto de decisão. Stores JSON/JSONL anteriores continuam onde existe compatibilidade legada, sem dual-write v2.

Ingestão e revisão

PDF, DOCX, HTML, TXT, JSON Resume, Lattes, GitHub, feeds, páginas públicas e entrada manual têm níveis diferentes de estrutura. Importadores convertem a fonte em schema conhecido e registram a origem. Conteúdo novo começa como candidato quando exige confirmação.

O usuário revisa na Evidence Inbox. Confirmar libera o item como fato; rejeitar preserva a decisão; stale indica que uma dependência precisa de nova validação.

Career State e recomendações

Career State agrega dados locais confirmados e produz dependency hash. NBA ordena ações por regras transparentes. Nenhum request de provider é necessário para calcular o estado oficial.

Snapshots de Career State são explícitos. Uma leitura comum do Cockpit não gera escrita oculta.

Copilot e aprovação

O Copilot recebe intenção e contexto mínimo. Read-only pode responder diretamente; draft ou write-local gera Proposed Action com preview, impacto, risco e evidências. O usuário aprova uma proposta por vez. Antes da execução, expiry, dependency hash, status e idempotência são revalidados.

Detalhes em Human-Approved Career Copilot.

Providers

O Provider Router oferece caminhos local, Gemini, OpenAI e endpoints locais compatíveis quando configurados. Providers ajudam em extração, explicação e draft. Saída estruturada passa por schema e fallback; falha externa não altera a regra determinística nem concede autoridade de tool.

Chaves ficam no backend local. Contexto externo é opt-in e omite conteúdo sensível por padrão.

Outcomes e realimentação

Outcomes manuais de candidatura podem atualizar analytics e o próximo Career State. Eles não recalibram pesos automaticamente nem transformam correlação em regra causal. O histórico anterior permanece rastreável por snapshots e eventos.

Source of truth por domínio

Domínio Source of truth atual
Evidence Graph evidence_nodes e evidence_edges no SQLite
Portfólio v2 portfolio_items no SQLite
Career State derivado; snapshots explícitos no SQLite
Copilot planos, steps, proposals, executions e audit no SQLite
Perfil/Tracker e módulos v1 repositories existentes, com migração gradual documentada
Providers configuração local; nunca source of truth de fatos

Boundaries de segurança

  • interfaces não escrevem diretamente no banco;
  • conteúdo importado é dado, não comando;
  • schema rejeita campos desconhecidos;
  • registry recusa tool não allowlisted;
  • writes exigem approval quando aplicável;
  • stale e expiry são verificados na execução;
  • audit é append-oriented e undo não apaga o evento original;
  • auto-apply, login, CAPTCHA, pagamento e envio automático continuam fora do produto.

Exemplo de fluxo

1. Usuário importa currículo.
2. Parser cria candidato "Projeto Aurora" com source_ref do documento.
3. Usuário confirma o projeto e rejeita uma skill incorreta.
4. Career State identifica portfólio incompleto.
5. NBA sugere revisar o projeto.
6. Copilot propõe criar uma tarefa local.
7. Usuário revisa preview e aprova.
8. Application service cria a tarefa de modo idempotente.
9. Audit registra proposta, aprovação e execução.
10. Novo Career State passa a considerar a tarefa pendente.

Trade-offs

SQLite simplifica operação local e recuperação, mas não oferece visualização de graph pronta como um produto especializado. Aprovação adiciona um passo à jornada, porém reduz execução equivocada e torna o sistema demonstrável. Manter compatibilidade v1 evita migração destrutiva, ao custo de uma transição gradual de stores legados.