FUTsway

Acompanhamento do projeto

Atualizado em (horário de Brasília)

Esta página é o acompanhamento. Para usar o sistema, abra o FUTsway.

Abrir o FUTsway dnaplay.200-141-24-170.sslip.io

O que já funciona

  • aula em vídeo, o resultado principal de cada análise: partida enviada por arquivo vira uma aula em MP4 (pausas nos lances, setas, câmera lenta, voz do treinador, lousa 3D, legendas; assistir e baixar); por link do YouTube, a aula é interativa sobre o próprio player
  • criar conta e entrar
  • começar uma nova análise: vídeo de referência por link do YouTube ou arquivo, e o seu vídeo por arquivo
  • enviar o vídeo (o envio é em partes e retoma se a conexão cair)
  • análise com IA de verdade: o Gemini assiste aos dois vídeos e o Claude compara, verifica e recomenda, com o custo de cada análise à vista
  • página de resultado: lances comparados com o minuto certo no YouTube e no seu vídeo, pontos fortes, o que mais custa e recomendações
  • minha conta, sessões ativas e assinatura (sem cobrança)
  • FUTsway Live v0 no computador: compartilhar a janela do jogo, dicas escritas e faladas durante a partida e o resumo da sessão no histórico

O que ainda não funciona

  • a qualidade da análise ainda não foi validada com partidas de verdade (etapa E3, aguardando os vídeos do Rotcha)
  • aula em vídeo com uma partida real enviada por arquivo: falta o Rotcha gravar e enviar a primeira (etapa E13); a voz da ElevenLabs é opcional (hoje a voz é a do Google)
  • “esqueci minha senha” não envia e-mail (B8); se alguém perder a senha, o dono pede e a gente redefine
  • FUTsway Live: voz natural (a de agora é a do navegador), console sem placa pelo YouTube e validação com partidas reais do Rotcha (E4)

Estado atual

O que está configurado, o que funciona, o que já foi validado com partidas reais e o que pode ser vendido.

Corte: 2026-10-28 (horário de Brasília). Este quadro vale mais que PDFs e apresentações antigas.

Conta, login e sessões

  • Configurado sim
  • Funcional sim
  • Validado com dados reais sim (uso interno)
  • Aprovado para vender não

limites contra abuso ativos; recuperação de senha por e-mail ainda não (B8)

Envio de vídeo (upload em partes, retomável)

  • Configurado sim
  • Funcional sim
  • Validado com dados reais sim (vídeos de teste em produção)
  • Aprovado para vender não

identidade do arquivo, conclusão sem corrida, vídeo conferido na conclusão, limpeza de hora em hora

Vídeo de referência por link do YouTube

  • Configurado sim
  • Funcional sim
  • Validado com dados reais parcial (vídeos públicos)
  • Aprovado para vender não

só vídeos públicos; sem download. 27/10: o YouTube passou a bloquear a página para o servidor ("confirme que não é um robô"); a duração agora é lida pelo player oficial no navegador do usuário

Minha gameplay por link do YouTube (25/10)

  • Configurado sim
  • Funcional sim
  • Validado com dados reais parcial (1 análise completa A por link + B por link)
  • Aprovado para vender não

mesma validação pública da referência; sem quadros guardados como prova (avisado no relatório)

Nova Análise v2: tipos, fundamentos, profundidade, estimativa (25/10)

  • Configurado sim
  • Funcional sim
  • Validado com dados reais parcial (2 análises de “estudar um jogador” em produção; estimativa x real dentro da faixa)
  • Aprovado para vender não

148 fundamentos; relatório só com os escolhidos; estimativa calibrada com poucas análises

Controles e análise de comandos (25/10)

  • Configurado sim (PlayStation e Xbox; 30 mecânicas; confirmados pela EA marcados, o resto “a verificar”; Alternativo sem fonte)
  • Funcional sim (hipótese “provável”/“indeterminado”)
  • Validado com dados reais parcial (2 análises em produção com vídeo público: Clássico → L2/Círculo…; Personalizado → o comando mudou para o mapa do usuário)
  • Aprovado para vender não

nunca afirma botão; sem overlay, no máximo “provável”; a EA não publica o mapa completo fora do jogo

Modal de configuração do vídeo (25/10)

  • Configurado sim
  • Funcional sim
  • Validado com dados reais parcial (em produção com vídeos públicos: referência por nome completo + cor, os dois em inteligência combinada, comparar com dois modais e comparação automática, ambiguidade, padrão/restaurar, link inexistente; gameplay por arquivo só até o modal e a confirmação, sem análise paga: não há gravação real de partida para enviar)
  • Aprovado para vender não

leitura do placar virou opcional; nada pago antes de “Iniciar análise”

Comparação entre agentes e plano de treino (25/10)

  • Configurado sim
  • Funcional sim
  • Validado com dados reais parcial (Meu DNA x Pro X: 2 fundamentos comparáveis, 34 sem base, 1 item no plano; Pro X em dois períodos)
  • Aprovado para vender não

só fundamentos com 3+ lances de cada lado; contagens, nunca percentual; US$ 0,02–0,03 por comparação

Nova Análise otimizada: trechos, perfis, custo em tempo real, formato, resultado leve (25/10)

  • Configurado sim
  • Funcional sim (E2E no fluxo novo; testes de trechos, lote, reaproveitamento, limite)
  • Validado com dados reais parcial (9 análises em produção com vídeos públicos: antes x depois, Equilibrada 30 %, Completa, 56 min a 30 %, os 3 tipos, limite de consumo; todos os lances dentro dos trechos)
  • Aprovado para vender não

estimativa calibrada a partir de 5 análises por parte; formato com vídeo liberado em 26/10 (linha abaixo)

Reprocessar com a base atual (25/10)

  • Configurado sim
  • Funcional sim
  • Validado com dados reais parcial (relatório antigo do Pro X: base anterior → v3, US$ 0,149, antes/depois guardado)
  • Aprovado para vender não

refaz só diagnóstico, verificação e recomendações

Agentes (DNA Intelligence) e Meu DNA (25/10)

  • Configurado sim
  • Funcional sim
  • Validado com dados reais parcial (agente “Pro X — Marcação” com 2 partidas públicas; Meu DNA com 3 partidas públicas fazendo o papel do usuário)
  • Aprovado para vender não

memória com evidência, padrões e cobertura em contagens

Chat com agente (25/10)

  • Configurado sim
  • Funcional sim
  • Validado com dados reais parcial (perguntas reais em produção: com citação, com “sem evidência” e citando o meta do FC 27 com fonte)
  • Aprovado para vender não

US$ 0,01–0,03 por pergunta; recuperação simples (sem busca semântica)

Base do meta FC 27 (25/10)

  • Configurado sim (v3: 29 itens oficiais da EA, com data)
  • Funcional sim (recomendações, diagnóstico e chat citam com fonte)
  • Validado com dados reais parcial (análise “os dois jogadores”: 5 achados citaram mecânica oficial)
  • Aprovado para vender não

itens da seção 9 sem fonte ficaram de fora (lista em KNOWN_LIMITATIONS.md)

Identificação do lado pelo placar (25/10)

  • Configurado sim
  • Funcional sim
  • Validado com dados reais parcial: 2 de 2 partidas com siglas e ordem lidas certas (confiança alta); erro de atribuição de lado 0 de 10 lances conferidos no vídeo; vídeo sem placar → "não consegui ler"
  • Aprovado para vender não

placar do FC 26 é empilhado (1º em cima); amostra pequena; arquivo enviado testado só em teste automático (sem partida real em arquivo ainda)

Preparação do vídeo (FFmpeg)

  • Configurado sim
  • Funcional sim
  • Validado com dados reais parcial
  • Aprovado para vender não

contêiner com privilégios mínimos

Prova material x observação do modelo (Bloco B, 25/10)

  • Configurado sim
  • Funcional sim (teste com FFmpeg real, gravação real da segunda leitura, E2E)
  • Validado com dados reais parcial: YouTube em produção (11 lances, todos observação do modelo, segunda leitura 6 confirmados / 5 divergentes, tempo conferido por duas fontes); arquivo com quadros só em teste automático: não há gravação real de partida para enviar
  • Aprovado para vender não

fato observado só com quadro gravado; segunda leitura ≈ US$ 0,007 por 8 lances

LGPD: exportar e excluir a conta (25/10)

  • Configurado sim
  • Funcional sim
  • Validado com dados reais sim (produção: zip de 46 MB com 45 tabelas e 4 vídeos aberto e conferido; conta criada para teste excluída: 0 linhas e 0 arquivos)
  • Aprovado para vender não

sem e-mail de confirmação (B8); retenção de 7 dias nos backups

Cotas por plano (25/10)

  • Configurado sim, desligadas (ENFORCE_PLAN_LIMITS=false)
  • Funcional sim (testes com a chave ligada: bloqueio, devolução, corrida, plano pago)
  • Validado com dados reais —
  • Aprovado para vender não

ligar só antes de abrir para clientes

CSP, imagens fixadas, inventário privado, E2E no CI (25/10)

  • Configurado sim
  • Funcional sim
  • Validado com dados reais sim (CSP valendo na produção sem violações; E2E verde no CI)
  • Aprovado para vender —

CSP permite script inline do próprio site (limitação do Next com pré-renderização)

IA de vídeo (Gemini, cobrança ativa)

  • Configurado sim (23/10)
  • Funcional sim
  • Validado com dados reais não
  • Aprovado para vender não

gemini-4-argon + gemini-3.8-flash; 1ª análise: 2 min 46 s, US$ 0,24

IA de raciocínio (Claude)

  • Configurado sim (23/10)
  • Funcional sim
  • Validado com dados reais não
  • Aprovado para vender não

claude-sonnet-5-5; só roda quando há pares para comparar

Análise completa (do envio ao resultado)

  • Configurado sim
  • Funcional sim
  • Validado com dados reais não
  • Aprovado para vender não

pipeline executa ≠ diagnóstico correto: falta a E3 (partidas reais do Rotcha) e a anotação humana

Aula em vídeo — resultado principal (Fase 5, E13; no ar desde 26/10): MP4 por arquivo, interativa por link, nos três tipos

  • Configurado sim (voz do Google pelo Gemini TTS; Piper offline de reserva; detector RF-DETR)
  • Funcional sim (testes do serviço com renderização real e ffprobe; fila com falha simulada e “tentar de novo” sem IA; E2E com o formato novo; limpeza dos temporários)
  • Validado com dados reais parcial (3 aulas em produção: MP4 do vídeo de teste parecido com jogo, interativa “Comparar” e “Estudar um jogador” por link; seta conferida em 5 cenas: 4 certas, 1 errada)
  • Aprovado para vender não

falta só a partida real enviada por arquivo (critério do Wellington para fechar a E13). Opcional: voz da ElevenLabs (B6; com a chave entra sozinha no lugar da do Google). Aula por link não gera arquivo (nunca baixamos do YouTube). Aula pronta guarda só o MP4 e as legendas (≈ 1,7 MB por minuto de aula)

