From 20d28a53af55cbb36871f01bbd6e20ea6ef017a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Henrique?= Date: Wed, 9 Sep 2026 11:31:30 -0400 Subject: [PATCH] =?UTF-8?q?feat:=20criado=20plano=20execut=C3=A1vel=20com?= =?UTF-8?q?=20actions=20para=20aplicar=20o=20resumo=20da?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - criado plano executável com actions para aplicar o resumo da entrevista no editor - corrigida a compressão da barra de abas do painel após a inclusão de Tipos de vídeo - criada skill para converter seleções de transcrição em actions executáveis no editor Resumo: - 3 arquivos alterados - 2 novos - 1 modificados - 0 removidos 1 file changed, 4 insertions(+), 1 deletion(-) Arquivos: - code/cep-plugin/styles.css - code/plugins/premiere-pro/skills/transcript-to-edit-actions/ - plano-resumo-video-actions.json --- code/cep-plugin/styles.css | 5 +- .../transcript-to-edit-actions/SKILL.md | 50 +++++++++++++++++++ .../agents/openai.yaml | 4 ++ plano-resumo-video-actions.json | 47 +++++++++++++++++ 4 files changed, 105 insertions(+), 1 deletion(-) create mode 100644 code/plugins/premiere-pro/skills/transcript-to-edit-actions/SKILL.md create mode 100644 code/plugins/premiere-pro/skills/transcript-to-edit-actions/agents/openai.yaml create mode 100644 plano-resumo-video-actions.json diff --git a/code/cep-plugin/styles.css b/code/cep-plugin/styles.css index 44f7234..039a7da 100755 --- a/code/cep-plugin/styles.css +++ b/code/cep-plugin/styles.css @@ -114,6 +114,8 @@ h1, h2, h3 { margin: 0; } top: 53px; z-index: 25; display: flex; + flex: 0 0 auto; + min-height: 39px; gap: 2px; margin: 0 -14px 14px; padding: 0 14px; @@ -127,7 +129,8 @@ h1, h2, h3 { margin: 0; } align-items: center; justify-content: center; gap: 5px; - flex: 1; + flex: 0 0 auto; + min-width: 88px; min-width: 0; padding: 10px 4px; border: none; diff --git a/code/plugins/premiere-pro/skills/transcript-to-edit-actions/SKILL.md b/code/plugins/premiere-pro/skills/transcript-to-edit-actions/SKILL.md new file mode 100644 index 0000000..3e4c229 --- /dev/null +++ b/code/plugins/premiere-pro/skills/transcript-to-edit-actions/SKILL.md @@ -0,0 +1,50 @@ +--- +name: transcript-to-edit-actions +description: Transform transcript-based editorial selections into validated executable Premiere edit plans when the user asks to edit by voice, edit by transcript, summarize an interview, select excerpts, or generate JSON actions. +--- + +# Transcript to Edit Actions + +Converte uma seleção editorial baseada em transcrição em um plano JSON executável pelo editor do projeto. + +## Contrato de saída + +Devolva um único objeto JSON com esta forma: + +```json +{ + "source": "nome-do-arquivo.mp4", + "actions": [ + { + "kind": "cut", + "start": 0.0, + "end": 10.0, + "reason": "Motivo curto e verificável do corte." + } + ] +} +``` + +`source` deve ser o nome do arquivo de mídia usado pela sequência. Os tempos de `start` e `end` são segundos na mídia original. `actions` usa o contrato externo do editor: `kind: "cut"` remove o intervalo, portanto o plano deve listar as partes que serão excluídas, não as partes que serão mantidas. + +## Fluxo + +1. Leia a transcrição e as instruções editoriais como evidência. Identifique a tese, o contexto, os argumentos, os contrapontos e o fechamento antes de escolher trechos. +2. Quando o usuário pedir um resumo, selecione primeiro os intervalos a manter. Prefira frases completas, falas compreensíveis sem contexto adicional e uma sequência narrativa curta. +3. Exclua falantes marcados como inativos ou com `include_in_video: false`. Não use nome de falante como prova de identidade quando o JSON só fornece um rótulo. +4. Normalize os intervalos mantidos: ordene por tempo, una sobreposições e descarte intervalos vazios. Respeite a duração máxima solicitada; se não houver limite, preserve o objetivo editorial sem cortar a compreensão. +5. Converta os intervalos mantidos no complemento da mídia: crie uma ação `cut` para cada intervalo entre o início da mídia, os trechos mantidos e o fim da mídia. Preserve pequenos silêncios somente quando necessários para não quebrar uma frase. +6. Valide antes de responder: JSON válido, `source` preenchido, pelo menos uma ação, `start < end`, números finitos, ações dentro da duração da mídia, sem sobreposição e duração mantida dentro do limite. + +## Julgamento editorial + +- Abra com uma pergunta, afirmação ou trecho que estabeleça imediatamente o conflito. +- Use o mínimo de trechos necessário para explicar contexto, análise e consequência. +- Termine com a conclusão mais forte ou com uma frase que feche a tese. +- Não invente falas, fatos, correções jurídicas ou identificadores de clipes. +- Preserve o áudio original; correções de transcrição servem para `reason` e revisão, não para reescrever a fala. +- Se um nome ou palavra estiver com baixa confiança, registre a necessidade de conferência no áudio em vez de afirmar a correção. + +## Resposta + +Quando o pedido for para executar no programa, entregue o JSON executável sem campos editoriais extras dentro do objeto raiz. Resumos, observações e dúvidas devem ficar fora do bloco JSON. Se a seleção não puder ser convertida com segurança por falta de duração ou timecodes, peça apenas o dado faltante. diff --git a/code/plugins/premiere-pro/skills/transcript-to-edit-actions/agents/openai.yaml b/code/plugins/premiere-pro/skills/transcript-to-edit-actions/agents/openai.yaml new file mode 100644 index 0000000..3dd387d --- /dev/null +++ b/code/plugins/premiere-pro/skills/transcript-to-edit-actions/agents/openai.yaml @@ -0,0 +1,4 @@ +interface: + display_name: "Transcript to Edit Actions" + short_description: "Convert transcript selections into Premiere JSON actions" + default_prompt: "Use $transcript-to-edit-actions to turn my transcript-based video selections into validated executable JSON actions." diff --git a/plano-resumo-video-actions.json b/plano-resumo-video-actions.json new file mode 100644 index 0000000..4cb54b0 --- /dev/null +++ b/plano-resumo-video-actions.json @@ -0,0 +1,47 @@ +{ + "source": "videoplayback (1).mp4", + "actions": [ + { + "kind": "cut", + "start": 0.05, + "end": 188.78, + "reason": "Remover a abertura e todas as falas do falante Barba; manter o primeiro trecho selecionado, de Fabiola." + }, + { + "kind": "cut", + "start": 210.80, + "end": 211.75, + "reason": "Remover a pausa entre a pergunta de Fabiola e a resposta selecionada de Marco Teixeira." + }, + { + "kind": "cut", + "start": 260.02, + "end": 399.91, + "reason": "Remover o conteúdo intermediário até o trecho selecionado de Marco Teixeira sobre o impacto político." + }, + { + "kind": "cut", + "start": 439.90, + "end": 462.14, + "reason": "Remover o intervalo entre a análise sobre impacto político e a conclusão de Marco Teixeira." + }, + { + "kind": "cut", + "start": 490.05, + "end": 567.98, + "reason": "Remover o conteúdo entre a conclusão de Marco Teixeira e a introdução da metáfora do jurista." + }, + { + "kind": "cut", + "start": 577.26, + "end": 578.11, + "reason": "Remover a pausa entre os dois trechos finais do jurista." + }, + { + "kind": "cut", + "start": 607.07, + "end": 778.85, + "reason": "Remover o restante da entrevista após o fechamento selecionado." + } + ] +}