Repository navigation
Get B-rolls v2.3.7 — Engenheiro de Vídeo
·
202 commits
to main
since this release
- Adiciona variáveis opcionais que fixam caminhos de ferramentas:
GB_YTDLP_PATH,GB_VENV_PATH,GB_FFMPEG_PATHeGB_FFPROBE_PATH. Valem tanto pelo ambiente do processo quanto pelo.envda skill ou porpython3 scripts/gb.py --env-file CAMINHO <subcomando> …, com--env-filena raiz do parser, antes do subcomando. - Define a precedência: variável explícita vence a descoberta atual. Com a variável ausente ou vazia, o comportamento é idêntico ao anterior —
.venv/Scriptse.venv/binpara yt-dlp,PATHpara ffmpeg/ffprobe. - Recusa caminho inválido em vez de voltar em silêncio à descoberta: um destino inexistente, sem permissão de execução ou, no caso de
GB_VENV_PATH, que não seja diretório, encerra o comando com erro nomeando a variável e o caminho. doctorpassa a listar os pins ativos emtool_paths, uma linha por variável, e reflete o pin emexecutables. Sem variáveis definidas,tool_pathssai vazio.- Não há
GB_PYTHON_PATH: o código não reinvoca o interpretador Python em nenhum ponto. - Adiciona
tests/test_env_paths.pycom 16 regressões offline de precedência, padrão inalterado, erro de caminho inválido e layouts.venvPOSIX e Windows. - Torna a CLI autoexplicativa:
helpem todos os subcomandos e argumentos,--versionna raiz edoctorcom vereditosummary(ok, missing com o comando que resolve, optional) além deget_brollsepython— a chaveruntimepassou a se chamarpython. - Nomeia o instalador no erro de yt-dlp ausente e separa "FFmpeg/ffprobe não encontrado" de "arquivo/intervalo inválido", apontando
doctornos dois casos. - Adiciona o comando de plugin
/get-brolls-setup(commands/get-brolls-setup.md), que executa--check, o instalador do sistema e odoctorpela raiz do plugin e reporta o veredito em uma linha. - Documenta o acionamento do plugin (contexto,
/get-brolls:get-brolls,/get-brolls-setup) e acrescenta o bloco "Primeiro B-roll em 5 minutos" nos dois READMEs, com fonte sem chave, servidor local do Storyboard e saída esperada. - Os dois SKILL.md passam a mandar servir
brolls/em127.0.0.1:8767e avisar quefile://pode desativar o salvamento local antes da exportação do JSON. - Substitui a
descriptiondos dois SKILL.md por uma descrição bilíngue com o que a skill faz, quando acioná-la e o que está fora de escopo; os READMEs distinguem a skill de coletores genéricos de download. - Troca os cinco marcadores do teste do espelho por um contrato estrutural: corpo da raiz e do espelho comparados linha a linha, com os caminhos
${CLAUDE_PLUGIN_ROOT}normalizados e apenas a seção "Instalação e contexto" autorizada a divergir. - Reescreve
GEMINI.mdcomo configuração real: o Gemini CLI carregaGEMINI.mda partir do diretório de trabalho, então o roteador precisa ser importado por@/caminho/absoluto/.../SKILL.mdnoGEMINI.mddo usuário. - Os dois SKILL.md mandam ler o CHANGELOG quando o
doctorreportar uma versão diferente da documentada. - SECURITY ganha a tabela de egress (instalação, execução e o que nunca sai da máquina) e a declaração de ausência de telemetria.
- Os instaladores explicam a falha do
pip: informam o Python em uso e a faixa validada do conjunto fixado (3.11–3.13), continuando fail-fast. A matriz de CI segue em 3.11/3.13 porquepycryptodomex==3.23.0ainda não publica wheel cp314. - Adiciona
.github/ISSUE_TEMPLATE/bug_report.md(SO, versão do Python e saída completa dodoctor),config.ymlcom issues em branco habilitadas ePULL_REQUEST_TEMPLATE.mdcom o bloco de verificação do AGENTS. - Adiciona
.github/workflows/release.yml: em tagsv*, extrai a seção da versão no CHANGELOG e publica a release pelogh, sem sobrescrever uma release existente e sem novas actions de terceiros. - Documenta que
skills/e.claude-plugin/são artefatos do plugin e podem ser omitidos ao copiar para o Codex, e registra no GUIDE a permissão opcionalpython3 */gb.py *. - Aceita
GB_FONT_FILEno.env(fonte TrueType do contact sheet dos helpers Bash opcionais) e faz o erro de variável desconhecida nomear a variável recusada e o conjunto aceito. - Torna
AGENTS.mdo hub principal do repositório: uma tabela "Mapa do repositório" roteia cada público — operar a skill (SKILL.md e o espelho do plugin), instalação por agente (Codex, skill e plugin do Claude Code, Gemini CLI), GUIDE, QUALITY, CONTRIBUTING, SECURITY e CHANGELOG — sem remover nenhuma regra de manutenção existente.CLAUDE.mdeGEMINI.mdviram roteadores finos que apontam primeiro para o hub, e os dois READMEs nomeiamAGENTS.mdcomo índice de agentes e mantenedores. - Adiciona o subcomando
status --project, que responde "onde estamos?" lendo o estado já gravado (manifesto, candidatos, decisões e journal) e devolve contagem e lista de IDs por etapa: candidatos encontrados, prévias geradas, decisões pendentes/aprovadas/rejeitadas, itens compermitregistrado, itens entregues e verificados, além do próximo passo do fluxo. É somente leitura: não grava manifesto, candidatos, prévias, clipes nem eventos. - Padroniza o relato de progresso:
search,resolve,preview,review,import-review,permit,fetcheverifypassam a devolver um camposummarycom uma linha em português no formato verbo + objeto + resultado. O campo é aditivo — nenhuma chave existente muda de nome, tipo ou posição. - Documenta o
statuse a convenção do camposummaryno GUIDE, acrescenta uma frase sobrestatus --projectna seção "Revisão e entrega" dos dois SKILL.md e cita o comando na seção de terminal dos dois READMEs. - Fixa o padrão editorial literal primeiro nos dois SKILL.md, no GUIDE e nos READMEs: o material padrão é footage, print ou imagem real do fato, pessoa, produto, notícia ou tela que a narração cita; bancos de stock (Pexels/Pixabay) entram somente quando o usuário pedir stock explicitamente.
- Registra a divisão de responsabilidade editorial: as condições de uso do material são de quem produz o vídeo; a skill responde pela fidelidade/literalidade e pelo registro de origem de cada asset. O fluxo de
permite proveniência continua sendo o mecanismo desse registro, sem alteração de lógica. - Adiciona
tests/test_status.py(9 regressões offline dostatus, do camposummarye da garantia de somente leitura) e três regressões do hub emtests/test_repository.py.
Correções da revisão tripla
statuspassa a ser somente leitura de verdade: abre o ledger sem criarbrolls/candidates,previewseclips, relata uma gravação interrompida comojournal.recovered_write: "pending"sem concluí-la e recusa um projeto inexistente com "Projeto não encontrado em …; nenhum arquivo foi criado.", sem escrever nada — nem diagnóstico.statusdeixa de pedir a trava exclusiva do projeto: agora responde mesmo durante umfetchem andamento, em vez de falhar com "Outro comando está usando este projeto".statusdeixa de morrer com o projeto:RULES.mdinválido virarules_errorno relatório,events.jsonlereferences.jsoncorrompidos degradam para contagem comerror, e uma mudança de formato-alvo nas regras viraformat_pendingmais um aviso de que o próximo comando invalidará as aprovações.release.ymlganha portões antes de publicar: confere__version__contra a tag, rodapython3 -m unittest discover -s tests, extrai a seção do CHANGELOG por comparação literal (a versão não é mais tratada como expressão regular) e marca--prereleasequando a tag tem hífen.- Restaura as GitHub Actions fixadas nas v7 (
actions/checkout7.0.1 eactions/setup-node7.0.0) que uma alteração anterior havia rebaixado para v4, e passa a usar o mesmo checkout norelease.yml. A regressão compara apenas a referência fixada por SHA, sem exigir o comentário da versão. - Os pins
GB_*_PATHresolvem para caminho absoluto antes de validar, então um valor relativo não muda de significado conforme a pasta atual; um diretório fixado informa "não é um arquivo executável"; eGB_VENV_PATHsem yt-dlp dentro falha nomeando a variável, a pasta e os layouts procurados, em vez de cair em silêncio noPATH. doctorfica resiliente a pin inválido: em vez de encerrar com erro, publica o pin quebrado emsummary.missingcom a mensagem do erro, sugere o instalador pelo caminho absoluto da skill e acrescenta o blocoresolvedcom o executável absoluto realmente usado por ferramenta. Os demais comandos continuam falhando de imediato.- O teste do espelho passa a cobrir também a seção "Instalação e contexto": só linhas de mecânica de instalação podem divergir da raiz, a indentação conta e uma linha que normaliza para vazio falha em vez de sumir.
- Ajustes de relato: o
summarydesearchmantém a observação do provedor,approveerejectganham a própria linha, singular e plural concordam com as contagens,previewdiz quando gerou somente referência estática eresolverecusa--file/--urlvazios nomeando a opção.