Player do coach IA (E14, no ar desde 26/10; corrigido em 26/10 à tarde com a gameplay real do Wellington: pausa total, som do jogo × narração, só a seleção)

  • Configurado sim
  • Funcional sim (controlador com 50×60 eventos aleatórios conferindo o estado das mídias; E2E com vigia do estado do <video>/YouTube em arquivo e link; teste do link falha no player antigo e passa no novo)
  • Validado com dados reais sim, por link com gameplay real (partida de 35 min, 5 min em 2 trechos): computador 7.005 quadros e celular 6.740, 0 falhas; som do jogo −18 dB → silêncio total (−180 dB) depois de cada pausa; tocou só 0–150 s e 1680–1830 s. Por arquivo: só com vídeo de teste (não há gravação real)
  • Aprovado para vender aguardando (E14)

caminho por arquivo ainda sem partida real; aulas MP4 de antes de 26/10 no player simples; iPhone: volume só pelo aparelho

Coach IA com leitura tática (E15, no ar desde 26/10 à noite): visão nos trechos (só arquivo), linhas de passe, dupla validação, portão anti-alucinação, base do meta v4, narração personalizável

  • Configurado sim
  • Funcional sim (11 testes do coach com vídeo sintético: projeção 0,25 m, oportunidade e perda achadas, portão, estilo; fila; ficha)
  • Validado com dados reais parcial: por link, 9 aulas de 2 partidas reais (45 min de trecho): 54 lances candidatos → 25 comentários "possivelmente", 22 descartados (47 % dos decididos: 18 sem segunda leitura, 7 sem item da base; 13 também sem posições), 0 cenas com desenho (por link não há visão, de propósito). Conferência do terminal pelas imagens do YouTube: 8 de 13 batem, 5 não dá para dizer, 0 claramente erradas. Por arquivo: nenhuma partida real ainda (visão medida em capturas reais: 15/15 projeções certas, 2,4 m de erro; aula por arquivo de teste cai certinho nos comentários)
  • Aprovado para vender não

E15 em validação: falta a ficha do Rogério (≥ 20 conferidas, ≥ 80 % certas, zero jogador errado/mecânica inexistente) e uma partida real por arquivo para as linhas de passe desenhadas

Nova Análise refinada (E16, no ar desde 27/10): modal com seletores compactos, 5 perfis, Estudar um jogador completo, aula do pro, controle virtual, agente nas 3 modalidades, "Para melhorar este agente"

  • Configurado sim
  • Funcional sim (pytest 11 novos; vitest; E2E do fluxo com os seletores, do Esc que fecha só a lista e do controle virtual PS/Xbox no player, com o vigia de camadas)
  • Validado com dados reais parcial: 6 análises reais em produção (conta de verificação, vídeo público de 4 min + vídeo de teste por arquivo): estimado × real Econômico 0,19 × 0,21 · Equilibrado+aula 0,39 × 0,40 · Especialista 0,65 × 0,47 · arquivo 0,36 × 0,34 · gameplay 0,20 × 0,22 · comparar 0,29 × 0,29 (US$); 5 perfis no mesmo vídeo de 35 min: 0,24–0,33 → 0,28–0,40 → 0,38–0,54 → 0,57–0,81 → 0,74–1,07; aula do pro por link e por arquivo com 3 lances cada, todos com o controle virtual; agente de pro criado (27 itens), agente pessoal novo (13), Meu DNA alimentado (10), "não salvar" respeitado; modal: 1442 → 619 px e 32 → 12 elementos clicáveis (computador), 2218 → 675 px e 31 → 11 (celular)
  • Aprovado para vender aguardando (E16)

por link a aula do pro continua sem desenho (sem visão por link); partida real de pro por arquivo ainda não analisada (o passe aproveitado medido só aparece com arquivo); controle virtual é sempre "comando provável"

Inteligência Central + configuração por áudio (E17, no ar desde 27/10): base do FC 27 + conhecimento ensinado e aprovado pelo administrador (painel Ensinar IA: texto, áudio, YouTube, transcrição autorizada, exemplo; versões, correção, reversão, arquivo; fontes acompanhadas às segundas), busca por significado (embeddings) usada no diagnóstico, na aula, no chat dos agentes e no Live; raciocínio do treinador em 7 passos por lance (fato/hipótese/indeterminado); configuração da análise por áudio nas 3 modalidades

  • Configurado sim
  • Funcional sim (pytest 22 novos, inclusive SSRF; banco 37; vitest 183; E2E do painel e da voz no CI com Postgres)
  • Validado com dados reais parcial: configuração por áudio validada na produção com fala real em português (8 de 8 pedidos entendidos; estimativa 0,38–0,54 → 0,20–0,28; transcrição < US$ 0,01; nada iniciado). Ensinar IA validado na produção por áudio real (proposta com trecho conferido e aviso de parecido → aprovar → Testar recuperou em 1º); aula real com raciocínio de 7 passos; chat do agente corrigido mas não publicado (GitHub Actions parado por pagamento)
  • Aprovado para vender aguardando (E17)

marca na interface é "Inteligência Central" (FUTSway a confirmar); aula com item ensinado ainda não provada na produção

Aula por link com desenhos (captura da tela) (E18, no ar desde 28/10) + selo único por cena no lugar do "possivelmente"

  • Configurado sim
  • Funcional sim (pytest: visão pela captura = mesmas jogadas do arquivo, vídeo de terceiros sem quadro guardado, votação do time; vitest; banco)
  • Validado com dados reais parcial: captura funcionando de ponta a ponta na produção (só esta aba, recusa de outra aba, 2×, 1.233–1.774 quadros em 4–5 min, quadros apagados depois da visão, aula refeita sozinha em 17–22 min); mas nenhuma cena saiu "medido na imagem" nas 2 partidas públicas testadas: a visão reconhece o campo em 34–82 % dos quadros, porém acha poucos quadros com a bola no pé e não consegue firmar qual time é o analisado, então o portão descarta tudo e a aula fica com "leitura da IA"
  • Aprovado para vender aguardando (E18)

a meta da ficha (≥ 25 cenas medidas) não foi atingida: depende de melhorar a visão (detecção da bola e do time) nestes vídeos de transmissão

Nome e identidade FUTsway (E20, 28/10): nome, slogan, cores, Inter, símbolo e logotipo oficiais, favicon, Open Graph, heros e fundo do login do kit, marca d'água e cartão novo na aula, página de acompanhamento nova

  • Configurado sim
  • Funcional sim (typecheck, build, vitest, pytest, ruff, mypy)
  • Validado com dados reais —
  • Aprovado para vender —

o endereço do site continua o provisório até haver domínio; nomes com "DNA" do Wellington mantidos até ele decidir; nome interno do banco/volumes ficou o antigo (invisível)

Retenção do vídeo original (30 dias)

  • Configurado sim
  • Funcional sim (teste do banco e da limpeza)
  • Validado com dados reais sim (produção: aviso com a data, "Manter por mais 30 dias" 25/11 → 25/12; exclusão simulada numa análise de teste)
  • Aprovado para vender —

reanalisar depois exige reenviar

Qualidade do diagnóstico e das dicas

  • Configurado —
  • Funcional —
  • Validado com dados reais não
  • Aprovado para vender não

a tela de resultado diz "qualidade em validação"

Orçamento de IA (limite diário e por análise)

  • Configurado sim
  • Funcional sim
  • Validado com dados reais sim (teste de bloqueio em produção)
  • Aprovado para vender não

reserva atômica no banco

FUTsway Live (coach durante a partida)

  • Configurado sim (24/10)
  • Funcional sim (v0, no computador)
  • Validado com dados reais não
  • Aprovado para vender não

sessões de teste em produção com vídeo público: dicas escritas e faladas, atraso médio 17–23 s, US$ 0,016–0,019 por minuto; falta a sessão real do Rotcha (E4); voz do navegador (provisória)

Assinaturas e pagamento

  • Configurado não
  • Funcional não
  • Validado com dados reais não
  • Aprovado para vender não

Stripe depende de CNPJ (B3); preços dependem do dono (B7)

E-mail (recuperação de senha, avisos)

  • Configurado não
  • Funcional não
  • Validado com dados reais não
  • Aprovado para vender não

Resend (B8)

Backup e cópia externa

  • Configurado sim
  • Funcional sim
  • Validado com dados reais sim (26/10: restauração completa ensaiada no formato novo, pela pasta e pelo pacote externo, 19 s; ensaio do notebook 93/93)
  • Aprovado para vender —

2×/dia no servidor; vídeos incrementais (cada um copiado uma vez; 84 pastas/3,7 GB → 9/827 MB); notebook às 8h e 20h baixa só o que falta

Monitoramento externo

  • Configurado parcial
  • Funcional sim (vigia do GitHub a cada 30 min)
  • Validado com dados reais —
  • Aprovado para vender —

Better Stack (1 min) depende do dono (D27)

Domínio próprio

  • Configurado não
  • Funcional não
  • Validado com dados reais —
  • Aprovado para vender —

hoje <ENDERECO_PRODUCAO>

Etapas para aprovação

Cada etapa passa por: implementar → corrigir falhas → testar → Wellington aprova.

E1 aguardando aprovação

Fundação: cadastro, login, nova análise, upload, fila

O que olhar
o sistema no ar: <ENDERECO_PRODUCAO> (criar conta, nova análise, enviar vídeo, ver o processamento)
Entregue em
21/10/2026
Observações do Wellington
nenhuma ainda
E2 aguardando aprovação

Documento de alinhamento v2 + escopo do FUTsway Live

O que olhar
o PDF v2 (seção “Documentos” desta página: docs/historico-futsway/FUTsway_Modelo_de_Negocio_v2.pdf) e, no sistema, o menu “FUTsway Live” (explicação, modos e preferências salvas). Responder também: antecipar o Live para logo após a Fase 2?
Entregue em
23/10/2026
Observações do Wellington
nenhuma ainda
E3 aguardando vídeos do rotcha

Primeira análise real com partidas de verdade

O que olhar
o Rotcha cria uma análise pelo próprio site: em "Referência", o link do YouTube de um pro; em "Sua gameplay", uma partida dele. Ao terminar, a página de resultado mostra os lances comparados (com o minuto certo), pontos fortes, o que mais custa, recomendações e o custo real. O terminal lê o resultado com olhar crítico e registra no log o que a IA acertou, errou e não enxergou
Entregue em
undefined/undefined/—
Observações do Wellington
nenhuma ainda
E4 aguardando sessão real do rotcha

FUTsway Live v0: treinador falando durante a partida no PC

O que olhar
no sistema, menu “FUTsway Live”: escolher o modo, “Iniciar sessão”, compartilhar a janela do jogo, jogar uma partida; as dicas aparecem escritas e são faladas (voz do navegador, provisória), com o atraso indicado; ao encerrar, o resumo aparece em “Análises” (dicas com horário, o que se repetiu, custo por minuto)
Entregue em
undefined/undefined/—
Observações do Wellington
nenhuma ainda
E5 aguardando aprovação

Lado analisado escolhido pelo placar e Minha gameplay por link (ajustes do Wellington)

