Labs Live Doc
v1.1 • Marzo 2026 • NAiOS.net · Netretina.AI • Confidencial
Weekly Sprint Updates
Inicio oficial: 16 de Marzo 2026, Barcelona
Duración estimada: 10 semanas (4 fases, 3 hitos de validación)
NAiOS Labs proporciona como punto de partida una aplicación full-stack funcional (codebase base) que acelera el arranque del proyecto MVP.
Esta base incluye la arquitectura, configuración de infraestructura, patrones de desarrollo y herramientas necesarias para que el equipo pueda avanzar directamente sobre funcionalidad de producto desde el Sprint 1.
El MVP evoluciona iterativamente sobre esta base — cada sprint añade, mejora y refina funcionalidades hasta completar los 10 módulos contratados.
Hola Mònica 👋
Esta primera semana hemos arrancado oficialmente el proyecto con la Fase 1 (Cimientos). Te cuento los avances:
- ✅ Infraestructura base montada y funcionando
- ✅ Sistema de login/registro con seguridad avanzada
- ✅ Base de datos configurada con toda la estructura
- ✅ Panel de admin y usuario preparados
La próxima semana empezamos con lo más emocionante: la integración del avatar IA para las sesiones en vivo. 🚀
Cualquier duda estoy disponible. ¡Vamos muy bien!
🔧 Detalle técnico (para el equipo)
M01 — Setup & Infraestructura (24h):
- Express 5 + EJS (ejs-mate) + TailwindCSS v3
- better-sqlite3 con WAL mode, schema completo, migraciones secuenciales
- Variables de entorno (.env.local), logging con winston
- PM2 + Nginx configs preparadas
- Seed data: admin + demo student + avatars + topics + levels + 4 planes
M02 — Autenticación & Roles (28h):
- JWT access (1h) + refresh (7d) con rotación por familia
- Detección de reuso de tokens → revoca toda la familia
- bcrypt, validadores, middleware requireAuth + requireAdmin
- Pantallas login/registro, forgot/reset password, perfil de usuario
- Email verification (no-bloqueante, banner amber)
| Asignado | Módulo | Tarea | Horas | Estado |
|---|---|---|---|---|
NT DevTeam | M01 (24h) | Configuración Express + EJS + arquitectura modular | 6h | ● Hecho |
| Configuración better-sqlite3: schema, migraciones, seeds | 6h | ● Hecho | ||
| Variables de entorno, gestión de secretos, logging | 3h | ● Hecho | ||
| CI básico, scripts de deploy, Nginx + PM2 | 5h | ● Hecho | ||
| Configuración monorepo + TailwindCSS | 4h | ● Hecho | ||
NT DevTeam | M02 (28h) | API registro, login, logout con JWT + refresh tokens | 8h | ● Hecho |
| Middleware de autorización por rol (Admin/Usuario) | 4h | ● Hecho | ||
| Pantallas de login y registro (validación, UX) | 8h | ● Hecho | ||
| Recuperación de contraseña vía email | 5h | ● Hecho | ||
| Gestión de perfil de usuario | 3h | ● Hecho | ||
PV PM | Project Management (Paola Villasmil) | 4h | ● | |
| Total Sprint 1 | 56h | |||
Notas: Fase 1 (Cimientos) completada. Setup completo, auth funcional con JWT + refresh tokens + rotación por familia. Schema de BD con migraciones. Seed data con admin + student + avatars + topics + levels + plans.
Ver sprints pendientes (9)
Empezamos con el núcleo del producto: integración con la API de Simli para las sesiones de avatar IA en tiempo real.
Finalizamos Simli y empezamos el Motor de Smart Feedback: análisis de transcripción, gramática, vocabulario y fluidez.
Completamos el feedback engine. Hito 1 — Demo interna. Primera sesión completa funcional.
Fase 3 — SaaS Completo. Dashboard del alumno con estadísticas, progreso, racha diaria.
Admin panel completo y arrancamos con Stripe: checkout, suscripciones, webhooks.
Cerramos Stripe + emails. Hito 2 — Beta cerrada. SaaS funcional completo.
Fase 4 — Lanzamiento. Landing page completa: hero, pricing, testimonios, CTA, contacto.
QA y testing end-to-end. Revisión de seguridad, pruebas de carga, corrección de bugs.
| Concepto | Horas | Semanas |
|---|---|---|
| Desarrollo (M01–M10) | 316h | 10 |
| Project Management (Paola) | 40h | 10 (4h/sem) |
| Total proyecto | 356h | 10 |
Roadmap de Desarrollo
Preparado para Sra. Mònica Monforte — Marzo 2026
Equipo de Desarrollo
| Rol | Nombre | Ubicación | Responsabilidad |
|---|---|---|---|
| Main Guidance | NAiOS Labs | — | Dirección técnica, arquitectura, supervisión y estrategia de producto |
| Project Manager | Paola Villasmil | España | Coordinación, comunicación con cliente, seguimiento de hitos (40h incluidas) |
| Team Lead | Nolberto | Venezuela | Liderazgo técnico, desarrollo frontend & backend, revisión de código |
| Development Team | Equipo de desarrollo | On demand | Desarrollo full-stack, integraciones, testing |
A. Propuesta Original Contratada
El MVP se contrató como un desarrollo de 316 horas en 10 módulos, estructurado en 4 fases de entrega con hitos de validación.
| Módulo | Descripción | Horas | Sprint | Estado |
|---|---|---|---|---|
| M01 | Setup & Infraestructura Base | 24h | Sprint 1 | ● En curso |
| M02 | Autenticación & Gestión de Roles | 28h | Sprint 1 | ● En curso |
| M03 | Integración Simli API — Avatar Tiempo Real | 52h | Sprint 2–3 | ○ Planeado |
| M04 | Motor de Smart Feedback & Progreso | 36h | Sprint 3–4 | ○ Planeado |
| M05 | Dashboard de Usuario | 32h | Sprint 5 | ○ Planeado |
| M06 | Panel de Administración | 36h | Sprint 5–6 | ○ Planeado |
| M07 | Integración Stripe — Pagos | 32h | Sprint 6–7 | ○ Planeado |
| M08 | Sistema de Email y Notificaciones | 20h | Sprint 7 | ○ Planeado |
| M09 | Landing Page | 28h | Sprint 8 | ○ Planeado |
| M10 | QA, Testing & Despliegue Final | 28h | Sprint 9–10 | ○ Planeado |
| Total estimado | 316h | |||
● En curso — Sprint activo, en desarrollo esta semana.
○ Planeado — Programado según calendario oficial del roadmap.
👉 Click en cualquier módulo para ver detalle y fechas.
Roadmap de entrega (10 semanas)
Fase 1 — Cimientos (Sem 1-2)
M01 Setup & Infraestructura
M02 Auth & Roles
Esquema de BD completo + entorno dev/staging
Fase 2 — Núcleo (Sem 3-5)
M03 Simli Avatar IA
M04 Smart Feedback
✓ Hito 1 — Demo interna
Fase 3 — SaaS Completo (Sem 6-8)
M05 Dashboard · M06 Admin
M07 Stripe · M08 Emails
✓ Hito 2 — Beta cerrada
Fase 4 — Lanzamiento (Sem 9-10)
M09 Landing Page
M10 QA & Deploy
✓ Hito 3 — MVP Entregado
Gestión del proyecto
- Project Management: 40 horas incluidas — Perfil: Paola Villasmil (PM)
- Frontend & Backend: Nolberto (Team Lead) + equipo de desarrollo
- Main Guidance: NAiOS Labs — dirección técnica, arquitectura y supervisión
Condiciones acordadas
- Forma de pago: 40% inicio · 30% Hito 2 (Beta) · 30% Hito 3 (MVP live)
- Propiedad intelectual: 100% del código pasa a propiedad del cliente al abonar el total
- Garantía post-entrega: 30 días de soporte correctivo sin coste adicional
- Cambios de alcance: Funcionalidades fuera de propuesta valoradas por separado con aprobación escrita
B. Mini Demo (incluido en M09)
Feature adicional integrada en la landing page: demo gratuita de 2 minutos sin registro. Selección de avatar, sesión en vivo, transcripción, análisis y score CEFR. Datos guardados como leads para el admin.
C. Evolución v1.1 — Fuera de alcance original
Equipo Asignado
| Rol | Nombre | Ubicación | Responsabilidad |
|---|---|---|---|
| Project Manager | Paola Villasmil | España | Coordinación del proyecto, comunicación con el cliente, seguimiento de hitos y entregables |
| Team Lead | Nolberto | Venezuela | Liderazgo técnico, arquitectura de software, revisión de código, decisiones de stack |
| Frontend & Backend Developer | Netretina | On demand | Desarrollo full-stack, integraciones, testing, despliegue |
NAiOS Labs — Dirección técnica y desarrollo de producto.
Contacto: info@netretina.ai
Resumen Ejecutivo
Next-Gen Tutor es una plataforma SaaS de inmersión en inglés profesional mediante avatares de IA en tiempo real. Diseñada para ejecutivos y profesionales B1+, permite practicar conversaciones de negocio 24/7.
Flujo principal
- El alumno elige un avatar IA, un tema de negocio y su nivel CEFR
- Practica en una sesión de vídeo en tiempo real (15-60 min según plan)
- Recibe un informe inteligente con puntuación, correcciones y áreas de mejora
- Sigue su progreso a lo largo del tiempo
Audiencia
- Profesionales internacionales en empresas en expansión
- Directivos B2B que necesitan soltura oral
- Escuelas de negocios y docentes autónomos
Arquitectura Técnica
| Capa | Tecnología | Justificación |
|---|---|---|
| Server + Views | Node.js + Express 5 + EJS (SSR) | Renderizado rápido, sin SPA overhead |
| Estilos | TailwindCSS v3 + CSS variables | Utilidades + tokens de marca |
| Base de Datos | better-sqlite3 (WAL mode) | Embebida, ACID, ultra-rápida |
| Auth | JWT + bcrypt + refresh tokens | Rotación por familia, httpOnly cookies |
| Avatar IA | Simli E2E + LiveKit compose | Dos modos: gestionado o custom pipeline |
| LLM / TTS | GPT-4o / ElevenLabs / AIML | Conversación + voz natural |
| Pagos | Stripe Billing + Webhooks | Suscripciones, portal self-service |
| Nodemailer + SMTP | Plantillas branded, scheduler | |
| Seguridad | Helmet, CSRF, AES-256-GCM | 14 vulnerabilidades auditadas |
Pipeline de middleware
Diagrama de Flujo — Sesión de Práctica (Swimlane)
sequenceDiagram
participant A as 👤 Alumno
participant F as 🖥️ Frontend (Browser)
participant B as ⚙️ Backend (Express)
participant DB as 🗄️ Base de Datos
participant S as 🎭 Simli API
participant ST as 💳 Stripe
Note over A,ST: 🔐 Registro & Autenticación
A->>F: Registro / Login
F->>B: POST /register o /login
B->>DB: Crear usuario / Verificar credenciales
B-->>F: JWT access + refresh token (cookies)
B->>B: 📧 Email de verificación
Note over A,ST: 💳 Suscripción
A->>F: Seleccionar plan
F->>B: POST /checkout
B->>ST: Crear Checkout Session
ST-->>F: Redirect a Stripe Checkout
A->>ST: Pagar
ST->>B: Webhook: checkout.session.completed
B->>DB: Crear suscripción activa
Note over A,ST: 🎭 Sesión de Práctica
A->>F: Elegir avatar + tema + nivel
F->>B: POST /session/create
B->>DB: Verificar límite mensual + concurrencia
B->>DB: Crear sesión (status: pending)
F->>B: POST /api/simli/start
B->>S: POST /startE2ESession
S-->>B: { roomUrl, sessionId }
B-->>F: roomUrl (Daily.co)
F->>F: Cargar iframe Daily.co
A->>S: Conversación en tiempo real (WebRTC)
Note over A,ST: ⏱️ Fin de Sesión
A->>F: Click "End Session" o timer expira
F->>B: POST /session/:id/end
B->>S: GET /transcript/:sessionId
S-->>B: Transcripción JSON
B->>B: 🧠 generateFeedback(transcript)
B->>DB: Guardar feedback + score
B-->>F: redirect /session/:id/feedback
Note over A,ST: 📊 Feedback & Progreso
A->>F: Ver informe de sesión
F->>B: GET /session/:id/feedback
B->>DB: Leer feedback JSON
B-->>F: Score, sub-scores, correcciones
A->>F: Ver progreso histórico
F->>B: GET /progress
B->>DB: Agregar stats de todas las sesiones
B-->>F: Tendencias, promedios, errores
Diagrama de Flujo — Administración (Swimlane)
sequenceDiagram
participant AD as 👑 Admin
participant F as 🖥️ Frontend
participant B as ⚙️ Backend
participant DB as 🗄️ Base de Datos
participant ST as 💳 Stripe
participant SM as 📧 SMTP
Note over AD,SM: ⚙️ Configuración
AD->>F: Admin Settings
F->>B: POST /admin/settings/*
B->>DB: Guardar config (API keys encriptadas AES-256-GCM)
AD->>F: Test Connection
F->>B: POST /admin/settings/*/test
B-->>F: { success, message }
Note over AD,SM: 🎭 Gestión de Contenido
AD->>F: Crear/editar avatar
F->>B: POST /admin/content/avatars/create
B->>DB: INSERT avatar (face_id, voice, prompt)
AD->>F: Crear/editar plan
F->>B: POST /admin/plans/:id/edit
B->>ST: stripe.prices.create (auto-sync)
ST-->>B: { priceId }
B->>DB: UPDATE plan (stripe_price_id)
Note over AD,SM: 📊 Monitorización
AD->>F: Dashboard admin
F->>B: GET /admin
B->>DB: KPIs, charts data, recent sessions
B-->>F: Render dashboard con 4 charts
Note over AD,SM: 📧 Comunicaciones
AD->>F: Enviar newsletter
F->>B: POST /admin/newsletters/:id/send
B->>DB: Obtener usuarios opt-in
B->>SM: Enviar emails (Nodemailer)
SM-->>B: { accepted, rejected }
AD->>F: Gestionar contactos/demos
F->>B: GET /admin/contacts
B->>DB: Listar mensajes con status
Guía del Alumno
Landing Page
Página pública con hero animado (mesh geométrico interactivo + órbita de avatares + typewriter), secciones How It Works, Demo gratuita, Features, Pricing, Testimonials y CTA.
Registro e Inicio de Sesión
Registro con validación (min 8 chars, complejidad). Email de verificación configurable como bloqueante. Login con "Remember me" y recuperación de contraseña.
Dashboard
4 stat cards (sesiones, avg score, tiempo, racha), última sesión, quick actions y tabla recientes.
Sesiones de Práctica
Selección de avatar + topic + level con cards. Sesión en vivo con Daily.co o LiveKit. Timer per-plan. Máx 1 sesión simultánea.
Feedback, Historial y Progreso
Post-sesión: score circle, 4 sub-scores, fortalezas, mejoras, correcciones. Historial paginado con filtros. Progress tracking (Basic+).
Perfil, Billing y Contacto
Guía del Administrador
Dashboard
6 KPIs + 4 mini-charts (Sessions, Users, Score, MRR por día) + top topics + sesiones recientes + blog/newsletter/ticket stats.
Gestión de Usuarios
Vista dual lista + cards con profile image. CRUD completo. Protección: admin no puede desactivarse a sí mismo.
Contenido (Avatars, Topics, Levels)
Avatares con vista lista + cards (thumbnails circulares). Topics CRUD. Levels edit. Test playground por avatar.
Planes
CRUD con auto-sync de Stripe Price al cambiar precio.
Blog CMS
Posts Markdown + preview, categorías, tags, featured images. Vista lista + cards.
Contactos y Demo Requests
Mensajes de contacto + solicitudes de demo. Status tracking, notas admin, reply by email.
Settings
7 tabs: General, Simli, AI Tutor, AIML, Stripe, Email, LiveKit. API keys encriptadas. Test connection en cada integración.
Legal Pages & Status
Planes y Facturación
| Plan | Precio | Sesiones | Duración | Feedback | Progress |
|---|---|---|---|---|---|
| Free Trial | $0 | 3/mes | 15 min | Básico | × |
| Basic | $29.99/mes | 10/mes | 30 min | Completo | ✓ |
| Pro | $59.99/mes | Ilimitadas | 30 min | Completo | ✓ |
| Enterprise | $199.99/mes | Ilimitadas | 60 min | Completo | ✓ |
Enforcement
- Límite mensual contado por mes calendario
- Duración leída de
plan.minutes_per_session - Concurrencia máx 1 sesión activa (auto-expire stale)
- Feedback Free = score + top 3. Paid = completo
Flujo Stripe
Admin cambia precio → auto-crea Stripe Price → desactiva el anterior. Checkout Session para nuevos subs. Webhooks para sincronizar estados. Customer Portal para self-service.
Motor de Smart Feedback
Gramática (30%)
~20 reglas regex: concordancia, tiempos, artículos
Vocabulario (25%)
Diversidad léxica, vocabulario profesional
Fluidez (25%)
Longitud de oración, fillers, coherencia
Engagement (20%)
Turnos, preguntas, variación, flujo
Sistema de Email
- Nodemailer + SMTP (credentials encriptadas)
- Two-pass EJS render (inner → base wrapper)
- 7 templates personalizables desde admin + preview modal
- Scheduler 24h para practice reminders
Seguridad
| Medida | Detalle |
|---|---|
| Auth | JWT (1h) + refresh (7d) + rotación familiar + reuse detection |
| Passwords | bcrypt 10 rounds, 8+ chars + complejidad |
| CSRF | csrf-sync en 68 formularios |
| XSS | EJS auto-escape + sanitize-html |
| Encriptación | AES-256-GCM (backward-compat CBC) |
| Headers | Helmet CSP, HSTS 1yr, CORS restringido |
| Rate Limiting | Login 20/15m, forgot 5/15m, API 100/15m |
| Producción | Throw si faltan secrets críticos |
Integraciones Externas
Simli
Avatar IA. E2E: Daily.co iframe. Compose: LiveKit + face token.
Stripe
Checkout, subs, webhooks, portal. Auto-sync Price on change.
OpenAI / AIML
GPT-4o conversación, AIML TTS + image gen (Gemini).
LiveKit
WebRTC rooms, tokens, audio routing para compose mode.
Base de Datos
Actualmente usa SQLite (better-sqlite3) con WAL mode y 22 migraciones secuenciales. Es la opción ideal para MVP: zero-config, embebida, transacciones ACID, lectura ultra-rápida.
La arquitectura usa prepared statements en todas las queries, lo que hace la migración a cualquier base de datos relacional directa, sin reescribir lógica de negocio.
Tablas principales
| Tabla | Propósito |
|---|---|
| users | Cuentas, roles, profile_image, stripe_customer_id |
| sessions | Prácticas: avatar, topic, level, transcript, feedback, score |
| plans / subscriptions | Planes con límites + suscripciones activas |
| avatars / topics / levels | Contenido de la plataforma |
| settings | Key-value con flag encrypted |
| support_tickets | Soporte con comentarios y adjuntos |
| blog_posts | CMS de blog (markdown, HTML, SEO) |
| certificates | Certificados (request, assessment, PDF) |
| contact_messages | Contacto + demo requests |
| legal_pages | Páginas legales dinámicas |
Escalabilidad — Migración a otras bases de datos
Cuando el volumen lo requiera (~500+ usuarios concurrentes), la plataforma puede migrar a cualquiera de estas opciones sin reescribir el código:
| Base de Datos | Tipo | Ideal para | Proveedor |
|---|---|---|---|
| PostgreSQL | Relacional | Migración directa, máxima compatibilidad con el schema actual. Estándar de la industria. | postgresql.org |
| Supabase | PostgreSQL managed + Auth + Realtime | Backend-as-a-Service. PostgreSQL con dashboard, auth integrada y API REST automática. Ideal para escalar rápido. | supabase.com |
| PlanetScale | MySQL serverless | Branching de schemas (como Git para BD), auto-scaling, zero-downtime migrations. | planetscale.com |
| Neon | PostgreSQL serverless | PostgreSQL con auto-suspend (ahorro de costes), branching, scale-to-zero. Pay-per-query. | neon.tech |
| Turso | SQLite distribuido (libSQL) | Misma API que SQLite pero distribuido en edge. Migración mínima, latencia ultra-baja global. | turso.tech |
Despliegue
| Comando | Acción |
|---|---|
npm run db:init | Schema + migraciones + seed |
npm run build | CSS minificado + JS bundles |
npm start | Producción |
npm run dev | Desarrollo (nodemon + watch) |
npm run docs | Generar screenshots |
Variables de entorno obligatorias (producción)
JWT_SECRET,SESSION_SECRET,ENCRYPTION_KEY— el server no arranca sin ellasAPP_URL— para emails y redirectsNODE_ENV=production
Configuración Inicial (Checklist)
- Clonar repo +
npm install - Crear
.env.localcon secrets npm run db:initnpm run buildnpm start- Login:
admin@nextgentutor.ai/admin123 - Admin → Settings: configurar Simli, Stripe, SMTP
- Admin → Content: crear avatares, topics, levels
- Admin → Plans: ajustar precios
- Admin → Status: verificar conexiones
- Configurar dominio + HTTPS (Nginx + Let's Encrypt)
- Cambiar passwords de cuentas seed
APIs y Servicios Externos
La plataforma depende de los siguientes servicios externos para funcionar. Las API keys se configuran desde el panel admin en Settings y se almacenan encriptadas (AES-256-GCM) en la base de datos.
| Servicio | Uso | Requerido | Proveedor |
|---|---|---|---|
| Simli | Avatar IA en tiempo real. Gestiona LLM + TTS + rendering del avatar con lip-sync. Devuelve una sala Daily.co para video. | Sí | simli.com |
| AIML API | LLM (GPT-4o) para conversación en modo compose. TTS (Aura voices). Transcripción de audio (Whisper). Generación de imágenes (Gemini). Análisis CEFR para demos. | Sí | aimlapi.com |
| Stripe | Pagos y suscripciones. Checkout Sessions, webhooks (pago exitoso/fallido/cancelación), Customer Portal, auto-creación de Prices. | Sí | stripe.com |
| Daily.co | Salas de videoconferencia WebRTC para el modo E2E. No se usa directamente — Simli devuelve la URL de la sala. | Sí* | daily.co |
| LiveKit | Infraestructura WebRTC para el modo compose. Creación de rooms, tokens de participante, routing de audio. | Opcional | livekit.io |
| SMTP (Email) | Envío de emails transaccionales: verificación, password reset, suscripciones, reminders, newsletters. Compatible con cualquier proveedor SMTP. | Opcional | Cualquier SMTP (SendGrid, AWS SES, Gmail, etc.) |
* Daily.co es requerido indirectamente cuando se usa el modo E2E de Simli (modo por defecto). No necesita cuenta propia — Simli gestiona las salas.
Los servicios opcionales (LiveKit, SMTP) degradan funcionalidad cuando no están configurados: sin LiveKit se usa el modo E2E; sin SMTP los emails se logean en consola.
Configuración de API Keys
Todas las claves se configuran desde /admin/settings en sus tabs respectivos. El sistema encripta las claves sensibles con AES-256-GCM antes de guardarlas en la base de datos. Cada tab tiene un botón "Test Connection" para verificar la conectividad.
| Setting Key | Tab en Admin | Encriptada |
|---|---|---|
simli_api_key | Simli | Sí |
aiml_api_key | AIML | Sí |
stripe_secret_key | Billing | Sí |
stripe_webhook_secret | Billing | Sí |
smtp_host / smtp_port / smtp_user | No | |
smtp_pass | Sí | |
livekit_url / livekit_api_key / livekit_api_secret | LiveKit | Sí |
Hosting e Infraestructura
La plataforma está diseñada para ejecutarse en cualquier servidor Linux con Node.js. La configuración inicial usa un VPS de Contabo, pero la arquitectura es portable a cualquier proveedor cloud.
| Proveedor | Tipo | Estado | Notas |
|---|---|---|---|
| Contabo VPS | VPS dedicado | Inicial | PM2 + Nginx + Let's Encrypt. Bajo coste, control total. Ideal para MVP y primeros usuarios. |
| Railway | PaaS | Compatible | Deploy desde Git. Auto-scaling. Sin configuración de servidor. Ideal para staging. |
| AWS | Cloud (EC2 / ECS / Lambda) | Escalable | EC2 para VPS-like, ECS para containers, RDS si se migra a PostgreSQL. Enterprise-grade. |
| Google Cloud | Cloud (GCE / Cloud Run) | Escalable | Cloud Run para containers serverless. Integración nativa con Gemini/AI APIs. |
| Vercel | Edge / Serverless | Futuro | Requiere migrar a Next.js. Ideal si el frontend evoluciona a React SSR. |
| Docker | Containerización | Preparado | La app es stateless (BD en archivo). Dockerfile trivial. Portabilidad total entre clouds. |
NAiOS.net · Netretina.AI — Ref: NGT-2026-001
Confidencial