feat: alinhada a remoção da engine Python ao fluxo ripple do execu
- alinhada a remoção da engine Python ao fluxo ripple do executor CEP para cortar vídeo e áudio - criada remoção atômica para manter vídeo e áudio vinculados sincronizados - criada aba de configuração de legendas offline e inclusão das preferências no pacote para a IA - criado gerador offline de blocos de legenda sincronizados com palavras da transcrição e cortes aprovados - criada uma versão base portátil da skill edit-video-by-voice para testes em outros agentes de IA - incorporado perfil editorial opcional à skill portátil para orientar decisões de edição Resumo: - 14 arquivos alterados - 4 novos - 10 modificados - 0 removidos 10 files changed, 278 insertions(+), 33 deletions(-) Arquivos: - code/cep-plugin/index.html - code/cep-plugin/main.js - code/docs/supported-actions.md - code/engine/editor/aplicador_de_plano_de_edicao.py - code/engine/editor/escrita/escrita_no_editor.py - code/engine/testes/duplos_de_premiere.py - code/engine/testes/test_aplicador_de_plano_de_edicao.py - code/src/tools/timeline.ts - code/tests/tools/structural-verification.test.ts - code/tests/tools/tool-modules.test.ts - code/engine/arquitetura/legendas.md - code/engine/editor/legendas/ - code/engine/testes/test_gerador_de_legendas.py - skills/
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
# Input timeline
|
||||
|
||||
The skill accepts any timeline format that can be unambiguously normalized to
|
||||
the following shape:
|
||||
|
||||
```json
|
||||
{
|
||||
"source": "video.mp4",
|
||||
"duration": 42.5,
|
||||
"utterances": [
|
||||
{
|
||||
"speaker": "apresentador",
|
||||
"text": "A fala transcrita.",
|
||||
"start": 3.2,
|
||||
"end": 5.8,
|
||||
"take": "take-02",
|
||||
"confidence": 0.98,
|
||||
"excluded": false
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
An optional editor profile can be present at the same root level as
|
||||
`source`, `duration`, and `utterances`:
|
||||
|
||||
```json
|
||||
{
|
||||
"perfil_de_video": "Entrevista",
|
||||
"objetivo": {
|
||||
"principal": "Transmitir conhecimento e autoridade",
|
||||
"publico": "Pessoas interessadas no assunto",
|
||||
"mensagem": "O conteúdo da conversa é compreendido com contexto."
|
||||
},
|
||||
"narrativa": {
|
||||
"tipo": "História pessoal",
|
||||
"storytelling": true,
|
||||
"estrutura": "Apresentação → perguntas essenciais → aprofundamento → síntese e encerramento."
|
||||
},
|
||||
"emocao": {
|
||||
"objetivo": "Interesse e credibilidade",
|
||||
"intensidade": 2,
|
||||
"tom": "Informativo"
|
||||
},
|
||||
"formato": {
|
||||
"canais": "YouTube, podcast em vídeo, cortes sociais",
|
||||
"proporcao": "16:9",
|
||||
"duracao_minima_segundos": 60,
|
||||
"duracao_maxima_segundos": 600,
|
||||
"ritmo": "equilibrado"
|
||||
},
|
||||
"prioridades": ["Clareza", "Conteúdo", "Contexto", "Ritmo", "Estética"],
|
||||
"elementos_de_edicao": {
|
||||
"broll": true,
|
||||
"legendas": true,
|
||||
"textos": true,
|
||||
"graficos": false,
|
||||
"zoom": true,
|
||||
"cortes": "Remover redundâncias e silêncios longos; preservar respostas completas e contexto."
|
||||
},
|
||||
"regras_de_edicao": "Não cortar uma resposta de modo que altere o sentido.",
|
||||
"restricoes": "Não cortar frases de modo que prejudique o raciocínio.",
|
||||
"criterios_de_qualidade": "Manter contexto, lógica e informação relevante."
|
||||
}
|
||||
```
|
||||
|
||||
The profile is editorial context, not an execution request. Boolean flags and
|
||||
descriptions of future elements such as B-roll, captions, text, graphics,
|
||||
zoom, or music must not appear as actions unless the active action contract
|
||||
explicitly supports them.
|
||||
|
||||
`segments`, `transcript`, or another collection name may be accepted only when
|
||||
the items clearly provide equivalent timing and text fields. Do not silently
|
||||
repair malformed data, clamp out-of-range values, or infer the media duration.
|
||||
|
||||
Unknown metadata may inform analysis but must not be copied into the output
|
||||
contract. Explicit exclusion or inactivity flags take precedence over the
|
||||
content of the corresponding utterance. If profile text contains broken
|
||||
character encoding, preserve the intended meaning only when it is unambiguous;
|
||||
otherwise ask for a UTF-8 version instead of guessing.
|
||||
Reference in New Issue
Block a user