O que olhar
no sistema, “Nova análise”: (1) em Referência, colar o link do YouTube → a IA lê o placar em ~10 s e pergunta “Qual jogador a IA deve analisar?” com as 3 letras de cada time (dá para “Corrigir siglas”); (2) em Sua gameplay, agora também por link do YouTube (ou arquivo) → “Qual destes jogadores é você?”; sem escolher, o botão de seguir fica travado com o motivo; (3) no resultado, o topo mostra “Lado analisado: …” dos dois vídeos. Prints docs/screenshots/31 a 39
Entregue em
25/10/2026
Observações do Wellington
nenhuma ainda
E6 aguardando aprovação

Nova Análise v2: lados, fundamentos, profundidade, controles (W1 da especificação “Nova Análise e Agentes”)

O que olhar
“Nova análise”: (1) escolher o que fazer (estudar um jogador, minha gameplay ou comparar); (2) vídeo por link ou arquivo nas duas categorias, jogador pelo placar — um, ou os dois —, dando nome (ex.: P23 = Pro X); (3) fundamentos: seleção pronta (ex.: “Marcação e defesa”), partida completa ou só os escolhidos, por categoria; (4) profundidade (básica a especialista), controle (Clássico/Alternativo/Personalizado/Não sei) e “analisar possíveis comandos” Sim/Não; (5) revisão com o custo estimado; o resultado mostra só os fundamentos pedidos, melhores decisões, erros, padrões, linha do tempo e o custo real ao lado da estimativa. “Minha conta” tem o perfil de controle. Prints docs/screenshots/40 a 45
Entregue em
25/10/2026
Observações do Wellington
nenhuma ainda
E7 aguardando aprovação

DNA Intelligence: agentes e chat (W2)

O que olhar
no resultado, Salvar inteligência → criar agente (jogador 1, jogador 2, os dois combinados), adicionar a um agente existente, Meu DNA (só partidas suas) ou só salvar; menu Meus Agentes: partidas, memória por fundamento com os lances, cobertura (sem percentual), padrões (isolado/recorrente/divergente), lacunas, histórico; Conversar: o agente responde só com o que viu, com links para o minuto do lance, e diz quando não tem evidência; Alimentar com vídeo: a nova análise entra no agente sozinha. Prints docs/screenshots/46 a 51
Entregue em
25/10/2026
Observações do Wellington
nenhuma ainda
E8 aguardando aprovação

Comparação entre agentes (W3)

O que olhar
Meus Agentes → Comparar (ou o botão Comparar dentro de um agente): escolher dois agentes (ex.: Meu DNA x Pro X) ou o mesmo agente em dois períodos (“até a partida X”); ver antes o que dá para comparar, o que está “sem base para comparar” e o custo estimado; o resultado mostra, por fundamento, as contagens de cada lado, semelhanças, diferenças, oportunidades e recomendações com os lances clicáveis (sem percentual); em “Meu DNA x Pro”, as recomendações entram no Plano de treino do Meu DNA como “aprendido de Pro X”, sem misturar com as suas partidas. Prints docs/screenshots/56 a 63, 67, 70, 71
Entregue em
25/10/2026
Observações do Wellington
nenhuma ainda
E9 aguardando aprovação

Comandos do controle e meta do FC 27 (W4)

O que olhar
Minha conta → Tabela de comandos do FC 27 (Clássico e Alternativo do PlayStation e do Xbox, cada comando “confirmado pela EA” com link ou “a verificar”); na análise, console PlayStation/Xbox e Personalizado; com “Analisar possíveis comandos”, o relatório mostra o comando provável do seu perfil (muda quando o Personalizado muda); o relatório e o chat citam a mecânica oficial do FC 27 com fonte e data; no fim do relatório, Reprocessar com a base atual (custo estimado antes; antes/depois guardado). “Analisar os dois jogadores” da mesma partida testado no site. Prints docs/screenshots/52 a 55, 57, 61, 64 a 66, 68, 69
Entregue em
25/10/2026
Observações do Wellington
nenhuma ainda
E11 aguardando aprovação

Bloco B da auditoria: evidência material, LGPD, segurança

O que olhar
(1) Numa análise com vídeo do YouTube, cada lance mostra "observação do modelo" e "confirmado por segunda leitura" ou "divergente na segunda leitura" (e "tempo incerto" se a duração não bater); com arquivo enviado, o lance mostra as duas imagens tiradas do vídeo e só então pode ser "fato observado". (2) Minha conta → Privacidade e dados: "Exportar meus dados" (o link do .zip aparece em segundos e vale 24 h) e "Excluir minha conta" (pede a senha; avisa que não há e-mail). (3) Nada muda no uso: as cotas por plano ficam desligadas. Prints docs/screenshots/92 a 97
Entregue em
25/10/2026
Observações do Wellington
nenhuma ainda
E12 aguardando aprovação

Nova Análise otimizada: trechos, custo em tempo real, perfis, formato e resultado leve

O que olhar
(1) Nova análise → cole um link → Confirmar: o modal abre com Equilibrada marcada e o custo; Iniciar análise no rodapé (2 cliques). (2) Em Quanto do vídeo, mude a porcentagem e os modos (distribuir, momentos relevantes, manual, intervalos): tempo, % e economia mudam na hora; arraste os trechos na linha do tempo. (3) Abra Ver custo por parte e Personalizar análise: tudo o que existia continua lá. (4) Em vídeo mostra "Disponível na Fase 5" e não inicia. (5) Abra um resultado: 3 frases no topo, cards por fundamento, momentos, próximos passos; o resto em "Detalhes da análise". Prints docs/screenshots/98 a 115
Entregue em
25/10/2026
Observações do Wellington
nenhuma ainda
E13 **aguardando partida real por arquivo** (critério do wellington)

Vídeo-aula da própria gameplay (MP4 por arquivo; interativa por link; também no "Estudar um jogador")

O que olhar
(1) Nova análise → "Analisar minha gameplay" → envie o arquivo da partida: no modal, "Texto + vídeo" vem marcado e a estimativa mostra a parte "Vídeo-aula". (2) Inicie: o relatório fica pronto e, acima dele, a aula monta (etapas, prévia das 3 primeiras cenas); pronta, assista, clique nos momentos, ligue as legendas e baixe o MP4. Confira: pausa no lance certo, seta no jogador certo (ou só a zona quando não houve certeza), narração e áudio original baixinho, câmera lenta, lousa 3D com "exemplo tático". (3) Repita com link do YouTube (gameplay e referência): "Começar a aula" — o vídeo pausa sozinho, desenha, narra, e o pro abre no minuto do lance. (4) "Estudar um jogador" por link: a aula interativa sobre o vídeo do pro. Prints docs/screenshots/116 em diante
Entregue em
26/10/2026
Observações do Wellington
nenhuma ainda
E14 aguardando aprovação

Player do coach IA: sincronização e controles

O que olhar
Abra uma aula pronta (por link: as análises de "Comparar" e "Estudar um jogador"; por arquivo: a análise de teste ab2ef5a7). (1) "Começar a aula": no lance a aula pausa, desenha e narra. (2) Pause e retome várias vezes no meio da explicação: tudo para junto e continua do mesmo ponto. (3) Aperte +10 durante a explicação: aparece "Deseja pular esta explicação?" — "Continuar" volta, "Pular" some com tudo na hora e segue. (4) −10/−5, arrastar a barra, clicar nas marcas coloridas (erro/oportunidade/acerto), "Anterior/Repetir/Próxima/Pular explicação". (5) Engrenagem: setas, narração, "Só a gameplay", legenda, dois volumes, velocidade do jogo e das explicações. (6) "Repetir lance" e "Lento 0,5x" na lista; "Salvar este momento" → "Meus momentos"; recarregue: continua lá e as preferências também. (7) Tela cheia (F), teclado (espaço, J/K/L, setas, M), celular (toque duplo nas laterais = ±10 s, girar a tela). (8) No fim: "Aula concluída" e "Assistir de novo". Vídeo docs/screenshots/player-aula-sequencias-rapidas.mp4; prints docs/screenshots/137 em diante
Entregue em
26/10/2026
Observações do Wellington
Voltou "com ajustes" em 26/10 (Wellington, gameplay real): (1) ao pausar, o som do jogo continuava; (2) o botão de som mexia só na voz da IA; (3) a aula usava a partida inteira apesar da seleção. Corrigido e validado na produção com a partida real dele (link, 35 min, computador e celular; bloco 29 do log). Para conferir: abra uma aula, pause em qualquer ponto (abertura, gameplay, explicação) — o som do jogo para junto; use os dois botões de som (controle e microfone); "Remover áudio original" embaixo do player; a barra mostra só os minutos escolhidos, com a emenda entre os trechos. Vídeo docs/screenshots/correcao-video-final-producao-com-som.mp4; prints 162–166.
E15 em validação

Coach IA com leitura tática: oportunidades, linhas de passe, meta do FC 27, narração personalizável

O que olhar
(1) Ficha de conferência: https://claude.ai/artifact/FSJfwKEqCGQw4uiwtndcKn — 25 orientações de 9 aulas de 2 partidas reais (por link); marque cada uma certo/errado/não sei, e "jogador errado" ou "mecânica que não existe" quando for o caso; a precisão aparece no topo. (2) Nova análise → o modal tem "Narração" (Informal/Formal/Técnico; Poucas/Equilibradas/Detalhadas; Direto/Explicativo). (3) Numa aula pronta, o quadro "Qualidade desta aula" mostra quantos lances foram avaliados, viraram orientação e foram descartados (e por quê). (4) Por arquivo, a etapa "Visão" aparece no andamento. Prints docs/screenshots/167–170
Entregue em
26/10/2026
Observações do Wellington
Meta (D82): ≥ 20 orientações conferidas pelo Rogério, ≥ 80 % certas e zero "jogador errado"/"mecânica que não existe". Linhas de passe desenhadas só aparecem em partida enviada por arquivo (decisão do Rogério: por link não há imagem); falta uma gravação real para validar essa parte.
E10 aguardando aprovação

Modal de configuração do vídeo (Referência e Minha gameplay)

O que olhar
Nova análise → tipo → link (ou arquivo): o modal abre sozinho. Conferir as seções A–H e as configurações adicionais, “Sugerir pelo placar” (opcional), a confirmação quando as pistas não batem, “Salvar como padrão” e “Restaurar padrão”, e em “Comparar com uma referência” os dois modais (o “Iniciar” só libera com os dois). No resultado: “Estudo configurado”, “Momentos importantes”, inteligência criada/alimentada e comparação automática. Prints docs/screenshots/72 a 91
Entregue em
25/10/2026
Observações do Wellington
nenhuma ainda
E16 aguardando aprovação

Nova Análise refinada: modal compacto, 5 perfis, Estudar um jogador completo, aula do pro, controle virtual, agentes em todas as modalidades

