codigo0/docs/AUDITORIA_TECNICA_LIMPIEZA_MARKDOWN.md

16 KiB
Raw Blame History

🔍 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:

// 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.mdpublic/manual/BLOQUE_X/archivo.md
  • /docs/consolidado/SECCION_XX_*.mdpublic/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:

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:

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:

# 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?

  • - La app carga desde /docs/consolidado/ que resuelve a public/docs/consolidado/
  • NECESARIO - Vite solo sirve desde public/

b) ¿Copia manual?

  • - 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?

  • - 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.