Communitygithub.com

frameproof

Agente assiste vídeos sem pontos cegos e comprova com timecodes que realmente viu. Offline, sem chaves de API.

O que é frameproof?

frameproof é uma skill de agente especializada em análise de vídeos com verificação rigorosa de evidências. Ela permite que o agente assista a vídeos, extraia informações visuais e textuais (incluindo OCR offline no macOS) e, o mais importante, prove cada alegação sobre o conteúdo da tela com timestamps precisos no formato `[MM:SS / fNNNN]`. A skill opera offline, sem necessidade de chaves de API, utilizando ferramentas como `frameproof index` para criar um índice pesquisável, `frameproof search` para consultas de texto sem consumir tokens visuais, e `frameproof verify` para auditoria mecânica de todas as referências. Ela promove um fluxo de trabalho eficiente: priorizar a busca textual sobre a captura de frames, limitar o número de frames visuais para economizar tokens, e expor claramente lacunas de cobertura. Um recurso único é o 'segundo olhar cego', onde um subagente (`frameproof-adversary`) revisa afirmações de forma adversarial, sem acesso ao contexto original, para detectar alucinações. A skill proíbe terminantemente a fabricação de evidências visuais e a substituição de observações diretas por suposições derivadas apenas da transcrição de áudio, garantindo análises de vídeo honestas, verificáveis e transparentes.

Funciona com~Claude Code✓Codex CLI~Cursor
npx skills add edvardgrishin27/frameproof

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

frameproof — assistir vídeos e saber provar isso

Regra principal

Nunca afirme o que estava na tela se você não viu o quadro.

A ferramenta imprime honestamente a cobertura. Se no relatório houver uma seção "SEM QUADRO" — sobre esse intervalo fale diretamente: "não há quadro aqui, pelo áudio — é isso". Um palpite apresentado como observação desvaloriza toda a análise.

Cada afirmação sobre a tela — com a marca [MM:SS / fNNNN]. Isso não é formatação: frameproof verify verifica cada uma dessas marcas pelo índice. Uma referência inventada será pega pela aritmética, sem nenhum modelo.

Fluxo de trabalho

1. Índice

frameproof index "<link ou caminho>" --ocr

Exibe o relatório de cobertura. Leia-o antes de tudo: quantos quadros, qual o máximo intervalo, há seções sem quadros.

O caminho para o índice está na última linha da saída. Daqui em diante, ele será necessário como --out.

--ocr ativa o reconhecimento de texto nos quadros (macOS, offline). Isso torna a tela pesquisável: comandos, nomes de arquivos e URLs são encontrados por busca sem uma única imagem. Reconhece uma cópia separada na resolução nativa, a exibição permanece leve.

Chaves úteis: --max-gap 10 (cobertura mais densa), --max-frames 400 (vídeo longo), --lang pt (idioma da transcrição, se não houver legendas).

Se houver legendas prontas junto ao vídeo — --subs fala.srt, isso é mais preciso e rápido que a transcrição. No macOS, o reconhecimento é conectado com seu próprio mecanismo: --ocr-command "<programa>", ele recebe caminhos de imagens e imprime caminho<TAB>texto.

2. Leia o mapa

cat <indice>/index.json

Arquivo pequeno, leia por completo. Nele estão duração, número de quadros, fonte da transcrição e — o principal — o bloco coverage.

3. Pesquise por texto, não por imagens

frameproof search "<consulta>" --out <indice>

Pesquisa tanto na fala quanto no texto da tela. Retorna linhas com timestamps. Nenhuma imagem — zero tokens visuais. A maioria das perguntas se resolve aqui.

A busca é sublinear (trigramas), flexões do português não atrapalham.

Para consultas mais complexas, use grep diretamente:

grep -i "docker" <indice>/segments.jsonl | head
grep -i "npm" <indice>/frames.jsonl | head

4. Veja quadros apenas quando não tem outro jeito

frameproof frames --at 4:12 --out <indice>          # momento
frameproof frames --ids f0043,f0044 --out <indice>  # quadros específicos

