{
  "schema_version": "1.0",
  "decisions": [],
  "open_questions": [],
  "project_id": "disclosure-bureau",
  "business_slug": "systems-atelier",
  "phase": "plan",
  "brief_original": "Audite e proponha plano de modernização completo do **The Disclosure Bureau** — sistema de investigação sobre documentos declassificados.\n\n# Contexto\n\nThe Disclosure Bureau (https://disclosure.top) recebe documentos (PDF/imagens), extrai conteúdo via vision LLM, converte em markdown estruturado bbox-aware, gera embeddings densos + esparsos, popula grafo de co-menções entre entidades, e expõe uma wiki investigativa + agente de chat (Sherlock). Corpus atual: 116 PDFs do war.gov/ufo (DOD UAP, FBI Vault, NASA Apollo/Skylab, FOIA) → 3.435 páginas → 20.974 chunks → 34.370 entidades → 248.398 menções.\n\n**Repo:** `/Users/guto/ufo` (commit baseline `19d0678`)\n**Live:** https://disclosure.top\n**Instrução canônica:** `/Users/guto/ufo/CLAUDE.md` + `/Users/guto/ufo/CLAUDE-schema-full.md`\n**Memory dev:** `/Users/guto/.claude/projects/-Users-guto-ufo/memory/MEMORY.md`\n\n## Pipeline atual\n1. PDF → PNG 72 DPI (pdftoppm) + OCR (pdftotext)\n2. Chunking agêntico com Sonnet 4.6 via subagents → raw/<doc>--subagent/chunks/cNNNN.md (frontmatter YAML + corpo bilíngue EN+PT-BR)\n3. Embedding BGE-M3 (1024d) self-hosted FastAPI; reranker BGE-Reranker-v2-M3\n4. Postgres 15.8 + pgvector 0.8 + pg_trgm + tsvector → hybrid search RRF\n5. Entity mentions materializadas via ILIKE\n6. Next.js 15 (App Router) + Tailwind + Sigma.js/ForceAtlas2\n\n## Stack self-hosted (Docker Compose em VPS)\nNext.js 15 / React 19 · Supabase (GoTrue, PostgREST, Realtime, Storage, Studio, Kong 2.8, Imgproxy, Meilisearch) · Postgres + pgvector · BGE-M3/Reranker (PyTorch CPU) · Traefik TLS · Sigma.js graphology.\n\n## Restrições não-negociáveis\n- PROIBIDO ANTHROPIC_API_KEY. Usar CLAUDE_CODE_OAUTH_TOKEN (Claude Code SDK) OU OPENROUTER_API_KEY (fallback).\n- Bilíngue EN+PT-BR (português brasileiro, UTF-8 com acentos preservados).\n- Identificadores em inglês internacional.\n- Markdown puro como source-of-truth.\n- VPS self-hosted via Docker Compose. Sem SaaS proprietário no data plane.\n\n## Funciona hoje\nHomepage bento 116 docs · Hybrid search 1.3s · Páginas chunk-a-chunk · Crops bbox auto-tighten · Allowlist image_types · Grafo Sigma.js ForceAtlas2 · Entity pages DB-live · Chat Sherlock (signup/login + Kong corrigido) · /admin/stats, /admin/batch, /admin/indexer.\n\n## Gaps críticos\n1. Timeline (/timeline) — eventos extraídos mas todos com placeholder \"_Stub. Will be enriched in Phase 7._\" — usuário furioso com esse \"Phase X\"\n2. Case Bureau (case/case-report.md, hypotheses Tetlock, evidence Locard) — schema definido, pipeline nunca rodou\n3. Dashboards investigativos reais (não admin técnico) — clusters, geografia, atores, padrões temporais\n4. A2UI / AG-UI no chat — streaming tool-calls, artefatos clicáveis, crops bbox inline, multi-turn persistente\n5. ELIMINAR todos os \"Stubs / Will be enriched in Phase X\"\n\n## Gaps médios\nMobile responsivo precário · Sem onboarding · Sem export (PDF/CSV/PNG) · Sem saved views · Reranker 60s · Grafo trava em corpus grande.\n\n## Visão longo prazo\nMulti-tenant/multi-corpus · API pública REST+GraphQL · MCP server · Visualização temporal-geo.\n\n## Entregáveis solicitados\n1. codebase-analysis-report\n2. tech-debt-assessment\n3. product-discovery-brief\n4. system-architecture-doc\n5. ADRs onde necessário\n\nModo: zero-human. NÃO implementar agora — produzir análise + plano em fases priorizadas.\n\nOutputs em ${PROJECTS_OUTPUT_DIR:-/Users/guto/ufo/.projects-outputs}/disclosure-bureau/businesses/systems-atelier/",
  "last_task_completed": null,
  "next_task_id": null,
  "audit_log_path": "audit.jsonl",
  "resumption_prompt_hint": "Project just received initial brief. Start at the brief_intake employee for systems-atelier.",
  "handoff_timestamp": "2026-05-18T01:48:43.851Z",
  "dag_snapshot_path": "dag-state.json"
}