RFCs y propuestas técnicas
Una propuesta técnica es un documento argumentativo con un ciclo de vida: se redacta, se discute, se acepta o se rechaza, y queda como registro de por qué se decidió algo. STXT conserva el flujo de texto plano y revisión que estos documentos ya tienen, y hace explícitos el estado, los autores y las relaciones entre propuestas.
Los equipos que escriben propuestas técnicas —RFC internos, registros de decisiones de arquitectura, documentos de diseño— suelen hacerlo ya en texto plano y en un repositorio: el documento se revisa como el código, con un diff y comentarios. Lo que falla no es el flujo sino la estructura: el estado de la propuesta es una palabra en la cabecera que cada autor escribe a su manera, las relaciones entre documentos son enlaces en el texto, y saber qué propuestas siguen abiertas o cuáles dependen de una que se acaba de rechazar es un trabajo manual.
Con STXT la propuesta sigue siendo un documento de texto con secciones largas, pero
su cabecera son datos. El estado es un ENUM, los autores son nodos, las referencias
a otras propuestas son valores que un programa puede seguir.
Una propuesta
RFC (com.acme.rfc):
Id: RFC-013
Title: Unificación del sistema de configuración
Status: Review
Authors:
Author: Platform Team
Created: 2026-01-05
Updated: 2026-01-10
Context >>
Hoy conviven varios formatos de configuración en los servicios internos,
cada uno con sus propias reglas de validación y sus propias herramientas.
Cada equipo nuevo elige uno, y el soporte tiene que conocerlos todos.
Proposal >>
Adoptar un único formato de configuración para los servicios internos, con
una plantilla por tipo de servicio mantenida por Plataforma. Los servicios
existentes migran cuando cambien de versión mayor; los nuevos arrancan ya con
el formato único.
Alternatives:
Alternative: Mantener los formatos actuales
Pros >>
Sin coste inicial.
Cons >>
La fragmentación se mantiene y crece con cada servicio nuevo.
Alternative: Estandarizar en el formato más extendido hoy
Pros >>
Herramientas y conocimiento ya existentes en los equipos.
Cons >>
Su validación es externa y ambigua; no resuelve el problema de fondo.
Impact >>
Los equipos migran gradualmente. Plataforma mantiene las plantillas y un
validador en integración continua.
Decision >>
En revisión por el comité de arquitectura.La cabecera es un bloque de datos: identificador, estado, autores y fechas. El cuerpo son bloques de texto con los nombres que el proceso de la organización ya usa —contexto, propuesta, alternativas, impacto, decisión—. Las alternativas son la parte más estructurada: cada una es un nodo con su título, y sus pros y contras son bloques, porque es texto que se argumenta, no datos que se cuentan.
La plantilla
Template (@stxt.template): com.acme.rfc
Description >>
RFC: Propuesta técnica sujeta a revisión y decisión
Status: Ciclo de vida de la propuesta
Related: Identificadores de otras propuestas relacionadas
Structure >>
RFC:
Id: (1)
Title: (1)
Status: (1) ENUM [Draft, Review, Accepted, Rejected, Deprecated]
Authors: (1)
Author: (+)
Created: (?) DATE
Updated: (?) DATE
Accepted date: (?) DATE
Related: (?)
Reference: (+)
Context: (1) TEXT
Proposal: (1) TEXT
Alternatives: (?)
Alternative: (*)
Pros: (?) TEXT
Cons: (?) TEXT
Impact: (?) TEXT
Risks: (?) TEXT
Decision: (?) TEXT
Consequences: (?) TEXT
Comments: (?)
Comment: (*)
Author: (1) @Author
Date: (1) DATE
Text: (1) TEXTLa plantilla fija lo mínimo que toda propuesta debe tener —identificador, título,
estado, al menos un autor, contexto y propuesta— y deja el resto opcional: una
propuesta en borrador puede no tener alternativas todavía, y una aceptada tendrá
decisión y consecuencias. Lo que no hace es restringir el texto: un bloque TEXT
admite cualquier contenido y cualquier longitud.
El ENUM de Status es el ciclo de vida del proceso. Una propuesta no está
«pendiente» ni «aprobada con matices»: está en uno de cinco estados, y cambiar de
estado es cambiar una línea.
El ciclo de vida en el repositorio
La misma propuesta, semanas después, aceptada:
RFC (com.acme.rfc):
Id: RFC-013
Title: Unificación del sistema de configuración
Status: Accepted
Authors:
Author: Platform Team
Created: 2026-01-05
Updated: 2026-01-18
Accepted date: 2026-01-18
Context >>
Hoy conviven varios formatos de configuración en los servicios internos,
cada uno con sus propias reglas de validación y sus propias herramientas.
Proposal >>
Adoptar un único formato de configuración para los servicios internos, con
una plantilla por tipo de servicio mantenida por Plataforma.
Decision >>
Se aprueba la adopción progresiva. Plataforma publica las plantillas antes
del fin del trimestre.
Consequences >>
Los servicios nuevos usan el formato único desde su creación. Los existentes
migran en su siguiente versión mayor, sin fecha límite.
Comments:
Comment:
Author: Mery Adams
Date: 2026-01-12
Text >>
Preocupa el impacto en los equipos con herramientas propias. Propongo
que la migración de los servicios existentes no tenga fecha límite.
Comment:
Author: Keyla Brown
Date: 2026-01-13
Text >>
De acuerdo con la adopción progresiva si Plataforma mantiene las
plantillas.Entre las dos versiones, el diff muestra exactamente qué cambió: el estado, la fecha de aceptación, la decisión, las consecuencias y dos comentarios. Los comentarios de la revisión se guardan en el propio documento, con autor y fecha, separados del texto principal; la discusión queda junto a la decisión, donde alguien la buscará dentro de dos años.
Relaciones entre propuestas
Una propuesta que depende de otra lo declara como dato, no solo como una frase:
RFC (com.acme.rfc):
Id: RFC-020
Title: Retirada del sistema de configuración anterior
Status: Draft
Authors:
Author: Joan Costa
Related:
Reference: RFC-013
Reference: RFC-007
Context >>
Con la adopción del formato único (RFC-013), el sistema anterior queda
sin servicios nuevos y con coste de mantenimiento creciente.
Proposal >>
Retirar el sistema anterior una vez migrados los servicios que aún lo usan.Con Related como nodo, un programa que recorra el directorio de propuestas puede
responder qué depende de qué, qué propuestas en borrador citan una rechazada, o
dibujar el grafo entero. Con la referencia solo en el texto del contexto, ninguna de
esas preguntas se puede responder sin leer.
En el flujo de trabajo
- Las propuestas viven en un directorio del repositorio, una por fichero, con la
plantilla en
.stxt/. - Integración continua ejecuta
stxt validate rfcs/(La línea de comandos) en cada cambio: una propuesta sin contexto o con un estado fuera de la lista no entra. - Un script sobre el árbol canónico genera el índice de propuestas por estado, avisa
de las que llevan más de un mes en
Reviewo lista las consecuencias de todas las aceptadas del trimestre. - El texto de cada sección se publica tal cual, en el formato que la organización use para su documentación.
Límites
STXT no impone un proceso: los nombres de las secciones, los estados y quién
puede cambiarlos son decisiones de cada organización, y la plantilla solo las
recoge. Tampoco sustituye a la herramienta de revisión: los comentarios del ejemplo
son el registro de la discusión, no un sistema de hilos con notificaciones. Y la
validación no comprueba relaciones entre documentos —que RFC-007 exista, que una
propuesta aceptada no cite una rechazada—: eso lo hace el script que recorre el
directorio.
Las actas y los informes de estado, el género vecino, se desarrollan en Documentos corporativos; el tutorial recorre el lenguaje que hay detrás de los ejemplos.