Único comando que retorna imagens. Leia os caminhos fornecidos usando Read.

Orçamento: 4–8 quadros por vez. Um quadro 1280×720 custa cerca de 1196 tokens visuais. Mostrar todos os quadros de um vídeo de uma hora são centenas de milhares de tokens; não faça isso.

5. Responda com evidência

Formato para afirmação sobre a tela:

Aos 18:38 é mostrada uma tabela de roteamento de modelos: MAIN — caro e inteligente, AUXILIARY — barato e rápido. [18:38 / f0097]

Se alguém pedir um artigo ou resumo — insira quadros como ilustrações pelos seus caminhos de frames.jsonl e coloque o timestamp ao lado.

6. Verifique a si mesmo — quando for solicitado

A marca [MM:SS / fNNNN] não é um enfeite, mas um link verificável. A auditoria mecânica é gratuita e instantânea, execute-a em qualquer análise com mais de alguns parágrafos:

frameproof verify <arquivo-de-analise.md> --out <indice>

Ela não sabe nada sobre o significado — ela verifica a integridade do link: se o quadro existe, se seu timestamp está correto, se o momento não caiu em uma seção sem quadros, se o quadro foi realmente solicitado, se a linha citada aparece no texto do quadro ou na fala próxima.

FAIL — é um link quebrado, deve ser corrigido, não discutido. WARN — é motivo para abrir o quadro e ver com os próprios olhos.

7. Segundo olhar cego — apenas por solicitação explícita

Quando alguém disser "verifique a análise", "reverifique", "você tem certeza que viu isso" — execute a verificação adversarial.

frameproof verify <arquivo> --out <indice> --plan

O comando gera um JSON com tarefas. Delegue-as ao subagente frameproof-adversary em uma única chamada (não um agente por afirmação — um é suficiente).

O que passar para o subagente: apenas a lista numerada de afirmações e os caminhos dos quadros, exatamente como no JSON.

O que NÃO passar, nem uma palavra sequer:

  • a pergunta que o humano fez;
  • seus próprios raciocínios sobre por que você tirou aquela conclusão;
  • o restante do texto da análise;
  • qualquer dica sobre qual resposta você considera correta.

O subagente não vê o histórico do diálogo — isso é garantido. Mas a mensagem de delegação é escrita por você, e este é o único canal de vazamento restante. Um revisor que sabe a resposta esperada é inútil: ele a confirmará.

O que fazer com os vereditos:

  • CONFIRMED — manter como está.
  • REFUTED — marcar, não remover: [não confirmado pelo segundo olhar: <motivo>]. Os refutadores erram em afirmações verdadeiras com mais frequência do que parece, portanto a decisão é tomada pelo humano, não por você.
  • UNSUPPORTED — dizer honestamente: no quadro isso não é visível, a conclusão foi baseada no áudio ou em momentos adjacentes.

Não execute esta passagem por iniciativa própria após cada análise. Ela custa tokens e tempo, e a camada mecânica já captura a maior parte dos problemas gratuitamente.

O que não fazer

  • Não resuma o vídeo apenas pela transcrição, chamando isso de análise de tela. A fala e a tela divergem: no vídeo a pessoa diz "openrouter", mas na tela está escrito openrouter/pareto-code (min_coding_score 0.65). O segundo só existe nos quadros e no OCR.
  • Não carregue quadros em lote "por via das dúvidas". Primeiro a busca, depois quadros pontuais.
  • Não trate o OCR como o texto literal do código. O reconhecimento confunde pontuação: [main é lido como Imain. O OCR serve para ENCONTRAR o quadro; o que está escrito nele — veja com os olhos.
  • Não se cale sobre pontos cegos. Se a cobertura for menor que 100%, diga isso ao humano.

Se algo estiver faltando

frameproof doctor

Mostra o que está instalado e o que não está. São obrigatórios ffmpeg e numpy; yt-dlp é necessáriosó para links; transcrição — mlx-whisper (rápido em Apple Silicon) ou openai-whisper (em qualquer lugar). Chaves não são necessárias para nada.

Habilidades Relacionadas