feat(short): el prompt sabe cuánto texto cabe dibujado, y el informe grita si quedó ilegible
Build & Deploy ResearchOwl / build-and-push (push) Successful in 10s

x-fits llega vivo del contrato y se pone delante del modelo: es el único
límite que nada rechaza, porque el renderizador encoge en vez de fallar. Sin
esto el modelo escribe una cita de 58 caracteres para un hueco de 16 y se
entera cuando ya está renderizada.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
ChemaVX
2026-08-06 16:19:48 +00:00
co-authored by Claude Fable 5
parent a13c3062b6
commit 129f436fd2
5 changed files with 63 additions and 1 deletions
+6
View File
@@ -406,6 +406,12 @@ def _describe_field(name: str, schema: dict, required: bool, defs: dict,
bits.append("no vacío")
if "maxLength" in schema:
bits.append(f"máx {schema['maxLength']} caracteres")
# `x-fits` es cuánto texto cabe DIBUJADO al tamaño de diseño, medido por
# shortsmith contra sus propias fuentes. No se valida — los caracteres son
# un proxy de los píxeles — pero es lo único que evita que el modelo escriba
# una cita de 58 caracteres en un hueco de 16 y salga dibujada ilegible.
if "x-fits" in schema:
bits.append(f"CABE ~{schema['x-fits']} caracteres dibujados")
for key, text in (("minimum", ""), ("maximum", ""),
("exclusiveMinimum", ">"), ("exclusiveMaximum", "<")):
if key in schema: