Trazabilidad del protocolo para el mock guiado EPPA¶
Propósito y límite¶
Este documento gobierna el mock educativo, la imagen sintética maestra y el E2E de sistema. Distingue evidencia técnica reproducible de reglas clínicas que deben ser confirmadas por Cristina. No es una validación clínica.
La transcripción autorizada del recorrido se usa para justificar el orden y las acciones del mock. No tiene marcas de tiempo; por lo tanto, las citas de este documento son citas de líneas de transcripción, no timestamps del video. No se debe convertir una cita de transcripción en una afirmación de precisión anatómica, diagnóstico o validación sobre personas.
El goal solicitó trabajar con workflow-orchestrator. Ese skill no está
instalado en este entorno; se aplica su equivalente local team-lead: fases
secuenciales, evidencia por requisito y revisiones independientes antes de
cerrar el trabajo.
Fuentes y acceso¶
| Fuente | Evidencia disponible | Uso permitido | Estado |
|---|---|---|---|
| Video de presentación MATLAB | Drive id 1zgTLiY7W-Ok2XrO7InXoW8QLCFTz2VcG; nombre Presentación Posturografía.mp4; SHA-256 2b3d6a26ab44185b0ed0b91f1b4f9dca05a9370595cff58206841cdab7d99101; duración 00:08:42.97, 1918 × 1080, H.264/30 fps. El hash coincide con docs/source-manifest.tsv. |
Secuencia visual, encuadre, mapeo de vistas, calibración y referencias. | Auditado fuera del repo; no se materializó el pointer LFS ni se copió el MP4 al proyecto. |
| Transcripción autorizada del recorrido | Archivo local externo, no LFS: /Users/luis/personal/research/investigacion-labis/med-posturography-systems-master/datos/resultados-analisis/crislabis.txt; SHA-256 afea4d0d7bf156a475cf88726b4c73a07aeae580873dd964eefa9571952dad81. |
Secuencia operativa, precondiciones, marcación, calibración, referencia, análisis y exportación. | No contiene timestamps; las referencias son líneas de transcripción. |
| Email de Cristina, 2026-07-05 | Gmail id 19f32907574aafdf, asunto probando EPPA Python... van comentarios. |
Decisiones de UX/operación listadas en la matriz de correos de este documento. | Evidencia de requisitos de producto; no es una validación clínica. |
| Follow-up de Cristina, 2026-07-11 | Gmail id 19f5294d1fe3b932. |
Control de cambios del listado C1–C15. | Sólo coordinó una reunión y no agregó correcciones; C15 es el último ítem del email completo del 2026-07-05. |
| Decisión B de calibración, confirmada el 2026-08-01 | Feedback directo de Luis después de la reunión y contraste con el video MATLAB histórico. | Fondo blanco reglado; cuadrados pequeños de 5 × 5 cm; dos cuadrados contiguos forman 10 cm; segmento horizontal a la izquierda de pantalla, junto al cuerpo y cerca de la cadera, en las cuatro vistas; recalibración por fotografía. | Decisión cerrada. Reemplaza cualquier descripción geométrica previa incompatible, incluida la propuesta lateral candidata. |
| Aprobación de correcciones de ángulos | Gmail id 19eb99f6d945b864 (2026-06-11) y confirmación de signo id 19ebd6f833483374 (2026-06-12). |
Correcciones cerradas de codo y rodilla para ambos perfiles, descritas en la matriz MATLAB. | Aprobación acotada; no habilita otras excepciones. |
| Catálogo de marcadores | src/app/data/marker-definitions.ts. |
IDs, nombres canónicos, vistas y orden técnico actual. | Confirmado para mock sintético. |
| Protocolo funcional actual | docs/testing/GUIDED-LANDMARK-TESTING.md. |
Captura sintética, revisión, procedencia, calibración y límites. | Decisión B implementada; atlas, oracle, hashes y gates regenerados y revalidados. |
| Contrato MATLAB técnico | docs/testing/TEST_CASES.md y docs/matlab-python-validation.md. |
Fórmulas, calibración y paridad raw/Python versionada. | Confirmado técnico; las convenciones clínicas se tratan por separado. |
No materializar sources/**, .tmp/** dentro del alcance versionado ni objetos
LFS. El video se descargó sólo a /tmp para la auditoría de lectura y no alteró
el pointer del repositorio. Luis autorizó el 2026-08-01 el uso local interno de
las fotos enviadas por Cristina, pero no fue necesario versionarlas para la
evidencia funcional. Ninguna imagen de paciente se copió, exportó ni versionó.
El atlas schema 2 regenerado incorpora la decisión B; sus assets WebP lossless
permanecen fuera del filtro LFS. Las fuentes privadas se citan por identificador, fecha y
requisito autorizado, nunca reproduciendo contenido personal o datos clínicos
identificatorios.
Matriz paso a paso¶
| Paso del mock | Comportamiento que debe mostrar | Evidencia verificable | Estado clínico |
|---|---|---|---|
| Alcance | Herramienta de investigación; fixture no es paciente ni validación diagnóstica. | GUIDED-LANDMARK-TESTING.md. |
Confirmado. |
| Preparación por experto | Explicar que el evaluador palpa antes de fotografiar y coloca stickers/semiesferas; el sistema no decide el punto anatómico desde la foto. | Transcripción crislabis.txt:66-75. |
Requisito de método observado; el mock no lo valida clínicamente. |
| Tamaño y fotografía | Mostrar marcadores de 1 cm; pedir flash, cámara/foto calibrada y un fondo blanco reglado cuyos cuadrados pequeños midan 5 × 5 cm. | Transcripción crislabis.txt:118-130,170; decisión B de Luis, 2026-08-01. |
Montaje confirmado; no equivale a validación clínica. |
| Elegir vista y orden | Capturar en este orden: anterior, posterior, lateral derecha, lateral izquierda. El mock debe explicar que izquierda/derecha son del paciente al nombrar landmarks. | Transcripción crislabis.txt:48-52,108-110,142-144,60; catálogo marker-definitions.ts:9-100. |
Orden operativo confirmado por la transcripción; catálogo técnico actual confirmado. |
| Seleccionar y colocar | Elegir landmark, confirmar el nombre, hacer zoom, activar cursor y clicar. Mostrar X/Y y círculo verde sólo como confirmación de captura. | Transcripción crislabis.txt:50-52,142,254; MATLAB posturografiaMARAJulio2024 (1).m:172-213. |
Confirmado como comportamiento legado; no mide precisión de palpación. |
| Corregir error | Permitir borrar la fila errónea y remarcarla; el mock debe explicar el riesgo de mezclar nombre y marcación. | Transcripción crislabis.txt:58,198-202; MATLAB posturografiaMARAJulio2024 (1).m:283-318. |
Confirmado funcionalmente. |
| Punto no visible y alternativa | Si un punto no es visible, mostrar Punto no visible y 0 cm/0° sin bloquear el resto. Usar lóbulo sólo cuando el tragus no pueda utilizarse. |
Transcripción crislabis.txt:112-116,146-148. |
Regla operativa observada; diagnóstico asociado sigue sujeto a revisión clínica. |
| Puntos de superficie | Explicar que los ápex cervical/lumbar se marcan como superficie/punto de inflexión, no como sticker previo. | Transcripción crislabis.txt:148-158. |
Confirmado como instrucción del recorrido. |
| Guardar cada vista | Guardar un snapshot/archivo canónico por vista y verificar las cuatro vistas. Un nuevo guardado de la misma vista reemplaza el anterior y lo comunica; nunca deja dos versiones ambiguas. | C9; transcripción crislabis.txt:108-110,142-144,368-392; MATLAB posturografiaMARAJulio2024 (1).m:222-238. |
Confirmado funcionalmente. |
| Cargar e importar | Para el análisis, abrir imagen e importar el archivo de la vista para machear las X/Y; no cubrir la foto con overlays innecesarios. | Transcripción crislabis.txt:202-254. |
Confirmado como flujo legado. |
| Calibración | Hacer zoom y seleccionar dos cruces exactos separados por dos cuadrados pequeños contiguos de 5 cm. El segmento de 10 cm es horizontal, se ubica a la izquierda de pantalla, junto al cuerpo y cerca de la cadera, en las cuatro vistas. Recalibrar cada fotografía y calcular FC = 10 / D12. |
Decisión B de Luis, 2026-08-01; coincidencia visual con el video MATLAB histórico; fórmula MATLAB anterior InterfazMedicionFrenteJulio2024v2 (1).m:1372-1413. |
Regla confirmada, implementada y revalidada en atlas, oracle y gates. |
| Referencia anterior y posterior | Después de calibrar, ampliar y activar la herramienta; seleccionar los dos maléolos de izquierda a derecha en la pantalla. Mostrar la horizontal y la vertical automática por el punto medio. Conservar el mismo orden en pares de superficie sensibles a x2-x1 —cóndilos, gemelos y extremos poplíteos—; no reutilizarlo para decidir la lateralidad de la calibración. |
Transcripción crislabis.txt:264-266,300-316; MATLAB anterior InterfazMedicionFrenteJulio2024v2 (1).m:348-408,1080-1113; posterior InterfazMedicionEspaldaJulio2024v2 (1).m:272-323,1343-1709. |
El legado no valida que los clicks sean maléolos: el mock/E2E debe nombrarlos y verificarlos explícitamente. |
| Referencia lateral | Mostrar que la vertical pasa por el marcador importado Borde anterior de Maléolo del perfil; pedir dos clicks para la horizontal. |
MATLAB InterfazMedicionPerfilDerechoJulio2024 (1).m:321-385 y variante izquierda equivalente. |
Semántica técnica comprobada en código; no declarar validación clínica adicional. |
| Tangentes laterales | Elegir cabeza, dorsal y sacro; clicar el punto más posterior. Para sacro, explicar que se usa el borde óseo posterior y no masa glútea. | Transcripción crislabis.txt:324-346; MATLAB perfil derecho InterfazMedicionPerfilDerechoJulio2024 (1).m:562-612. |
Confirmado como comportamiento legado. |
| Resultados y signos | Mostrar región, variable, tipo, unidad, medición y diagnóstico; presentar a dos decimales y explicar derecha positiva/izquierda negativa. | Transcripción crislabis.txt:272-282. |
Convención de presentación observada; rangos/diagnósticos clínicos requieren el oracle aprobado. |
| Exportar por vista | Descargar el CSV técnico de la vista, capturar imagen según el flujo legado y comprobar tabla, marcadores y overlays persistidos. | Transcripción crislabis.txt:290-296,318-322,364,368-392; workflow Playwright. |
Confirmado como flujo operativo; el mock no persiste datos de pacientes. |
| Excel consolidado | Descargar desde la app real un único workbook con anterior, posterior, perfil derecho y perfil izquierdo; marcar faltantes u obsoletos como Pendiente. |
C15; consolidated-analysis-export.spec.ts. |
Confirmado funcionalmente y separado del CSV educativo del mock. |
Matriz de observaciones y consumidor del mock¶
La siguiente matriz registra solamente el requisito o decisión autorizada, no
el cuerpo de correos privados. Las filas del 2026-07-05 provienen del email
19f32907574aafdf; el follow-up 19f5294d1fe3b932 se debe conservar como
evidencia de seguimiento. Ninguna fila amplía el alcance hacia validación
clínica.
| Comentario autorizado | Consumidor previsto | Criterio para mock/E2E | Estado |
|---|---|---|---|
| Logo | Entrada y encabezado del mock. | Usar identidad aprobada disponible; no sustituirla por una identidad clínica inventada. | Requisito de UX. |
| Disclaimer y decisión legal | Primera pantalla y despliegue. | Conservar el disclaimer; no ocultarlo ni convertirlo en afirmación diagnóstica. | Requisito obligatorio. |
| Planos | Explicación de vistas y resultados. | Distinguir frontal/coronal, perfiles/sagital y horizontal sólo donde el flujo lo soporte. | Requisito de contenido. |
| Layout y zoom | Captura, calibración, referencia y tangentes. | Mantener imagen legible, zoom antes de clicks de precisión y controles no superpuestos. | Requisito de UX. |
| Fondo y calibración | Preparación, mock y E2E. | Fondo blanco reglado; cuadrados pequeños de 5 × 5 cm; dos cuadrados contiguos para el segmento horizontal de 10 cm; izquierda de pantalla, junto al cuerpo y cerca de la cadera, en las cuatro vistas; recalibración por fotografía. | Decisión B confirmada, implementada y revalidada. |
| Sin números | Mock y artefacto visual. | No convertir el mock educativo en una numeración clínica no autorizada; los IDs técnicos pueden vivir en leyenda/test, separados de la interfaz explicativa. | Requisito de presentación. |
| Guardado por vista | Snapshot y archivo de marcadores. | El último guardado de una vista reemplaza el anterior y lo comunica, según C9. | Requisito funcional aprobado. |
| Reemplazo de captura | Sustitución de imagen, puntos o resultados. | Pedir confirmación, invalidar calibración, referencias, superficie y resultados dependientes; una redetección nunca pisa silenciosamente una corrección humana de la misma captura. | Requisito de seguridad de flujo. |
| Líneas finas | Calibración, referencia y análisis. | Dibujar líneas visibles pero finas, sin ocultar anatomía ni el material sintético. | Requisito visual. |
| Acceso local y banner | Ruta de demo y despliegue. | El mock sintético sin pacientes no requiere login clínico en localhost, pero exige EPPA_ENABLE_GUIDED_DEMO=1 y un EPPA_ENV test/dev/development/local; staging y producción fallan cerrados. Conservar el banner de prueba. |
Requisito de despliegue. |
| Rename | Rutas, controles y textos. | Aplicar únicamente los nombres aprobados en el inventario de UX; no usar el rename para cambiar semántica clínica. | Requisito de terminología. |
| Secciones obligatoria/opcional | Flujo guiado y resultados. | MEDICIÓN EN SUPERFICIE contiene cóndilos, gemelos y tangentes obligatorios. MEDICIÓN MANUAL A ELECCIÓN contiene el plus opcional y mantiene su título visible. |
C13; requisito de terminología y guía. |
| Persistir overlays | Recarga, análisis y exportación. | Persistir puntos, calibración, referencias y líneas de análisis que sean parte del estado guardado; invalidar los que dependan de datos reemplazados. | Requisito funcional. |
| Export por vista | Cierre técnico de una vista. | Verificar CSV y estado guardado; comparar contenido con el oracle técnico. | Requisito funcional. |
| Excel consolidado | Cierre de evaluación. | Verificar un único workbook de cuatro vistas y estados Pendiente. |
C15; requisito funcional. |
| Duda: autenticación repetida o error al medir una región | Sesión y todos los análisis regionales. | Un 401 intenta exactamente un refresh, conserva la vista solicitada y no vuelve a pedir credenciales; si refresh no deja una cookie utilizable termina en un solo re-login; ante outage muestra reintento. | Resuelto: auth-gate.spec.ts, 5/5 PASS el 2026-08-01. |
| Duda: un único Excel con las cuatro vistas | Cierre de evaluación desde inicio. | Un workbook contiene las cuatro vistas vigentes; las faltantes/stale quedan explícitamente pendientes y una sesión vacía produce cuatro filas pendientes. | Resuelto: consolidated-analysis-export.spec.ts, 3/3 PASS el 2026-08-01. |
Decisiones que no pueden inferirse¶
No hay una corrección posterior conocida al listado C1–C15: el follow-up del 2026-07-11 sólo coordinó una reunión. Si aparece un correo nuevo, se debe registrar identificador, fecha, alcance y consumidores antes de cambiar el atlas o el oracle. C11 y C15 son no-regresiones resueltas, no dudas abiertas.
La ubicación de calibración tampoco es una duda abierta: la decisión B fija el segmento a la izquierda de pantalla en las cuatro vistas, junto al cuerpo y cerca de la cadera. El video MATLAB histórico aporta trazabilidad visual coincidente, y Luis confirmó la regla explícitamente el 2026-08-01.
Antes de afirmar fidelidad clínica al video de Cristina se debe registrar una respuesta autorizada para cada decisión que la transcripción y el MATLAB no puedan resolver por sí solos:
- Orden manual clínico definitivo de los landmarks cuando difiera del catálogo técnico actual.
- Preparación física final de persona, cámara, encuadre y stickers, salvo el contrato ya resuelto de fondo cuadriculado y calibración horizontal.
- Ratificación clínica de las rectas/anclajes de posterior y ambos perfiles; el procedimiento técnico legado ya está citado en la matriz paso a paso.
- Signos, rangos y etiquetas diagnósticas.
- Cualquier corrección angular adicional a las cuatro filas ya aprobadas en 2026-06-11/12, con variable, vista, convención MATLAB original y salida EPPA esperada.
Hasta resolverlas, el mock puede enseñar el flujo sintético y debe etiquetar cualquier paso afectado como pendiente de ratificación clínica. El E2E no puede permitir excepciones implícitas: una diferencia no incluida en el manifiesto de excepciones debe fallar.
Gate de entrada para la implementación completa¶
La fase de mock puede avanzar como demostración técnica aislada. La fase de paridad integral de cuatro vistas y el cierre del goal requieren una tabla adicional, mantenida junto a este documento:
| Regla | Fuente autorizada | Resolución | Consumidor de código/test | Estado |
|---|---|---|---|---|
| Orden/criterio de marcación | Transcripción crislabis.txt:48-52,60,142-170; catálogo técnico actual |
Operativo para mock; contraste clínico de cada landmark aún pendiente. | mock + Playwright | funcional, no clínicamente validado |
| Fondo y calibración | Decisión B de Luis, 2026-08-01; video MATLAB histórico | Fondo blanco reglado, cuadrados pequeños de 5 × 5 cm y segmento horizontal de 10 cm que abarca dos cuadrados, a la izquierda de pantalla, junto al cuerpo y cerca de la cadera, en las cuatro vistas; recalibración por fotografía. | atlas + mock + Playwright + oracle MATLAB | decisión confirmada; atlas, oracle, hashes y gates regenerados y PASS técnico |
| Referencia anterior/posterior | Transcripción crislabis.txt:264-266,300-304; MATLAB anterior/posterior citado en matriz |
Horizontal de maléolos y vertical derivada implementables; ratificación clínica separada. | análisis + Playwright | funcional, no clínicamente validado |
| Referencia lateral | MATLAB de perfiles citado en matriz | Vertical por maléolo anterior importado y horizontal manual de dos clicks. | análisis + Playwright | funcional, no clínicamente validado |
| Excepciones de ángulo | Emails 19eb99f6d945b864, 19ebd6f833483374; baseline MATLAB corregido |
Sólo codo y rodilla de ambos perfiles según matriz; ninguna excepción implícita. | oracle MATLAB | aprobado y acotado |
Matriz de paridad MATLAB y excepciones acotadas¶
El baseline técnico reproducible es el MATLAB empaquetado para Cristina en el
commit fcf5a016a2ccbb3387c51ec2a56c20170c262b21, que incorpora la corrección
de 62b5e498938243891a017f569c3c58ebe93f582a. No se deben comparar los
resultados clínicos de EPPA contra el MATLAB legacy anterior y llamar a esa
diferencia una excepción genérica: el baseline corregido es el esperado. La
siguiente lista es exhaustiva solamente si se audita contra el baseline raw
anterior:
| Variable | Vista | MATLAB raw anterior | EPPA / MATLAB corregido esperado | Motivo y referencia | Estado |
|---|---|---|---|---|---|
| Ángulo de codo | Lateral derecha | Ángulo geométrico, extensión ≈ 180° | 180 - raw; extensión = 0° |
62b5e498, matlab-para-cristina/LEEME.txt |
excepción individual documentada |
| Ángulo de rodilla | Lateral derecha | Ángulo geométrico; extensión ≈ 180° | 180 - abs(raw), signo negativo para recurvatum |
62b5e498, matlab-para-cristina/LEEME.txt |
excepción individual documentada |
| Ángulo de codo | Lateral izquierda | Ángulo geométrico, extensión ≈ 180° | 180 - raw; extensión = 0° |
62b5e498, matlab-para-cristina/LEEME.txt |
excepción individual documentada |
| Ángulo de rodilla | Lateral izquierda | Ángulo geométrico; extensión ≈ 180° | 180 - abs(raw), signo negativo para recurvatum |
62b5e498, matlab-para-cristina/LEEME.txt |
excepción individual documentada |
LEEME.txt afirma que las demás mediciones no cambiaron. Esto identifica una
fuente técnica y reproducible; no habilita a declarar la convención como
validación clínica ni a agregar una quinta excepción.
| Alcance MATLAB vigente | Fuente versionada | Cobertura | Estado para este goal |
|---|---|---|---|
| Anterior | Oracle MATLAB R2026a versionado | 15 métricas soportadas | PASS 15/15 sobre el atlas B regenerado |
| Posterior | Oracle MATLAB R2026a versionado | 16 métricas, incluidos cuatro clicks poplíteos, dos midpoints y dos calcáneos | PASS 16/16 sobre el atlas B regenerado |
| Laterales | Oracle MATLAB R2026a versionado | 15 métricas por perfil, incluidas tangentes, ápex, traslaciones, codo y rodilla | PASS 15/15 por perfil con mapeo B confirmado |
| Flujo de sistema | guided-landmark-workflow.spec.ts |
61/61 métricas; nombres, unidades, signos, dos decimales, diagnósticos y exactamente 4 excepciones | PASS 4/4 sobre el stack aislado B; detector y API reales |
Por lo tanto, el E2E de sistema acepta sólo esas cuatro transformaciones desde
rawMatlab hacia la salida corregida; toda otra diferencia falla. El expected
conserva ambos valores para que el baseline legacy y la corrección aprobada sean
auditables, sin convertirlas en una tolerancia global.
Evidencia vigente posterior a la decisión B¶
La tabla siguiente registra la evidencia ejecutada después de implementar la decisión B. Acredita técnicamente la nueva grilla, el segmento a la izquierda de pantalla y la recalibración por fotografía sobre el fixture sintético. No acredita precisión anatómica ni validación clínica sobre pacientes.
| Gate | Evidencia | Resultado |
|---|---|---|
| Atlas compartido | python/test_synthetic_capture_fixture.py carga src/fixtures/guided-landmark-atlas.v1.json; verifica 64 IDs, 18 superficies, cuerpo, grilla, stages, cuatro assets WebP lossless, gate del perfil explícito y detector real en cuatro vistas. |
72 PASS; focal calibration or grid 13/13 PASS con 59 deseleccionados; Vitest atlas + calibración clínica 14/14 PASS; detector sintético 17/19/11/11; atlas SHA 57ea00d7c5f357b98e4c5532cba59669eec03ff79fd8ae497315070414fc0fc4 |
| Perfil de detector | Una llamada sin perfil conserva byte por byte los priors productivos del baseline; guided-synthetic-v2 sólo viaja con la identidad del fixture y falla cerrado fuera del gate no-productivo. |
PASS: default productivo, nombre desconocido, deny/allow por entorno, redetección, stale identity, traslación, escala y crop; thresholds sin cambios |
| Compatibilidad API lateral | Payloads point-only para cuatro regiones contra /api/lateral/... y /api/v1/lateral/..., comparados con side: right explícito. |
16/16 regional parity PASS; ocho casos omit-side preservan estructura y valores legacy |
| Oracle MATLAB real | MATLAB R2026a Update 4 genera expected y corrida externa; schema, provenance con commit base + snapshot canónico de siete inputs, proyección atlas y digest completo se validan. | 61/61 métricas, 4 excepciones exactas y 12/12 tests del validador PASS (10 negativos de adulteración + 2 positivos); expected SHA c04d37771590dfea2d3e10cd287c47a5509205da6415103de9101ccc12bb07b6 |
| Mock navegable | playwright/e2e/guided-landmark-demo.spec.ts contra build de producción aislado con EPPA_ENABLE_GUIDED_DEMO=1 y storage state vacío. |
5/5 PASS: acceso localhost sin login clínico, alcance sintético honesto, progresión por etapas, inventarios, cuatro vistas, responsive, accesibilidad y ES-only; unit test niega staging/producción |
| Flujo funcional UI + backend | guided-landmark-workflow.spec.ts con build fresco, SQLite temporal, auth test-only y detector/API reales. |
4/4 PASS y 61/61 métricas contra el oracle MATLAB; sin 5xx ni fallos de transporte |
| Dudas del último email | auth-gate.spec.ts + consolidated-analysis-export.spec.ts, inmediatamente después del flujo guiado y sin reiniciar servidores. |
8/8 PASS: 5 estados de auth/refresh y 3 contratos Excel de cuatro vistas |
| Unitarias frontend | npm run test:unit. |
42 archivos, 367 PASS |
| Calidad y build frontend | npm run typecheck, npm run lint, build de producción Next y git diff --check. |
PASS; lint con 0 errores y 8 warnings heredados; 60/60 páginas estáticas |
| Backend no-LFS | PYTHONPATH=python python3.11 -m pytest -q python -k 'not cargar_archivos_reales'. |
500 PASS, 15 skip, 4 casos .mat LFS deseleccionados deliberadamente |
| Browser final aislado posterior a B | Snapshot /tmp/eppa-screen-left-acceptance-final-20260801.K4qN5q, build gxSIiC3C50tXd62C3nqPN y stack persistente localhost:19518/18518. |
17/17 PASS en 49.2 s sin reinicio: 9 guiados + 8 auth/Excel; mismos PIDs Next 84768 y API 84762 antes/después, ambos HTTP 200; 0 respuestas 5xx, ERR_FAILED o CONNECTION_REFUSED |
| Revisiones independientes anteriores a B | /tmp/eppa-guided-final-code-rereview.md y /tmp/eppa-guided-final-verification.md. |
Evidencia histórica pre-B: code review APPROVED y completion verifier PASS técnico. Su pregunta lateral quedó resuelta después; estos informes no se presentan como una revisión independiente nueva del delta B |
| Exposición de demo/fixture | curl -L sobre inicio, /es/demo/guided-landmark-workflow y /api/testing/synthetic-capture?view=anterior. |
Inicio 200 → /es; demo 404; fixture API 404 en el smoke de sólo lectura del 2026-08-01 |
La prueba de despliegue fue sólo lectura: no autenticó, no subió imágenes y no creó sesiones de evaluación. La ruta demo permanece denegada sin el flag autorizado. La aceptación técnica vigente de esta lane es localhost; el smoke desplegado es complementario y no reemplaza el build aislado ni MATLAB nativo. Atlas, mock, expected y gates corresponden a la decisión B y están revalidados. Esta aceptación técnica sintética tampoco constituye validación clínica.