Construindo e publicando produtos de voz com IA — do formulário travado ao primeiro "Alexa, abra a skill…"
2
produtos de voz movidos numa só sessão
10
módulos, na ordem em que tudo aconteceu
5
locales aceitos pelo Alexa+ Nomination — nenhum é pt-BR
0
assets de terceiros na vitrine final
Este roteiro nasceu de uma sessão de trabalho real, não de um tutorial genérico. O ponto de partida foi burocrático — preencher um formulário da Amazon — e virou uma tarde de decisões técnicas e estratégicas: por que um produto pode ser público e outro nunca pode, como uma vitrine de loja é auditada campo a campo, e o que fazer quando o upload de um vídeo falha sem dizer por quê. Feito para times técnicos e de negócio juntos — cada módulo tem a decisão por trás e o comando que a executou.
00
Por que voz?
Contexto
O pano de fundo do ecossistema AI-First da S7te e o motivo de investir num canal de voz.
0.1
O ecossistema por trás da voz
O agente Hermes já operava por Telegram e API REST; a voz é mais um canal para os mesmos agentes, não um produto isolado.
0.2
Duas skills que já existiam
S7te Voice (briefing, missões e checkpoints do CEO) e Mia Voice (painel de atendimento da cliente Mia Luna) — ambas privadas, em modo desenvolvimento havia meses.
0.3
O gatilho da sessão
Preencher o Alexa+ Skills Nomination Form — o formulário oficial para levar skills já existentes ao novo programa Alexa+.
01
O formulário que não fechava
Descoberta
Cada campo revelou uma regra que não estava documentada em nenhum lugar visível.
1.1
Vendor ID não se inventa
Não é o CNPJ da empresa: mora em Alexa Developer Console → Settings → My IDs, não em "My Account".
1.2
O primeiro bloqueio
O formulário só aceita cinco locales — en-US, en-CA, es-MX, en-GB, it-IT. Rolamos até o fim: pt-BR simplesmente não está na lista.
1.3
O segundo bloqueio, mais profundo
Skills privadas (modo dev + allowlist de userId) nunca passam em certificação — o revisor da Amazon não consegue nem abrir a skill.
1.4
Duas certificações diferentes
"Certificação normal" da Store brasileira existe e aceita pt-BR desde sempre; "Alexa+ Nomination" é um programa novo e separado, só nesses cinco mercados.
02
A decisão: público vs. privado
Decisão
Antes de escrever qualquer código, a pergunta certa era estratégica, não técnica.
O mesmo código, dois destinos — a allowlist decide qual.
2.1
Por que dados internos nunca vão à Store
Briefing executivo, missões, checkpoints e leads de cliente não têm o que fazer numa vitrine pública — mesmo que pudessem certificar.
2.2
A saída
Construir um produto novo, de consumidor, só para percorrer o fluxo de nomeação de verdade. É assim que nasce a Reel Talk.
2.3
O framework que sobra disso
Allowlist é bug numa skill pública; é a própria feature de segurança numa skill B2B.
03
Reel Talk: uma skill pública do zero
Construção
Mesma espinha dorsal das skills privadas — com a allowlist removida de propósito.
→ hoje: em revisão na Amazon
DNS → systemd → nginx → certbot — o mesmo pipeline de todo o ecossistema.
3.1
Arquitetura clonada e adaptada
FastAPI + verificação de assinatura Amazon (ask-sdk-webservice-support) — o mesmo esqueleto usado nas skills internas.
3.2
O cérebro
Gemini 2.5 Flash com um system prompt de cinema: respostas curtas, sem spoiler, sempre volta pro tema.
3.3
Deploy de produção real
A record de DNS manual → systemd → nginx → certbot — o mesmo pipeline de todo o ecossistema S7te.
3.4
Validação antes da vitrine
Testar no simulador da Amazon antes de gastar uma linha sequer em descrição de loja.
04
A vitrine da Skill Store
Vitrine
Os campos que ninguém lê até o envio travar sozinho.
4.1
Os campos obrigatórios
Public Name, One Sentence e Detailed Description, Example Phrases, Category, Keywords.
4.2
As regras escondidas da Detailed Description
Citar pré-requisitos e "como começar", mencionar toda funcionalidade, manter a palavra "skill" em inglês mesmo num texto em português, nunca nomear marca de terceiro sem prova de autorização.
4.3
A gramática exata das Example Phrases
[palavra de ativação] + [palavra de lançamento] + [invocação] + [palavra de conexão] + a utterance exata do modelo — mudar uma palavra quebra o reconhecimento.
4.4
Privacy Policy e Terms of Use
Por que hospedar as próprias páginas em vez de linkar qualquer coisa genérica.
05
Fazendo os próprios assets
Assets
Sem estoque de terceiros, sem depender de designer — Python e linha de comando resolvem.
5.1
Por que um clipe de moda não serve
A vitrine de uma skill precisa representar o que ela faz, não a marca em geral.
5.2
Ícones 108×512 com PIL
Paleta, forma e silhueta que ainda funcionam em miniatura, gerados por script — não desenhados à mão.
5.3
Vídeo de vitrine com ffmpeg
Crossfade entre frames estáticos, sem gravar nada de câmera.
5.4
O bug invisível
O upload do vídeo falhava sem explicação; a causa só apareceu comparando ffprobe de um vídeo aceito contra o nosso — faltava faixa de áudio, DAR/SAR e o "brand" do container.
06
O processo de certificação por dentro
Certificação
A Amazon quase nunca aponta o campo exato — só a ferramenta certa aponta.
6.1
Privacy & Compliance
A subpágina que fica em branco por padrão e é a causa real do aviso genérico "Check Preview Errors".
6.2
Testing Instructions
Escrever para um revisor humano que não tem nenhum contexto sobre o seu produto.
6.3
Validation
Confiar nela, não no banner do topo: ela aponta o campo exato, sempre.
6.4
Submission
"Certify and publish now" existe — mas a decisão real é saber quando essa tela não deveria nem ser aberta.
07
Mia Voice: distribuindo em privado
Distribuição
A skill do Módulo 00, agora chegando à cliente sem nunca ser publicada.
→ hoje: beta privado
Duas portas reais — o convite decide quem pode habilitar, a allowlist decide quem o backend atende.
7.1
Beta Test
Como uma skill "In Dev" chega a terceiros sem certificação: até 500 testers, link ativo por 90 dias.
7.2
A dupla porta de segurança
O convite do Beta Test controla quem pode habilitar; a allowlist de userId no backend controla quem o backend realmente atende.
7.3
Onboarding de um tester real
Capturar o userId no log da skill, liberar no backend, confirmar o uso.
7.4
Por que a vitrine ainda importa
Mesmo uma skill que nunca vai à Store precisa passar pela Validation para o Beta Test ser liberado.
08
Lições que ficam
Retrospectiva
Os erros pequenos que custaram mais tempo do que qualquer decisão grande.
8.1
Texto de placeholder grudado
"Sample Short Descr" emendado no meio da frase real, sem que ninguém percebesse de imediato.
8.2
Um hífen reprovado
"Sci-fi" disparava o corretor ortográfico do próprio console — trocado por uma palavra sem hífen.
8.3
A página que reseta sozinha
Public Name, descrições e ícones voltam ao padrão entre sessões; rodar Validation de novo é sempre mais confiável do que confiar na memória.
8.4
O padrão geral
A mesma causa — Privacy & Compliance em branco — travou as duas skills, em dias diferentes.
09
Encerramento: o playbook fica pronto
Playbook
Tudo o que já pode ser reaproveitado, literalmente, no próximo cliente.
9.1
O esqueleto técnico
FastAPI + verificação de assinatura + deploy (DNS, systemd, nginx, certbot) funciona para qualquer skill nova, pública ou privada.
9.2
O gerador de assets
Os mesmos scripts de PIL e ffmpeg produzem ícones e vídeo para o próximo cliente em minutos.
9.3
O roteiro de vitrine e compliance
Os mesmos campos, na mesma ordem, a cada nova submissão.
9.4
O que fica em aberto
Aprovação da Reel Talk, mais testers na Mia Voice, e a trilha futura do Alexa+ Multi-Agent SDK.
O que fica pronto pra usar
Nenhuma parte deste trabalho foi descartável. O esqueleto de FastAPI e verificação de assinatura, os scripts de geração de ícones e vídeo, o roteiro de campos de certificação — tudo isso é reaproveitável, literalmente, na próxima skill, do próximo cliente.
O que mudou entre a primeira e a segunda skill desta sessão não foi o código. Foi a decisão de quando abrir mão da allowlist — e quando ela é a própria razão de existir do produto.