Imported from kauaamado/tradutor-libras (
AGENTS.md). Install upstream withnpx skills add kauaamado/tradutor-libras. Copyright stays with the author.
AGENTS.md — Tradutor-LIBRAS
App web estática (GitHub Pages) que traduz gestos de LIBRAS via webcam → texto.
Stack: React + TypeScript + Vite, @mediapipe/tasks-vision (WASM), TensorFlow.js, Transformers.js (WebGPU).
Specs detalhadas nos arquivos specs.md, design.md, PLAN.md.
Setup
npm install
npm run dev # http://localhost:5173/tradutor-libras/
npm run build # output: dist/
npm run lint # ESLint + TypeScript check
npm run format # Prettier
Arquitetura
src/modules/— domínio puro (capture, training, inference, nlp). Nunca importe React oucomponents/.src/components/— UI React. Consome módulos exclusivamente viasrc/hooks/.src/hooks/— ponte entre UI e domínio. Um hook por responsabilidade.src/types/— tipos e interfaces globais.@/é alias parasrc/(ex:import { HandTracker } from '@/modules/capture/handTracker').
Regras de Domínio
-
Landmarks: 21 pontos × 3 eixos (X, Y, Z) = 63 valores
numberpor mão. Valide que nenhum énullantes de alimentar o modelo. -
Webcam:
getUserMediacom cleanup obrigatório ao desmontar:stream.getTracks().forEach(t => t.stop()); video.srcObject = null; -
Modelo TF.js: Carregue uma vez na inicialização (IndexedDB:
indexeddb://sign-modeloupublic/models/). Nunca recarregue por frame. -
Dataset TF.js: Salve em IndexedDB. Entradas com 63 features (
number[]) + label (string). -
Transformers.js: Detecte WebGPU (
!!navigator.gpu) antes de carregar o LLM. Se ausente → exiba aviso + ative fallback heurístico (template SVO). Exiba progresso durante download (~500MB+). -
Logging:
console.info/console.warn/console.errorcom prefixo[NOME_DO_MODULO]. Proibidoconsole.loggenérico para status.
Workflow
- GitFlow: Branches
feat/*a partir dedev; PR paradev. Nunca PR direto paramain. - Squash and Merge: Sempre use squash and merge ao mergear PRs para manter histórico linear.
- Commits: Conventional Commits em PT-BR. Ex:
feat(captura): adiciona HandLandmarker via tasks-vision. - SDD: Uma fase por vez. Não implemente a Fase N+1 sem a N estar validada.
- Vite base: O
vite.config.tsDEVE terbase: '/tradutor-libras/'— sem isso, assets quebram no GitHub Pages.
Agentes OpenCode
Definições em .agents/. Para ativar: mkdir -p .opencode/agent && cp .agents/*.md .opencode/agent/.