feat(cosmobiologia-corpus): tomografía por dominio + plantilla y guía

El corpus ya rebana la carta en tajadas vivenciales: una sola
configuración mirada plano a plano, sin promediar la contradicción.

- Colocacion / AspectoEnCarta: la posición real de un planeta en una
  carta — el puente entre el motor astronómico y las claves del JOIN.
- combinaciones_de_carta: deriva todas las CombinacionId de una carta.
- rebanar_por_dominio: la tomografía — cada planeta@cN cae en el
  dominio de su casa, cada planeta·signo hereda el de su casa, y un
  aspecto puentea apareciendo en las dos tajadas que conecta.
- Corpus::interpretar_por_dominio: el JOIN agrupado por dominio,
  entrada directa del gráfico «por tajadas».
- CombinacionId acepta el alias ASCII '/' del punto medio '·'.
- ejemplo.ron: plantilla cargable y comentada del corpus.
- GUIA.md: los pasos exactos para generar el corpus a mano.

12 tests verdes.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
sergio
2026-05-22 18:18:16 +00:00
parent 121aa130af
commit 43e6b32e15
9 changed files with 852 additions and 20 deletions
@@ -0,0 +1,158 @@
# Cómo generar el corpus de interpretación
Esta guía dice **exactamente** qué hacer, a mano, para construir el
corpus que `cosmobiologia` usará para interpretar cartas sin que ninguna
IA invente una palabra.
## Qué es (y qué NO es) el corpus
El corpus **no es un set de reglas matemáticas**. No "calcula" la
interpretación. Las reglas —qué planeta en qué signo, qué aspecto con
qué orbe— las computa el motor astronómico. El corpus es la **biblioteca
de evidencia**: fragmentos de texto —de los libros y de tu propia
escritura— recortados y **etiquetados** con la combinación exacta que
describen.
En runtime, las combinaciones de una carta hacen un **JOIN** contra el
corpus y traen los textos, citados y con fuente. La síntesis (tejerlos
en un párrafo continuo) es una capa posterior; el corpus solo
**almacena** y **recupera**.
La contradicción no se promedia. Un Marte hiperdisciplinado en el
trabajo y disperso en la soledad **no** se colapsa a "medio
disciplinado": cada fuerza vive intacta en su **dominio** vivencial. Por
eso el corpus rebana la carta en tajadas (`Vital`, `Social`, `Psiquico`)
— como ver un cuerpo en cortes tomográficos.
## El formato
Un archivo `.ron`. Mira `ejemplo.ron` en esta misma carpeta: es una
plantilla cargable y comentada. Tiene dos secciones, `arquetipos` y
`pasajes`.
### El "código de barras" de una combinación
Cada pasaje se etiqueta con una clave-cadena:
| Tipo | Sintaxis | Ejemplo |
|---|---|---|
| Planeta en signo | `planeta·signo` o `planeta/signo` | `mars·virgo`, `mars/virgo` |
| Planeta en casa | `planeta@cN` | `mars@c6` |
| Aspecto entre dos planetas | `a kind b` (tres palabras) | `mars square saturn` |
Reglas de los identificadores:
- minúscula, ASCII, **una sola palabra** (usa `_`: `north_node`);
- usa siempre el **mismo** nombre — `mars`, no `Marte` aquí y `mars`
allá, o el JOIN no engancha;
- en un aspecto el orden da igual: `mars square saturn` y
`saturn square mars` quedan como la misma clave.
## Los pasos
### Paso 1 — Crea tu archivo
```sh
cd crates/modules/cosmobiologia/cosmobiologia-corpus
cp ejemplo.ron corpus.ron
```
Trabaja sobre `corpus.ron`. Borra los tres pasajes-plantilla cuando
tengas los tuyos.
### Paso 2 — (Opcional, recomendado) Escribe la ontología
En la sección `arquetipos`, una entrada por cada planeta, signo, casa y
aspecto que uses. Cada una lleva un `perfil`: un mapa de **dimensiones
psicológicas** —las nombras tú— con un peso en `[-1.0, 1.0]`.
```ron
(
nombre: "mars",
tipo: planeta, // planeta | signo | casa | aspecto
perfil: {
"accion": 0.9,
"deseo": 0.7,
},
),
```
Esto **no es obligatorio para el JOIN** (el JOIN solo usa `pasajes`),
pero es la base para, más adelante, deducir el perfil de una combinación
que no llegaste a escribir. Si recién empiezas, puedes dejar
`arquetipos: []` y volver luego.
### Paso 3 — Cosecha los pasajes
Esta es la carne. Una entrada en `pasajes` por cada fragmento de
interpretación:
```ron
(
combinacion: "mars·virgo",
texto: "Cita literal, corta, del libro — o tu propia redacción.",
fuente: "Autor, Título de la obra, p. 123",
),
```
Dos formas de avanzar; elige una:
- **Por fuente** — tomas un libro y lo vacías combinación por
combinación. Bueno para cubrir un autor entero de forma pareja.
- **Por carta** — tomas la carta que estás leyendo *ahora*, listas sus
combinaciones y solo escribes esas. Bueno para tener algo útil ya, sin
esperar a "terminar" el corpus (que nunca termina).
Recomendado: empieza **por carta**. El corpus crece con cada consulta
real.
### Paso 4 — Cuida la fuente y el derecho de autor
- Cita **corto** y **textual**, y **atribuye siempre** (autor, obra,
página). Fragmentos breves con cita son uso legítimo.
- No copies capítulos enteros. Si quieres volcar una idea larga,
**reescríbela con tus palabras** y pon `fuente: "propio"`.
- Convención reservada: `fuente: "deducido"` queda para perfiles
compuestos por código a futuro, no para texto de libro.
### Paso 5 — Acota el dominio cuando el texto lo pida
Si un pasaje describe la combinación **solo en un plano** de la vida,
márcalo:
```ron
(
combinacion: "mars square saturn",
texto: "...",
fuente: "...",
dominio: Some(psiquico), // vital | social | psiquico
),
```
Sin `dominio`, el pasaje aplica al dominio que le toque por la posición
del planeta en la carta. Con `dominio`, lo fuerzas. Úsalo poco: solo
cuando el autor habla de un plano concreto.
### Paso 6 — Valida el archivo
```sh
cargo test -p cosmobiologia-corpus
```
Si tu RON tiene un error de sintaxis, el test `ejemplo_ron_carga`
te marca el formato correcto; para validar `corpus.ron` directamente,
cárgalo desde un binario o un test propio con `Corpus::desde_ron`.
### Paso 7 — Busca los huecos
Con la carta cargada, `Corpus::huecos(&combinaciones)` devuelve las
combinaciones de esa carta que **no tienen ni un pasaje**. Esa lista es,
literalmente, tu cola de trabajo: lo que falta escribir.
## Cuánto es "suficiente"
El universo completo es grande (≈10 planetas × 12 signos = 120, otras
120 planeta-en-casa, y los aspectos). No lo persigas. El 80 % del valor
sale del 20 %: las combinaciones que de verdad aparecen en las cartas
que lees. Empieza con una carta, deja que `huecos` te guíe, y el corpus
se llena solo, consulta a consulta.