Operacional

Indexação dos 186 Vídeos

Preencha enquanto assiste. Auto-save ativo.

Filtros

Estratégico

Plano de Visualização

Acompanhe o progresso dos 186 vídeos por fase.

Progresso Geral

FASE 1 — E01 Agressão Valtenis (22/12/2025)

37 vídeos críticos | 35–40 min | Prioridade 🔴 ALTA

FASE 2 — E02 Ameaças Sequenciais (29/05–07/09/2026)

48 vídeos críticos | 45–50 min | Prioridade 🔴 ALTA

FASE 3 — Contexto (Jun–Set/2026)

36 vídeos | 30–60 min | Prioridade 🟢 BAIXA

Checklist Pré-Reunião

Painel Operacional

Litigation Support Strategist

Arquiteto de Caso — Fatos, Provas, Dossiê

Identificação do Caso Atual

Status dos Formulários

Resumo Financeiro

Backup e Sincronização

Os dados são salvos automaticamente no navegador. Para backup na nuvem, use o botão "Nuvem" ou exporte o JSON.

Formulário 1

Intake Estratégico

Primeiro contato com o cliente.

1. Identificação do Cliente

2. Objetivo do Cliente

3. Pessoas Envolvidas

4. Incidentes Críticos

5. Urgências Documentais

6. Primeira Matriz de Risco

7. Observações

Formulário 2

Protocolo F1–F10

Entrevista estruturada por incidente, com anexos vinculados.

Formulário 3

Inventário Documental

Visão consolidada de todos os documentos do caso.

Como funciona

Esta aba lê automaticamente todos os arquivos anexados nos Protocolos F1–F10. Você também pode adicionar documentos avulsos.

Adicionar Documento Avulso

Documentos do Caso

Formulário 4

Matriz Probatória

Relação fato × prova.

Formulário 5

Contradiction Matrix

Mapeamento de contradições.

Formulário 6

Preservation Log

Controle de preservação de evidências.

Formulário 7

Witness Intelligence

Mapa de testemunhas.

Formulário 8

Gap Analysis

Identificação de lacunas.

Formulário 9

Executive Brief

Documento-síntese para o counsel.

Problema Identificado

Fatos Críticos

Provas Disponíveis

Riscos Imediatos

Questões para o Profissional Habilitado

Próximos Passos

Formulário 10

Critérios de Seleção de Counsel

Critérios técnicos para seleção de advogado.

Este documento tem caráter exclusivamente técnico e informativo. Não constitui indicação, recomendação ou intermediação. A escolha, contratação e remuneração do profissional são de responsabilidade exclusiva do Cliente.

Operacional

Contrato

Geração do contrato preenchido com os dados do caso.

Dados do Consultor

Valores das Fases

Status do Contrato

Ações

Operacional

Pagamentos

Controle financeiro — RPA, INSS, ISS, valor líquido, comprovantes.

Alíquotas do Contador

Consolidado

Operacional

Assinatura Digital

Gestão de assinatura eletrônica via gov.br, com upload do PDF assinado.

Como funciona

  1. Gere o PDF do contrato na aba Contrato (botão "Baixar PDF")
  2. Acesse assinatura.gov.br
  3. Faça upload do PDF e adicione os assinantes
  4. Cada parte assina com sua conta gov.br (nível prata ou ouro)
  5. Baixe o PDF assinado e faça upload aqui
Operacional

Mídias do Caso

Áudios, vídeos, imagens e PDFs armazenados no Cloudflare R2.

Como funciona

Arquivos são enviados diretamente para o R2. Vídeos podem ser convertidos para H.264 no navegador. No painel, apenas metadados ficam salvos.

Upload de Arquivo Único

Upload de Pasta Inteira

Selecione uma pasta. Todos os arquivos serão enviados preservando a estrutura.

Arquivos Enviados

Estratégico

Matriz de Eventos

Cada evento reúne vídeos, documentos, testemunhas e lacunas.

Como funciona

O Evento é o eixo central que amarra: vídeos, documentos, testemunhas, o que está demonstrado, o que NÃO está demonstrado, e a questão para o advogado.

