
Editor de análisis de riesgos basado en navegador para crear matrices de riesgos, registros de riesgos y planes de acción. Compatible con EBIOS RM, ISO 27005 y CNIL DPIA con archivos .rae.json sin conexión.
# <img src="https://raw.githubusercontent.com/stephanev/risk-analysis-editor/HEAD/docs/images/RAE-logo-mini.svg" alt="" height="38" align="top"> Risk Analysis Editor (RAE)
**English** · [Français](https://github.com/stephanev/risk-analysis-editor/blob/main/README.fr.md)
Herramienta independiente para **crear y visualizar matrices de riesgo** — riesgo inherente (bruto) y riesgo residual (neto) — con un formato de archivo abierto y documentado, `.rae.json`.
### ▶️ [Abrir la aplicación](https://stephanev.github.io/Risk-Analysis-Editor/app/risk-analysis-editor.html) · 📖 [**Guía del usuario**](https://github.com/stephanev/risk-analysis-editor/blob/main/docs/guide-utilisateur.md) · 🎬 [Tutoriales en vídeo](https://www.youtube.com/@RiskAnalysisEditor) · ⬇️ [Descargar](https://github.com/StephaneV/Risk-Analysis-Editor/releases/latest/download/risk-analysis-editor.html)
*Sin instalación: la herramienta se ejecuta íntegramente en tu navegador. Dos demostraciones listas para abrir: 📊 un [análisis de riesgos **inspirado en EBIOS RM**](https://stephanev.github.io/Risk-Analysis-Editor/app/risk-analysis-editor.html?file=../examples/demo-ebios-rm-information-system-enriched.rae.json) (12 riesgos, 11 medidas) y 🛡️ [un ejemplo de la parte de análisis de riesgos de una DPIA](https://stephanev.github.io/Risk-Analysis-Editor/app/risk-analysis-editor.html?file=../examples/demo-dpia-ohs-enriched.rae.json), inspirado en el método PIA de la CNIL, centrado en eventos temidos, controles y riesgo residual (12 riesgos, 12 medidas) — ambas mostrando descripciones, notas, **etiquetas** de colores, **barras de progreso**, responsables y justificación por enlace, además de un **modelo de objetos reutilizable** (valores de negocio, activos de soporte, fuentes de riesgo, partes interesadas, escenarios…) y un informe preconfigurado. La descarga proporciona **el único archivo HTML** de la [última versión](https://github.com/StephaneV/Risk-Analysis-Editor/releases/latest): haz doble clic para trabajar **sin conexión**.*

> ***Matrices › Trayectoria**: cada flecha enlaza la posición inicial de un riesgo (contorno discontinuo) con su posición residual (contorno continuo).*

> ***Estadísticas**: contadores y distribuciones clave — por criticidad (inicial → residual), categoría, tipo y estado de la medida, campo personalizado y cobertura — como tablas y/o gráficos (anillo o circular). La cuadrícula es personalizable y reorganizable mediante arrastrar y soltar, y sigue el filtro activo.*

> ***Plan de acción** — cronograma: controles ordenados por fecha de vencimiento, con responsable, estado y riesgos cubiertos. También disponible como **tablero de estado (kanban)** y **por responsable**, con seguimiento del progreso y de los retrasos.*
---
## Descripción general
**Risk Analysis Editor** es una aplicación web **independiente**: un único archivo HTML, sin dependencia de red ni de servicios externos en tiempo de ejecución, que funciona **sin conexión** (basta con un simple doble clic — sin instalación, sin servidor).
Permite realizar un análisis de riesgos genérico y estructurado: configuración de la puntuación, introducción de riesgos y medidas, evaluación inicial y residual, plan de acción, visualizaciones e informes.
La herramienta se basa en un modelo genérico y configurable, adaptable a un marco interno y utilizable para estructurar y presentar análisis realizados dentro de enfoques como ISO 27005, EBIOS RM o la DPIA. La cuadrícula es ampliamente configurable: dimensiones, ejes, niveles, etiquetas, umbrales, colores y método de puntuación; se guarda dentro del archivo.
Todo el análisis cabe en un archivo **`.rae.json`** autocontenido: cuadrícula, riesgos, medidas, enlaces y evaluaciones inicial/residual (además de la actual, en modo de 3 niveles). El formato está **especificado** ([documentación técnica](https://github.com/stephanev/risk-analysis-editor/blob/main/specs/SPEC-format-analyse-risque.md), en francés) y viene con un **esquema JSON** para su validación ([schema-analyse-risque.json](https://github.com/stephanev/risk-analysis-editor/blob/main/specs/schema-analyse-risque.json)). Los nombres de las propiedades están en inglés; los valores (etiquetas, descripciones) permanecen en el idioma propio del análisis.
**Sitio web oficial:** [www.risk-analysis-editor.com](https://www.risk-analysis-editor.com/) — presentación, capturas de pantalla y enlaces.
**Canal de YouTube:** [@RiskAnalysisEditor](https://www.youtube.com/@RiskAnalysisEditor) — tutoriales en vídeo.
**Primeros pasos:** la **[guía de usuario](https://github.com/stephanev/risk-analysis-editor/blob/main/docs/guide-utilisateur.md)** ilustrada (en francés) recorre cada pantalla y funcionalidad.
**Punto de entrada:** [abrir la aplicación en línea](https://stephanev.github.io/Risk-Analysis-Editor/app/risk-analysis-editor.html) — o, para uso **sin conexión**, descargue el repositorio y abra [`app/risk-analysis-editor.html`](https://github.com/stephanev/risk-analysis-editor/blob/main/app/risk-analysis-editor.html) con un simple doble clic.
### Posicionamiento metodológico
RAE se centra en **estructurar, evaluar y presentar registros de riesgos y medidas**: definir la cuadrícula de puntuación, la evaluación inicial y residual, vincular las medidas a los riesgos, hacer seguimiento del plan de acción, visualizar las matrices y generar informes.
Su modelo genérico y configurable permite trabajar con distintos enfoques — en particular ISO 27005, EBIOS RM, DPIA/PIA CNIL o un marco interno — sin imponer una única metodología. Las plantillas y ejemplos proporcionados están **inspirados en estos enfoques** y sirven como puntos de partida listos para adaptar. Sin embargo, RAE no pretende reproducir el conjunto completo de pasos, objetos y controles específicos de cada método: su implementación completa sigue guiada por los marcos aplicables y por el contexto del análisis.
RAE ofrece así un marco **más estructurado y coherente que un conjunto de hojas de cálculo**, a la vez que sigue siendo **más ligero, más portátil y más sencillo de desplegar que una plataforma GRC**. Resulta especialmente adecuado para análisis independientes, talleres, encargos de consultoría y organizaciones que desean mantener el control local de sus datos en un formato abierto y documentado.
---
## Funcionalidades
### Visualización
- **Dos matrices lado a lado**: riesgo *inherente (bruto)* y *residual (neto)*.
- **Vista de trayectoria**: una flecha enlaza la posición inicial de cada riesgo con su posición residual; los riesgos no reducidos se resaltan.
- **Algoritmos de disposición** para las trayectorias orientados a reducir cruces y solapamientos: flechas rectas, cuadrícula cuadrada centrada.
- **Estrategias de disposición de chips** cuando una celda contiene varios riesgos: cuadrícula, fila, columna, agrupación/espiral, desbordamiento «+N»…
- **Colocación manual** de chips mediante arrastrar y soltar, con una cuadrícula de ajuste N×N configurable y posiciones guardadas en el archivo.
- **Chips interactivos**: **hacer clic** en un chip abre el registro del riesgo para editarlo; **arrastrarlo** a otra celda **recalifica** el riesgo (teclado: `Enter`/`Space` para editar, `Ctrl`+flechas para recalificar).
- **Pestaña de estadísticas**: un panel de cifras — contadores clave, distribución por **criticidad** (inicial → residual), por **categoría** de riesgo, por **tipo** y **estado** de medida, por **campo personalizado**, y **cobertura** (riesgos sin control, controles huérfanos). Cada bloque como **tabla y/o gráfico** (anillo o circular). Una cuadrícula **personalizable** (activar/desactivar bloques, tamaño, forma) que se puede **reorganizar mediante arrastrar y soltar**; sigue el filtro propagado; ajustes guardados en el archivo.
- **Radares**: una pestaña dedicada al **perfil de riesgo** como gráfico de radar (araña) — un **eje** por cada valor de una **dimensión** (categoría o campo personalizado), varias **métricas** (criticidad media, máxima, acumulada o ponderada, número de riesgos) y **evaluaciones** (inicial, residual, lado a lado o superpuestas para mostrar la reducción). Representación configurable (*Ajustes › Radares*), tabla de valores, exportación **PNG/SVG** e inclusión en el informe; sigue el filtro propagado.
### Cuadrícula de puntuación
- **Ejes configurables** (vertical / horizontal): número libre de niveles, etiquetas y descripciones de tooltip.
- **Métodos de cálculo de puntuación**: producto (P × S), suma (P + S) o **matriz** (nivel definido celda por celda, con un editor dedicado).
- **Niveles de criticidad**: zonas coloreadas, umbrales, color, decisión de aceptación y descripción, con una **verificación de cobertura** de las puntuaciones alcanzables.
- **Dos o tres niveles de valoración** *(opción, por análisis)*: junto al modo clásico **inicial → residual**, un modo **inherente → actual → residual** (riesgo bruto, luego con las medidas *en vigor*, luego el objetivo con medidas propuestas/planificadas/en curso). Se activa en *Ajustes › Cuadrícula de puntuación*; adapta la entrada de datos, los registros, las **matrices** (lado a lado y una **trayectoria de 3 puntos**), los **radares**, las **estadísticas**, el **informe** y las exportaciones a **Word/Excel/CSV**. Predeterminado: 2 niveles (compatibilidad total hacia atrás).
- **Transposición de ejes** (vertical ↔ horizontal) con un clic, incluidas las evaluaciones y las ubicaciones.
### Entrada de datos
- **Descripción general**: pestaña dedicada a los metadatos del documento del análisis (título, estado, autor, organización, alcance, referencia de metodología, descripción) y a los valores de los campos personalizados a nivel de análisis.
- **Registro de riesgos**: categoría, propietario, descripción, evaluación inicial y residual (y **actual** en modo de 3 niveles), indicador de cambio.
- **Controles / medidas**: tipo (técnico / organizativo…), estado (codificado por colores), responsable, fecha de vencimiento, coste.
- **Vínculos riesgo ↔ medida**, en dos subpestañas: *Asociaciones* (tabla cruzada con casillas, muchos a muchos) y *Detalles* (registro editable donde cada vínculo lleva una **nota** y sus propios **campos personalizados**); los vínculos enriquecidos se señalan en la tabla cruzada.
- **Plan de acción**: seguimiento de medidas en tres vistas (cronograma, kanban por estado, agrupado por propietario), medidas **vencidas** resaltadas (fecha de vencimiento pasada y no finalizadas), y **progreso general** (barra + contadores por estado). Cada medida se abre para editar con **doble clic** — o mediante el **botón ✎** en cada fila/tarjeta — (fecha de vencimiento, estado, propietario, notas, campos personalizados) y, en el kanban, se puede **arrastrar y soltar** entre columnas de estado.
- **Campos personalizados**: define, en *Configuración*, campos adicionales asociados al análisis, a los riesgos, a las medidas o a los vínculos — muchos tipos (sí/no, entero, decimal, fecha, texto de una línea, texto largo, URL, correo electrónico, teléfono, texto validado por patrón, **color**, **imagen** (incrustada, mostrada como miniatura con lightbox de clic para ampliar), lista desplegable, lista de verificación, **etiquetas de colores** con selección única/múltiple, **escala** (niveles numerados utilizables en cálculos), **barra de progreso** en %, y **valor calculado** (una fórmula estilo Excel recalculada en vivo sobre los demás campos y cantidades derivadas), además del tipo **referencia** — ver más abajo), etiquetas multilingües (la etiqueta y la ayuda se introducen en el idioma activo de la interfaz; cuando falta una traducción, se muestra el código), una marca de obligatorio y límites (mín/máx, longitud, número de elementos) y — para las listas (lista desplegable, lista de verificación, etiquetas) — una **descripción por valor** recopilada en una sección **«Referencia de campos»** del informe; los valores se introducen en los registros (riesgos, medidas) y en la pestaña *Descripción general* (campos del análisis), con validación, y se incluyen en el **informe** y en la **importación/exportación CSV**.
- **Objetos y referencias**: más allá de los campos personalizados simples, define tus propios **tipos de objeto** (activos de soporte, valores de negocio, partes interesadas, fuentes de riesgo, destinatarios de datos…) con **atributos** tipados, y luego crea tantas **instancias** como necesites en la pestaña *Objetos* dedicada (subpestañas por tipo, ordenación, importación/exportación CSV). Un campo de **referencia** vincula entonces un riesgo, una medida, un vínculo, el análisis u otro objeto a una o varias instancias — o a los **riesgos/medidas** propios del análisis, mostrados como **píldoras R*x*/M*x*** clicables (código + tooltip de etiqueta). Las referencias alimentan filtros, estadísticas y radares, aparecen en el informe y en las exportaciones a Word/Excel, y se mantienen coherentes gracias a la **eliminación en cascada**. Un **visor de esquema** (en [`tools/`](https://github.com/stephanev/risk-analysis-editor/blob/main/tools/schema-viewer)) dibuja el modelo de objetos/referencias como un diagrama entidad-relación.
- **Importación CSV** de riesgos, medidas y vínculos: columnas nombradas según las claves **en inglés** del formato, separador autodetectado; fusión por identificador (riesgos/medidas); comprobación de integridad y deduplicación (vínculos).
- **Exportación CSV de riesgos, medidas y vínculos**: encabezados = nombres de claves **en inglés** (idénticos sea cual sea el idioma de la interfaz), delimitador `;` y BOM UTF-8 (Excel), con columnas derivadas de solo lectura (puntuación/criticidad para riesgos; riesgos cubiertos para medidas; etiquetas para vínculos); reimportable.
- **Ordenación y filtrado** de las listas de Riesgos, Medidas y Plan de acción: búsqueda de texto, ordenación haciendo clic en las columnas (ascendente → descendente → orden original) y filtros desplegables (categoría, tipo, estado, propietario, «solo vencidas»). Cuando no hay ninguna ordenación activa, las filas se pueden **reordenar mediante arrastrar y soltar** (asa ⠿ al pasar el ratón por la fila, Ctrl+↑/↓ con el teclado): el nuevo orden se guarda en el archivo y determina la visualización predeterminada, el informe y las exportaciones.
- **Filtrado propagado**: los menús desplegables de filtro para **categoría** (riesgo), **tipo** y **estado** (medida), además de cualquier **campo personalizado** declarado *utilizable como filtro* (valores cerrados: desplegable, lista de verificación, etiquetas, sí/no), **se propagan a lo largo de los enlaces** — restringiendo cada pestaña, las matrices y el informe: filtrar por un riesgo conserva solo las medidas y los enlaces que se relacionan con él, y de forma simétrica para un filtro de medida. Los criterios se combinan (AND) y cada filtro propagado activo permanece **visible y editable** en cada barra donde se aplica. El filtro propagado (base + campos personalizados) se **guarda en el archivo** y se restaura cuando se reabre el análisis. La búsqueda de texto y los filtros específicos del Plan de acción (*responsable*, *vencido*) permanecen locales a su vista.
- **Ayudas de entrada y redes de seguridad**: **duplicar** (⧉) con un clic un riesgo o una medida, **«Guardar y nuevo»** para la entrada por lotes, un aviso emergente de **«Deshacer»** tras cada eliminación, píldoras clicables R*x*/M*x* que abren el registro referenciado, un *«no volver a preguntar»* opcional para las confirmaciones de enlace, una advertencia al editar una cuadrícula ya evaluada, y un panel de **Ayuda y atajos** (menú Archivo, o la tecla `?`).
- **Vistas y columnas de los registros** (Riesgos, Medidas, Detalles de enlaces, Objetos): cada registro ofrece tres presentaciones elegidas desde un **selector de iconos** — **Tabla**, **Maestro·detalle** (lista compacta + un **cajón de detalle** por fila) y **Tarjetas** (una tarjeta por registro) — además de un control de **densidad** (Cómoda / Compacta / Densa). Un **gestor de columnas** de tres estados (botón **⚙ Columnas** en la barra de herramientas, disponible en todas las vistas) establece cada columna — incluidas las **columnas de campos personalizados** — como **En línea** (una columna en Tabla y Maestro·detalle, y mostrada en las tarjetas), **En detalle** (oculta de la Tabla, trasladada al cajón de Maestro·detalle, aún mostrada en las tarjetas) u **Oculta** (en todas partes); por defecto, la aplicación clasifica automáticamente cada columna como En línea o En detalle (los campos de texto largo y secundarios van a En detalle), nunca Oculta. Las columnas se reordenan con las flechas ▲/▼ o arrastrando los encabezados; ID y Acciones permanecen fijas; una opción de **ancho completo** y un menú **«Ordenar por ▾»** (para ordenar donde no hay encabezado, p. ej. en Tarjetas) lo completan. Las **notas de los enlaces se renderizan en Markdown** en las tres vistas. **Edición:** un solo clic no hace nada (el texto largo recortado se amplía, una imagen abre un visor); un **doble clic** en un campo abre el registro posicionado en ese campo, en todas las vistas — con un **botón ✎** explícito en el Plan de acción. Todo el diseño — vista, densidad, estados y orden de las columnas — se **guarda en el archivo** (`extensions.display`).
### Archivo y exportación
- **Nuevo / Cargar / Guardar** en formato `.rae.json`.
- **Cargar por URL**: abrir la herramienta con `?file=<url>` (alias `?url=`) carga automáticamente el análisis apuntado al iniciar — p. ej. `risk-analysis-editor.html?file=../examples/demo-ebios-rm-information-system.rae.json`. Requiere que la herramienta se sirva por HTTP(S) (el protocolo `file://` bloquea esta lectura).
- **Parámetros de URL de inicio** (combinables): `?lang=fr|en|it` fuerza el idioma de la interfaz (anula el idioma guardado en el archivo y el idioma del navegador); `?tab=<tab>[.<sub-tab>]` abre una pestaña determinada y, opcionalmente, su subpestaña — p. ej. `?tab=matrices.traj` (Matrices › Trayectoria), `?tab=settings.grid`, `?tab=plan`; `?filter=code:value;…` aplica filtros de campos personalizados (anula la parte de campos personalizados guardada del filtro y luego se elimina de la barra de direcciones). Los tokens desconocidos se ignoran.
- **Exportación de matrices** como **PNG** (×1 / ×2 / ×3) y **SVG**, con título, subtítulo, etiquetas de ejes y leyenda; copia al portapapeles cuando esta función es compatible y está permitida por el navegador y el contexto de ejecución.
- **Exportación a Word (.docx)** del informe y **exportación a Excel (.xlsx)** del análisis: menú *Archivo* (y un botón en la pestaña *Informe* para Word). El archivo de Word reutiliza las secciones, su orden, las columnas y el alcance configurados para el informe, y añade una **portada**, un **índice** nativo de Word, actualizable al abrir si es necesario, y un **encabezado/pie de página nativo** (con números de página) — metadatos, presentación, resumen, cuadrícula, **matrices como imágenes incrustadas**, registros y hojas detalladas — utilizable como base para la integración en una plantilla corporativa; el libro de Excel tiene hojas con estilo (Resumen / Riesgos / Medidas / Enlaces, **más una hoja por tipo de objeto**) con celdas tipadas (fechas y números reales), colores de criticidad y estado, filas de encabezado inmovilizadas y autofiltros. Ambos se generan **localmente, sin conexión**: OOXML escrito a mano más la biblioteca [fflate](https://github.com/101arrowz/fflate) incrustada, con licencia MIT, para el contenedor ZIP — todavía distribuido como un único archivo HTML, sin necesidad de recursos externos en tiempo de ejecución.
- **Informe imprimible**: la pestaña *Informe* genera un informe configurable a partir de la información gestionada en RAE (metadatos, un **bloque de descripción general** con la descripción del análisis y los campos personalizados, resumen, cuadrícula y niveles de criticidad con descripciones, **referencia de campos y leyendas** (valores documentados de listas desplegables/etiquetas), matrices Inicial/Residual y de Trayectoria como vectores, registro de riesgos, listas detalladas de riesgos y medidas con sus descripciones **y valores de campos personalizados**, enlaces), renderizado con un estilo claro e imprimible (→ PDF mediante el navegador).
- **Informe personalizable** (*Configuración › Informe*): elegir las **secciones** y su **orden** (arrastrar y soltar), la **portada** (logotipo, título, subtítulo, avisos, confidencialidad, texto libre), el **índice**, un **encabezado/pie de página** de tres zonas con variables (`{title}`, `{date}`, `{page}/{pages}`…), las **columnas** de cada tabla, las filas de metadatos, la disposición de la matriz Inicial/Residual (lado a lado o apiladas) y la vista del plan de acción, además del **alcance** (análisis completo o subconjunto filtrado). La misma configuración determina las secciones, su orden, las columnas y el alcance de las representaciones **en pantalla/PDF** y **Word** (con índice y encabezado/pie de página nativos); se guarda en el archivo (`extensions.display.report`).
- **Generador de informes con plantilla de Word**: *Archivo › Exportar con una plantilla de Word…* rellena **tu propia plantilla `.docx`** — las **etiquetas** `{{ … }}` (valores, bucles, condiciones, bloques `matrix` / `radar` / `stat` / `table`, logotipo…) se sustituyen por los datos del análisis mientras el documento conserva toda tu maquetación. Un **informe de advertencias** señala las etiquetas no reconocidas. Se proporcionan **plantillas listas para usar** (clásica, dividida por categoría, fichas de referencia, panel de control, reproducciones fieles del informe nativo) en [`word-templates/`](https://github.com/stephanev/risk-analysis-editor/blob/main/word-templates), junto con una **[guía de redacción](https://github.com/stephanev/risk-analysis-editor/blob/main/word-templates/guide-redaction-modeles.md)** y un **[catálogo de palabras clave](https://github.com/stephanev/risk-analysis-editor/blob/main/word-templates/catalogue-mots-cles-rapport.md)**.
### Personalización
- **Temas**: oscuro, claro.
- **Selector de idioma**: francés / inglés / italiano (interfaz y datos predeterminados para un nuevo análisis), arquitectura extensible a otros idiomas.
---
## Estructura del proyecto
| Carpeta | Contenido |
|---|---|
| [`app/`](https://github.com/stephanev/risk-analysis-editor/blob/main/app) | La aplicación (`risk-analysis-editor.html`). |
| [`docs/`](https://github.com/stephanev/risk-analysis-editor/blob/main/docs) | **Documentación de usuario** (en francés): la [guía de usuario](https://github.com/stephanev/risk-analysis-editor/blob/main/docs/guide-utilisateur.md) ilustrada, e imágenes compartidas. |
| [`specs/`](https://github.com/stephanev/risk-analysis-editor/blob/main/specs) | **Especificaciones** (en francés): especificación del formato de archivo, esquema JSON, estrategias de diseño y la **especificación del generador de informes Word** ([`SPEC-rapport-modele-word.md`](https://github.com/stephanev/risk-analysis-editor/blob/main/specs/SPEC-rapport-modele-word.md)). |
| [`examples/`](https://github.com/stephanev/risk-analysis-editor/blob/main/examples) | Análisis de ejemplo en formato `.rae.json` (francés e inglés), incluidos dos **demos poblados representativos de las funcionalidades de RAE**: un análisis de riesgos **inspirado en EBIOS RM** (`demo-ebios-rm-*.rae.json`) y un ejemplo de la parte de análisis de riesgos de una DPIA, inspirado en el método PIA de la CNIL, para un servicio de salud laboral (`demo-aipd-sst.rae.json` / `demo-dpia-ohs.rae.json`) — con etiquetas de colores, barras de progreso, responsables y enlaces justificados. Cada uno también viene en una **variante enriquecida de «objetos»** (`…-objets-enrichi` / `…-enriched`) que modela valores de negocio / datos, activos de soporte, fuentes de riesgo, partes interesadas y escenarios, con un informe preconfigurado. Véase [`examples/README.md`](https://github.com/stephanev/risk-analysis-editor/blob/main/examples/README.md). |
| [`templates/`](https://github.com/stephanev/risk-analysis-editor/blob/main/templates) | **Plantillas de inicio** (`xxx.template.<lang>.rae.json`, un archivo por idioma) para análisis inspirados en métodos y marcos comunes: esqueletos en blanco — cuadrícula, niveles de criticidad y campos personalizados preconfigurados, sin riesgos ni medidas. **EBIOS RM**, **CNIL PIA / DPIA**, **ISO/IEC 27005** y una **genérica** de 5×5 — además de **variantes enriquecidas de EBIOS RM / CNIL PIA** que incluyen tipos de objetos y un informe preconfigurado — cada una en **francés, inglés e italiano**. Se listan en *Comenzar desde una plantilla* en el bloque de inicio (se carga el archivo que coincide con el idioma actual de la interfaz); abrir una (desde ahí, o mediante *Cargar…*) inicia un nuevo análisis **no vinculado**. También puede convertir el análisis actual en una plantilla con **Archivo › Guardar como plantilla…**, y volver al bloque de inicio con **Archivo › Pantalla de inicio**. |
| [`word-templates/`](https://github.com/stephanev/risk-analysis-editor/blob/main/word-templates) | **Plantillas de informes Word** (`.docx`) para el generador de informes basado en plantillas: las etiquetas `{{ … }}` se sustituyen por los valores, tablas, matrices, radares y gráficos del análisis. Plantillas *Clásica*, *dividida por categoría*, *fichas de referencia*, *panel de control* y reproducciones fieles del informe nativo (versiones limpia y **anotada**), además de una **guía de redacción** y el **catálogo de palabras clave**. Véase [`word-templates/README.md`](https://github.com/stephanev/risk-analysis-editor/blob/main/word-templates/README.md). |
| [`tools/`](https://github.com/stephanev/risk-analysis-editor/blob/main/tools) | **Herramientas de desarrollo**: scripts para generar las capturas de pantalla (guía y README) y para incrustar las plantillas en la aplicación. Véase [`tools/README.md`](https://github.com/stephanev/risk-analysis-editor/blob/main/tools/README.md). |
---
## Primeros pasos
1. [Abra la aplicación en línea](https://stephanev.github.io/Risk-Analysis-Editor/app/risk-analysis-editor.html) — o abra [`app/risk-analysis-editor.html`](https://github.com/stephanev/risk-analysis-editor/blob/main/app/risk-analysis-editor.html) desde una copia local, en un navegador reciente.
2. La herramienta se inicia en un **análisis en blanco**, abierto en la pestaña **Resumen**.
3. Use **Cargar…** para abrir un archivo `.rae.json` (p. ej., de [`examples/`](https://github.com/stephanev/risk-analysis-editor/blob/main/examples)), **Guardar** para exportar el suyo.
---
## Compatibilidad de navegadores
**Requisitos previos**: un navegador de escritorio reciente (versión evergreen) con JavaScript habilitado — nada más. No se requiere servidor, acceso a la red ni instalación; la aplicación se ejecuta con un simple doble clic en `file://`. Solo **Cargar por URL** (`?file=…`) requiere que la herramienta se sirva a través de HTTP(S).
El desarrollo y las pruebas se realizan principalmente con **Microsoft Edge (Chromium)**; los navegadores de escritorio recientes basados en Chromium (Chrome, Edge, Opera, Brave…) son el entorno probado de forma principal y deberían ofrecer la experiencia más completa. Diferencias conocidas con otros motores:
- **Firefox / Safari** — la API File System Access (`showSaveFilePicker`) no está disponible: *Guardar* recurre a una **descarga** estándar del archivo `.rae.json` (y *Cargar* a un selector de archivos clásico) en lugar de escribir directamente en el archivo abierto. Las funciones principales siguen disponibles en Firefox y Safari, pero pueden existir diferencias, en particular para el portapapeles, la gestión de archivos, la impresión y el renderizado de los documentos generados.
- **Firefox antiguos (< 127)** — no se admite copiar una matriz al portapapeles **como imagen** (`ClipboardItem`); los botones de descarga PNG y SVG siguen disponibles.
- **Dispositivos táctiles** — las interacciones de arrastrar y soltar (chips, kanban, encabezados de columna) están pensadas para el uso con ratón; existen alternativas mediante teclado y menús (Ctrl+flechas en el kanban y las matrices, flechas ▲/▼ en el menú de columna), pero la herramienta está diseñada para su uso en escritorio.
---
## Código de terceros
RAE incorpora exactamente **una biblioteca de terceros**: [**fflate** v0.8.2](https://github.com/101arrowz/fflate) (licencia MIT, © Arjun Barrett), una implementación ZIP/deflate pequeña y rápida. Proporciona el contenedor ZIP requerido por las exportaciones a Word (`.docx`) y Excel (`.xlsx`), ya que los archivos OOXML son archivos ZIP de partes XML. La biblioteca está **incluida en línea** en el archivo HTML, junto con su aviso de licencia, de modo que la aplicación sigue funcionando completamente sin conexión, sin necesidad de ningún recurso externo en tiempo de ejecución. Todo lo demás (motor de Markdown, exportación SVG/PNG, generación de OOXML, componentes de la interfaz) está escrito desde cero para este proyecto.
---
## Desarrollo
Este proyecto se desarrolló con **[Claude Code](https://claude.com/claude-code)** (Anthropic), utilizando el modelo **Claude Opus 4.8**, bajo la dirección de su autor.
---
## Reportar errores e ideas
¿Has encontrado un error o tienes una sugerencia? [Abre un issue en GitHub](https://github.com/StephaneV/Risk-Analysis-Editor/issues). Para los errores, incluye tu navegador y sistema operativo, la versión de la aplicación (que se muestra en *Acerca de*), qué esperabas que ocurriera, qué ocurrió realmente y —cuando sea posible— un `.rae.json` mínimo que lo reproduzca (comprímelo en zip o pégalo en un bloque de código, ya que GitHub no acepta archivos adjuntos `.json` directamente).
---
## Licencia
Distribuido bajo la licencia **MIT** — consulta [`LICENSE`](https://github.com/stephanev/risk-analysis-editor/blob/main/LICENSE).
© 2026 Stéphane Vinter