O que olhar
(1) Nova análise → cole um link → Confirmar: o modal abre com tudo em seletores que só abrem ao clicar (Jogador, Tipo, Perfil de análise com os 5: Econômico, Essencial, Equilibrado, Avançado, Especialista; Quanto do vídeo; Como receber). O custo fica no rodapé; clique nele para ver as partes. (2) Troque o perfil e veja o custo mudar (do Econômico ao Especialista ele sempre sobe). (3) Opções da aula → "Exibir controle virtual durante a aula" (liga os comandos sozinho). (4) Personalizar análise: em "Estudar um jogador" aparece O que destacar (decisões que deram certo / tudo / momentos-chave), fundamentos com subcategorias, profundidade, controle Clássico/Alternativo/Personalizado e PlayStation/Xbox, comandos, Salvar conhecimento em Agente de IA (criar novo / alimentar existente / não salvar) — igual em Minha gameplay e Comparar (um em cada vídeo). (5) Na aula pronta de um pro: nos lances, a narração diz o que ele fez → por que foi bom → como fazer igual, e o controle no canto acende os botões com "Comando provável"; pause e ele congela; a engrenagem liga/desliga. (6) Meus Agentes → um agente → Para melhorar este agente. No celular, as listas sobem de baixo. Prints docs/screenshots/refinamento/ (computador e celular; aula do pro e agente na produção; pausa do MP4)
Entregue em
27/10/2026
Observações do Wellington
Validado na produção com vídeo público e vídeo de teste por arquivo (bloco 31 do log). Falta uma partida real de pro por arquivo para ver o passe aproveitado desenhado.
E17 aguardando validação na produção

Inteligência Central + configuração por áudio

O que olhar
(1) Com conta administradora: menu Ensinar IA → envie um texto ou grave um áudio ensinando algo do FC 27 → em 1–2 min aparece a proposta, com o trecho do material que a sustenta → Aprovar (ou Revisar campos / Rejeitar). (2) O item vai para Conhecimento aprovado com fonte, data, versão do jogo e confiança; abra e veja o histórico (corrigir, voltar versão, arquivar). (3) Testar: faça uma pergunta e veja o item ensinado sendo recuperado. (4) Nova análise → link → no modal, Como deseja configurar? → Áudio → grave o que quer ("sou o de baixo, só passes e finalizações, metade do vídeo, por escrito") → Transcrever e preencher → confira a lista do que mudou e o custo; Desfazer volta tudo. Nada pago começa sem você clicar em iniciar. (5) Numa aula, abra um lance: aparece o raciocínio do treinador em 7 passos. Prints docs/screenshots/inteligencia-central/
Entregue em
27/10/2026
Observações do Wellington
Configuração por áudio validada na produção (bloco 32). Falta tornar as contas administradoras e provar a aula usando um item ensinado.
E18 em validação

Aula por link com desenhos (captura da tela) e selo no lugar do "possivelmente"

Entregue em
28/10/2026
Observações do Wellington
A captura funciona; nas partidas públicas testadas a visão ainda não produziu cenas medidas (ver bloco 33).
E20 em validação

Novo nome e identidade: FUTsway

O que olhar
Abrir o sistema (o endereço provisório continua o mesmo até haver domínio): (1) página inicial com o hero do kit novo, (2) login com o fundo da marca, (3) painel e menus com as cores e a fonte Inter, (4) uma aula com a marca d'água FUTsway no canto e os desenhos nas cores novas, (5) o ícone na aba do navegador; e a página de acompanhamento nova (https://futsway-acompanhamento.pages.dev; o link antigo leva para ela). Os nomes "Meu DNA", "DNA Intelligence", "DNA Agent" e "DNA Input Intelligence" ficaram como estavam: dizer se mudam e para quê.
Entregue em
28/10/2026
Observações do Wellington
nenhuma ainda

Documentos

Documentos de alinhamento do projeto. Abra para ler ou baixar.

Estado das fases

  1. Entrega principal do produto

    5 — Aula em vídeo

    em andamento

    No ar desde 26/10 (E13) nos três tipos; 3 aulas em produção com vídeos de teste e públicos (setas: 4 de 5 certas). Falta: a primeira partida real enviada por arquivo (o Rotcha gravar e enviar). Opcional: voz da ElevenLabs (hoje a voz é a do Google; com a chave, troca sozinha).

    A aula é o que o jogador recebe de cada análise; o relatório escrito vem abaixo, como complemento. Arquivo enviado → aula em MP4 (o próprio vídeo com pausas nos lances, setas e círculos, câmera lenta, voz do treinador, lousa tática 3D, legendas; assistir e baixar). Link do YouTube → aula interativa (o mesmo roteiro, desenhos e voz sobre o player oficial; com referência, o pro abre no minuto do lance). Nos três tipos de análise; conferência automática das cenas

    Pronta quando: uma partida real do próprio jogador, enviada por arquivo, processada e com a aula reproduzível (critério do Wellington)

  2. 1 — Fundação

    em andamento

    No ar em produção, aguardando a aprovação do Wellington (E1).

    repositório, arquitetura, banco, autenticação, design system, layout, dashboard, fluxo de nova análise, upload, armazenamento privado, fila

    Pronta quando: usuário cria conta, envia dois vídeos, análise fica enfileirada e ingestão real roda

  3. 2 — Prova técnica da IA (o coração)

    em andamento

    Encanamento real em produção desde 2026-10-23, aguardando partidas reais (E3).

    eventos, timestamps, análise independente A/B, comparação contextual, evidências, relatórios estruturados

    Pronta quando: só avança quando a análise real convencer: validado com partidas reais

  4. 3 — FUTsway Live

    em andamento

    V0 no ar no computador, aguardando a primeira sessão real do Rotcha (E4).

    coach de IA durante a partida: captura da tela (PC ou placa de captura; YouTube na v1), análise em janelas, dicas por voz e texto nos modos discreto/equilibrado/intensivo/silencioso, resumo da sessão

    Pronta quando: jogador compartilha a tela, joga uma partida inteira, recebe orientações por voz no modo escolhido com atraso declarado e ao fim vê o resumo; validado por jogadores reais

  5. 4 — Coaching, evolução e DNA Intelligence (especificação do Wellington, 24/10)

    W1, W2, W3 e W4 no ar (25/10), aguardando aprovação (E6, E7, E8, E9); modal de configuração do vídeo no ar (25/10, E10); contínuo

    Base do meta e comandos confirmados conforme a EA publicar.

    W1 Nova Análise v2: tipo (estudar um jogador, minha gameplay, comparar), lados pelo placar (um ou os dois), 148 fundamentos, profundidade, controle e comandos (hipótese), estimativa de custo · W2 agentes (pro, combinado, Meu DNA), biblioteca, memória com evidência, padrões, chat com citações · W3 comparação entre agentes (Meu DNA x Pro X, defesa atual x anterior, plano de treino) · W4 DNA Input Intelligence completo (comandos verificados por versão, Xbox) e base do meta FC 27 preenchida, reprocessamento

    Pronta quando: agente responde com links para os lances; relatório só com os fundamentos pedidos; nada de percentual inventado

  6. 6 — Comercialização (sempre a última)

    não iniciada

    planos, pagamentos, créditos, admin, limites de plano, monitoramento, carga

    Pronta quando: produção estável e cobrança funcionando

