Propósito de este documento. Responder, con datos verificables y trazables, a las observaciones del cliente sobre tiempos y plazos. No es una estimación ni una narrativa: cada afirmación está respaldada por tickets de Jira (épica
SD-227 — Learning Trading) y por commits y Pull Requests reales del repositorioswissbull-group/learntrading. Las fechas son las fechas reales de cierre de cada ticket y de cada merge. Nada en este informe está inventado; donde un dato no existe, se dice.
En 7 semanas laborales (del 19 de marzo al 7 de mayo de 2026), un equipo de 3 desarrolladores
construyó LearnTrading desde cero —proyecto vacío— hasta una plataforma de cursos con autenticación,
pagos, panel de administración, audio con IA, herramientas de trading y un sitio de marketing completo y
animado.
| Indicador | Valor real | Fuente |
|---|---|---|
| Tickets entregados (Done) | 200 (de 215 creados) | Jira SD-227 |
| Pull Requests integrados | 141 | GitHub |
| Commits | 819 | GitHub |
| Desarrolladores | 3 (un solo equipo) | GitHub / Jira |
| Días laborales que tomó | 34 días hábiles (de 50 corridos) | calculado · ver disclaimer |
| Días con actividad real | 34 de 34 — actividad en todos los días hábiles | GitHub |
| Promedio | ~24 commits/día y ~5.9 tickets cerrados/día laboral | calculado |
| Día pico | 30 abr — 55 commits, 13 tickets cerrados | GitHub / Jira |
⏱️ Duración real: 34 días laborales. El período del 19 de marzo al 7 de mayo de 2026 abarca 50 días corridos, de los cuales se descuentan 7 sábados, 7 domingos y 2 feriados nacionales de Bolivia (Viernes Santo, 3 de abril y Día del Trabajo, 1 de mayo) → quedan 34 días laborales. El dato relevante: hubo commits en los 34 días hábiles, es decir, el equipo trabajó prácticamente todos los días laborables disponibles del período, sin semanas ni días muertos dentro de la jornada hábil.
Reparto de esfuerzo: los 819 commits y los 141 PRs fueron trabajo del **equipo completo
trabajando en paralelo (no en serie). Por eso este informe agrupa todo por equipo y por área
funcional (scope) — nunca por persona**.
Conclusión anticipada: el cronograma no se dilató por baja productividad. El ritmo fue alto y sostenido durante todo el período. La plataforma dejó de avanzar el 8 de mayo no por falta de trabajo, sino porque el mismo equipo fue reasignado a otro proyecto (ver §5, *Saltos de proyecto*).
SD-227). Cada "entrega" del día = un ticket cuyo estado pasó a Done ese día
(fecha de resolución real). Se listan los SD-### como evidencia, no como métrica de ranking.
learntrading). Los commits y PRs por día corroboran que el trabajo cerrado en
Jira corresponde a código real integrado. Los PRs se integran contra la rama develop; la rama por
defecto es main.
produjo el equipo cada día y en cada área.
autenticación, landing/marketing, pagos, cursos/LMS, audio IA, herramientas de trading, infraestructura,
administración, branding y legal.
tal cual figura hoy en Jira.
Cada día es un desplegable: el título resume qué se hizo; al abrirlo se ven los tickets (evidencia trazable en Jira) y la actividad (tickets cerrados · commits · PRs). Por defecto están colapsados — hacé clic en cada día para ver el detalle. Fines de semana y feriados omitidos.
Trabajo del equipo de Diseño, en paralelo al desarrollo (comenzó el 15 de marzo, antes que el código). Datos provistos por el equipo de Diseño — no provienen de Jira
SD-227ni de GitHub.
Investigación y desarrollo de concepto · Moodboard (dirección visual) · Tipografía y paleta de color · Desarrollo de la suite de logo · Fotos de perfil y banners para redes sociales.
Concepto y desarrollo de la mascota · Presentación del personaje.
Wireframe del Home · Mockup completo del Home · Banner del hero y assets visuales del Home (íconos y video) · Feature cards del Home.
Diseño de las secciones de la página de Planes.
Diseño completo de la página de Cursos · Diseño del certificado · Banners de lecciones de los Módulos 1 y 2 · Feature cards de la página de Cursos · Set de íconos de la página de Cursos · Diseño del certificado (página de Cursos) · Setup de canales de redes sociales (Facebook, Instagram, X, TikTok) · Diseños de posts de lanzamiento.
Tickets: SD-229, SD-226, SD-230, SD-232 · 4 done · 21 commits · 4 PRs
Tickets: SD-238, SD-231, SD-234, SD-239 · 4 done · 7 commits · 2 PRs
Tickets: SD-241, SD-247, SD-248, SD-253, SD-250, SD-249, SD-240 · 7 done · 22 commits · 3 PRs
Tickets: SD-242, SD-243, SD-244, SD-254, SD-255, SD-228 · 6 done · 21 commits · 2 PRs
Tickets: SD-264, SD-271, SD-273, SD-279, SD-281, SD-283, SD-251, SD-268, SD-270, SD-274, SD-275 (y más) · 18 done · 48 commits · 2 PRs
Tickets: SD-245, SD-265, SD-266, SD-294, SD-256, SD-288, SD-284 · 11 done · 35 commits · 7 PRs
Tickets: SD-305, SD-307 · 2 done · 22 commits · 4 PRs
Tickets: SD-299, SD-304, SD-309, SD-319, SD-313, SD-314, SD-290, SD-316 · 11 done · 18 commits · 3 PRs
Tickets: SD-321, SD-322, SD-330, SD-331, SD-276, SD-324, SD-325, SD-326 · 9 done · 23 commits · 3 PRs
Tickets: SD-329, SD-362, SD-336 · 3 done · 30 commits · 4 PRs
Tickets: SD-354, SD-363, SD-366, SD-368 · 4 done · 29 commits · 2 PRs
Vie 3 – Dom 5 abr — Semana Santa (feriado en Bolivia: Viernes Santo 3 abr). Sin actividad de commits. No es un retraso: son días no laborables.
Sin tickets cerrados (Done) ese día — reanudación tras el feriado, con el trabajo en curso ya volcado en código.
En progreso (referido en los commits del día): SD-385 (mejoras de agentes IA), SD-320 (NowPayments), SD-371 (acciones IA simultáneas), SD-365 (página de quiz final).
Commits del día (17): force-dynamic + auth guard en el layout del dashboard · componente de pregunta True/False integrado al examen · página de certificado + políticas RLS de usuario · refactor de formularios (useWatch) en DcaForm/Liquidation · comandos de PR/Slack.
Actividad: 0 done · 17 commits · 4 PRs
Tickets: SD-332, SD-388, SD-365, SD-364, SD-424, SD-426, SD-387 · 7 done · 30 commits · 6 PRs
Tickets: SD-431, SD-433, SD-428, SD-429, SD-320, SD-333, SD-386, SD-427 · 9 done · 32 commits · 5 PRs
Tickets: SD-291, SD-335, SD-334, SD-430 · 4 done · 24 commits · 4 PRs
Tickets: SD-442, SD-443, SD-445, SD-446, SD-456 · 5 done · 24 commits · 4 PRs
Tickets: SD-459, SD-468, SD-469, SD-444, SD-455, SD-458, SD-460, SD-470 · 8 done · 27 commits · 7 PRs
Tickets: SD-485, SD-486, SD-487, SD-488, SD-496, SD-503, SD-494, SD-484 · 9 done · 25 commits · 5 PRs
Tickets: SD-507, SD-508, SD-509, SD-510, SD-512, SD-515, SD-504, SD-518 · 8 done · 9 commits · 2 PRs
Tickets: SD-506, SD-511, SD-528, SD-533, SD-461, SD-527, SD-513, SD-516 · 8 done · 32 commits · 5 PRs
Tickets: SD-549, SD-594, SD-581, SD-588, SD-591, SD-589, SD-546 · 7 done · 21 commits · 6 PRs
Tickets: SD-603, SD-605, SD-604, SD-610, SD-611, SD-612, SD-602, SD-607 · 8 done · 36 commits · 8 PRs
Tickets: SD-616, SD-618, SD-617, SD-613 · 4 done · 22 commits · 7 PRs
Tickets: SD-626, SD-634 · 2 done · 16 commits · 4 PRs
Tickets: SD-295, SD-653, SD-659, SD-661, SD-666, SD-655 · 6 done · 18 commits · 4 PRs
Sin tickets cerrados (Done) ese día — jornada de trabajo en curso; los cierres formales caen en los días hábiles siguientes.
En progreso (referido en los commits del día): SD-681 y SD-627 (deuda técnica de proxy y de formularios de auth), SD-664 (reglas de contraseña), SD-636 (breadcrumbs en todos los flujos), SD-685 (avatares de X/Twitter en next/image), SD-658 (página 404).
Commits del día (16): preservar cookies de Supabase en redirecciones de proxy (SD-681) · limpieza de formularios de auth (SD-627) · gate de reset de contraseña con cookie de recovery (SD-664) · breadcrumbs consistentes (SD-636) · whitelisting de pbs.twimg.com (SD-685).
Actividad: 0 done · 16 commits · 4 PRs
Tickets: SD-680 · 1 done · 16 commits · 3 PRs
Tickets: SD-703, SD-704, SD-705, SD-706, SD-710 · 5 done · 32 commits · 3 PRs
Tickets: SD-712, SD-713, SD-722, SD-723, SD-745, SD-746, SD-671 · 7 done · 18 commits · 5 PRs
Tickets: SD-751, SD-752, SD-753, SD-755, SD-756, SD-757, SD-758, SD-759, SD-760, SD-761, SD-762, SD-763, SD-764 · 13 done · 55 commits · 4 PRs
Vie 1 – Dom 3 may — feriado en Bolivia (Día del Trabajo, 1 may). Sin actividad. Días no laborables.
Tickets: SD-767, SD-783, SD-784, SD-785, SD-390, SD-391 · 6 done · 23 commits · 5 PRs
Tickets: SD-786, SD-791, SD-792, SD-793, SD-505, SD-811, SD-803 · 7 done · 21 commits · 6 PRs
Sin tickets cerrados (Done) esos días — últimos retoques e integraciones de cierre del período. El 7 de mayo es el último día con actividad en el repositorio.
En progreso (referido en los commits): SD-555 (shortcodes de contenido de lección en markdown), SD-527 (quiz embebido), SD-780 (refresh estético de tokens "destructive"), SD-819 / SD-817 / SD-839 (follow-ups post-SD-802), SD-675 (exportación de datos GDPR Art. 20).
Commits del 6 may (19): fundación del plugin de shortcodes de lección · endpoint GDPR de exportación de datos (SD-675) · refresh de tokens "destructive" con verificación APCA (SD-780) · fixes de idempotencia y de seed.
Commits del 7 may (10): panel de atajos + 6 shortcuts en lección · componentes de callout y ejercicio fill-blank para lecciones · wiring de shortcodes en el MarkdownRenderer (SD-555).
Actividad: 0 done · 6 may: 19 commits / 3 PRs · 7 may: 10 commits / 1 PR
⛔ A partir del 8 de mayo: parón total. Cero commits y cero PRs en
learntradingdesde el 8 de mayo hasta hoy (~53 días). La causa no es el equipo: es una reasignación de proyecto (ver §5).
Todo lo entregado (200 tickets Done), agrupado por área. El número es la cantidad de tickets de esa área.
| # | Área (scope) | Período activo | Qué se construyó |
|---|---|---|---|
| 1 | Landing y sitio de marketing | 20 mar – 5 may | Layouts base, todas las secciones del landing (hero, stats, why, features, how-it-works, roadmap, testimonios, precios, FAQ, CTA, footer), páginas de cursos/precios/tools, modo oscuro, responsividad y animaciones con Framer Motion |
| 2 | Cursos / LMS | 25 mar – 5 may | Persistencia de cursos, lecciones premium, quizzes y exámenes (gates, reintentos, explicaciones), certificados, XP, tracking de progreso, CRUD de cursos |
| 3 | Infraestructura y DevOps | 19 mar – 4 may | Proyecto Next.js, CI, Supabase, Vercel (prod/pre-prod), dominios, Resend, protección de ramas, migraciones, Next.js 16, manejo de errores |
| 4 | Autenticación y cuenta | 24 mar – 23 abr | Login/Signup, Google Sign-In, recuperación de contraseña, confirmación por email, perfiles, avatares, sesiones, drawer de usuario |
| 5 | Pagos y suscripciones | 25 mar – 21 abr | Stripe (test, billing, cancelaciones) y NowPayments (cripto, idempotencia), tarjetas de precio, modal de pago, flujos post-compra |
| 6 | Audio IA (ElevenLabs) | 15 – 16 abr | Integración text-to-speech: voz "Rachel", generación de .mp3, bucket de audios, AudioPlayer en lecciones y generación automática desde el admin |
| 7 | Tooling IA / DevOps (Claude Code) | 19 mar – 13 abr | Comandos y agentes de Claude, revisión de PRs, *skills*, generación de tipos — productividad interna del equipo |
| 8 | Herramientas de trading | 2 abr – 5 may | Página de herramientas, calculadora de liquidación (fórmula verificada vs Binance/Bybit), trading journal, animaciones |
| 9 | Legal y contenido | 29 abr – 5 may | Cookies, términos y condiciones (estilizado); privacidad y disclaimer pendientes (ver §6) |
| 10 | Branding y mascota | 2 – 30 abr | Tipografía y paleta de marca app-wide, personalización de mascota, video |
| 11 | Panel de administración | 26 mar – 17 abr | Cuenta Google Cloud, gestión de funciones (transversal a LMS/Audio/Pagos) |
Nota: 5 tickets transversales (loggers de debug, layout de dashboard, info de ruta, presentación de sprint) no se asignan a una sola área. La administración aparece además distribuida dentro de Cursos, Audio y Pagos (CRUD de exámenes, audio desde admin, billing).
Entregas del equipo de Diseño en el mismo período (datos provistos por el equipo de Diseño; no provienen de Jira/GitHub):
| Área | Período | Qué se entregó |
|---|---|---|
| Identidad visual y logo | 15–18 mar | Investigación y concepto, moodboard (dirección visual), tipografía y paleta de color, suite de logo, fotos de perfil y banners de redes |
| Mascota de marca | 19–22 mar | Concepto y desarrollo de la mascota, presentación del personaje |
| Diseño web — Home / 404 / Login | 23 mar – 5 abr | Wireframe y mockup completo del Home, banner del hero y assets (íconos y video), feature cards del Home |
| Diseño web — Página de Planes | 10–11 abr | Diseño de las secciones de la página de Planes |
| Diseño web — Cursos + assets y redes | 13–30 abr | Diseño completo de Cursos, certificado, banners de lecciones (Módulos 1 y 2), feature cards, set de íconos, certificado de la página de Cursos, setup de redes (Facebook, Instagram, X, TikTok), posts de lanzamiento |
Este es el dato que mejor explica los plazos. Los mismos 3 desarrolladores de LearnTrading nunca
trabajaron en exclusiva: en el período mar–jun 2026 cerraron 1.112 tickets en total, de los cuales
solo ~200 pertenecen a la épica de LearnTrading (SD-227). Los otros 913 corresponden a **otros
epics y proyectos (113 epics distintos). En otras palabras: LearnTrading fue uno de varios frentes
simultáneos** del mismo equipo, no su trabajo exclusivo.
Incluso mientras construían LearnTrading, los 3 devs cerraron 324 tickets fuera de la épica SD-227.
Hay que ser justos: **buena parte de esos 324 es trabajo de LearnTrading que vive fuera de la épica
principal (frentes paralelos del mismo producto), y otra parte es trabajo de otros productos**:
| Epic | Qué es | Tickets | Ventana | ¿Es LearnTrading? |
|---|---|---|---|---|
| SD-625 | LT Fixes | 34 | 17 abr – 6 may | Sí (LT, fuera de SD-227) |
| SD-547 | Pending LearnTrading | 17 | 22 abr – 7 may | Sí (LT) |
| SD-343 | Trading Tools (Calculadoras) | 10 | 1 abr | Sí (LT) |
| SD-392 | Sistema de exámenes con preguntas aleatorias | 9 | 7–20 abr | Sí (LT) |
| SD-676 | Cookie Banner / Gestión de consentimiento | 9 | 29 abr | Sí (LT) |
| SD-555 | Contenido de lección personalizado (remark) | 9 | 7 may | Sí (LT) |
| SD-292 | Auth en modo claro | 8 | 30 abr | Sí (LT) |
| SD-675 | Endpoint de exportación de datos (GDPR) | 8 | 6 may | Sí (LT) |
| SD-186 | Email Campaign | 11 | 19–23 mar | No — otro frente |
| SD-51 | BK website bible – V1 | 10 | 20 mar – 14 abr | No — otro producto (BK) |
| SD-28 | Infrastructure / DevOps (compartida) | 7 | 20 mar – 6 may | Transversal |
Lectura honesta: la mayor parte de la carga "extra" durante la ventana fue más LearnTrading (LT
Fixes, pendientes, exámenes, calculadoras, GDPR) — es decir, **el alcance real de LearnTrading fue todavía
mayor que los 200 tickets de la épica SD-227. A la vez, el equipo ya atendía en paralelo** el sitio
de BK (SD-51) y campañas de email/newsletter, lo que fraccionó su dedicación a LearnTrading.
A partir del 8 de mayo (el día siguiente al último commit en learntrading), el equipo cerró **422
tickets en otros proyectos — y ninguno** en LearnTrading. El salto es nítido y verificable:
| Epic | Proyecto | Tickets | Ventana | Cobertura del equipo |
|---|---|---|---|---|
| SD-821 | Campaign Marketing BK and PF | 77 | 8 may – 26 jun | Todo el equipo |
| SD-1170 | PredatorAlgo Landing | 101 | 28 may – 24 jun | Todo el equipo |
| SD-1374 | sbg-pm (brain de gestión) | 17 | 23–25 jun | Parte del equipo |
| SD-869 | Portar .claude/ a bk-monorepo | 13 | 11 may | Parte del equipo |
| SD-918 | BK lead capture form | 9 | 13 may | Parte del equipo |
| SD-906 | Utilidades para Edge Functions | 9 | 15 may | Parte del equipo |
| SD-1172 | Build PredatorAlgo V1 landing | 7 | 28 may | Parte del equipo |
La secuencia es inequívoca:
SD-821), sin pausa.
SD-1170), el mayor frente
individual del bimestre.
| Período | Tickets del equipo fuera de SD-227 |
|---|---|
| Durante la ventana LT (19 mar – 7 may) | 324 — en paralelo a LearnTrading |
| Después del 7 may (8 may – 29 jun) | 422 — reasignación a otros proyectos |
| Total mar – jun | 913 en 113 epics distintos |
El equipo mantuvo trabajo continuo fuera de LearnTrading durante todo el período mar–jun: **en ningún
momento tuvo un tramo de dedicación exclusiva** a LearnTrading.
Conclusión de la sección: LearnTrading no se detuvo por falta de capacidad ni de ritmo. Se detuvo porque el equipo fue reasignado —primero parcialmente (BK + campañas, en paralelo) y luego por completo (campaña BK/PF desde el 8 may, PredatorAlgo desde el 28 may)— a otras prioridades de la empresa. Cualquier evaluación de los plazos de LearnTrading debe considerar que estos 3 desarrolladores estuvieron compartidos entre múltiples proyectos durante todo el período.
Fuente de §5 (trazabilidad): los agregados (1.112 totales · 913 fuera de
SD-227· 113 epics · 324 durante / 422 después) provienen de Jira con la JQLassignee in (Leonardo, Alvaro, Oscar) AND resolved >= "2026-03-01" AND resolved <= "2026-06-29", contando tickets resueltos y excluyendo los de la épicaSD-227. Cifras aproximadas (extracción en vivo: 29 jun 2026).
De los 215 tickets de la épica, 15 no están Done:
To Do (10) — gates de lanzamiento, no trabajo perdido:
| Ticket | Qué es |
|---|---|
| SD-293 | Actualizar API KEYS de producción para NowPayments |
| SD-315 | Organizar variables de entorno en Vercel |
| SD-669 | Página /legal/privacy (Política de Privacidad) |
| SD-670 | Página /legal/trading-disclaimer |
| SD-672 | Recolectar datos de la entidad legal del cliente para publicar T&C |
| SD-673 | Promover /legal/terms de borrador a publicado |
| SD-454 | Migrar useCourseProgress a Server Actions |
| SD-525 | Estrategia de distribución de exámenes (modos aleatorio + ponderado) |
| SD-369 | Observaciones de arquitectura |
| SD-483 | Reemplazar examen placeholder cuando llegue el contenido real |
Bloqueado (2):
| Ticket | Qué es | Por qué |
|---|---|---|
| SD-285 | Branding en Google Cloud Console (producción) + revisión de logo | Depende de material/decisión externa |
| SD-517 | Resaltar palabras mientras suena el audio | Requiere upgrade de plan de ElevenLabs (API) |
No se hará (Won't Do, 3): SD-307, SD-390, SD-391 — decisiones de infraestructura descartadas (no son trabajo fallido).
Varios pendientes dependen del cliente (datos de la entidad legal para T&C — SD-672, contenido real de exámenes — SD-483, upgrade de plan de audio — SD-517), no del equipo de desarrollo.
Los datos de Jira y GitHub coinciden y cuentan una sola historia:
(~24 commits/día). No hubo semanas muertas dentro del período de trabajo.
proveedores, LMS con exámenes, audio con IA, panel de administración, herramientas de trading y un
sitio de marketing animado).
1–3 may), no inactividad.
incumplimiento ni por baja productividad.
contenido de exámenes, upgrade de plan de audio).
Esta sección fue generada por la IA (Claude). Es una valoración honesta e independiente —no un argumento de venta—, basada en los datos reales de Jira y GitHub y en la lectura del código del proyecto. Señala tanto las fortalezas verificables como lo que aún falta.
Veredicto: LearnTrading no es un prototipo de fachada. Es un producto con **base de ingeniería real
y de nivel cercano a producción**, sobre cimientos sólidos y verificables en el código:
(RLS), migraciones versionadas y *server actions* con manejo de errores tipado. Los datos viven en una
base real, no en mocks del frontend.
imágenes de portada y audios se crean y editan desde un panel de administración con CRUD real contra
la base de datos — no está "fakeado" desde el frontend. Un administrador opera el producto sin tocar
código.
recuperación de contraseña, confirmación por email y manejo correcto de sesiones, con roles de
creador/estudiante.
cancelaciones e idempotencia probada de punta a punta.
seguimiento de progreso.
en las lecciones.
decisiones de negocio**: páginas legales (privacidad, disclaimer, T&C — requieren los datos de la entidad
legal del cliente), claves de producción de NowPayments y orden final de variables de entorno. El
resaltado de palabras durante el audio quedó bloqueado por un upgrade de plan de ElevenLabs.
Madurez estimada: MVP esencialmente completo y de calidad de producción — claramente por encima de
un *landing* con lógica simulada. El trabajo restante es de cierre de lanzamiento, no de construcción
del núcleo: con los insumos del cliente (datos legales, claves de producción) y unas pocas decisiones, el
producto es lanzable.
_— Análisis generado por Claude (IA). Sincero e independiente; basado en datos reales de Jira/GitHub y del código del proyecto._
_Fuentes: Jira épica SD-227 (215 tickets) y GitHub swissbull-group/learntrading (141 PRs, 819 commits),
extraídos en vivo el 29 jun 2026. Informe generado por el equipo de desarrollo (área devs)._