# Fase 1: baseline y clasificación de capacidades

## Baseline congelada

La baseline `ll12-active-phase0-v1` representa la última ejecución de Fase 0:

- huella del corpus: `e3c317b27c602ef06a50a4fe9d04a95667c7da215170663b54474125037072c7`;
- 278 contenidos únicos;
- 6.881 objetos fuente;
- 664.035 apariciones de propiedades y 664.035 trazas;
- 165 claves objeto/propiedad `NOT_VERIFIED`;
- 0 formatos verdes, 249 amarillos y 29 rojos.

La certificación final conserva todos los invariantes del corpus y reduce las claves `NOT_VERIFIED` de 165 a 0. Los 278 contenidos únicos quedan en verde, sin objetos perdidos, propiedades silenciosas ni objetos sin modelo.

## Evidencia revisada

| Familia | LL12 | Importador | Modelo/JSON | PHP | Harbour | Xailer | Estado |
|---|---|---|---|---|---|---|---|
| Fuente de texto | `FaceName`, `Size`, `Bold`, `Italic`, `Underline`, `Strikeout`, `Color` | `extractFont()` | `TText` serializa las propiedades | `TText` compone IR y `TSalidaHtml` las consume | `TText` carga y compone IR | `TRenderTPrinter` configura `TFont` | `COMPLETE` |
| Fuente por defecto | `Default` | Usa valores internos, no `DefFont` del documento | Propiedades destino existentes | Disponible | Disponible | Disponible | `PARTIAL` |
| Metadatos GDI | `GdiCharSet`, `OutPrecision`, `PitchAndFamily`, `Width` | No consumidos | Sin destino equivalente | — | — | — | `IMPORTER_MISSING` |
| Marcos de texto | `Frame/*` | `createTextObject()` fuerza bordes a `false` | El modelo sí dispone de bordes | Disponible | Disponible | Disponible | `IMPORTER_MISSING` |
| Flujo de texto | `Adjusted`, `bPageWrap`, `bBottomAligned`, espaciados | `bPageWrap` y alineación consumidos; resto según registro | `lAllowPageBreak` y propiedades de texto | Paginación disponible | Paginación disponible | Consume el IR | Mixto |
| Tabuladores/formateadores | `Tab`, `TabAlign`, `OutputFormatter` | No consumidos | Sin modelo destino | — | — | — | `IMPORTER_MISSING` |
| Relaciones comunes | `GroupID`, `LinkToID`, `LinkMode`, `WrapBefore` | `baseObject()` no crea la relación | Sin relación equivalente | — | — | — | `IMPORTER_MISSING` |
| Celdas de tabla | tipografía, ancho, alto, alineación, fondo y bordes | Se transforman a `hSections` | `TTable` conserva objetos anidados | `TTable` compone celdas | `TTable` compone celdas | Consume el IR resultante | `PARTIAL` |
| Formateadores de celda | `OutputFormatter`, barcode/imagen embebidos | No se conservan completamente | Destino incompleto | — | — | — | `IMPORTER_MISSING` |
| ID 10/11 | 41 objetos | Importación semántica completa | `TFormattedText` / `TChart` | Implementado | Implementado | HTML/Xailer implementado | `COMPLETE` |

`COMPLETE` exige evidencias positivas en modelo JS, interfaz/serialización, PHP, Harbour, renderer PHP y Xailer. Si una evidencia configurada desaparece, el registro degrada automáticamente el estado a `PHP_MISSING`, `HARBOUR_MISSING`, `XAILER_MISSING` o `NOT_VERIFIED`.

## Ranking actual

Ordenado por formatos afectados, apariciones y severidad:

| # | Familia | Formatos | Apariciones | Propiedades |
|---:|---|---:|---:|---:|
| 1 | Relaciones, grupos y flujo común | 278 | 27.524 | 36 |
| 2 | Flujo, ajuste y paginación de texto | 276 | 33.881 | 6 |
| 3 | Metadatos secundarios de fuente | 276 | 27.435 | 5 |
| 4 | Marcos y bordes de texto | 276 | 26.965 | 5 |
| 5 | Formateadores y tabulaciones de texto | 276 | 17.325 | 3 |
| 6 | Geometría y alineación de celdas | 237 | 91.419 | 9 |
| 7 | Bordes, fondos y patrones de tabla | 237 | 86.162 | 11 |
| 8 | Contenido y formateadores de celdas | 237 | 54.302 | 8 |
| 9 | Agrupación, supresión y paginación de tablas | 237 | 9.912 | 8 |
| 10 | Escalado y modo de imágenes | 231 | 500 | 2 |

## Recomendación

La siguiente implementación debería abordar **marcos y bordes de texto**. Afecta a 276 formatos, tiene impacto visual inmediato y la fuente LL12 ofrece una correspondencia directa con las propiedades de borde que ya existen en los modelos y renderizadores. No requiere introducir antes un modelo conceptual nuevo, a diferencia de relaciones, paginación, tabuladores o `OutputFormatter`.

ID 10 e ID 11 disponen además de una validación visual automatizada independiente sobre sus 41 apariciones únicas.

## Validación sin modificar plantillas

La suite histórica `tools/ll12_import/test_import_lst.php` ejecuta el importador con `--overwrite` y reescribe cuatro plantillas de regresión. Para validar esta fase se guardaron sus bytes antes de la ejecución y se restauraron después. La comparación SHA-256 final devolvió `LBL_NET_CHANGED_AFTER_RESTORE=0`.
