Reconstrucción de memoria a partir de Leval, Souchy, Casanova, Ovejero y el artículo de Redalyc, sin páginas a mano: certeza **B** en el núcleo (escuela y sanidad gratuitas, jubilación, jornada) y **C** en los detalles (edades exactas, quién certificaba la enfermedad, pedagogía sin exámenes), según la escala de `draft.md` §2. El criterio 5 de la semilla ([draft.md L53](../drafts/draft.md#L53)) ya lo fijaba en B. Confírmalo en Leval (*Colectividades libertarias en España*, capítulos de Aragón y Levante, sanidad federada) y en Souchy (reportajes de pueblos) antes de citar. Todo lo que sigue es **[doctrina, sin verbatim]**. **Puntos principales del tema «Derechos sociales: educación, sanidad, jubilación, jornada» (reconstrucción)** | # | Tesis | Cert. | | --- | --- | --- | | 1 | **Escuela gratuita para todos los niños de la colectividad.** Donde no había escuela se construyó o se habilitó (iglesias, casas incautadas); el maestro es un miembro más y cobra el salario familiar, no una matrícula. «Gratis» significa «pagado por el fondo común» | A | | 2 | **Escolarización obligatoria y prohibición del trabajo de menores**: los menores de 14 (15 o 16 según la colectividad) no trabajan en el campo ni en el taller; van a la escuela | B | | 3 | **Escuela racionalista**, laica y mixta, de inspiración ferreriana; se aprende para saber, no para obtener un título; sin exámenes ni premios en la versión más ortodoxa | B (racionalista) / C (sin exámenes) | | 4 | **Sanidad gratuita**: médicos, practicantes y farmacia mantenidos por la colectividad; el médico es un miembro con salario familiar y atiende sin cobrar por acto; en algunos pueblos también a los individualistas | B | | 5 | **Enfermedad e invalidez no cortan la renta**: el salario familiar se mantiene íntegro mientras dura la enfermedad; es ayuda mutua a cargo del común, no seguro por cotización | B | | 6 | **Jubilación**: los mayores de 60-65 dejan de trabajar y siguen cobrando el salario familiar íntegro; el anciano cobra como el que trabaja | B | | 7 | **Jornada**: ocho horas diarias (semana de 40-48 h según la época y el sector), sujeta a la estación en el campo; obligación de trabajar para los aptos y horas extra voluntarias por el esfuerzo de guerra | B (jornada) / C (obligación) | | 8 | **Financiación del fondo común**: escuela, sanidad, jubilación y enfermedad se pagan del fondo de la colectividad y se aprueban en asamblea; sin cuotas individuales ni aseguradoras | B | | 9 | **Servicios federados**: hospitales comarcales y escuelas regionales sostenidos por la federación (Levante, Consejo de Aragón) cuando el pueblo no podía por sí solo | C | **Ficha de confirmación del mapeo** (fuente: [draftv0.md](../drafts/draftv0.md)) - **Mapeado:** tesis 1 → [§2.7](../drafts/draftv0.md#L110) (curso sin precio = `0.000000`, `school_model.js:320`; protegido solo si precio positivo o `INVITE`, `:392-393`), [CL-10](../drafts/draftv0.md#L177) y [TK-S'01](../drafts/draftv0.md#L258); tesis 3 (certificado) → TK-S'01 («¿certifica la asamblea?», `school_model.js:1222`); tesis 2, 6 y 7 (edades y jornada) → [TK-S'02](../drafts/draftv0.md#L259) y la edad declarada en `household` de [CL-9](../drafts/draftv0.md#L176) y [TK-B'02](../drafts/draftv0.md#L225); tesis 5, 6 y 8 → CL-10 («`epoch` de enfermedad y jubilación pagado del tesoro de tribu»), [TK-B'05](../drafts/draftv0.md#L228) (depende de B'04, el tesoro de [CL-5](../drafts/draftv0.md#L172)) y [TK-D'07](../drafts/draftv0.md#L198) («¿quién los pagaba?»); tesis 9 → [TK-F'03](../drafts/draftv0.md#L250) (tesoro federado), sin mención a servicios. El veredicto [«Parcial» del criterio 5](../drafts/draftv0.md#L127) es correcto: educación gratuita por defecto, suelo inmovible de la RBU, y nada más. - **Acierto no explicitado (1):** la tesis 6 («el anciano cobra como el que trabaja») está ya en el código como principio y negada como aritmética. El suelo `floor_user: 1` (`banking_model.js:19`) y la fórmula `max(suelo, min(pool × w / W, tope))` (`:941`) garantizan que quien no publica cobra algo; el hallazgo [D](../drafts/draftv0.md#L148) lo dice («un anciano que no publica cobra el suelo») y «[Lo que no se toca](../drafts/draftv0.md#L180)» conserva ese suelo. Con [CL-4](../drafts/draftv0.md#L171) (karma fuera, coeficiente de hogar) la renta del jubilado y la del maestro son la misma renta que la de cualquier miembro, que es exactamente la doctrina de las tesis 1, 4 y 6: no hacen falta pensiones ni nóminas, hace falta que el salario familiar no dependa del trabajo. Conviene decirlo así en CL-10. - **Acierto no explicitado (2):** `Jobs` ya admite el puesto sin salario. `salary` se guarda como `0.000000` cuando no es número ([jobs_model.js L201](vendor/oasis/src/models/jobs_model.js#L201)) y la edición solo rechaza negativos ([L334](vendor/oasis/src/models/jobs_model.js#L334)), al contrario que Market (`market_model.js:182`). [§2.6](../drafts/draftv0.md#L105) solo dice que «dos relaciones son asalariadas». El médico y el maestro de las tesis 1 y 4 son eso: un puesto colectivo con salario 0 y salario familiar por CL-4, que [TK-E'03](../drafts/draftv0.md#L239) ya esboza para la bolsa de trabajo sin conectarlo con los servicios. - **Hueco 1 (grave):** «gratuito» no significa lo mismo en Oasis que en la tesis 1. En Oasis el curso gratuito es un curso en el que **nadie paga al maestro**: la matrícula de pago genera una transferencia `ECONOMIC` del alumno al autor ([school_model.js L613-L616](vendor/oasis/src/models/school_model.js#L613-L616)) y la de precio 0 no genera nada. En la colectividad «gratis» es «pagado por el común». CL-10 «conserva» el precio 0 sin decir quién mantiene al maestro; el hueco lo cierra CL-4 (el maestro cobra salario familiar por ser miembro) y hay que escribirlo (nueva TK-S'03). - **Hueco 2:** la tesis 3 (escuela sin título ni examen) tiene una costura que draftv0 no cita: los exámenes **solo existen en cursos de pago o por invitación** ([school_model.js L745](vendor/oasis/src/models/school_model.js#L745), `isProtected` en `:338`), y el certificado de un curso gratuito se emite por lecciones completadas ([L1242-L1243](vendor/oasis/src/models/school_model.js#L1242-L1243)), no por pruebas. El código ata la evaluación al pago: para la escuela racionalista eso es, por accidente, correcto (el curso gratuito no examina), pero TK-S'01 debía saberlo antes de preguntar «¿certifica la asamblea?». - **Hueco 3:** la tesis 6 se paga hoy con una renta que **hay que reclamar cada mes** y que **grava la antigüedad**. `executeEpoch` crea cada asignación como `UNCLAIMED` con 30 días de plazo (`graceDays`, [banking_model.js L982](vendor/oasis/src/models/banking_model.js#L982), regla en `:20`) y `expireOldAllocations` la marca `EXPIRED` pasados `MAX_PENDING_EPOCHS = 12` meses ([L1331-L1341](vendor/oasis/src/models/banking_model.js#L1331-L1341), constante en `:12`); y el impuesto de archivo es `días de antigüedad del feed × 0,001` ([L32](vendor/oasis/src/models/banking_model.js#L32), [L38](vendor/oasis/src/models/banking_model.js#L38), [L759-L768](vendor/oasis/src/models/banking_model.js#L759-L768)): cuanto más viejo el miembro, más paga sobre su excedente. Solo el suelo está a salvo (`:942-947`). Una jubilación que caduca si el jubilado no la pide y que cuesta más cuanto más antiguo es el feed es lo contrario de la tesis 6. CL-10 y TK-B'05 no lo tocaban. - **Hueco 4:** la elegibilidad de la RBU es tener dirección ECOin válida ([banking_model.js L924](vendor/oasis/src/models/banking_model.js#L924)), no ser miembro, ni tener edad, ni estar enfermo. Las «épocas de enfermedad y jubilación» de CL-10 necesitan otro conjunto de elegibles (por `household`) y otra `rules`; `computeEpoch` ya recibe `rules` como parámetro ([L920](vendor/oasis/src/models/banking_model.js#L920)), así que la época especial es una variante de reglas y un filtro, no un módulo nuevo. TK-B'05 no dependía de B'02 (`household`) y debía. - **Hueco 5:** la tesis 7 (jornada) estaba en TK-S'02 con la costura equivocada. `computeShares` (`industry_model.js:306-321`) convierte horas en puntos; el sitio donde se acotan horas es la contribución de trabajo, que hoy solo exige `hours > 0` ([industry_model.js L827](vendor/oasis/src/models/industry_model.js#L827), en `:824-827`), y `laborHours` del plano ([L632](vendor/oasis/src/models/industry_model.js#L632)) es una estimación de coste (`estimateBlueprint`, `:286-293`), no un límite. En `Jobs`, `job_time` `partial` o `complete` ([jobs_model.js L203-L204](vendor/oasis/src/models/jobs_model.js#L203-L204)) y `hoursOffered`/`hoursRequested` ([L228-L229](vendor/oasis/src/models/jobs_model.js#L228-L229)) describen la jornada sin acotarla. Y las edades de trabajo (tesis 2 y 6) exigen `household`: TK-S'02 tampoco dependía de B'02. - **Hueco 6:** la tesis 4 (sanidad) no tiene módulo ni tarea. No hay una sola aparición de *health*, *doctor*, *medical* ni *age* en los 70 modelos; el currículum del censo tiene nombre, descripción, foto, pdf, habilidades, ubicación, idiomas, estado y preferencias ([inhabitants_model.js L278-L298](vendor/oasis/src/models/inhabitants_model.js#L278-L298)) y ninguna edad. La sanidad se modela como puesto colectivo (acierto 2), no como mercado ni como módulo; y la enfermedad de la tesis 5 necesita quien la certifique (médico de la colectividad o asamblea), pregunta que TK-D'07 no hacía. - **Hueco 7 (menor):** la obligación de trabajar para los aptos (tesis 7, cert. C) y los servicios federados (tesis 9, cert. C) no aparecen en TK-D'07. La primera no debe codificarse como coerción (el suelo nunca se condiciona; a lo sumo la asamblea condiciona el excedente); la segunda es materia de TK-F'03 si el carril F' la pide. - **Contradicción a corregir (1):** [§2.3](../drafts/draftv0.md#L81) afirma que «la misma fórmula de peso se repite en el pago real (L1413-L1416)». No exactamente: en el pago real el reclamante lleva `1 + karma/100` ([banking_model.js L1413](vendor/oasis/src/models/banking_model.js#L1413)) pero el denominador es el número de elegibles con peso 1 cada uno ([L1414](vendor/oasis/src/models/banking_model.js#L1414)), no la suma de pesos `W` de `:938`. El karma pondera solo a quien reclama, y la cantidad pagada no coincide con la asignación calculada. Importa aquí porque la alternativa de TK-D'07 («pagadas de la RBU general») heredaría esa aritmética. - **Contradicción a corregir (2):** la fila 5 de [§3](../drafts/draftv0.md#L127) dice «nada sobre jornada». Hay campos de jornada en `Jobs` (`job_time`, `hoursOffered`); lo que no hay es límite. Precisar. - **Sin hueco:** tesis 8 (fondo común decidido en asamblea), cubierta por CL-10 → CL-5 (tesoro de tribu, épocas ejecutadas por la asamblea) y por la cadena TK-B'04 → TK-B'05. Veredicto: los derechos sociales están mapeados en su fuente de pago (tesoro de tribu, CL-5/CL-10) y en la gratuidad de la escuela (§2.7), no en su mecánica: quién mantiene al maestro y al médico, qué pasa con la renta que no se reclama y con el impuesto de antigüedad, qué edad y qué enfermedad hacen elegible, y dónde se acota la jornada. Dos aciertos del código (suelo inmovible sin karma, puesto sin salario) hacen casi todo el trabajo si se nombran. --- **Correcciones aplicadas (2026-09-09)** - [draftv0.md TK-D'07](../drafts/draftv0.md#L198): añadidas las preguntas de quién certificaba la enfermedad, si maestros y médicos eran miembros con salario familiar o contratados, la obligación de trabajar para los aptos y los servicios comarcales federados (huecos 6 y 7); defaults: enfermedad declarada y validada por la asamblea como el hogar, maestro y médico = puestos colectivos con salario familiar (TK-S'03), el suelo nunca se condiciona, servicios comarcales fuera de v0; desbloquea TK-B'05, TK-S'01, TK-S'02 y TK-S'03 (antes decía TK-B'03, que es el reparto industrial). - [draftv0.md CL-10](../drafts/draftv0.md#L177): las épocas de enfermedad y jubilación se precisan como variantes de `rules` de `computeEpoch` (`banking_model.js:920`) con elegibles filtrados por `household` en vez de por dirección ECOin (`:924`), **exentas del impuesto de archivo** (`:38`, `:759-768`) y **sin caducidad** de la asignación no reclamada (`:982`, `:1331-1341`) (huecos 3 y 4); remite la jornada a TK-S'02 y el maestro y el médico a TK-S'03; costuras ampliadas. - [draftv0.md TK-B'05](../drafts/draftv0.md#L228): depende también de B'02 (`household`); costuras `:924`, `:38`, `:759-768`, `:982`, `:1331-1341` (huecos 3 y 4). - [draftv0.md TK-S'01](../drafts/draftv0.md#L258): precisa que «gratis» en Oasis es «maestro sin cobrar» (`school_model.js:613-616`) y que los exámenes solo existen en cursos de pago o por invitación (`:745`), de modo que el curso gratuito certifica lecciones completadas (`:1242-1243`) (huecos 1 y 2); depende de S'03. - [draftv0.md TK-S'02](../drafts/draftv0.md#L259): costuras corregidas a la contribución de trabajo (`industry_model.js:824-827`), al `laborHours` del plano (`:632`) y a los campos de jornada de `Jobs` (`jobs_model.js:203-204`, `:228-229`); depende de B'02 para las edades (hueco 5). - [draftv0.md TK-S'03](../drafts/draftv0.md#L259) (nueva, prioridad media, tras TK-S'02): maestro y médico como puestos colectivos, `jobs` con `job_type: "collective"` y `salary` 0 (ya admisible, `jobs_model.js:201`, `:334`), asignados por voto, con salario familiar de CL-4 y no por acto ni por alumno; la sanidad se modela como puesto, no como mercado (acierto 2, huecos 1 y 6). Añadida a la fila «Media» del [resumen de prioridades](../drafts/draftv0.md#L275). - [draftv0.md §2.6](../drafts/draftv0.md#L105): añadido que el salario de `Jobs` puede ser 0 (`jobs_model.js:201`, `:334`) y que `job_time` y `hoursOffered`/`hoursRequested` describen la jornada sin acotarla (acierto 2, contradicción 2). - [draftv0.md §2.7](../drafts/draftv0.md#L110): añadido que la matrícula de pago es una transferencia del alumno al autor (`school_model.js:613-616`), que nadie mantiene al maestro del curso gratuito, y que los exámenes solo existen en cursos protegidos (`:745`, `:1242-1243`) (huecos 1 y 2). - [draftv0.md §2.3](../drafts/draftv0.md#L81): corregida la afirmación sobre el pago real (denominador = número de elegibles con peso 1, `banking_model.js:1414`) y añadidas la caducidad de la asignación (`:982`, `:1331-1341`) y el impuesto de archivo por antigüedad del feed (`:32`, `:38`, `:759-768`) (contradicción 1, hueco 3). - [draftv0.md §3 fila 5](../drafts/draftv0.md#L127): «nada sobre jornada» pasa a «la jornada es un campo descriptivo de `Jobs`, no un límite» (contradicción 2).