Opus: la Obra y todas las formas en que se expresa
Un framework en Rust para Obras de autor: un libro, un taller o un programa educativo son espacios de un mismo todo coherente, y lo impreso, lo digital, la web y lo interactivo son sus expresiones, nunca su definición.
Una Obra es un todo coherente. Impreso, digital, web e interactivo son cómo se expresa, nunca lo que es.
El vocabulario de tu Obra sigue siendo tuyo, las reglas de su lengua llegan comprobadas contra fuentes citadas, y una copia solo llega a un tercero como envío registrado.
Implementa ContentLoader para tu Obra y el framework la sirve: MCP, recuperación y procesado tras traits públicos estables, sin lógica del consumidor dentro.
Extracción de texto, corrección, composición ODT y typst, búsqueda semántica local y vigilancia de ficheros: cada una es una expresión de la Obra, ninguna su definición.
Una fuente, un vocabulario, todos los formatos: las expresiones de una Obra no pueden contradecirse sin que algo falle antes.
Primero la Obra, después sus espacios, luego sus expresiones.
Lo que gana una Obra cuando es la unidad
Tres cosas que se sostienen porque el dominio es la Obra, no el libro, el sitio o el curso en que se publique.
Espacios que coexisten
Un libro, un cuaderno de bitácora, un taller y un material educativo son espacios de una misma Obra, cada uno con sus fuentes, su estructura y su estado editorial. Cada formato se proyecta desde un espacio, aguas abajo de él, y nunca lo redefine.
Reglas con fuente y comprobación
La ortotipografía de una lengua es un catálogo: cada regla enuncia la norma, da un ejemplo correcto y otro incorrecto, cita su fuente por capítulo y sección, y nombra la comprobación que la sostiene. Una Obra compone el catálogo y puede endurecer una regla, nunca relajar una obligatoria.
La frontera entre una lengua y una Obra
El título, el término de capítulo, los pies de figura y los recuadros son de la Obra y viven solo en su configuración. La ortografía, la puntuación y la limpieza son de la lengua y viven en el framework, aplicadas solo a la Obra que declara esa lengua.
Construir sobre Opus
Tres pasos de una Obra a sus expresiones.
Declara la Obra
El vocabulario y la presentación de tu Obra van en su propia configuración (project, chapters, presentation), tipados en Nickel, con valores por defecto en inglés en el framework.
Implementa los traits
ContentLoader entrega al framework cada sección como SectionContent; PedagogyEngine, EmbeddingProvider y VectorStore son las otras costuras estables. El framework incluye mocks para todos ellos.
Exprésala
opus-processor compone la salida ODT y typst, opus-rag indexa la Obra para la búsqueda semántica local y opus-mcp la sirve a los agentes mediante McpServer<T>.
Construye sobre la Obra, no sobre su formato
Opus lo consumen implementaciones propias de cada Obra mediante dependencias de ruta. El framework no lleva lógica del consumidor, así que la segunda Obra no hereda las decisiones de la primera.