A skill decidia a edição sem saber que o JSON dela agora passa por uma tela de revisão antes de virar FCPXML. Isso não é detalhe de fluxo: a etapa 5 traduz cada ação para o vocabulário dela, e sem conhecer essa tradução a intenção da IA se perde no caminho — que é exatamente como uma decisão vira "arbitrária" aos olhos de quem revisa. Novo criterios/10-revisao-humana.md, com o que o app faz com cada ação: - cut cobrindo >=60% da frase remove a linha; tocando só uma borda vira trim encaixado na fronteira de palavra. Corte de meia frase é ambíguo — passa do limiar e apaga a linha toda quando a intenção era aparar a hesitação. - zoom ou text sobre uma frase marca ênfase, e ênfase significa DUAS coisas: zoom mais legenda dinâmica; as demais frases ficam com legenda comum. A escala vira o nível (1.15→leve, 1.3→média, 1.5→forte). - sem ação, o nível é derivado do peak_emphasis; a decisão da IA sempre ganha. - reason é exibido ao lado da frase na tela — é o que o editor lê antes de manter ou desfazer. Deixou de ser campo de log. Consequência prática que faltava em 05-zoom.md: não espalhar zoom "por segurança", porque cada um promove a frase em duas dimensões ao mesmo tempo. Na dúvida, deixar sem — promover custa uma tecla, despromover custa mais. Cada arquivo de critério ganhou cabeçalho de escopo (o que cobre, em que fase), no mesmo padrão dos docs do Engine, para ler só o necessário. Todas as afirmações numéricas do novo critério foram verificadas contra fcpxml/phrase_review.py rodando, não assumidas. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
55 lines
2.2 KiB
Markdown
55 lines
2.2 KiB
Markdown
# 02 — Triagem: roteiro vs. conversa de bastidor
|
|
|
|
> **Escopo:** Separar o texto do roteiro da conversa de bastidor — tarefa de texto, nunca de limiar.
|
|
> **Quando:** Fase 2 — ver a ordem de trabalho em `../SKILL.md`.
|
|
|
|
**Primeira coisa a fazer, antes de qualquer decisão de efeito.**
|
|
|
|
Material bruto de gravação quase nunca é uma tomada só. A pessoa lê o
|
|
roteiro, erra, conversa com a equipe e recomeça.
|
|
|
|
## Por que isso é tarefa sua, e não do sistema
|
|
|
|
No áudio essa separação é **invisível** — e pior: o índice de ênfase
|
|
*favorece* a conversa, que é mais solta e mais alta que o texto decorado.
|
|
|
|
Caso real: a fala mais enfática de um vídeo inteiro (energia **1,00**, o
|
|
topo absoluto da gravação) era *"Amor, eu tô intacto!"*, dita para o marido
|
|
fora de quadro. Três das sete palavras de maior ênfase do vídeo vinham
|
|
dessa única frase de bastidor.
|
|
|
|
Nenhum limiar acústico separa isso. O **texto** separa sem erro.
|
|
|
|
> Atenção: isso também **não é diarização**. Num caso real, a pessoa da
|
|
> equipe estava fora do microfone — a diarização a ouvia, mas o Whisper não
|
|
> a transcrevia. As falas a descartar eram da **própria protagonista**:
|
|
> mesma voz, contexto diferente. "Quem fala" e "isso é tomada válida" são
|
|
> perguntas diferentes.
|
|
|
|
## Descartar — conversa com a equipe
|
|
|
|
Reconhece-se pelo **conteúdo**:
|
|
|
|
- **vocativo para alguém da sala** — *"Amor, eu tô intacto!"*
|
|
- **pergunta operacional** — *"Posso começar da mastopexia?"*,
|
|
*"E aí, continua?"*, *"Mas eu vou ter que falar tudo de novo?"*
|
|
- **instrução técnica** — *"Só clica aí agora na tela."*, *"Aumenta."*
|
|
- **comentário sobre a própria gravação** — *"Vou falar só a última frase,
|
|
só um pouquinho, não pegou?"*
|
|
|
|
## Descartar — frases interrompidas
|
|
|
|
Texto que morre no meio, tipicamente em reticências ou emendando numa
|
|
pergunta:
|
|
|
|
- *"E tudo isso associado à medida..."*
|
|
- *"Aquela mama com um formato mais estruturado, com o colo que..."*
|
|
- *"de pele..."*
|
|
|
|
## Sinais estruturais que ajudam
|
|
|
|
Use `take_boundary` para achar onde cada tomada recomeça. Num material
|
|
real, as fronteiras (gaps de 3,6s a 19,8s) caíam exatamente nos pontos onde
|
|
a médica reiniciava o roteiro — inclusive nas duas retomadas da frase de
|
|
abertura.
|