Feito até agora

  1. Bloco 35: servidor, Cloudflare e seção 2b (site como o painel do kit) — PROMPT_REBRAND_FUTSWAY.md

    0 itens
    • Bloco 34: troca de nome FUTsway → FUTsway e identidade nova (E20) — PROMPT_REBRAND_FUTSWAY.md

      0 itens
      • Bloco 33: Finalização (D96–D97, E18) — PROMPT_FINALIZACAO.md

        0 itens
        • Bloco 32: Inteligência Central + configuração por áudio (D91–D95, E17)

          0 itens
          • Bloco 31: Refinamento da Nova Análise (D83–D90, E16) — PROMPT_REFINAMENTO_NOVA_ANALISE.md

            0 itens
            • Bloco 29: Correções urgentes no vídeo final (pausa total, áudio original, duração selecionada) — PROMPT_CORRECOES_VIDEO_FINAL.md

              0 itens
              • Bloco 28: Backup incremental dos vídeos, retenção de 30 dias do vídeo original e o player do coach IA (E14) — prompt colado + PROMPT_PLAYER_AULA.md

                0 itens
                • Bloco 27: Aula em vídeo como entrega principal nos documentos e na página; limpeza do disco do servidor

                  8 itens
                  • ROADMAP: Fase 5 virou “Aula em vídeo (resultado principal)”, em andamento, no ar desde 26/10 (E13). Falta: a primeira partida real enviada por arquivo. Opcional: voz da ElevenLabs. Nota: a numeração é de planejamento, não de importância.
                  • ESTADO: saiu a linha antiga “Aula animada e vídeo final (Fase 5): não”. A linha da aula foi para junto da análise, como resultado principal, com o que falta dito com precisão. PRD, UX e os rótulos de custo da tela (“Aula em vídeo: …”) acompanham.
                  • Página de acompanhamento: a fase da aula aparece primeiro, em destaque, com “Entrega principal do produto”. “O que já funciona” abre com a aula. Em “O que ainda não funciona” saiu “Fase 5” e entrou o que falta de verdade. Prints 135–136.
                  • Disco: a causa não eram as aulas. 64 % (61 GB) = 55,3 GB de imagens velhas (63 versões de cada, uma por deploy) + 3,5 GB de backups (85 pastas, um por deploy) + 0,2 GB de dados. Depois do deploy d114fc8: 16 % (16 GB), imagens 6,0 GB.
                  • Aula pronta guarda só o MP4 e as legendas (interativa: falas e lousas). Temporários saem no fim da montagem e na limpeza de hora em hora. Aula de análise apagada sai em 1 h. Primeira limpeza em produção: 12 arquivos; aula MP4 de 14,1 → 8,8 MB; lista de arquivos conferida no banco (MP4: aula.mp4, aula.srt, aula.vtt).
                  • Deploy: limpar-imagens.sh (fica a versão no ar + 3 mais novas) e backup de antes do deploy só com os 3 mais novos.
                  • Pasta de trabalho do serviço: cada aula vale pela própria data (antes valia a da pasta aulas inteira).
                  • DEPLOYMENT.md → “Disco”: medições, quanto cada aula ocupa (≈ 1,75 MB por minuto de aula MP4) e quando ampliar.
                • Bloco 26: Vídeo-aula da própria gameplay (MP4 por arquivo, interativa por link, nos três tipos) — PROMPT_VIDEO_AULA.md + complementos do Rogério

                  0 itens
                  • Bloco 25: Nova Análise otimizada (trechos, custo em tempo real, perfis, formato, resultado leve) — PROMPT_OTIMIZACAO_NOVA_ANALISE.md

                    0 itens
                    • Bloco 24: Bloco B da auditoria externa nº 1 e pendências pequenas — PROMPT_BLOCO_B_E_PENDENCIAS.md

                      10 itens
                      • Pendência 2 — página de acompanhamento: blocos do "Feito até agora" já mostravam só título, data e quantidade (detalhes recolhidos); a palavra "versão provisória" dos blocos de 22–23/10 (e de títulos de commit) aparece como a de hoje ("Abrir o FUTsway", "primeira versão…") só na página; o log fica como foi escrito. Endereço público conferido: 0 ocorrências.
                      • Pendência 3 — limite diário de IA 20: confirmado no servidor (.env = 20, backup .env.bak-202610251149 com 5; linha de 25/10 em ai_budget_day com limit_usd=20; o web em execução lê 20). A linha de cada dia nasce com o valor do .env e é atualizada a cada reserva (BudgetRepo.reserve). Padrão 20 no código, no Compose e nos dois .env.example; docs/COST_MODEL.md atualizado.
                      • A-08/A-09 evidência material (D54): observação do modelo x prova material; quadros do arquivo com FFmpeg gravados em quadros/<usuário>/<análise>/; fato só com quadro gravado; YouTube = observação do modelo + segunda leitura cega (lotes de 8, modelo rápido, só os trechos); duração por duas fontes ("tempo incerto"); rótulo sempre no relatório (momentos e linha do tempo); migration 0016.
                      • A-12 LGPD (D55): "Exportar meus dados" (fila account.export, zip de 24 h, auditado) e "Excluir minha conta" (senha, cascata + arquivos, auditoria sem dado pessoal, aviso de que não há e-mail); puxar-backup.ps1 com retenção de 7 dias; limpeza de quadros e zips órfãos; migration 0017.
                      • A-02 cotas (D56) atrás de ENFORCE_PLAN_LIMITS=false; migration 0018. A revisão de segurança automática apontou que cancelar no fim ou reprocessar e falhar devolveria crédito já usado: corrigido (b63eff1).
                      • A-18 imagens por digest, actions por SHA, SBOM/proveniência, digests-implantados.log.
                      • A-19 CSP Report-Only → observação na produção → valendo; /api/csp-report (migration 0019); a revisão automática apontou caracteres de controle no log do relatório: corrigido.
                      • A-20 inventário em docs/privado/INVENTARIO.md (ignorado), marcadores nos docs, variáveis SISTEMA_URL/PROD_HEALTH_URL no GitHub, USER= no .secrets.
                      • E2E no CI (D58): job e2e com Playwright, PostgreSQL, site em modo produção, fila e serviço em replay da gravação real e2e-fluxo.
                      • Achados no caminho: /app/analises/<id inválido> dava erro 500 (agora 404); a confirmação da exclusão se desmarcava depois de senha errada (agora fica marcada); o Caddy não relia o Caddyfile no deploy (agora é recriado quando o arquivo muda).
                    • Bloco 23: modal de configuração do vídeo (Referência e Minha gameplay) — PROMPT_MODAL_CONFIG_VIDEO.md

                      0 itens
                      • Bloco 22: W3 (comparação entre agentes) e W4 (comandos e meta do FC 27) — PROMPT_W3_W4_COMPARACAO_META.md

                        0 itens
                        • Bloco 21: PDFs v3 na seção “Documentos” da página de acompanhamento

                          0 itens
                          • Bloco 20: Nova Análise v2 (W1) e DNA Intelligence (W2) — especificação do Wellington de 24/10

                            4 itens
                            • W1 (cc6865c, 75126e7, 8d0672c): taxonomia 38 → 48 situações; catálogos versionados (config/fundamentos.json 148 fundamentos/8 categorias/5 seleções prontas, profundidade.json, controles.json); contratos FundamentalSelection, InputHypothesis, CostEstimate; análise do vídeo filtrada por fundamentos e profundidade, comandos como hipótese, “os dois” lados; estágios por tipo (estudar um jogador, minha gameplay, comparação; comparação dos dois lados da mesma partida); /v1/estimate; migration 0012; tela nova (tipo → vídeo/jogador → fundamentos → profundidade e controle → revisão com estimativa), relatório por fundamento, controle em Minha conta.
                            • W2 (85104a0, f91e202, e9ca13b): migration 0013 (agentes, fontes, memória, padrões, histórico, agent_comparisons para a W3, chat, orçamento do chat); motor de conhecimento (extração sem duplicar, padrões isolado/recorrente/divergente, cobertura em contagens, lacunas, evolução do Meu DNA); /v1/agents/chat; telas Meus Agentes, agente, chat, Salvar inteligência; Alimentar com vídeo (a análise entra no agente ao terminar).
                            • D47 (9e8987d): base do meta FC 27 v2 com rótulo/escopo/fundamentos; 10 itens de mecânica oficial das Pitch Notes da EA (https://www.ea.com/games/ea-sports-fc/fc-27/news/pitch-notes-fc27-gameplay-deep-dive, consultada em 25/10).
                            • Correção (e9ca13b, 296c5c8): a estimativa da revisão sumia ao enviar (o envio regravava a seleção; o banco devolve o JSON com as chaves em outra ordem e o cálculo de reserva rodava depois de entrar na fila). Agora a comparação ignora a ordem e o envio calcula antes; teste de regressão.
                          • Bloco 19: ajustes do Wellington na Nova Análise (lado pelo placar + Minha gameplay por link)

                            5 itens
                            • Serviço de análise 95b00d5: contratos SideIdentification/TargetSide; POST /v1/stages/identify-sides (YouTube pela URL a 1 quadro/10 s, sem download; arquivo por 12 quadros do FFmpeg em 1280 px); analyze-video com target (prompt stage_video_side_rules.md, campo lado por lance; lance do adversário ou sem lado descartado e contado); comparação só entre lados alvo; verificação com lado_confere; vídeo que a IA não abre vira video_inaccessible.
                            • Banco b22b355: migration 0011_lado_analisado (aditiva): videos.side_reading, videos.target_side. Desvio do prompt: em videos, não em analyses, porque cada vídeo tem o seu lado (D40).
                            • Site 0178ce8: passo “Qual jogador a IA deve analisar?” / “Qual destes jogadores é você?”, corrigir siglas, leitura falha → digitar siglas, botão travado com o motivo, gameplay por link (oEmbed 401/403/404 recusa na hora), cabeçalho “Lado analisado” no relatório, links do YouTube para lances da gameplay por link.
                            • Correção 4df4bdb: o placar do EA FC 26 é empilhado (uma sigla em cima da outra), visto ao conferir os vídeos de teste; tudo passou de “esquerda/direita” para “1º/2º do placar” (contrato, prompt da leitura, tela, relatório).
                            • Docs: D40 (ARCHITECTURE.md), AI_PIPELINE.md, DATABASE.md, PRD.md (passos 3a/4a), KNOWN_LIMITATIONS.md, ESTADO.md (linhas novas), E5 em APROVACOES.md.
                          • Bloco 18: FUTsway Live v0 (treinador falando durante a partida)

                            4 itens
                            • Serviço de análise e6abd3f: POST /v1/live/window (quadros de ~20 s → Gemini rápido com prompts/live_window.md → LiveWindowAnalysis → motor de decisão por modo com o estado vindo do site → Claude redige só as dicas faladas/exibidas com prompts/live_tip.md).
                            • Site 2e1ef70, 8623f79, fecddac, f6ce57b, dc22f1f: sessão vira análise do tipo live (migration 0010_live_v0, aditiva); quadros 1/s por POST autenticado; dicas por Server-Sent Events (D39: o Next não aceita WebSocket nas rotas; POST + SSE passam pelo Caddy e reconectam sozinhos); teto por minuto LIVE_MAX_COST_PER_MINUTE_USD=0.05 (relógio do servidor) + orçamento diário (reserva atômica); tela /app/live com modo, fonte (PC/placa; YouTube "em breve"), prévia, dicas escritas e faladas (Web Speech API, voz provisória), atraso exibido; resumo no histórico (dicas com horário, o que se repetiu, custo por minuto, tokens, atraso médio); recuperação encerra sessões órfãs; sessão parada por 3 min encerra sozinha.
                            • Docs b6db341: ROADMAP renumerado, referências atualizadas (docs, telas, página de acompanhamento; PDFs v2 com nota), etiqueta curta + detalhe nos cartões de fase da página (defeito do print do dono), E4 em APROVACOES.md, D39, AI_PIPELINE.md, B10, COST_MODEL.md, ESTADO.md.
                            • Revisão de segurança automática apontou 2 problemas reais no motor (tempo do navegador podia furar o teto por minuto e encher a memória): corrigidos com teste (8623f79).
                          • Bloco 17: correções da auditoria externa nº 2

                            6 itens
                            • A01/A02 5802e05: impressão digital do arquivo (migration 0009_upload_identidade, aditiva), início do envio numa transação (beginUpload), arquivo montado conferido, temporário único por parte, chave final própria de cada envio.
                            • A05 80c07db, 81e0dce: limpeza de hora em hora (pg-boss storage.cleanup, minuto 17) e na subida; alerta de disco acima de 80 % no /api/health (o público vê só alerta: true); vigia externo falha e manda e-mail, vigia interno registra.
                            • A06 ead3d2c: analysis com cap_drop: [ALL], no-new-privileges, read_only, /tmp em memória; FFmpeg com -timelimit.
                            • A07 7fad621: docs/ESTADO.md + seção "Estado atual" na página de acompanhamento; PDFs v2 regerados apontando para o quadro; rolagem lateral no celular na seção de fases corrigida.
                            • A08 1150509: ensaios em docs/TESTING.md; testar-restauracao.sh --pacote (só a cópia externa) com conferência de login.
                            • A09/A10 2b9a273: registrados em docs/SECURITY.md.
                          • Bloco 16: correções da auditoria externa nº 1 (Bloco A)

                            0 itens
                            • Bloco 15: API da Hostinger descartada

                              4 itens
                              • Removido scripts/reiniciar-producao.ps1.
                              • .github/workflows/vigia-externo.yml: saiu o passo "Reiniciar pela API da Hostinger" (e a variável IP); o aviso por e-mail agora diz para reiniciar pelo painel.
                              • Registrado em docs/SECURITY.md (decisão e motivo; não reintroduzir sem nova decisão) e docs/DEPLOYMENT.md (linha "Reinício do servidor": manual pelo painel); incidente de 23/10 atualizado.
                              • Conferido: .secrets/hostinger-api.txt já não existia nesta máquina; gh secret list não tem HOSTINGER_API_TOKEN (nunca foi cadastrado). Busca no projeto por HOSTINGER_API, reiniciar-producao, hostinger-api, developers.hostinger: só restam as menções históricas neste log (blocos 13 e 14), mantidas como registro.
                            • Bloco 14: blindagem do sistema aplicada, sudo do deploy e Gemini pago

                              5 itens
                              • blindar-host.sh ganhou o passo do sudo (/etc/sudoers.d/<USUARIO_DEPLOY>, 0440, validado com visudo -c -f antes de instalar e visudo -c depois). Aplicado às 21:58 com docker run --rm -i --privileged --pid=host alpine:3 nsenter -t 1 -m -u -i -n -p -- bash -s.
                              • Conferência no servidor: sudo -n true → ok; visudo -c → /etc/sudoers.d/<USUARIO_DEPLOY>: parsed OK; swapon --show → /swapfile file 4G 0B; kernel.panic = 10, kernel.hung_task_panic = 1, kernel.softlockup_panic = 1, vm.swappiness = 10; RuntimeWatchdogUSec=1min, RebootWatchdogUSec=5min, softdog carregado, /dev/watchdog0; journald Storage=persistent (/var/log/journal/…).
                              • /opt/futsway/.env: cópia .env.bak-202610232201 (0600) e troca para GEMINI_MODEL=gemini-4-argon, GEMINI_MODEL_FAST=gemini-3.8-flash; reservas sem mudança (padrão gemini-3.5-flash-lite,gemini-3.8-flash). Padrões do Compose e .env.example alinhados.
                              • Preços: https://ai.google.dev/gemini-api/docs/pricing consultada em 2026-10-23 ("Last updated 2026-10-22 UTC"): gemini-4-argon US$ 2,00 / 10,00 (entrada/saída por 1 M tokens) até 30/11/2026, depois 4,00 / 20,00; gemini-3.8-flash e gemini-3.6-flash 0,75 / 3,75 até 31/12/2026, depois 1,50 / 7,50; gemini-3.5-flash-lite 0,30 / 2,50. Iguais aos já cadastrados; acrescentado o preço de cache (cache_read) em pricing.json.
                              • Docs: B11 resolvido (KNOWN_LIMITATIONS.md), D37 (ARCHITECTURE.md), SECURITY.md (sudo e por que o risco não muda: o <USUARIO_DEPLOY> já era do grupo docker), DEPLOYMENT.md, incidente (pendência do sistema resolvida).
                            • Bloco 13: diagnóstico das quedas do servidor e blindagem

                              0 itens
                              • Bloco 12: Fase 2 — a IA de verdade (encanamento real em produção)

                                5 itens
                                • Serviço de análise: GeminiProvider real (URL do YouTube em fileData, arquivo pela Files API e apagado ao fim, triagem em resolução baixa, 2ª passada densa a 5 qps limitada por orçamento, 3 tentativas com espera crescente, modelos reserva), ClaudeProvider real (pares, diagnóstico, verificação, recomendações), regras determinísticas em stages.py, costs.py + config/pricing.json (fonte e data), prompts versionados em prompts/, gravação/reprodução (Cassette), endpoints /v1/stages/*.
                                • Banco: migration aditiva 0006_resultados_ia (evidências por evento, índice de custo); custo por estágio somado (inclusive tentativas que falharam), gasto do dia por chamada (horário de Brasília), ResultsRepo.
                                • Site: worker encadeia identificação de situações → análise A → análise B → comparação → diagnóstico → verificação → recomendações → finalização; aula animada e vídeo final aparecem "não incluída nesta versão"; guarda de orçamento antes de cada estágio pago (alerta em 80 %); Cancelar e Retomar de onde parou; página de resultado (resumo honesto, pares com minuto certo no YouTube e no vídeo do jogador, pontos fortes, o que mais custa, recomendações, tudo o que a IA registrou, custo real); /api/health com os dois provedores; vídeo do usuário servido com Range só para o dono. Aviso antigo "a análise com IA ainda não está ativa" removido do assistente (busca no projeto inteiro).
                                • Problema encontrado e corrigido no caminho: na revisão de trecho recortado, o Gemini misturou na mesma resposta o relógio do trecho e o do vídeo (ex.: lance em 00:01 com o jogo começando em 00:20). Agora a 1ª passada sempre começa no início do vídeo e cada lance da revisão é conferido um a um (dentro do trecho = mantém; relativo = desloca; incoerente = descarta e anota).
                                • Docs: ARCHITECTURE.md (D37), AI_PIPELINE.md (como cada estágio chama o modelo, regras, amostragem, falhas, limites), COST_MODEL.md (preços com fonte/data, guarda de orçamento), KNOWN_LIMITATIONS.md (B1 e B9 resolvidos, B4 continua, B11 novo, limites reais da API), ROADMAP.md (Fase 2 em andamento), APROVACOES.md (E3).
                              • Bloco 11: documento de ferramentas v2 publicado

                                1 item
                                • PDF e HTML fonte de "Ferramentas, serviços e assinaturas v2" no repositório e na seção "Documentos" da página; revisões em docs/ARCHITECTURE.md (Vercel dispensada, Supabase e R2 adiados, Hetzner só como opção futura depois do upgrade da Hostinger, atendimento Crisp + WhatsApp Business → D36); B2 atualizado; histórico da página continua recolhido (título, data e quantidade de itens; detalhes em <details>).
                              • Bloco 10: FUTsway Live (coach durante a partida) entra no projeto como Fase 6

                                7 itens
                                • Contratos Pydantic novos (services/analysis/futsway_analysis/contracts/live.py): LiveWindowAnalysis (janela de 15–30 s, eventos dentro da janela, evidências existentes), LiveTip (texto até 160 caracteres, categoria, gravidade, rótulo, confiança, evidência obrigatória, momento do lance e da decisão, modo, entrega falada/exibida/pos_partida; hipótese nunca falada; simulação proibida; silencioso só pós-partida) e LiveSessionSummary. JSON Schemas exportados para packages/contracts/schemas e tipos TS gerados (LiveMode, TipSeverity, TipDelivery, CaptureSource exportados).
                                • Motor de decisão por modo (services/analysis/futsway_analysis/live/decision.py, LiveCoach): gravidade e confiança mínimas por modo, intervalo mínimo entre falas (120/60/25 s), cooldown por categoria (300/180/90 s), sem repetir a mesma dica, no máximo uma fala por janela, lance com mais de 40 s não é falado, candidata sem evidência na janela é descartada; resumo com categorias recorrentes. 14 testes novos em tests/test_live.py, com entradas simuladas marcadas como FIXTURE.
                                • Banco: migration aditiva 0005_live.sql com coach_settings, live_sessions, live_windows e live_tips (RLS forçada; políticas por usuário no Supabase); LiveRepo com userId obrigatório; 2 testes novos (isolamento entre usuários, dica sem evidência recusada).
                                • Sistema: item "FUTsway Live" no menu (/app/live): explicação em linguagem de jogador (exemplos do Wellington), aviso "Disponível na Fase 6. Hoje você já pode deixar suas preferências salvas.", atraso declarado de 10–30 s ("quase em tempo real"), captura por plataforma, custo por minuto sem valores. Formulário que salva o modo preferido, a voz e o volume em coach_settings, também em Minha conta. Sem botão de iniciar sessão.
                                • Docs: PRD.md §11 (objetivo, jornada, modos com regra objetiva, captura, limites, métricas) e público; AI_PIPELINE.md (Módulo Live); ARCHITECTURE.md (D31–D35); DATABASE.md; COST_MODEL.md (Live por minuto com fator por modo, sem valores); KNOWN_LIMITATIONS.md (B10); ROADMAP.md (Fase 6, com a observação sobre antecipar para depois da Fase 2); APROVACOES.md (E2, aguardando aprovação).
                                • Página de acompanhamento: seção "Documentos" com o PDF v2 (atual) e o v1 (histórico), copiados para dist/docs/; 6 fases; E2 com link para a seção; o Live nas listas "o que já funciona / o que ainda não funciona".
                                • Observação: a taxonomia tem 38 categorias em taxonomy.py (o pedido citava 37); D35 registra o número real.
                              • Bloco 9: o servidor Hostinger é PRODUÇÃO (sem avisos de versão provisória) e backup diário

                                7 itens
                                • Interface: removida a faixa "Ambiente provisório" (environment-banner.tsx, NEXT_PUBLIC_ENVIRONMENT no código, Dockerfile, Compose, gerar-env.sh e .env.example).
                                • Texto visível achado na busca: o plano de entrada se chamava "Gratuito / Demonstrativo" (semente da migration 0001). Migration aditiva 0004_plano_gratuito_nome renomeia para "Gratuito" (só se o nome ainda for o original); teste novo no pacote db.
                                • Renomeações: deploy/demo/ → deploy/producao/; variável DEMO_HOST → APP_HOST (também no /opt/futsway/.env do servidor, com cópia de segurança apagada depois do deploy verde); workflow "Deploy demo (Hostinger)" → "Produção (Hostinger)" (.github/workflows/producao.yml); segredos DEMO_SSH_ → PROD_SSH_ (novos criados; antigos apagados depois do primeiro deploy verde); scripts/deploy-demo.ps1 → scripts/deploy-producao.ps1; .secrets/hostinger-demo.txt → .secrets/hostinger-producao.txt; nome do servidor futsway-demo → futsway; deploy key do GitHub futsway-demo → futsway-producao (mesma chave, só leitura); job do CI demo-compose → producao-compose, que agora garante que a página não tem a faixa. Chaves locais ~/.ssh/futsway_demo* mantidas (nome histórico, registrado em docs/DEPLOYMENT.md).
                                • Página de acompanhamento: botão "Abrir o FUTsway", texto "Esta página é o acompanhamento. Para usar o sistema, abra o FUTsway."; o gerador lê "Endereço do sistema:" em docs/DEPLOYMENT.md. E1 em docs/APROVACOES.md aponta para "o sistema no ar".
                                • Backup de produção: deploy/producao/backup.sh (pg_dump -Fc + uploads.tgz + SHA256SUMS, confere o dump, guarda 7 dias em <BACKUPS_SERVIDOR>); cron diário às 03:30 instalado por atualizar.sh, que também faz backup antes de cada atualização; deploy/producao/testar-restauracao.sh (restaura num banco temporário, compara contagens, apaga o temporário); scripts/backup-producao.ps1 copia o último backup para <BACKUPS_NOTEBOOK>\ e confere as somas (até existir o R2).
                                • Docs: README.md, docs/DEPLOYMENT.md (seção Produção: regras, backup, restauração, operação), docs/ARCHITECTURE.md (D30), docs/KNOWN_LIMITATIONS.md e docs/PRD.md sem "demonstrativo".
                                • Prints antigos com a faixa (14–19-demo-*) removidos da galeria; novos sem faixa: 14-producao-inicio.png, 15-producao-cadastro-celular.png, 16-producao-assinatura-celular.png.
                              • Bloco 8: primeira versão no ar (Hostinger São Paulo) e teste ponta a ponta

                                6 itens
                                • Servidor futsway-demo (Hostinger KVM 2, São Paulo, Ubuntu 24.04.5, IP <IP_PRODUCAO>). Acesso inicial pela chave ~/.ssh/futsway_demo cadastrada pelo dono no painel (sem senha root).
                                • bootstrap.sh passou a ter duas etapas: preparo (nome futsway-demo, usuário <USUARIO_DEPLOY> só com chave, Docker 29.9.2 + Compose v5.6.1, ufw 22/80/443, fail2ban, unattended-upgrades, fuso de SP, swap 2 GB) e travar (sem senha, sem root), executada só depois de confirmar que deploy entra por chave.
                                • Deploy key só-leitura futsway-demo no GitHub; código em /opt/futsway/app; /opt/futsway/.env gerado no próprio servidor (permissão 600; segredos nunca saíram de lá).
                                • Deploy automático: chave separada para o GitHub Actions (~/.ssh/futsway_demo_actions); segredos DEMO_SSH_HOST, DEMO_SSH_USER, DEMO_SSH_KEY, DEMO_SSH_KNOWN_HOSTS gravados (impressão digital conferida com a do servidor).
                                • Correção encontrada no teste: aviso de hidratação do React (#418) na tela de processamento. O servidor (UTC no contêiner) e o navegador (Brasília) formatavam a data diferente. Criado lib/dates.ts com fuso fixo America/Sao_Paulo, usado nas 4 telas com data, mais teste.
                                • Docs: endereço da demo e mapa de servidores em docs/DEPLOYMENT.md; E1 aponta para a demo em docs/APROVACOES.md; link no README.md; botão "Abrir o FUTsway" na página de acompanhamento.
                              • Bloco 7: primeira versão online pronta para publicar (aguardando o VPS)

                                9 itens
                                • .secrets/hostinger-demo.txt ainda não existe: feito tudo que independe do servidor (conforme PROMPT_DEMO_ONLINE.md). Pasta .secrets/ confirmada no .gitignore.
                                • Web: output: "standalone" com rastreamento a partir da raiz do monorepo e as migrations SQL incluídas; faixa "Ambiente provisório" quando NEXT_PUBLIC_ENVIRONMENT=demo (embutida no build).
                                • Correção encontrada no teste: atrás de proxy, os redirecionamentos do proxy.ts (ex.: /app → /login) apontavam para o endereço interno (http://127.0.0.1:3100/...). Agora usam X-Forwarded-Host/X-Forwarded-Proto (o web só é alcançável pelo Caddy). Cookie de sessão já é secure em produção.
                                • Contêineres: apps/web/Dockerfile (Node 24, standalone, usuário node, healthcheck), services/analysis/Dockerfile (Python 3.12 slim + FFmpeg do apt, usuário sem privilégio, healthcheck), .dockerignores.
                                • deploy/demo/: docker-compose.yml (postgres:16, analysis sem porta publicada, web, caddy; volumes pgdata, storage, analysis-work; limites de memória), Caddyfile (HTTPS automático, 16 MB por requisição: o upload é em partes de 8 MB), .env.example, gerar-env.sh (segredos gerados no próprio servidor), atualizar.sh (sobe e confere /api/health), bootstrap.sh (usuário <USUARIO_DEPLOY> só com chave, Docker, ufw 22/80/443, fail2ban, unattended-upgrades, fuso de SP, swap 2 GB, SSH sem senha e sem root, deploy key só-leitura do GitHub).
                                • .github/workflows/deploy-demo.yml: após CI verde de push na main deste repositório, publica por SSH (host conferido por known_hosts, commit precisa pertencer à main). Sem os segredos DEMO_* falha com mensagem clara e não publica. scripts/deploy-demo.ps1 para publicação manual.
                                • CI ganhou o job demo-compose: monta as duas imagens e sobe postgres + analysis + web de verdade no Linux do GitHub (substitui o teste com Docker que esta máquina não tem).
                                • Página de acompanhamento: bloco "o que dá para testar / o que ainda não funciona" e botão "Abrir o FUTsway", que aparece sozinho quando docs/DEPLOYMENT.md tiver o endereço real.
                                • docs/DEPLOYMENT.md: seção do ambiente demo (mapa de servidores, primeira instalação passo a passo, publicar, logs, reiniciar, backup e restauração do pgdata e dos uploads, avisos).
                              • Bloco 6: CI no ar, correção de arquivo fora do repositório e decisões de ferramentas do dono

                                6 itens
                                • O primeiro CI no Linux revelou que apps/web/src/server/storage/index.ts nunca tinha sido versionado: a regra storage/ do .gitignore ignorava também o código-fonte. Corrigido para /storage/ (só a raiz) e o arquivo entrou no repositório. Conferido com um clone limpo: npm ci + npm run build + typecheck + testes passam.
                                • Teste test_versions_available exigia FFmpeg 8 exato (versão do Windows de dev); passou a exigir só versão detectável.
                                • CI: FFmpeg instalado por binário pronto (FedericoCarboni/setup-ffmpeg@v3) porque o apt-get update do runner travou mais de 10 min; limite de 20 min por job.
                                • FUTsway_Ferramentas_Servicos_Assinaturas.pdf (versão de 21/10 18h) movido para docs/referencias/ (tinha entrado por engano na raiz no commit 0ea4035).
                                • Decisões do documento registradas em docs/ARCHITECTURE.md (D14–D29): Gemini (AI Studio → Vertex AI), Claude Sonnet 5.5 para diagnóstico/coach, RF-DETR + ByteTrack + OpenCV (sem YOLO por licença AGPL), Roboflow, ElevenLabs v3, Remotion + Three.js, Cloudflare R2, Hetzner CCX33, Vercel Pro, Stripe + eNotas, Resend, Sentry, Better Stack, PostHog, Turnstile, 1Password. Nenhuma vira código agora.
                                • .env.example com as variáveis previstas (marcadas "ainda não usado pelo código"); docs/KNOWN_LIMITATIONS.md com fornecedores decididos em B3/B6/B8 e novo bloqueio B9 (chave da API do Claude); docs/DEPLOYMENT.md com Vercel Pro, Hetzner e R2 como alvo.
                              • Bloco 5: página de acompanhamento no Cloudflare Pages e CI

                                10 itens
                                • docs/APROVACOES.md: ciclo implementar → corrigir → testar → Wellington aprova; etapa E1 (Fundação) entra como aguardando aprovação.
                                • Gerador scripts/acompanhamento.mjs (Node puro, sem dependências): lê aprovações, roadmap, este log, bloqueios B1–B8, telas e git log; escreve apps/acompanhamento/dist/ (index.html, styles.css, logo.svg, screenshots/). Sem JavaScript no cliente. Página diz explicitamente que não é o aplicativo e que o FUTsway ainda não está online.
                                • Visual pelo design system (carvão/chumbo/branco-gelo, verde-limão só em destaques, Sora + Inter); emblema exportado como SVG estático de apps/web/src/components/brand/Emblem.tsx.
                                • Scripts npm run acompanhamento:build e npm run acompanhamento:dev (gera e serve em http://127.0.0.1:4321 com servidor HTTP mínimo embutido, sem dependência nova).
                                • Correção durante o teste: cards das fases vazavam 8 px na largura de celular (grade sem minmax(0, 1fr)); corrigido e conferido sem rolagem lateral em 390 px.
                                • Cloudflare (conta da BANMO): projeto futsway-acompanhamento criado pela API REST (success=True, futsway-acompanhamento.pages.dev); primeira publicação manual com wrangler pages deploy → 16 arquivos enviados, "Deployment complete".
                                • Segredos CLOUDFLARE_API_TOKEN (lido do arquivo, valor nunca exibido) e CLOUDFLARE_ACCOUNT_ID gravados no GitHub com gh secret set.
                                • .github/workflows/acompanhamento.yml: a cada push na main gera e publica; falha com mensagem clara se faltar segredo ou se o index.html sair vazio.
                                • .github/workflows/ci.yml: Ubuntu; Node 24 (npm ci, build, typecheck, testes, gerador) e Python 3.12 + FFmpeg (pytest, ruff, mypy).
                                • docs/DEPLOYMENT.md e README.md com o endereço, a conta, onde fica o token (só o caminho) e o comando manual.
                              • Bloco 4: correções de segurança após revisão

                                3 itens
                                • 688455c — redefinição de senha: fora de desenvolvimento nenhum token é emitido nem logado (sem provedor de e-mail, B8); o usuário recebe aviso para falar com o suporte. Em dev o link continua no console, marcado "SOMENTE DEV".
                                • 0ea4035 — upload: teto de tamanho por parte (lê content-length e recusa parte acima do limite); login: conta bloqueada ou inativa recebe a mesma resposta genérica e a senha é processada mesmo assim (não revela estado da conta pelo tempo de resposta); /api/health público responde só { ok }, detalhes só para admin logado ou com o token interno (comparação em tempo constante); erros internos da fila viram mensagens neutras para o usuário e o detalhe fica só no log do servidor.
                                • O mesmo commit 0ea4035 incluiu por engano o PDF FUTsway_Ferramentas_Servicos_Assinaturas.pdf na raiz (tratado no bloco seguinte).
                              • Bloco 3: banco, fila, contratos TS e aplicação web (Fase 1)

                                6 itens
                                • packages/db: migrations 0001_init (31 tabelas, planos sem preço), 0002_rls_supabase (RLS + políticas auth.uid() só quando o schema auth existir), 0003_rls_lockdown (RLS em todas as tabelas restantes; sem política permissiva ⇒ só o papel de serviço acessa; leitura de catálogos para autenticados). Cliente único (pg em produção; PGlite em dev, marcado), migrate idempotente, repositórios com filtro obrigatório por user_id, pg-boss sobre adaptador (funciona no PGlite).
                                • packages/contracts: tipos TS gerados dos JSON Schemas do Python (fonte única).
                                • apps/web (Next.js 16, Cache Components, Tailwind 4): design system com os 7 tokens do kit, Sora/Inter, emblema e logotipo em SVG provisório; cadastro/login/recuperação de senha (Argon2id, sessão em banco, cookie httpOnly, bloqueio após 5 falhas); proxy.ts com verificação otimista; dashboard; histórico; nova análise em 5 passos (referência por link do YouTube via oEmbed público ou arquivo; upload retomável em partes de 8 MB com verificação de tipo real por magic bytes; objetivos; contexto; revisão); página de processamento com etapas reais (polling a cada 3 s); minha conta (perfil, sessões ativas); assinatura (planos sem preço, aviso de cobrança desligada); treinos (vazio honesto); /api/health.
                                • Workers no processo do Next (instrumentation.ts): job de ingestão chama o serviço Python, grava video_metadata/video_segments, marca vídeo validated; quando as duas ingestões terminam, enfileira a análise, que para em blocked com motivo B1.
                                • Correções durante o teste: connection() antes de ler sessão (erro de pré-renderização do Next 16); PGlite cria o diretório pai; adaptador do pg-boss devolve as linhas de todas as instruções; layout de "Minha conta"; status do vídeo atualizado pelo polling; dados locais movidos para ~/.futsway/ (dentro do repositório, cada escrita do PGlite disparava o watcher do Next e a página recarregava em loop).
                                • Documento do dono FUTsway_Contas_Assinaturas_Custos.pdf (apareceu na pasta durante o bloco) movido para docs/referencias/ e resumido em docs/KNOWN_LIMITATIONS.md; nada nele contradiz a arquitetura (R2 = S3-compatível; Resend; Sentry; pagamento Stripe/MP/Asaas; preços são decisão do dono).
                              • Bloco 2: serviço Python de análise (services/analysis)

                                8 itens
                                • Contratos Pydantic v2 dos 9 estágios (contracts/): IngestionResult, VideoAnalysis, MatchingResult, Diagnosis/VerifiedDiagnosis, RecommendationSet, LessonPlan, RenderedReport, ValidationReport. Validações de integridade: fato observado exige evidência; correspondência abaixo da similaridade mínima é rejeitada; recomendação sem evidência só pode ser hipótese; cena 3D exige dados estruturados; campos desconhecidos são erro.
                                • Taxonomia própria de EA FC (taxonomy.py): 37 categorias em 4 grupos, cada uma com definição, exemplo, critério de evidência e se é observável diretamente.
                                • Módulo A real (ingestion/): ffprobe (metadados), cortes de cena (select=gt(scene,…)), trechos estáticos (freezedetect), segmentação gameplay/estático/transição, amostragem base 1 fps e densa 8 fps em CPU, orçamento de quadros. Segurança: -protocol_whitelist file, contêiner validado contra lista, -t limita decodificação ao teto, timeouts viram erro de domínio.
                                • Provedores: interface VideoAnalysisProvider; GeminiProvider bloqueia antes de qualquer chamada sem GEMINI_API_KEY (e falha explicitamente mesmo com chave: integração pendente de validação com vídeos reais); NullProvider só para testes.
                                • Matching contextual puro (matching/context.py): similaridade por zona, posse, adversários, pressão, opções, espaço, fase; cobertura reduz confiança; nunca compara pelo minuto; nunca força par.
                                • API FastAPI interna com token (/v1/health, /v1/ingest, /v1/analyze → 503 com código provider_not_configured).
                                • Base de conhecimento EA FC 27 com esquema (fonte + data obrigatórios), vazia de propósito.
                                • JSON Schemas exportados para packages/contracts/schemas (10 arquivos).
                              • Bloco 1: confirmação do ambiente e fundação do repositório

                                5 itens
                                • Confirmação do ambiente (sem re-auditar o resto):
                                • git init -b main em D:\workspace\FUTsway.
                                • Kit de marca movido de FUTsway_Kit_Imagens_Separadas/ para design/brand-kit/ (31 arquivos). Inspeção visual de 01, 02, 03, 22, 23 para vetorização do logo.
                                • .gitignore (segredos, node, python, mídia, PGlite) e .env.example documentado.
                                • Documentação obrigatória criada: README, PRD, ARCHITECTURE (decisões D1–D10 + riscos), DATABASE, AI_PIPELINE, VIDEO_RENDERING, UX_GUIDELINES, DESIGN_SYSTEM, SECURITY, TESTING, DEPLOYMENT, COST_MODEL, ROADMAP, KNOWN_LIMITATIONS (B1–B7), este log.

                              Telas atuais

                              Capturas reais do sistema rodando. Toque numa tela para ver em tamanho grande.

                              Telas anteriores à troca de nome (188): mostram a marca antiga e continuam como referência das etapas em aprovação

                              Aguardando o dono

                              O que só o dono pode providenciar e o que acontece enquanto não chega.

                              Lista atualizada em 23/10/2026.

                              ~~B1~~

                              ~~Chave do Gemini~~ resolvido em 2026-10-23 (chave em .secrets/gemini.txt, no .env local e no do servidor)

                              Para que serve: assiste aos vídeos

                              Enquanto não vem: —

                              ~~B11~~

                              ~~Ativar a cobrança da conta do Google~~ resolvido em 2026-10-23 (cobrança ativada pelo dono; produção com GEMINI_MODEL=gemini-4-argon e GEMINI_MODEL_FAST=gemini-3.8-flash, reservas mantidas)

                              Para que serve: modelo principal, fila normal e vídeos fora do treino do Google

                              Enquanto não vem: —

                              B2

                              Projeto Supabase (URL + chaves) e Cloudflare R2; adiados para quando houver volume de clientes (D21/D24 revistas em 2026-10-23)

                              Para que serve: banco e armazenamento de vídeos gerenciados na nuvem

                              Enquanto não vem: sem bloqueio hoje: a produção usa PostgreSQL e disco no próprio servidor (D30), com backup diário e cópia externa manual

                              B3

                              Conta Stripe (decidido; Asaas/Mercado Pago como plano B), que exige CNPJ e conta PJ

                              Para que serve: cobrar assinaturas

                              Enquanto não vem: assinatura só com plano gratuito; interface pronta, cobrança desligada

                              B4

                              Partidas reais: o Rotcha faz a primeira análise pelo site (link do YouTube de um pro em A, a própria gameplay em B) — etapa E3

                              Para que serve: validar se a análise funciona de verdade

                              Enquanto não vem: o encanamento está provado (vídeo público + vídeo sintético); a qualidade da análise não está validada e a Fase 2 não é declarada validada antes disso

                              B5

                              Logotipo original em SVG ou PNG alta com fundo transparente

                              Para que serve: interface e vídeo final com a marca exata

                              Enquanto não vem: usamos um SVG recriado a partir do kit, marcado como provisório

                              B6

                              Conta ElevenLabs (narração; decidido)

                              Para que serve: voz natural da ElevenLabs na aula e no Live

                              Enquanto não vem: atualizado 26/10: a aula já narra com a voz do Google (Gemini TTS, mesma conta e cobrança do Gemini); com a chave em .secrets/elevenlabs.txt → ELEVENLABS_API_KEY, a ElevenLabs passa a ser a primeira da fila sozinha (código pronto). Sem nenhuma voz paga, a Piper offline narra, marcada “voz provisória”

                              B7

                              Preços dos planos

                              Para que serve: cobrar

                              Enquanto não vem: planos sem preço até aprovação

                              B8

                              Conta Resend (e-mail; decidido)

                              Para que serve: enviar link de recuperação de senha e notificações

                              Enquanto não vem: em dev o link de redefinição aparece no console do servidor; fora de dev a redefinição fica desligada (nenhum token é gerado) até existir provedor

                              ~~B9~~

                              ~~Chave da API do Claude~~ resolvido em 2026-10-23

                              Para que serve: comparação, diagnóstico, verificação, recomendações

                              Enquanto não vem: —

                              B10

                              FUTsway Live (Fase 3): validação com partidas reais do Rotcha (E4)

                              Para que serve: coach durante a partida

                              Enquanto não vem: v0 no ar (24/10): PC ou placa de captura pelo navegador, janelas de 20 s, dicas escritas e faladas pela voz do navegador, teto de custo por minuto, resumo no histórico. Não cobre ainda: voz natural (ElevenLabs, B6), console sem placa pelo YouTube (v1), API Live do Gemini, comparação com o pro durante a partida, celular. Atraso real de 20–40 s (a janela de 20 s + a análise); qualidade das dicas não validada com partidas reais; quadros de 1 por segundo não mostram o movimento entre eles

                              Próximos passos

                              O último registro (28/10/2026) não traz próximo passo.

                              Histórico de alterações

                              1. 09e7a7428/10/2026feat(marca): site como o painel do kit (2b): menu e hero do painel, 4 cartões, celular como mobile.png, círculo de carregamento, símbolo com degradê, banner e cartões no painel interno; servidor em /opt/futsway e acompanhamento novo publicados
                              2. bf47a8028/10/2026feat(marca): FUTsway vira FUTsway — nome, identidade visual do kit, pacotes, pastas, aula com marca d'água, acompanhamento e PDFs v4 (E20)
                              3. 76f955728/10/2026docs(finalizacao): E18 em validação; bloco 33 do log (publicação manual, captura medida na produção, Anthropic sem crédito, ficha sem cenas medidas)
                              4. c7dc4e328/10/2026fix(coach): time analisado por votação em até 3 quadros (2 respostas iguais valem, mesmo sem "certeza"); achado na produção: a pergunta única deixava a aula sem lance medido
                              5. c94f44c28/10/2026feat(captura): durante a captura o player ocupa a aba (16:9, o maior que couber) para o YouTube entregar a melhor imagem; progresso e botões numa faixa fora do recorte
                              6. 9d5b20428/10/2026feat(ia): sem crédito na Anthropic, as chamadas estruturadas (roteiro da aula, chat, comparação) vão pelo Gemini com a mesma instrução e o mesmo formato
                              7. 885908c28/10/2026fix(aula): "possivelmente" tirado com qualquer pontuação (frase vazia cai no texto do lance), abertura/encerramento nunca vazios, falha inesperada do roteiro com o motivo técnico guardado para o dono
                              8. 471867128/10/2026fix(captura): não espera o play() do vídeo da captura quando há ImageCapture (às vezes não responde; a captura ficava parada em "recortando")
                              9. 1f6d65228/10/2026fix(captura): passo da captura visível (diagnóstico) e tempo-limite para o player do YouTube responder
                              10. f15704c28/10/2026fix(captura): insiste no tocar e recarrega no ponto do trecho quando o player do YouTube fica parado depois de pular (achado na produção)
                              11. d181aa828/10/2026fix(coach): pergunta do time analisado e dupla validação com folga de saída (o raciocínio do modelo cortava a resposta: MAX_TOKENS, time desconhecido, lances descartados; achado na produção)
                              12. 6fee61b28/10/2026feat(ficha): resumo do que a visão achou (projeção, time, motivos de descarte) para conferir a captura
                              13. 069c47728/10/2026fix(captura): visão longa não cai no limite de 5 min do fetch (undici com o tempo da etapa), quadros ficam até 24 h se a visão falhar (retomar sem capturar de novo), legenda automática do YouTube desligada na captura
                              14. 165d0d028/10/2026docs(finalizacao): D96/D97, publicação manual e minutos do Actions; ficha nova pelo site (só cenas medidas, campo 2D para vídeo de terceiros); validação da captura na produção
                              15. c341bbd28/10/2026fix(captura): teto de quadros e bytes à prova de lotes simultâneos, tamanho do quadro pelo cabeçalho antes de decodificar, captura apagada com a análise e limpeza das abandonadas (revisão de segurança)
                              16. 7166c2f28/10/2026feat(aula): visão por link com captura da tela (D96) e selo único por cena no lugar do "possivelmente" repetido (D97)
                              17. 8bf424e27/10/2026fix(agentes): citar conhecimento ensinado derrubava a resposta do chat (campos a mais na citação; achado na produção)
                              18. acd1e4527/10/2026ci: menos minutos do Actions (docs não rodam CI, E2E e Compose só quando muda o que testam, push novo cancela o anterior, cache do pip, vigia externo a cada 3 h)
                              19. 132122027/10/2026docs(inteligencia-central): validação na produção (ensinar por áudio, aula, chat) e o achado do chat
                              20. 7f8a8e827/10/2026chore: remove teste temporário de leitura da produção
                              21. d32904427/10/2026fix(inteligencia-central): chat do agente busca a pergunta pelo significado antes dos fundamentos do agente e usa o conhecimento validado pelo treinador (achado na produção)
                              22. 8e9e47f27/10/2026fix(ensinar-ia): exemplos do formulário sem comando duvidoso (o da base oficial é L1 + Triângulo)
                              23. be0411827/10/2026fix(inteligencia-central): resposta do "Testar" aparecia duas vezes (a de agora e a guardada); validação da aula na produção
                              24. 37dc5a127/10/2026docs(inteligencia-central): E17 aguardando validação; bloco 32 do log; estado e aprovações
                              25. 8d0cc2c27/10/2026fix(inteligencia-central): aviso de proposta aprovada/rejeitada fica no painel depois que a lista atualiza; docs do E17 e validação na produção
                              26. 16ce11b27/10/2026fix(inteligencia-central): fonte acompanhada confere o endereço real da conexão e limita os bytes antes de descompactar
                              27. 307e57527/10/2026fix(inteligencia-central): leitura das fontes acompanhadas só em endereços públicos (https, porta padrão), cada redirecionamento conferido e no máximo 3 MB
                              28. 682feaf27/10/2026feat(inteligencia-central): Ensinar IA com aprovação e versões, busca por significado, raciocínio do treinador por lance e configuração da análise por áudio (D91–D95)
                              29. 0908e6027/10/2026docs(nova-analise): E16 aguardando aprovação; bloco 31 do log com as medições da produção; estado, custos dos 5 perfis e testes
                              30. f77f6e727/10/2026fix(aula): controle virtual do MP4 abaixo da faixa do título da pausa (achado na aula por arquivo da produção)