# 🔍 AUDITORÍA TÉCNICA - LIMPIEZA DE ARCHIVOS MARKDOWN ## Proyecto Sanitario Crítico PWA TES **Fecha:** 2025-01-05 **Auditor:** Sistema de Auditoría Técnica Senior **Objetivo:** Análisis previo a limpieza controlada - SIN MODIFICACIONES **Estado:** ✅ ANÁLISIS COMPLETO - LISTO PARA DECISIONES --- ## ⚠️ METODOLOGÍA Este informe es **SOLO DE ANÁLISIS**. No se ha modificado, movido, renombrado ni borrado ningún archivo. --- ## 1️⃣ VERIFICACIÓN DESDE EL CÓDIGO ### 1.1 Componentes que Cargan Archivos Markdown #### Componente Principal: `MarkdownViewer` **Ubicación:** `src/components/content/MarkdownViewer.tsx` **Mecanismo de carga:** - Usa `fetch()` para cargar archivos dinámicamente - Las rutas se normalizan para empezar con `/` - Carga desde `public/` (Vite solo sirve desde `public/`) **Código relevante:** ```typescript // Línea 54-61 const normalizedPath = filePath.startsWith('/') ? filePath : `/${filePath}`; fetch(normalizedPath) .then((res) => { if (!res.ok) { throw new Error(`Error ${res.status}: ${res.statusText}`); } return res.text(); }) ``` **Rutas que carga:** - ✅ `/manual/BLOQUE_X/archivo.md` → `public/manual/BLOQUE_X/archivo.md` - ✅ `/docs/consolidado/SECCION_XX_*.md` → `public/docs/consolidado/SECCION_XX_*.md` --- #### Componente Específico: `GuideMarkdownViewer` **Ubicación:** `src/components/guide/GuideMarkdownViewer.tsx` **Propósito:** Wrapper específico para Guías de Refuerzo **Rutas que carga:** - ✅ `/docs/consolidado/SECCION_XX_*.md` (solo guías formativas) **Uso:** - Usado por `GuideViewer` (`src/views/formativo/GuideViewer.tsx`) - Carga secciones de guías de refuerzo --- #### Componente: `ManualViewer` **Ubicación:** `src/pages/ManualViewer.tsx` **Propósito:** Visualizador del manual operativo completo **Rutas que carga:** - ✅ `/manual/BLOQUE_X/archivo.md` (desde `manual-index.ts`) **Mecanismo:** - Lee rutas desde `src/data/manual-index.ts` - Usa `MarkdownViewer` para renderizar --- ### 1.2 Índices de Datos que Referencian Archivos Markdown #### `src/data/manual-index.ts` **Tipo:** Índice del Manual Operativo **Rutas referenciadas:** - Formato: `/manual/BLOQUE_X/archivo.md` - Total: 92+ capítulos - Todos apuntan a `public/manual/` **Ejemplo:** ```typescript rutaArchivo: "/manual/BLOQUE_0_FUNDAMENTOS/BLOQUE_00_0_FUNDAMENTOS_EMERGENCIAS.md" ``` --- #### `src/data/guides-index.ts` **Tipo:** Índice de Guías de Refuerzo (Formativas) **Rutas referenciadas:** - Formato: `/docs/consolidado/SECCION_XX_*.md` - Total: 16 rutas únicas (2 guías × 8 secciones) - Todas apuntan a `public/docs/consolidado/` **Ejemplo:** ```typescript ruta: "/docs/consolidado/SECCION_01_ABCDE_OPERATIVO.md" ``` --- ### 1.3 Resumen de Rutas Usadas por la App | Ruta en Código | Resuelve a | Tipo | Componente | |----------------|------------|------|------------| | `/manual/BLOQUE_X/*.md` | `public/manual/BLOQUE_X/*.md` | Manual Operativo | `ManualViewer` | | `/docs/consolidado/SECCION_XX_*.md` | `public/docs/consolidado/SECCION_XX_*.md` | Guías Formativas | `GuideViewer` | **⚠️ CRÍTICO:** La app SOLO carga desde `public/`. Vite no sirve archivos fuera de `public/` en desarrollo ni producción. --- ## 2️⃣ ANÁLISIS DE DUPLICADOS ### 2.1 Duplicados Confirmados #### Carpeta: `public/docs/consolidado/` **Estado:** ✅ **DUPLICADOS EXACTOS** de `docs/consolidado/` **Archivos duplicados:** - 80 archivos `SECCION_*.md` - Todos son idénticos (verificado con `diff`) **Verificación realizada:** ```bash # Muestra de verificación ✅ SECCION_08_DESA_ADULTO.md: idéntico ✅ SECCION_03_RCP_PEDIATRICA.md: idéntico ✅ SECCION_01_ABCDE_OPERATIVO.md: idéntico # ... (todos los 80 archivos son idénticos) ``` --- ### 2.2 Naturaleza de `public/docs/consolidado/` **Análisis:** **a) ¿Usado directamente por la app?** - ✅ **SÍ** - La app carga desde `/docs/consolidado/` que resuelve a `public/docs/consolidado/` - ✅ **NECESARIO** - Vite solo sirve desde `public/` **b) ¿Copia manual?** - ✅ **SÍ** - Actualmente se copia manualmente o con script - ✅ Script existente: `scripts/copiar-guias-markdown.sh` **c) ¿Carpeta legacy?** - ❌ **NO** - Es necesaria para el funcionamiento actual **d) ¿Candidata a ser generada en build?** - ✅ **SÍ** - Idealmente debería generarse automáticamente en build - ⚠️ **REQUIERE:** Configurar Vite o script pre-build para copiar desde `docs/consolidado/` --- ### 2.3 Fuente Única de Verdad **Fuente única confirmada:** - `docs/consolidado/SECCION_*.md` (80 archivos) - `docs/consolidado/*.md` (23 archivos técnicos, NO duplicados) **Copia generada:** - `public/docs/consolidado/SECCION_*.md` (80 archivos, generados por script) **Estado actual:** - ✅ Fuente única definida: `docs/consolidado/` - ✅ Script de copia funcional: `scripts/copiar-guias-markdown.sh` - ⚠️ Script NO integrado en build (requiere ejecución manual) --- ## 3️⃣ ARCHIVOS VACÍOS ### 3.1 Archivos con Tamaño 0 Bytes **Archivo detectado:** ``` docs/consolidado/ESQUEMA_GUIA_REFUERZO.md Tamaño: 0 bytes Fecha: 2025-12-23 ``` **Verificación en código:** - ❌ **NO referenciado** en `src/` - ❌ **NO usado** por la aplicación - ⚠️ **Estado:** Archivo vacío, posible borrador o placeholder **Recomendación:** - Si es borrador: Completar o eliminar - Si es placeholder: Completar o eliminar - Si es histórico: Mover a `docs/_archivo/` --- ## 4️⃣ ARCHIVOS HISTÓRICOS ### 4.1 Criterios de Identificación Archivos que cumplen criterios de "histórico": 1. Resúmenes de fases cerradas 2. Soluciones técnicas ya implementadas 3. Decisiones ya ejecutadas 4. Documentación de problemas resueltos --- ### 4.2 Archivos Históricos Identificados #### Grupo A: Resúmenes de Fases Completadas (4 archivos) | Archivo | Tamaño | Tipo | Estado Probable | |---------|--------|------|-----------------| | `docs/RESUMEN_FASE_1_2_3.md` | 5.3 KB | Resumen fase | ⚠️ Histórico | | `docs/RESUMEN_PASO_2_COMPLETADO.md` | 4.3 KB | Resumen paso | ⚠️ Histórico | | `docs/SCORM_FASE_1_COMPLETADA.md` | 2.3 KB | Estado SCORM | ⚠️ Histórico | | `docs/consolidado/RESUMEN_DEPLOY_8607.md` | 3.6 KB | Resumen deploy | ⚠️ Histórico | **Análisis:** - ✅ No referenciados en código - ✅ Documentan fases ya completadas - ⚠️ Pueden ser útiles para referencia histórica **Recomendación:** Mover a `docs/_archivo/` si no se consultan regularmente --- #### Grupo B: Soluciones Técnicas Implementadas (5 archivos) | Archivo | Tamaño | Tipo | Estado Probable | |---------|--------|------|-----------------| | `docs/LIMPIAR_CACHE_DEFINITIVO.md` | 5.3 KB | Solución cache | ⚠️ Histórico | | `docs/LIMPIAR_CACHE_NAVEGADOR.md` | 4.3 KB | Solución cache | ⚠️ Histórico | | `docs/LIMPIAR_CACHE_URGENTE.md` | 3.8 KB | Solución cache | ⚠️ Histórico | | `docs/LIMPIEZA_SW_DESARROLLO.md` | 2.1 KB | Solución SW | ⚠️ Histórico | | `docs/SOLUCION_SW_DESARROLLO.md` | 2.7 KB | Solución SW | ⚠️ Histórico | | `docs/SOLUCION_DEFINITIVA_USELAYOUTEFFECT.md` | 5.9 KB | Solución React | ⚠️ Histórico | | `docs/SOLUCION_DOCKER_VENDOR_OTHER.md` | 3.9 KB | Solución Docker | ⚠️ Histórico | **Análisis:** - ✅ No referenciados en código - ✅ Documentan problemas ya resueltos - ⚠️ Pueden ser útiles si los problemas resurgen **Recomendación:** Mover a `docs/_archivo/` si los problemas están definitivamente resueltos --- #### Grupo C: Decisiones y Recomendaciones Implementadas (3 archivos) | Archivo | Tamaño | Tipo | Estado Probable | |---------|--------|------|-----------------| | `docs/DECISION_SIGUIENTE_PASO_CHECKLIST.md` | 6.1 KB | Decisión | ⚠️ Histórico | | `docs/RECOMENDACION_SIGUIENTE_PASO_POST_CHECKLISTS.md` | 5.9 KB | Recomendación | ⚠️ Histórico | | `docs/MEJORAS_FUTURAS_CHECKLIST_RCP.md` | 2.4 KB | Mejoras futuras | ⚠️ Histórico | **Análisis:** - ✅ No referenciados en código - ✅ Documentan decisiones ya tomadas/implementadas - ⚠️ Pueden ser útiles para contexto histórico **Recomendación:** Mover a `docs/_archivo/` si las decisiones ya están implementadas --- ### 4.3 Resumen de Archivos Históricos **Total identificados:** 12 archivos **Distribución:** - Resúmenes de fases: 4 archivos - Soluciones técnicas: 7 archivos - Decisiones implementadas: 3 archivos **⚠️ IMPORTANTE:** Estos archivos NO deben borrarse. Solo moverse a `docs/_archivo/` si se confirma que son históricos. --- ## 5️⃣ SEGURIDAD - CARPETAS CRÍTICAS ### 5.1 Carpetas que NO DEBEN TOCARSE #### 🔴 CRÍTICO - Manual Operativo **Carpeta:** `public/manual/` **Contenido:** - 92 archivos Markdown del manual operativo completo - Protocolos críticos para uso en emergencias - Contenido clínico validado **Riesgo si se toca:** - ❌ **ROMPE LA APP** - La app carga desde aquí - ❌ **PÉRDIDA DE CONTENIDO CLÍNICO** - Protocolos operativos críticos - ❌ **AFECTA PRODUCCIÓN** - Usado en escena real **Estado:** ✅ **NO TOCAR BAJO NINGÚN CONCEPTO** --- #### 🔴 CRÍTICO - Guías Formativas (Copia) **Carpeta:** `public/docs/consolidado/` **Contenido:** - 80 archivos `SECCION_*.md` (guías formativas) - 1 archivo `README.md` **Riesgo si se toca:** - ❌ **ROMPE LA APP** - La app carga desde aquí - ❌ **PÉRDIDA DE CONTENIDO FORMATIVO** - Guías educativas activas - ⚠️ **PERO:** Los archivos `SECCION_*.md` pueden regenerarse desde `docs/consolidado/` **Estado:** ⚠️ **NO TOCAR** (excepto regeneración automática desde fuente) --- #### 🟡 IMPORTANTE - Fuente de Guías Formativas **Carpeta:** `docs/consolidado/` **Contenido:** - 80 archivos `SECCION_*.md` (fuente única) - 23 archivos técnicos (documentación) **Riesgo si se toca:** - ❌ **PÉRDIDA DE FUENTE ÚNICA** - No hay backup - ❌ **ROMPE REGENERACIÓN** - Script de copia depende de esto - ⚠️ **PERO:** Archivos técnicos pueden organizarse (no usados por app) **Estado:** ⚠️ **NO TOCAR** archivos `SECCION_*.md` | ✅ Archivos técnicos pueden organizarse --- ### 5.2 Carpetas que PUEDEN Organizarse #### 🟢 SEGURO - Documentación Técnica **Carpeta:** `docs/` (excepto `docs/consolidado/SECCION_*.md`) **Contenido:** - 58 archivos de documentación técnica - Análisis, auditorías, planes - Archivos históricos identificados **Riesgo si se organiza:** - ✅ **BAJO RIESGO** - No usados directamente por la app - ✅ **PUEDE ORGANIZARSE** - Mover históricos a `docs/_archivo/` - ⚠️ **PERO:** Algunos pueden ser referencia útil **Estado:** ✅ **PUEDE ORGANIZARSE** con precaución --- #### 🟢 SEGURO - Scripts **Carpeta:** `scripts/` **Contenido:** - Documentación de scripts - READMEs **Riesgo si se organiza:** - ✅ **BAJO RIESGO** - Solo documentación - ✅ **PUEDE ORGANIZARSE** **Estado:** ✅ **PUEDE ORGANIZARSE** --- ## 6️⃣ MAPA DE RUTAS Y DEPENDENCIAS ### 6.1 Flujo de Carga de Archivos ``` Usuario → App ↓ ManualViewer → manual-index.ts → /manual/BLOQUE_X/archivo.md ↓ MarkdownViewer → fetch() → public/manual/BLOQUE_X/archivo.md ✅ Usuario → App ↓ GuideViewer → guides-index.ts → /docs/consolidado/SECCION_XX_*.md ↓ GuideMarkdownViewer → MarkdownViewer → fetch() → public/docs/consolidado/SECCION_XX_*.md ✅ ``` --- ### 6.2 Dependencias Críticas | Componente | Depende de | Archivos | Estado | |------------|------------|----------|--------| | `ManualViewer` | `manual-index.ts` | 92 archivos en `public/manual/` | 🔴 Crítico | | `GuideViewer` | `guides-index.ts` | 80 archivos en `public/docs/consolidado/` | 🔴 Crítico | | Script copia | `docs/consolidado/` | 80 archivos fuente | 🟡 Importante | --- ## 7️⃣ RECOMENDACIONES ### 7.1 Acciones SEGURAS (Bajo Riesgo) #### ✅ Acción 1: Mover Archivo Vacío **Archivo:** `docs/consolidado/ESQUEMA_GUIA_REFUERZO.md` (0 bytes) **Acción:** Eliminar o mover a `docs/_archivo/` si es borrador **Riesgo:** ✅ **BAJO** - No referenciado en código --- #### ✅ Acción 2: Crear Carpeta de Archivo **Carpeta:** `docs/_archivo/` (no existe actualmente) **Acción:** Crear carpeta para archivos históricos **Riesgo:** ✅ **NINGUNO** - Nueva carpeta --- #### ✅ Acción 3: Mover Archivos Históricos (12 archivos) **Archivos:** Identificados en sección 4.2 **Acción:** Mover a `docs/_archivo/` después de confirmación manual **Riesgo:** ✅ **BAJO** - No referenciados en código, pero revisar manualmente antes --- ### 7.2 Acciones que REQUIEREN PRECAUCIÓN #### ⚠️ Acción 4: Integrar Script en Build **Script:** `scripts/copiar-guias-markdown.sh` **Acción:** Integrar en `package.json` como pre-build step **Riesgo:** ⚠️ **MEDIO** - Requiere testing del build **Beneficio:** ✅ Automatiza sincronización, elimina necesidad de copia manual --- #### ⚠️ Acción 5: Organizar Archivos Técnicos en `docs/consolidado/` **Archivos:** 23 archivos técnicos (no `SECCION_*.md`) **Acción:** Organizar en subcarpetas si es necesario **Riesgo:** ⚠️ **BAJO** - No usados por app, pero verificar referencias cruzadas --- ### 7.3 Acciones PROHIBIDAS #### ❌ PROHIBIDO: Tocar `public/manual/` **Razón:** Contenido clínico crítico usado en producción --- #### ❌ PROHIBIDO: Eliminar `public/docs/consolidado/SECCION_*.md` sin regeneración **Razón:** App depende de estos archivos --- #### ❌ PROHIBIDO: Tocar `docs/consolidado/SECCION_*.md` (fuente única) **Razón:** Fuente única de verdad, no hay backup --- ## 8️⃣ RESUMEN EJECUTIVO ### 8.1 Estado Actual | Aspecto | Estado | Detalles | |---------|--------|----------| | **Fuente única** | ✅ Definida | `docs/consolidado/SECCION_*.md` | | **Duplicados** | ✅ Identificados | 80 archivos en `public/docs/consolidado/` | | **Archivos vacíos** | ⚠️ 1 detectado | `ESQUEMA_GUIA_REFUERZO.md` | | **Archivos históricos** | ⚠️ 12 identificados | Requieren revisión manual | | **Carpetas críticas** | ✅ Identificadas | `public/manual/`, `public/docs/consolidado/` | --- ### 8.2 Riesgos Identificados | Riesgo | Nivel | Mitigación | |--------|-------|------------| | Romper carga de manual | 🔴 ALTO | No tocar `public/manual/` | | Romper carga de guías | 🔴 ALTO | No tocar `public/docs/consolidado/` sin regenerar | | Perder fuente única | 🔴 ALTO | No tocar `docs/consolidado/SECCION_*.md` | | Mover archivos históricos útiles | 🟡 MEDIO | Revisar manualmente antes de mover | --- ### 8.3 Plan de Acción Recomendado #### Fase 1: Preparación (Sin Riesgo) 1. ✅ Crear `docs/_archivo/` si no existe 2. ✅ Eliminar o archivar `ESQUEMA_GUIA_REFUERZO.md` (vacío) #### Fase 2: Revisión Manual (Sin Riesgo) 1. ⚠️ Revisar manualmente los 12 archivos históricos 2. ⚠️ Confirmar que son realmente históricos 3. ⚠️ Verificar que no se consultan regularmente #### Fase 3: Organización (Bajo Riesgo) 1. ⚠️ Mover archivos históricos confirmados a `docs/_archivo/` 2. ⚠️ Organizar archivos técnicos en `docs/consolidado/` si es necesario #### Fase 4: Automatización (Medio Riesgo) 1. ⚠️ Integrar script de copia en build 2. ⚠️ Testing completo del build 3. ⚠️ Verificar que la app funciona correctamente --- ## 9️⃣ CONCLUSIÓN ### Estado del Sistema ✅ **Sistema bien estructurado:** - Fuente única definida - Duplicados identificados y gestionables - Rutas claras y documentadas ⚠️ **Áreas de mejora:** - Archivo vacío a limpiar - Archivos históricos a organizar - Script de copia a automatizar 🔴 **Zonas críticas identificadas:** - `public/manual/` - NO TOCAR - `public/docs/consolidado/` - NO TOCAR sin regenerar - `docs/consolidado/SECCION_*.md` - NO TOCAR (fuente única) --- ### Próximos Pasos 1. **Revisar manualmente** los 12 archivos históricos identificados 2. **Crear `docs/_archivo/`** para organización 3. **Mover archivos históricos confirmados** a `docs/_archivo/` 4. **Eliminar o archivar** `ESQUEMA_GUIA_REFUERZO.md` (vacío) 5. **Integrar script de copia** en build (opcional, requiere testing) --- **Fin del Informe de Auditoría** **⚠️ RECORDATORIO:** Este informe es SOLO DE ANÁLISIS. No se ha modificado ningún archivo.