Aguardando preenchimento...
// ═══════════════════════════════════════════════════════════════ // ABA INDEXAÇÃO — 186 vídeos // ═══════════════════════════════════════════════════════════════ const VIDEO_LIST = [ {id:'V001',arq:'MHDX_ch1_main_20251222133000_20251222133035.mp4',data:'2025-12-22',hora:'13:30:35',canal:'ch1',hash:'62b80440'}, {id:'V002',arq:'MHDX_ch2_main_20251222122000_20251222122243.mp4',data:'2025-12-22',hora:'12:22:43',canal:'ch2',hash:'627e4c3c'}, {id:'V003',arq:'MHDX_ch2_main_20251222133000_20251222133035.mp4',data:'2025-12-22',hora:'13:30:35',canal:'ch2',hash:'8b7c3fd4'}, {id:'V004',arq:'MHDX_ch3_main_20251222122000_20251222122002.mp4',data:'2025-12-22',hora:'12:20:02',canal:'ch3',hash:'9153d6d1'}, {id:'V005',arq:'MHDX_ch3_main_20251222122020_20251222122123.mp4',data:'2025-12-22',hora:'12:21:23',canal:'ch3',hash:'f6590082'} // ... adicionar os 181 restantes aqui ]; function renderizarIndexacao() { const container = document.getElementById('indexacao-container'); if (!container) return; const filtroEvento = document.getElementById('idx-filtro-evento')?.value || ''; const filtroStatus = document.getElementById('idx-filtro-status')?.value || ''; const dados = carregarDados(); const filtrados = VIDEO_LIST.filter(v => { const ev = dados[`idx.${v.id}.evento`] || ''; const st = dados[`idx.${v.id}.status`] || 'pendente'; if (filtroEvento && ev !== filtroEvento) return false; if (filtroStatus && st !== filtroStatus) return false; return true; }); if (filtrados.length === 0) { container.innerHTML = '

Nenhum vídeo encontrado.

'; return; } let html = '
'; filtrados.forEach(v => { const ev = dados[`idx.${v.id}.evento`] || ''; const pessoas = dados[`idx.${v.id}.pessoas`] || ''; const desc = dados[`idx.${v.id}.descricao`] || ''; const st = dados[`idx.${v.id}.status`] || 'pendente'; html += ``; }); html += '
IDArquivoDataCanalEventoPessoasO que mostraStatus
${v.id} ${v.arq} ${v.data} ${v.canal}
'; container.innerHTML = html; container.querySelectorAll('[data-field]').forEach(bindAutoSave); } function exportarIndexacaoCSV() { const dados = carregarDados(); let csv = 'IDX,ARQUIVO,DATA,HORA,CANAL,EVENTO,PESSOAS,DESCRICAO,STATUS,HASH\n'; VIDEO_LIST.forEach(v => { csv += `${v.id},${v.arq},${v.data},${v.hora},${v.canal},`; csv += `${dados[`idx.${v.id}.evento`]||''},`; csv += `${dados[`idx.${v.id}.pessoas`]||''},`; csv += `${dados[`idx.${v.id}.descricao`]||''},`; csv += `${dados[`idx.${v.id}.status`]||'pendente'},`; csv += `${v.hash}\n`; }); const blob = new Blob([csv], { type: 'text/csv;charset=utf-8;' }); const a = document.createElement('a'); a.href = URL.createObjectURL(blob); a.download = `indexacao_${new Date().toISOString().slice(0,10)}.csv`; a.click(); } // ═══════════════════════════════════════════════════════════════ // ABA PLANO — Progresso // ═══════════════════════════════════════════════════════════════ function renderizarPlano() { const dados = carregarDados(); const fase1 = VIDEO_LIST.filter(v => v.data === '2025-12-22'); const fase2 = VIDEO_LIST.filter(v => v.data === '2026-05-29'); const fase3 = VIDEO_LIST.filter(v => v.data !== '2025-12-22' && v.data !== '2026-05-29'); const cont = arr => { let vistos = 0, total = arr.length; arr.forEach(v => { if (dados[`idx.${v.id}.status`] === 'visto') vistos++; }); return {vistos, total, pct: total > 0 ? Math.round((vistos/total)*100) : 0}; }; const c1 = cont(fase1), c2 = cont(fase2), c3 = cont(fase3); const total = c1.total + c2.total + c3.total; const totalVistos = c1.vistos + c2.vistos + c3.vistos; const totalPct = total > 0 ? Math.round((totalVistos/total)*100) : 0; document.getElementById('plano-progresso').innerHTML = `

${totalVistos} de ${total} vídeos vistos (${totalPct}%)

`; const renderFase = (c, id) => { document.getElementById(id).innerHTML = `

${c.vistos} de ${c.total} vídeos (${c.pct}%)

`; }; renderFase(c1, 'plano-fase1'); renderFase(c2, 'plano-fase2'); renderFase(c3, 'plano-fase3'); const checklist = [ 'E01 visualizado', 'E02 visualizado', 'Anotações consolidadas', 'Correlação BO/Vídeo', 'Contradições identificadas', 'Lacunas mapeadas', 'Testemunhas confirmadas', 'Planilha preenchida (80%+)' ]; let html = ''; checklist.forEach((item, i) => { const val = dados[`plano.check.${i}`] || false; html += ``; }); document.getElementById('plano-checklist').innerHTML = html; document.querySelectorAll('#plano-checklist [data-field]').forEach(bindAutoSave); }