@ -198,8 +198,8 @@ Queda una condición del autor: el push (L-123).
| L-155 | Announce sin pin directo en attach (default ON) ni en motor desnudo (opt-in); la viñeta de attach de sema.md nombra solo `defineEngineSemantic` y omite `defineUixServices({ events: { announce: false } })`, que también sirve | F4 adversarial L-ADV-5/6 | — | pequeño | DIFERIDO | hoy ciertas (medido); solo contracts.test.ts:670-702 pinea standalone |
| L-156 | Siete handoffs de julio en minúscula (`docs/process/continue-*.md`: agente, arts-docs-reconciliation, audit-fixes, cleanroom-fixes, proof-of-human, runed-tabbable-port, with-stumbles-s2-s6) quedaron fuera del censo del plan | F6 | — | — | DATO | no llevan cabecera CONGELADO ni están transcritos aquí: son históricos (varios se declaran cerrados en su cabecera) |
| L-157 | `docs-check` I10 cosecha los identificadores del código LÍNEA A LÍNEA (`identifiersOf`), así que el conjunto de verdad sigue a cómo prettier parte o junta las listas de import/export: 219 de 267 READMEs cambiaron su conjunto (55 crecen, 76 encogen) | F5 medición de guards (8a7a31fb9) | — | pequeño | ARREGLADO | `docs-check` I10 usa ahora AST de TypeScript para declaraciones e imports/exports de `.ts` y bloques `<script>` de `.svelte`; prueba de formato compacto/multilínea 2/2, inyección negativa de prop fantasma rechazada y `docs:check` 0/0 tras restaurar el README. Sin cambio de runtime. |
| L-158 | `pack-census.test.ts` detecta emisiones con `source.includes("'evento'")`: solo la comilla SIMPLE. Una emisión escrita con comilla doble o backtick produce un falso «nadie lo emite» | F5 medición de guards | — | trivial | CONFIRMADO | medido: dos emisiones de chronos estaban con comilla doble y el formateo las normalizó. Solo puede dar rojo falso, nunca tapar |
| L-159 | `recipe-css-contract.test.ts` delimita el lado derecho de un `export type` con el PRIMER `;`: un infractor repartido en ≥2 miembros de un tipo objeto queda fuera del barrido | F5 medición de guards | — | trivial | CONFIRMADO | hipotético hoy: 0 fugas medidas en el árbol (ningún literal de rol vive en el cuerpo de un `export type` fuera del span) |
| L-158 | `pack-census.test.ts` detecta emisiones con `source.includes("'evento'")`: solo la comilla SIMPLE. Una emisión escrita con comilla doble o backtick produce un falso «nadie lo emite» | F5 medición de guards | — | trivial | ARREGLADO | El censo reconoce literales de evento con comillas simples, dobles y backticks; prueba de las tres formas y rechazo de nombre distinto/sin comillas. Sin cambio de runtime. |
| L-159 | `recipe-css-contract.test.ts` delimita el lado derecho de un `export type` con el PRIMER `;`: un infractor repartido en ≥2 miembros de un tipo objeto queda fuera del barrido | F5 medición de guards | — | trivial | ARREGLADO | El guard de roles usa AST de TypeScript y recorre el tipo completo; prueba sintética de objeto con miembros separados por punto y coma, exclusión de Extract y tipo privado, y corpus exportado no vacío. Sin cambio de runtime. |
| L-160 | `.prettierrc` usa `endOfLine: "auto"`: un CR huérfano en un fichero hace que Prettier lo reescriba ENTERO en CR, y entonces el fichero es UNA sola línea para cualquier guard que parta por saltos de línea | F5 (8a7a31fb9) | — | pequeño | DIFERIDO | pasó en `REVIEW-theming-2026-08-24.md` (normalizado a LF ahí mismo); fijar `endOfLine: "lf"` reescribiría el árbol entero: fila aparte |
| L-161 | El `README.md` de la raíz era una plantilla npm vacía que mandaba `npm install vicen`, con el repositorio `private: true` y sin paquete publicado | pasada de documentación 2026-09-17 | — | trivial | ARREGLADO | reescrito como puerta: la tesis en cuatro líneas, «se consume como fuente», y la tabla de a dónde ir |
| L-162 | No existía ninguna página que describiera el repositorio como objeto: sus zonas, la ley de congelación de `web/routes/`, `scripts/` como zona tipada, el workspace único | pasada de documentación 2026-09-17 | — | pequeño | ARREGLADO | NUEVA `docs/repository.md` (E0), enlazada desde el mapa, el README de la raíz, getting-started y AGENTS.md |