Governance · CONTRIBUTING.md
Contribuir a Tórculo
This text is in Spanish.
Gracias por asomarte. Tórculo es un estándar abierto y se agradece cualquier tamaño de ayuda: una errata en la especificación, un pliego que se lee mal, una palabra que falta en la lengua, un caso de conformidad, una segunda implementación o una materia nueva.
Todo lo que pasa aquí se rige por el código de conducta. Para vulnerabilidades, no abras un issue: sigue SECURITY.md.
Qué hay en el repositorio
| Carpeta | Qué |
|---|---|
spec/ | la especificación (SPEC.md en inglés, normativa; SPEC.es.md, traducción fiel), la gramática, los vocabularios generados desde el parser, los códigos de diagnóstico y las RFC |
conformance/ | la batería de conformidad: pliegos con su banda sonora, salidas esperadas, oráculos y el ejecutor |
governance/ | gobernanza, proceso de RFC y versiones |
canon/ | el canon de la casa y su generador |
pluma/ | la pluma a mano y el formato de lámina (Rust, Python, wasm, visor) |
materias/ | las materias WGSL (papel, acuarela, pincel, risografía, tejido, transiciones) |
sentido/ | la capa de sentido con EmbeddingGemma 2 en local |
docs/ | la chuleta, la guía de diez minutos y los llms.txt |
skills/ | las skills para agentes, empaquetadas |
site/ | la web del estándar |
tools/pesado | el turno para los trabajos pesados |
La implementación de referencia de la lengua es manim-saorín (otro repositorio) y el motor es el fork de ManimGX (otro repositorio, MIT).
Preparar el entorno
Python 3.11 o superior, Node 22 o superior, Rust estable, ffmpeg. La lengua se prueba con
manim-saorín (MESA_IMPL, MESA_PY). Todo lo pesado (compilar, rodar, cargar modelos)
pasa por el turno:
tools/pesado cargo build --release
tools/pesado python3 conformance/tools/ejecutar.py --pesadoEl bucle de trabajo
Rama desde
mastercon prefijo:spec/…,conformidad/…,canon/…,pluma/…,materias/…,web/….Un cambio normativo va por RFC (proceso): copia
spec/rfcs/0000-template.md, rellénala y abre el PR. Las erratas y aclaraciones que no cambian el comportamiento van sin RFC, con la etiquetaeditorial.Una RFC aceptada llega con al menos un caso de conformidad, y se da por implementada cuando dos implementaciones independientes lo pasan.
Antes de abrir el PR, en verde:
python3 spec/apendices.py --check python3 canon/genera.py --check && python3 canon/prueba.py python3 conformance/tools/generar.py && git diff --exit-code conformance/cases python3 conformance/tools/ejecutar.pySi tocas algo que se ve o se oye, ruédalo y míralo (una hoja de contactos con ffmpeg basta para empezar); nunca reproduzcas audio por los altavoces de una máquina compartida.
Las reglas de la casa
- El pliego no dice números. Ninguna capacidad nueva entra si obliga a escribir cifras que antes derivaba el motor.
- La ley de las tres sedes. Una palabra nueva entra a la vez en la gramática, el compilador y el intérprete, o no entra.
- Las tablas salen del parser. Los vocabularios de la especificación se regeneran con
spec/vocabularios/extrae.py; nunca se escriben a mano. - Todo ejemplo lleva su banda sonora: música, ambiente, sala y efectos.
- Español con tildes y eñes en todo lo que lee una persona; los identificadores, claves
JSON y rutas se quedan sin tilde. Ojo con los plurales en
-ciones, que no la llevan. - La raya (—) no es un guion ni lleva espacios a ambos lados:
el centro —que ya trabaja con esto— no cambia. En la lengua, la raya que separa una cabecera de su cuerpo va pegada al cuerpo:ver: votos —sí: 7. - Sin emojis en nada.
- Nada con derechos en el repositorio: los pliegos, sonidos e imágenes de prueba son propios, sintetizados o de dominio público.
- Commits en español (o en inglés correcto en la especificación normativa), sin emojis.
Licencia de lo que aportes
Al abrir un PR aceptas que tu contribución se publique bajo la licencia de la parte que cambias: CC BY 4.0 la especificación y la documentación, MIT OR Apache-2.0 el código. Contribuir a la especificación implica el compromiso de no reclamar patentes descrito en GOVERNANCE.md. No hace falta firmar ningún acuerdo aparte.