raw-data-audit-traillisted
Install: claude install-skill OrcaCl/suplemento-estrella
# Raw Data Audit Trail
Dos reglas relacionadas, confirmadas de forma independiente en dos proyectos distintos bajo esta metodología — no es una preferencia de un solo caso, es una convención ya validada dos veces.
## Regla 1 — Captura
Toda tabla que persiste filas provenientes de una fuente **externa** (Excel, API de terceros, CSV, KML, cualquier import) debe incluir una columna `raw_data` (JSON, nullable) como última columna del modelo.
```python
raw_data: Mapped[dict | None] = mapped_column(JSON, nullable=True)
```
### Por qué
- Si el parser falla o produce un valor incorrecto, el raw permite auditar exactamente qué llegó, sin depender de que el archivo fuente original siga disponible.
- Si el formato de la fuente cambia con el tiempo, se puede re-parsear desde el raw guardado sin re-importar nada.
- En producción, los archivos fuente originales suelen desaparecer (se sobrescriben, se pierden, cambian de ubicación) — el raw es el único respaldo de fidelidad que persiste junto con el dato procesado.
### Scope — a qué tablas aplica
| Tipo de tabla | ¿Lleva raw_data? |
|---|---|
| Recibe datos de una fuente externa (import de Excel, respuesta de API, parseo de archivo) | Sí |
| Datos derivados internamente (calculados, agregados, resultado de lógica propia del sistema) | No — exento |
| Metadatos internos de la aplicación (tracking de uploads, configuración) | No — exento |
Si hay duda sobre si una tabla entra en scope, la pregunta de corte es: "¿esta fila existe porq