16 KiB
🔍 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 desdepublic/)
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.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(desdemanual-index.ts)
Mecanismo:
- Lee rutas desde
src/data/manual-index.ts - Usa
MarkdownViewerpara 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?
- ✅ SÍ - La app carga desde
/docs/consolidado/que resuelve apublic/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":
- Resúmenes de fases cerradas
- Soluciones técnicas ya implementadas
- Decisiones ya ejecutadas
- 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_*.mdpueden regenerarse desdedocs/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)
- ✅ Crear
docs/_archivo/si no existe - ✅ Eliminar o archivar
ESQUEMA_GUIA_REFUERZO.md(vacío)
Fase 2: Revisión Manual (Sin Riesgo)
- ⚠️ Revisar manualmente los 12 archivos históricos
- ⚠️ Confirmar que son realmente históricos
- ⚠️ Verificar que no se consultan regularmente
Fase 3: Organización (Bajo Riesgo)
- ⚠️ Mover archivos históricos confirmados a
docs/_archivo/ - ⚠️ Organizar archivos técnicos en
docs/consolidado/si es necesario
Fase 4: Automatización (Medio Riesgo)
- ⚠️ Integrar script de copia en build
- ⚠️ Testing completo del build
- ⚠️ 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 TOCARpublic/docs/consolidado/- NO TOCAR sin regenerardocs/consolidado/SECCION_*.md- NO TOCAR (fuente única)
Próximos Pasos
- Revisar manualmente los 12 archivos históricos identificados
- Crear
docs/_archivo/para organización - Mover archivos históricos confirmados a
docs/_archivo/ - Eliminar o archivar
ESQUEMA_GUIA_REFUERZO.md(vacío) - 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.