Contratos y acuerdos legales
Un contrato es texto normativo con datos dentro: partes, fechas, importes, plazos, niveles de servicio. STXT permite escribirlo de modo que el texto siga siendo texto —párrafo a párrafo, cláusula a cláusula— y los datos sean datos, extraíbles y comprobables, en el mismo documento.
Esta página no trata de sustituir al documento legal firmado ni al proceso jurídico que lo acompaña. Trata del formato fuente de contratos, acuerdos marco, acuerdos de nivel de servicio, acuerdos de confidencialidad y políticas internas: el fichero del que salen el PDF, la plantilla de la siguiente versión y los datos que otros sistemas necesitan.
Hoy esos datos están dentro de los párrafos. Para saber cuándo vence un acuerdo, qué importe se factura o qué tiempo de respuesta se comprometió hay que leer el documento, y un sistema que necesite esos valores los recibe copiados a mano. Las versiones se comparan abriendo dos ficheros binarios, y la cláusula estándar que el departamento legal aprobó una vez se reescribe en cada contrato con pequeñas variaciones que nadie detecta.
Un acuerdo de servicios
Agreement (com.acme.legal.contract):
Id: AGR-2026-001
Title: Acuerdo de prestación de servicios de soporte
Status: Signed
Effective date: 2026-02-01
Parties:
Party: ACME Corp
Role: Proveedor
Registration: B-12345678
Party: Example Ltd
Role: Cliente
Registration: GB-87654321
Term:
Start: 2026-02-01
End: 2027-01-31
Payment:
Fee: 12000
Currency: EUR
Billing period: Monthly
Governing law: ES
Clauses:
Clause: Objeto
Number: 1
Text >>
El Proveedor prestará al Cliente los servicios de soporte técnico
descritos en el Anexo I, en el horario y con los niveles de servicio
que en él se establecen.
Clause: Confidencialidad
Number: 2
Text >>
Cada parte tratará como confidencial toda información no pública
recibida de la otra en el marco de este acuerdo, y no la divulgará a
terceros sin consentimiento previo y por escrito.
No se considerará confidencial la información que sea de dominio
público o cuya divulgación exija la ley.
Clause: Limitación de responsabilidad
Number: 3
Text >>
La responsabilidad total de cada parte no excederá el importe anual
del contrato. Esta limitación no se aplicará en caso de dolo o
negligencia grave.
Internal notes >>
Cláusula estándar LEG-07, aprobada por el departamento legal el
2025-11-03. No modificar sin revisión jurídica.
History:
Revision: Versión inicial
Date: 2026-01-15
Revision: Actualización de las condiciones de pago
Date: 2026-01-28El documento se lee de arriba abajo como un contrato: identificación, partes, duración, pago, cláusulas. Lo que cambia respecto a un documento de texto corriente es que cada dato tiene nombre, y que cada cláusula es un nodo con su texto dentro.
Qué es dato y qué es texto
El criterio es el mismo que en cualquier documento: es dato lo que alguien va a consultar, comparar o comprobar sin leer el contrato entero.
- Las partes, las fechas, el importe y la ley aplicable son datos. Son lo que un sistema de facturación, una alerta de vencimiento o un informe de riesgos necesitan, y con un nodo propio se obtienen sin interpretar prosa.
- El texto de cada cláusula es texto, en un bloque
>>que admite varios párrafos. No se fragmenta en frases ni se reescribe en una notación formal: es la redacción legal, tal cual. - Cada cláusula es un nodo con su título como valor y su número como hijo, lo que permite referirse a ella, ordenarla y compararla entre versiones. Dos contratos que comparten una cláusula estándar la tienen como el mismo bloque, y un diff muestra si alguien la alteró.
- Las notas internas van en un bloque aparte, dentro de la cláusula a la que se refieren, y no forman parte del texto contractual: el proceso que genera el PDF las omite, el que prepara la revisión las muestra.
La plantilla
Template (@stxt.template): com.acme.legal.contract
Description >>
Agreement: Contrato o acuerdo entre dos o más partes
Clauses: Cláusulas numeradas; el texto es la redacción legal literal
Internal notes: Notas de revisión; no forman parte del contrato
Structure >>
Agreement:
Id: (1)
Title: (1)
Status: (1) ENUM [Draft, Signed, Terminated]
Effective date: (?) DATE
Parties: (1)
Party: (2+)
Role: (1)
Registration: (?)
Term: (?)
Start: (1) DATE
End: (?) DATE
Payment: (?)
Fee: (1) NUMBER
Currency: (1) ENUM [EUR, USD, GBP]
Billing period: (?) ENUM [Monthly, Quarterly, Yearly]
Governing law: (?)
Clauses: (?)
Clause: (*)
Number: (?) NATURAL
Text: (1) TEXT
Internal notes: (?) TEXT
History: (?)
Revision: (*)
Date: (1) DATELo que la plantilla garantiza es lo que una revisión legal comprueba primero, y lo comprueba el editor al escribir:
- Un acuerdo tiene al menos dos partes (
(2+)), cada una con su papel. - Las fechas son fechas válidas y el importe es un número;
Fee: 12.000 €no pasa. - La moneda y el periodo de facturación están en una lista cerrada: no hay
Euros,euryEURconviviendo en tres contratos. - Toda cláusula tiene texto. Un título sin redacción no es una cláusula.
- El estado es uno de tres; un contrato
SignedsinEffective datesigue siendo válido para la plantilla (la fecha es opcional), y es el proceso quien decide si lo admite.
Y lo que no restringe, a propósito: la redacción de las cláusulas, su número y su orden. La plantilla no impone el contrato; impone que el contrato sea completo.
Un acuerdo de nivel de servicio
Un SLA es el caso en el que más datos hay dentro del texto legal: objetivos, tiempos, penalizaciones. Con nodos propios, esos valores son los que un sistema de monitorización compara con la realidad:
SLA (com.acme.legal.sla):
Service: Plataforma de pagos
Agreement: AGR-2026-001
Effective date: 2026-03-01
Availability:
Target percentage: 99.9
Measurement period: Monthly
Response times:
Severity: Critical
Max response minutes: 30
Severity: High
Max response minutes: 120
Severity: Normal
Max response minutes: 480
Penalties:
Penalty: Incumplimiento de disponibilidad
Condition >>
Disponibilidad mensual inferior al objetivo.
Consequence >>
Descuento del 10 % en la factura del mes afectado.
Legal text >>
Las métricas se medirán conforme a los procedimientos descritos en el
anexo técnico. Las partes revisarán los objetivos anualmente.Template (@stxt.template): com.acme.legal.sla
Description >>
SLA: Acuerdo de nivel de servicio asociado a un contrato
Structure >>
SLA:
Service: (1)
Agreement: (?)
Effective date: (1) DATE
Availability: (1)
Target percentage: (1) NUMBER
Measurement period: (1) ENUM [Monthly, Quarterly]
Response times: (?)
Severity: (*)
Max response minutes: (1) NATURAL
Penalties: (?)
Penalty: (*)
Condition: (1) TEXT
Consequence: (1) TEXT
Legal text: (?) TEXTAgreement: AGR-2026-001 enlaza el SLA con el contrato al que pertenece, por su
identificador. El objetivo de disponibilidad y los tiempos de respuesta son números:
el panel que mide el servicio los lee del mismo fichero que firmaron las partes, y
no de una copia en su configuración.
En el flujo de trabajo
- Versiones: cada contrato es un fichero en un repositorio, y cada revisión es un
diff legible: qué cláusula cambió, qué fecha se movió. El nodo
Historyrecoge el resumen; el repositorio, el detalle. - Cláusulas estándar: el departamento legal mantiene sus cláusulas aprobadas como fragmentos de texto; un contrato las incorpora copiándolas, y un script compara cada cláusula con la versión aprobada y señala las que difieren.
- Validación:
stxt validate contracts/(La línea de comandos) en integración continua rechaza un acuerdo sin partes, sin fecha válida o con un estado fuera de la lista. - Extracción: del árbol canónico salen los vencimientos del trimestre, los importes por cliente o los SLA con objetivo inferior al 99,9 %, sin leer un solo contrato.
- Publicación: el PDF o el documento firmable se genera a partir del fichero, omitiendo las notas internas.
Límites
STXT no aporta validez jurídica, firma electrónica ni custodia: el documento
firmado sigue siendo el que produce el proceso legal, y este fichero es su fuente.
Tampoco interpreta el texto de las cláusulas: una condición escrita en prosa («salvo
en caso de dolo») es texto para el lenguaje, y solo una persona, o una aplicación
que la modele como datos, puede evaluarla. Y la plantilla no comprueba coherencia
entre campos —que End sea posterior a Start, que el SLA cite un contrato que
exista—: eso es trabajo del script que recorre el repositorio.
El mismo enfoque de datos dentro del texto, para documentos más ligeros, se desarrolla en Documentos corporativos; STXT frente a XML compara el formato más cercano para este tipo de fuente normativa, y el tutorial recorre el lenguaje en sí.