# Especificación de textos de interfaz

Escribe cada cadena que necesita una interfaz — incluidas las de los estados que salen mal — con la clave, el contexto y la mecánica que lleva cada una.

## Entregable

Un documento Markdown, `ui-copy-specification.md`, con la estructura fijada en **Salida** más abajo. Toma la salida de **Especificación de flujos de usuario** y es la entrada tanto de la construcción como de la traducción.

## Entradas obligatorias

- **Un inventario de flujo o de pantallas** — los estados que necesitan palabras. Las secciones 3 y 5 de `user-flow-specification.md` son la forma esperada.
- **Las restricciones de voz del producto** — cómo se dirige a quien lee, cuánta formalidad tiene, qué términos debe usar y cuáles no.
- **Los idiomas en los que se publicarán las cadenas**, o la declaración de que solo se prevé uno.

Si falta el inventario, detente y repórtalo. Escribir textos sin una lista de estados produce cadenas para las pantallas que funcionan y silencio para las que fallan.

## Entradas opcionales

- Restricciones de maquetación que imponen un presupuesto de caracteres a una cadena concreta
- Las respuestas de estado y de error que devuelve el sistema, con las condiciones que las disparan
- El catálogo de cadenas existente y el esquema de claves que usa
- Terminología ya decidida, con quién la decidió
- Redacción que debe aparecer literal por motivos legales o regulatorios
- Lo que escucha malinterpretar quien atiende las peticiones de soporte

Cuando no se aporta un presupuesto de caracteres, la cadena se escribe corta y se marca `presupuesto desconocido`. Un presupuesto nunca se inventa, porque quien construye a partir de la especificación lee cualquier cifra como una restricción.

## Ejecución

**1 — Enumerar los estados que necesitan palabras.** Del inventario: cada pantalla y cada estado vacío, en carga, de error, de permiso denegado y de éxito parcial que haya en ella. Un estado que el inventario no define no recibe cadena; va a la lista de lo que falta.

**2 — Dar una clave a cada cadena.** Estable, estructurada por el sitio donde vive la cadena e independiente de las palabras, para que reescribir no deje huérfana una traducción. Registra a qué estado pertenece cada clave.

**3 — Escribir el mobiliario.** Títulos, rótulos de sección, etiquetas de campo, textos de ayuda, botones y confirmaciones. Un botón nombra la acción que ejecuta en lugar de concordar con la frase de encima, para que siga teniendo sentido para quien llega a él solo.

**4 — Escribir los estados vacíos y de carga.** Qué habrá aquí, qué lo trae y qué puede hacer mientras tanto quien lee. Un estado vacío que solo informa de que está vacío desperdicia el único momento en que se busca una instrucción.

**5 — Escribir los errores.** Qué ha pasado, qué puede hacer a continuación quien lee y a quién preguntar cuando no puede hacer nada. Asocia cada mensaje a la condición o respuesta que lo dispara, y deja fuera del mensaje las causas internas sobre las que nadie puede actuar.

**6 — Registrar la mecánica de cada cadena.** Las variables y qué las rellena, las formas de plural necesarias, el presupuesto de caracteres cuando la maquetación lo impone, y si la cadena admite recorte o no debe recortarse.

**7 — Señalar lo que romperá la traducción.** Cadenas montadas a partir de fragmentos, cadenas cuyo sentido depende del orden de las palabras y cadenas que deben concordar en género o número con una variable. Cada una con la nota que necesita quien traduce para resolverla.

## Salida

`ui-copy-specification.md`, en este orden:

- **1. Entrada y fecha** — a partir de qué inventario se escribieron las cadenas y cuándo
- **2. Restricciones de voz aplicadas** — tratamiento, formalidad, términos obligados, términos prohibidos, cada uno con su fuente
- **3. Cadenas** — por cadena: clave, el estado al que sirve, el texto y el contexto que necesita quien traduce
- **4. Errores** — por mensaje: la condición a la que responde, qué ha pasado y qué puede hacer a continuación quien lee
- **5. Mecánica** — por cadena: variables y su origen, formas de plural, presupuesto de caracteres o `presupuesto desconocido`, comportamiento ante recorte
- **6. Riesgos de traducción** — cadenas que dependen del orden, el género, el número o el montaje, cada una con la nota que necesita quien traduce
- **7. Estados sin cadena** — estados del inventario cuyo comportamiento es indefinido, listados con quién debe decidirlos
- **8. Información que falta** — qué impidió escribir una cadena y quién puede aportarlo

## Validación

La especificación está lista cuando se cumple todo esto:

- Cada estado del inventario de entrada tiene una cadena o una entrada en la sección 7
- Cada cadena lleva clave, el estado al que sirve y el contexto en el que se lee
- Cada mensaje de error nombra qué ha pasado y qué se puede hacer a continuación
- Cada cadena con variable declara qué la rellena y las formas de plural que necesita
- Un presupuesto de caracteres aparece solo donde lo produjo una restricción de maquetación aportada
- No existe ninguna cadena para un estado que el inventario no define

Falla la ejecución si aparece una cadena para un estado indefinido, o si aparece un presupuesto de caracteres que ninguna restricción aportada produjo.

## Gestión de fallos

- **Sin inventario de estados** — detente. Informa de que no hay contra qué escribir y de que una lista de pantallas sin estados de fallo produce textos solo para el camino que funciona.
- **Sin restricciones de voz** — escribe con sencillez, registra cada elección hecha como suposición en la sección 2 con su fuente anotada como no aportada, y nombra a quién debe confirmarlas.
- **Respuestas del sistema desconocidas** — escribe los mensajes que define el flujo, marca cada uno como `respuesta sin asociar` en la sección 4 y lista en la sección 8 qué hace falta para asociarlos.
- **Terminología en conflicto** — registra ambos términos y ambas fuentes, no uses ninguno en las cadenas y eleva el conflicto a la sección 8 como bloqueante.
- **Inventario parcial** — escribe para los estados definidos, marca el resto como `INCOMPLETO — pendiente de <estado>` y entrega. Una cadena inventada para un estado indefinido fija en su sitio el comportamiento equivocado.
