Catálogo Consolidado de Requisitos
Nesta página
Introdução e Critérios de Classificação
Este documento consolida a totalidade dos requisitos da Extensão de Fact-Checking para YouTube, servindo como fonte única da verdade para engenharia de software, testes e auditoria de qualidade.
A priorização segue a metodologia MoSCoW, alinhada com as diretrizes do ADR-006 (Arquitetura Evidence-First) e a alocação orçamentária do projeto:
- Must Have (Obrigatório - Onda 1 / MVP): Requisitos essenciais para viabilizar a jornada do usuário no Happy Path e o estímulo indispensável ao pensamento crítico (incluindo RF-05 promovido do Pós-MVP, RF-12 a RF-15).
- Should Have (Importante - Onda 2): Recursos que agregam alto valor operacional e contextual (cache local e contexto temporal).
- Could Have (Desejável - Onda 3 / Pós-MVP): Funcionalidades de engajamento comunitário mapeadas para ciclos futuros (RF-10).
- Won't Have (Fora de Escopo): Demandas expressamente excluídas (ex.: checagem compulsória com pausa forçada de vídeo, transcrição por reconhecimento de áudio no cliente, login social obrigatório, vereditos automáticos dogmáticos ou scores numéricos de veracidade).
Requisitos Funcionais (RF)
RF-01: Acionamento da Análise
| Propriedade |
Detalhe |
| Enunciado Padronizado |
O sistema deve permitir que o usuário inicie a análise de um vídeo do YouTube por meio do acionamento da extensão. |
| Classificação MoSCoW |
Must Have (Onda 1 - MVP) | IN |
| Regras de Negócio |
O botão de acionamento deve ser renderizado exclusivamente em páginas de vídeo ativas (https://www.youtube.com/watch*); ao ser clicado pelo usuário, deve disparar a checagem fornecendo confirmação visual de carregamento em até 1 segundo. |
| Componente Responsável |
Content Script (UI injetada via Shadow DOM isolado). |
| Rastreabilidade |
Cenário 01, Cenário 03, UC-01, HU01, HU03. |
RF-02: Obtenção e Análise de Transcrição
| Propriedade |
Detalhe |
| Enunciado Padronizado |
O sistema deve obter e analisar a transcrição do conteúdo do vídeo quando legendas ou transcrições estiverem disponíveis. |
| Classificação MoSCoW |
Must Have (Onda 1 - MVP) | IN |
| Regras de Negócio |
O sistema deve capturar faixas de legendas oficiais fornecidas pelo canal ou legendas geradas automaticamente pelo YouTube, estruturando o texto com marcações temporais (timestamps) e eliminando ruídos de formatação. |
| Componente Responsável |
Content Script integrado à API interna do player do YouTube. |
| Rastreabilidade |
Cenário 02, UC-02, HU05. |
RF-03: Apresentação de Evidências em Linguagem Clara
| Propriedade |
Detalhe |
| Enunciado Padronizado |
O sistema deve apresentar as evidências relacionadas às afirmações em linguagem acessível e clara. |
| Classificação MoSCoW |
Must Have (Onda 1 - MVP) | IN |
| Regras de Negócio |
As alegações extraídas da transcrição devem ser contrapontas com evidências factuais redigidas em português simples e direto, sem termos herméticos ou jargões da web, priorizando a compreensão imediata por usuários leigos. |
| Componente Responsável |
Backend Proxy (Pipeline de IA com prompt de formatação acessível) e Painel Lateral (UI). |
| Rastreabilidade |
Cenário 03, Cenário 10, UC-01, UC-03, HU01, HU02, HU04. |
RF-04: Apresentação de Fontes e Referências Diretas
| Propriedade |
Detalhe |
| Enunciado Padronizado |
O sistema deve apresentar as fontes e referências utilizadas com links e metadados diretos, permitindo que o usuário consulte a origem e verifique as evidências de forma autônoma. |
| Classificação MoSCoW |
Must Have (Onda 1 - MVP) | IN |
| Regras de Negócio |
Cada evidência deve ser acompanhada de título do artigo/instituição, domínio de origem e hiperligação direta com abertura em nova aba (target="_blank"), assegurando que o player do vídeo e o painel permaneçam intactos. Links inacessíveis devem ser tratados nativamente pelo navegador sem quebrar a extensão. |
| Componente Responsável |
Painel Lateral (UI de Fontes) e Backend Proxy (Schema de Referências). |
| Rastreabilidade |
Cenário 04, UC-04, HU07. |
RF-05: Retorno Reflexivo e Estímulo Crítico
| Propriedade |
Detalhe |
| Enunciado Padronizado |
O sistema deve fornecer retorno reflexivo sobre o processo de investigação, estimulando ativamente a postura crítica e autônoma do usuário perante o conteúdo do vídeo. |
| Classificação MoSCoW |
Must Have (Onda 1 - MVP) | IN (Promovido de Pós-MVP via ADR-006) |
| Regras de Negócio |
O sistema formula no mínimo 3 perguntas reflexivas neutras por análise/alegação investigada (ex.: origem primária, atualidade temporal, omissões de argumentos e existência de evidências independentes) para estimular a reflexão do usuário, sem emitir juízos ideológicos ou impor conclusões pré-fabricadas. A seção "Perguntas para você" é componente indispensável do MVP. A interação é opcional e não bloqueia a navegação. |
| Componente Responsável |
Painel Lateral (Módulo Reflexivo Preact) e Backend Proxy (Gerador de Perguntas). |
| Rastreabilidade |
GQ08, GQ11, ADR-006 Decisão 7, Cenário 05, UC-05, HU11, HU15. |
RF-06: Síntese Estruturada de Resultados
| Propriedade |
Detalhe |
| Enunciado Padronizado |
O sistema deve apresentar uma síntese estruturada dos resultados da investigação, categorizando quais evidências sustentam, contradizem ou contextualizam cada alegação. |
| Classificação MoSCoW |
Must Have (Onda 1 - MVP) | IN |
| Regras de Negócio |
A interface do painel lateral deve apresentar a investigação estruturada orientada a alegações individuais, agrupando as evidências de cada afirmação em: Sustentam (supports), Contradizem (contradicts) ou Contextualizam (contextualizes). É expressamente proibida a exibição de score de veracidade (0 a 100%), velocímetro gráfico (gauge) ou qualquer índice numérico agregador, preservando o julgamento autônomo do usuário. |
| Componente Responsável |
Painel Lateral (Preact / Shadow DOM) e Backend Proxy. |
| Rastreabilidade |
GQ01, GQ02, ADR-006 Decisão 1 e 2, Cenário 03, Cenário 10, UC-01, UC-03, HU02, HU04, HU13. |
RF-07: Alerta Expresso de Incerteza Analítica
| Propriedade |
Detalhe |
| Enunciado Padronizado |
O sistema deve alertar expressamente o usuário quando houver insuficiência de dados, margem de incerteza analítica ou divergência/conflito entre as fontes consultadas. |
| Classificação MoSCoW |
Must Have (Onda 1 - MVP) | IN |
| Regras de Negócio |
Sempre que as referências apresentarem dados insuficientes ou visões divergentes consolidadas, o sistema deve exibir badge destacado de advertência no topo do painel e abster-se de declarar vencedor absoluto, expondo os dois pontos de vista de forma imparcial. |
| Componente Responsável |
Backend Proxy (Classificador de Consenso) e Painel Lateral (Badge de Alerta). |
| Rastreabilidade |
Cenário 06, UC-06, HU09. |
RF-08: Alerta de Ausência de Transcrição
| Propriedade |
Detalhe |
| Enunciado Padronizado |
O sistema deve alertar o usuário de forma clara caso o vídeo não possua legendas ou transcrições disponíveis para processamento. |
| Classificação MoSCoW |
Must Have (Onda 1 - MVP) | IN |
| Regras de Negócio |
Caso o vídeo ativo não contenha faixas de legendas nativas nem automáticas, o sistema deve interromper o fluxo localmente em até 1 segundo, notificando a impossibilidade técnica sem realizar requisições desnecessárias ao backend. |
| Componente Responsável |
Content Script (Validador Local de Legendas). |
| Rastreabilidade |
Cenário 08, UC-02, HU05, HU10. |
RF-09: Armazenamento em Cache Local
| Propriedade |
Detalhe |
| Enunciado Padronizado |
O sistema deve armazenar em cache local os resultados das análises recentes para viabilizar a recuperação imediata de checagens já realizadas. |
| Classificação MoSCoW |
Should Have (Onda 2 - Incremento 1) | IN |
| Regras de Negócio |
As análises concluídas com sucesso devem ser persistidas via chrome.storage.local com chave indexada pelo ID do vídeo (videoId) e TTL de 24 horas. Consultas repetidas dentro do prazo devem ser renderizadas instantaneamente (< 1s) sem tráfego de rede externo. |
| Componente Responsável |
Service Worker e chrome.storage.local. |
| Rastreabilidade |
Cenário 07, UC-01, HU03, HU06. |
RF-10: Avaliação de Precisão e Feedback (Pós-MVP)
| Propriedade |
Detalhe |
| Enunciado Padronizado |
O sistema deve disponibilizar opções para o usuário avaliar a relevância e a precisão das evidências e perguntas apresentadas pela IA. |
| Classificação MoSCoW |
Could Have (Onda 3 - Pós-MVP) | OUT |
| Regras de Negócio |
Disponibilização de opções discretas de feedback (positivo/negativo) ao final da análise. O envio deve ser estritamente voluntário, assíncrono e anônimo, sem coleta de dados pessoais ou histórico de navegação. |
| Componente Responsável |
Painel Lateral e Módulo de Telemetria Anônima. |
| Rastreabilidade |
Cenário 11, UC-05, HU12. |
RF-11: Contextualização Temporal e Autoria
| Propriedade |
Detalhe |
| Enunciado Padronizado |
O sistema deve apresentar a data original de publicação do vídeo e as informações do canal para contextualizar temporalmente as afirmações analisadas. |
| Classificação MoSCoW |
Should Have (Onda 2 - Incremento 1) | IN |
| Regras de Negócio |
O painel deve exibir metadados de publicação (ano de upload e canal proprietário) e o pipeline de IA deve considerar o período de produção para não classificar como anacrônica ou falsa uma afirmação que era fato comprovado na data de postagem original. |
| Componente Responsável |
Content Script (Extração de Metadados) e Backend Proxy. |
| Rastreabilidade |
Cenário 09, UC-01, UC-03, HU08. |
RF-12: Estado Explícito de Insuficiência de Evidência
| Propriedade |
Detalhe |
| Enunciado Padronizado |
O sistema deve classificar e exibir explicitamente o estado de "Sem evidência suficiente" (insufficient_evidence) quando a busca não identificar registros que corroborem ou refutem uma alegação. |
| Classificação MoSCoW |
Must Have (Onda 1 - MVP) | IN |
| Origem do Requisito |
ADR-006 Decisão 3 (GQ05). |
| Regras de Negócio |
A ausência de evidências nos corpora consultados jamais deve ser convertida automaticamente em rótulo de falsidade ou penalidade. O estado insufficient_evidence é epistemicamente distinto de contradicted/falso e deve ser exposto na seção "O que ainda não sabemos" da interface. |
| Componente Responsável |
Backend Proxy (Classificador de Evidências) e Painel Lateral (Badge de Incerteza). |
| Rastreabilidade |
GQ05, ADR-006, HU09. |
RF-13: Provenance e Rastreabilidade Completa de Evidências
| Propriedade |
Detalhe |
| Enunciado Padronizado |
O sistema deve fornecer metadados de provenance para cada evidência recuperada, assegurando a possibilidade de auditoria independente por parte do usuário. |
| Classificação MoSCoW |
Must Have (Onda 1 - MVP) | IN |
| Origem do Requisito |
ADR-006 Decisão 2 e 5 (GQ04, GQ07). |
| Regras de Negócio |
Cada registro de evidência entregue à interface deve conter obrigatoriamente: corpus/dataset de proveniência (ex.: FactChecks.br), data de indexação, título da publicação, publisher, link canônico direto e hash/identificador único do documento indexado. |
| Componente Responsável |
Backend Proxy (Pipeline RAG / Chroma) e Painel Lateral (EvidenceCard.tsx). |
| Rastreabilidade |
GQ04, GQ07, ADR-006, HU07, HU14. |
RF-14: Desacoplamento de Provedores de IA
| Propriedade |
Detalhe |
| Enunciado Padronizado |
O backend deve prover interface desacoplada para execução de tarefas de linguagem natural com suporte a múltiplos provedores intercambiáveis via configuração. |
| Classificação MoSCoW |
Must Have (Onda 1 - MVP) | IN |
| Origem do Requisito |
ADR-006 Decisão 6 (GQ03, GQ07). |
| Regras de Negócio |
O subsistema de inferência deve implementar a interface LLMProvider abstrata. A seleção entre provedor local (Ollama), remoto via API ou mock para testes deve ocorrer exclusivamente via variável de ambiente (LLM_PROVIDER). Falhas de conexão do provedor devem degradar o sistema para o modo Evidence-Only sem interrupção de serviço. |
| Componente Responsável |
Backend Proxy (app/providers/base.py). |
| Rastreabilidade |
GQ03, GQ07, ADR-006, HU16, RNF-06. |
RF-15: Proibição Estrita de Mock de IA em Produção
| Propriedade |
Detalhe |
| Enunciado Padronizado |
O sistema deve impedir a inicialização ou execução de provedores simulados (mocks) quando operando em ambiente de homologação ou produção. |
| Classificação MoSCoW |
Must Have (Onda 1 - MVP) | IN |
| Origem do Requisito |
ADR-006 Decisão 6. |
| Regras de Negócio |
Caso a aplicação identifique ENV=production ou NODE_ENV=production conjuntamente com LLM_PROVIDER=mock, o processo deve ser imediatamente abortado com exceção fatal de segurança e registro do evento no log de auditoria do sistema. Mocks só são permitidos com ativação explícita em testes unitários ou desenvolvimento local. |
| Componente Responsável |
Backend Proxy (Validador de Configuração e Startup Gate). |
| Rastreabilidade |
ADR-006, HU16, RNF-04. |
Requisitos Não Funcionais (RNF)
RNF-01 [Desempenho - Latência]
| Propriedade |
Detalhe |
| Enunciado Padronizado |
O sistema deve fornecer confirmação visual de processamento em até 1 segundo e disponibilizar o primeiro resultado útil em até 10 segundos sob condições normais de rede, exibindo indicador contínuo de progresso em chamadas assíncronas demoradas. |
| Métricas Técnicas |
Latência de feedback visual: <= 1.000 ms. Latência de primeiro resultado útil (P90): <= 10.000 ms. |
| Método de Validação |
Testes de telemetria E2E automatizados com Playwright e medição via performance.now(). |
| Rastreabilidade |
Cenário 01, 03, 07, 08, HU01, HU03, HU06, HU10. |
RNF-02 [Desempenho - Sobrecarga de Renderização]
| Propriedade |
Detalhe |
| Enunciado Padronizado |
A injeção de scripts e componentes na página ativa do YouTube não deve elevar o Tempo Total de Bloqueio (TBT) em mais de 50 ms nem alocar mais de 80 MB de memória RAM na aba do navegador. |
| Métricas Técnicas |
Incremento de Total Blocking Time: <= 50 ms. Consumo incremental de memória RAM: <= 80 MB. |
| Método de Validação |
Auditoria automatizada do Google Lighthouse em pipeline de CI e amostragem via Chrome DevTools Memory Inspector. |
| Rastreabilidade |
Cenário 01, 03, HU04. |
RNF-03 [Arquitetura e Compatibilidade]
| Propriedade |
Detalhe |
| Enunciado Padronizado |
A extensão deve ser implementada em estrita conformidade com o padrão Manifest V3 do ecossistema Chromium, utilizando Service Workers para rotinas de fundo e assegurando interoperabilidade nos navegadores Google Chrome, Microsoft Edge e Brave. |
| Escopo de Homologação |
Navegadores baseados em Chromium versão >= 110. Escopo restrito a https://www.youtube.com/watch*. |
| Método de Validação |
Testes de regressão automatizados em runners Chromium para Chrome, Edge e Brave. |
| Rastreabilidade |
Cenário 02, HU05, ADR-001. |
RNF-04 [Segurança - Gestão de Credenciais]
| Propriedade |
Detalhe |
| Enunciado Padronizado |
A extensão não deve conter chaves de API, credenciais ou segredos em seu código executável no cliente (client-side), canalizando todas as requisições a serviços externos e inferências por meio de um servidor proxy autenticado. |
| Diretrizes de Segurança |
Zero segredos em arquivos empacotados na extensão; autenticação segura por token de sessão efêmero no Backend Proxy; isolamento de renderização em Shadow DOM. |
| Método de Validação |
Secret scanning estático no CI (Gitleaks, Trufflehog) e análise de tráfego de rede no build. |
| Rastreabilidade |
Cenário 03, HU03, HU04, ADR-002. |
RNF-05 [Segurança e Privacidade (LGPD)]
| Propriedade |
Detalhe |
| Enunciado Padronizado |
A extensão deve solicitar apenas permissões estritamente essenciais no manifesto (activeTab e escopo restrito a https://www.youtube.com/*), sem coletar histórico geral de navegação, sem armazenar credenciais do usuário e sem reter dados analíticos por padrão. |
| Princípios LGPD |
Necessidade (Art. 6º, III), Finalidade (Art. 6º, I) e Segurança (Art. 6º, VII). Sem cookies de terceiros ou identificadores biométricos/persistentes. |
| Método de Validação |
Auditoria de segurança de permissões de manifesto e verificação de conformidade no Threat Model. |
| Rastreabilidade |
Cenário 04, 07, 11, HU06, HU07, HU12, Threat Model. |
RNF-06 [Resiliência e Degradação Graciosa]
| Propriedade |
Detalhe |
| Enunciado Padronizado |
Em caso de falha de conexão, indisponibilidade de APIs externas ou timeout, o sistema deve degradar com segurança, exibindo mensagem descritiva de erro ao usuário e desativando o estado de carregamento sem travar a extensão. |
| Tratamento de Exceções |
Fallback visual em falhas de rede; timeout defensivo de 10s com botão de nova tentativa; zero crashes na aba do YouTube. |
| Método de Validação |
Testes de caos com indução de indisponibilidade de rede (HTTP 500, 503, timeout 504). |
| Rastreabilidade |
Cenário 02, 03, 06, 08, HU05, HU09, HU10. |
RNF-07 [Usabilidade e Acessibilidade]
| Propriedade |
Detalhe |
| Enunciado Padronizado |
A interface deve apresentar as informações de forma hierarquizada e sem sobrecarga cognitiva para usuários leigos, atendendo aos padrões WCAG de contraste de cores, legibilidade e suporte integral à navegação via teclado. |
| Critérios de Acessibilidade |
Conformidade com WCAG 2.1 nível AA; contraste de cores >= 4,5:1; suporte integral a foco via Tab; atributos descritivos ARIA. |
| Método de Validação |
Varredura automatizada com axe-core no CI e testes manuais de navegação por teclado. |
| Rastreabilidade |
Cenário 01, 04, 06, 08, 09, 10, HU01, HU02, HU07, HU08, HU09, HU10, Design System. |
Próximo: Casos de Uso — especificações de atores e fluxos operacionais.
Ver também: Processo de Elicitação — evidências das entrevistas, análise de concorrentes, prototipagem e dinâmica dos 100 Dólares.