{
  "modelo": "colectivizaciones",
  "latest": "draftv1",
  "drafts": [
    "draft",
    "draftv0",
    "draftv1"
  ],
  "ops": [
    {
      "draft": "draftv0",
      "id": "OP-01",
      "titulo": "Autogobierno de la colectividad",
      "resumen": "La asamblea de tribu recibe competencias sobre lo que hoy decide el fundador: campos, miembros, expulsiones, consultas vinculantes y cargos revocables. Carril G'."
    },
    {
      "draft": "draftv0",
      "id": "OP-02",
      "titulo": "Reparto por necesidades",
      "resumen": "Salario familiar sobre la RBU y sobre la industria; unidad familiar; tesoro de tribu. Carril B'."
    },
    {
      "draft": "draftv0",
      "id": "OP-03",
      "titulo": "Intercambio sin precio",
      "resumen": "Don, trueque y vales dentro de la colectividad. Carril E'."
    },
    {
      "draft": "draftv0",
      "id": "OP-04",
      "titulo": "Federación",
      "resumen": "Colectividad → comarcal → regional con delegados mandatados y compensación entre colectividades. Carril F'."
    },
    {
      "draft": "draftv0",
      "id": "OP-05",
      "titulo": "Derechos sociales",
      "resumen": ""
    },
    {
      "draft": "draftv0",
      "id": "OP-06",
      "titulo": "Voluntariedad y censo",
      "resumen": ""
    }
  ],
  "tablas": [
    {
      "draft": "draftv0",
      "seccion": "4. Especificación CL-OASIS: la bifurcación colectivista",
      "op": null,
      "kind": "tk",
      "carril": "CL",
      "headers": [
        "#",
        "Cambio",
        "Punto de intervención",
        "Criterio que repara"
      ],
      "rows": [
        [
          "**CL-1**",
          "**Gobierno de la tribu por su asamblea.** Edición de `STRUCTURAL_FIELDS`, invitaciones y expulsiones pasan de `tribe.author` a una `tribeParliamentRule` aprobada con el quórum del parlamento de tribu. **La asamblea no puede abdicar**: el parlamento de tribu solo admite `ANARCHY` (se eliminan las candidaturas a líder de tribu, `tribePublishCandidature`); las comisiones son cargos de CL-2, nunca gobierno",
          "`tribes_model.js:11`, `:554-556`, `:612-617`, `:533-541` ← `parliament_model.js:1376-1384`, `:1443-1445`",
          "1, 2"
        ],
        [
          "**CL-2**",
          "**Steward electo, rotatorio y revocable.** `steward` deja de ser `rootNode.author`; se elige por `passesThreshold` entre los miembros, con mandato de N lotes (default: N = 3 o un ciclo de 60 d, lo que venza antes; TK-D'09) y revocación por voto (`subject: \"steward\"`) **en cualquier momento y sin causa tasada**. **El índice sigue al steward electo, no al autor raíz**: los filtros `tn.author !== steward`, `n.author !== steward` y `x.author === steward` (`:167`, `:240`, `:379`) y las transiciones `stewardOnly` (`:357-361`) leen el cargo vigente. **Sin retribución especial**: el steward cobra por `computeShares` como cualquier miembro (`:306-321`, se conserva). El `outputValue` que hoy declara solo él (`:961`, `:985`) forma parte del plan votable de CL-3",
          "`industry_model.js:164`, `:167`, `:187`, `:205`, `:240`, `:357-361`, `:379`, `:510`, `:532`, `:961`, `:980`, `:985`",
          "2, 3"
        ],
        [
          "**CL-3**",
          "**Reparto por necesidades, decidido por la asamblea.** `disposition: \"needs\"` en `computeDistributionPlan`: cada miembro declara su unidad de necesidad (CL-9), la asamblea de la instalación la valida por voto, y el reparto es proporcional a necesidades con suelo; el excedente va al tesoro de la tribu (CL-5). **La base del reparto `needs` es el censo de hogares de los miembros, no las aportaciones**: hoy solo entra en el plan quien tiene importe positivo (`industry_model.js:966-968`), no hay reparto sin puntos (`:984`) y solo cuentan aportaciones de miembros (`:372`); con `needs` un miembro sin puntos cobra su necesidad. El registro de horas (`:827`, `:85`) se conserva como cuenta de «cada uno según sus facultades», desligado del cobro. **El plan de reparto es una materia votable** (`subject: \"distribute\"` en `SUBJECTS`): nadie reparte sin acuerdo de la asamblea, ni siquiera el steward electo",
          "`industry_model.js:960-970`, `:966-968`, `:984`, `:372`, `:306-321`, `:827`, `:532`, `:980`",
          "4, 3, 1"
        ],
        [
          "**CL-4**",
          "**Coeficiente de necesidad en la RBU.** Sustituir `1 + karma/100` por `coef(hogar)` = 1 + 0,5 por dependiente, con edad; el karma sale de la fórmula. Suelo y techo se conservan **pero escalan con el hogar**: `floor_user × miembros` y `cap_user_epoch × coef(hogar)`; un techo por feed (`:19`) anularía el coeficiente en cuanto el fondo fuese holgado (`:941`). El denominador se unifica: en el pago real (`:1414`) los demás cuentan con peso 1, no con el suyo, y el importe pagado no coincide con el asignado (`:941`). La escala llega como `rules` de `computeEpoch` (`:920`, `:925`, `:928`), votada por la asamblea (CL-5), no como `DEFAULT_RULES` del operador (`:14-21`)",
          "`banking_model.js:19`, `:920`, `:932`, `:941`, `:1300`, `:1413-1414`",
          "4"
        ],
        [
          "**CL-5**",
          "**Tesoro de tribu.** Cartera colectiva multisig k-de-n cuyos firmantes nombra la asamblea; las épocas de reparto las ejecuta la asamblea de la tribu, no el operador del PUB. **Patrimonio** (ficha 03, 2026-09-09): nuevo tipo `tribeAsset` para instalaciones, planos y tierras (`housing` `land`) cuyo titular es la tribu y no un feed; el aporte `material` entra en el inventario colectivo sin generar participación ni renta y se devuelve al salir (default de TK-D'09); `sale` o `rent` de un `tribeAsset` solo por voto de la asamblea",
          "`banking_model.js:913-917`, `:1004`, `:1413-1416`; `tribes_model.js` (nuevos tipos `tribeTreasury`, `tribeAsset`); `industry_model.js:824-831`; `housing_model.js:10`, `:374`",
          "1, 3"
        ],
        [
          "**CL-6**",
          "**Precio cero, don y trueque.** Admitir `price = 0` y `kind: \"gift\" | \"barter\"` en Market y Shops; **`barter` reutiliza el `item_type: \"exchange\"` que ya existe (`market_model.js:391-392`) y que hoy está obligado a precio positivo (`:182`, `:252`)**; vales = `transfers` `TIME` **nominativos, con doble confirmación y caducidad (`deriveStatus`, `transfers_model.js:175-185`), como ya hace la RBU con sus `transfer` etiquetados `UBI` (`banking_model.js:974-986`)**; caja de compensación entre tribus como `transfers` `TRUST` con saldo **(agregado nuevo por par de tribus: el fichero no tiene ningún saldo, `TRUST` es solo una etiqueta (`:26-29`) y `isValidId` solo acepta feeds como destinatario (`:12`), así que emite y recibe el tesoro de tribu de CL-5)**. **El precio se conserva hacia fuera: dentro de la tribu el don y el cupo son el default; Market con precio y tesoro de tribu para lo que la colectividad no produce**",
          "`market_model.js:182`, `:252`, `:391-392`, `shops_model.js:415`, `transfers_model.js:12`, `:25`, `:26-29`, `:175-185`, `:230-231`; `banking_model.js:974-986`",
          "7"
        ],
        [
          "**CL-7**",
          "**Quórum, umbral y duración mínima en las consultas de tribu.** `polls` y `votes` con `tribeId` heredan el quórum de `tribeElectionQuorum`; resultado vinculante publicado como `tribeParliamentRule`",
          "`polls_model.js:84-86`, `votes_model.js:10`, `:173` ← `parliament_model.js:1376-1384`",
          "1"
        ],
        [
          "**CL-8**",
          "**Federación con delegados mandatados.** `parentTribeId` deja de ser solo herencia de privacidad: la tribu hija elige un `delegate` con mandato firmado y revocable; la tribu madre solo decide con el voto de los delegados. **Cuatro condiciones que el código hoy niega**: (a) la subtribu tiene parlamento propio (se elimina «Sub-tribes have no governance»); (b) `parentTribeId` es un acto de la asamblea de la hija (adhesión y salida por voto), no del padre al crearla; (c) sin cascada de `tombstone` ni herencia forzosa de privacidad; (d) ninguna tribu puede presentarse en bloque al parlamento general: la federación se compone de delegados, nunca de una tribu vencedora (`FOLLOW_MAJORITY` tampoco es un mandato: delega en un agregado anónimo). Los acuerdos de la madre entran en vigor tras ratificación por las asambleas de las hijas",
          "`tribes_model.js:341`, `:218-225`, `:490`; `parliament_model.js:1354-1374` (mandato de delegado), `:1206`, `:1303-1309`, `:1484-1492`; `backend.js:7799-7801`, `:7808`, `:8305`, `:8300-8316`; `votes_model.js:173`",
          "6, 8"
        ],
        [
          "**CL-9**",
          "**Unidad familiar.** Tipo `household` sobre feeds individuales: miembros, edades y dependientes, validado por la asamblea de la tribu; base de CL-3 y CL-4",
          "`inhabitants_model.js:86-88` (censo)",
          "4"
        ],
        [
          "**CL-10**",
          "**Derechos sociales.** Cursos con precio 0 por defecto se conservan (`school_model.js:320`); nuevo concepto en `Banking`: `epoch` de enfermedad y jubilación por edad declarada en `household`, pagado del tesoro de tribu (CL-5). Cada época especial es una variante de `rules` de `computeEpoch` (`banking_model.js:920`) con elegibles filtrados por `household` (edad, enfermedad validada por la asamblea) en vez de por dirección ECOin (`:924`), **exenta del impuesto de archivo** (`:38`, `:759-768`: grava los días de antigüedad del feed, es decir, a los más viejos) y **sin caducidad** de la asignación no reclamada (`:982`, `:1331-1341`). Con CL-4 la renta del jubilado, del enfermo y del maestro es la misma renta que la de cualquier miembro: no hay pensión ni nómina, hay salario familiar que no depende del trabajo. La jornada y las edades de trabajo son reglas de `Industry` y `Jobs` (TK-S'02); el maestro y el médico son puestos colectivos con salario familiar (TK-S'03)",
          "`school_model.js:320`, `:392-393`, `:613-616`, `:745`; `banking_model.js:920-947`, `:924`, `:38`, `:759-768`, `:982`, `:1331-1341`; `industry_model.js:824-827`; `jobs_model.js:201`, `:203-204`",
          "5"
        ],
        [
          "**CL-11**",
          "**Voluntariedad y salida.** El fundador puede irse con sucesión decidida por la asamblea (`opts.force` deja de ser necesario); el steward puede irse tras elección de sucesor; la disolución solo por voto. Los «individualistas» son feeds fuera de la tribu, sin penalización en la RBU. **Lo que se sucede no es una autoridad** (CL-1 la disuelve) **sino la custodia de claves**: `ensureTribeKeyDistribution` solo corre para el autor (`tribes_model.js:764-769`), `rotateTribeKey` (`:753`) se dispara desde sus escrituras y el validador del log privilegia al autor raíz (`:39-40`, `:158-166`, `:175`); el sucesor es un custodio electo por un ciclo y revocable (TK-G'07), nunca un nuevo fundador",
          "`tribes_model.js:721`, `:726-729`, `:753`, `:764-769`, `:39-40`, `:158-166`, `:175`; `industry_model.js:510`",
          "8, 2"
        ]
      ],
      "avisos": []
    },
    {
      "draft": "draftv0",
      "seccion": "Carril D' · Investigación en fuentes",
      "op": null,
      "kind": "tk",
      "carril": "D'",
      "headers": [
        "ID",
        "Buscar",
        "Dónde",
        "Default",
        "Alternativas",
        "Desbloquea"
      ],
      "rows": [
        [
          "TK-D'01",
          "**Quién forma la asamblea y con qué quórum**: ¿todos los miembros?, ¿cabezas de familia?, ¿mayoría de presentes o de censo?; **convocatoria y periodicidad** (¿ordinaria fija?, ¿quién convoca la extraordinaria?); **voto a mano alzada o secreto**; ¿puede la asamblea delegar en un líder o un consejo?",
          "Leval, Souchy; Casanova (Aragón); Simoni (Cretas)",
          "Asamblea = todos los miembros de la tribu; quórum = 25 % del censo (el de Oasis) y mayoría simple de votantes. Asamblea ordinaria = ciclo de 60 d del `tribeParliamentTerm`; extraordinaria convocada por el 10 % de los miembros. Voto público (firmado, visible dentro de la tribu). **La asamblea no puede abdicar**: no elige líder (ver CL-1)",
          "quórum del 50 %; voto por hogar (CL-9) en vez de por persona; voto secreto cifrado; consejo delegado revocable",
          "CL-1, CL-7, TK-G'01, TK-G'06 *Verificado 2026-09-09 en [draftv1](draftv1.md): el default cambia.*"
        ],
        [
          "TK-D'02",
          "**Fórmula del salario familiar**: por miembro, por edad, por dependientes; ¿escala fija o decidida por asamblea?; **¿cobran íntegro quienes no trabajan** (enfermos, ancianos, viudas, familias de milicianos en el frente)?; **¿parte fija por cabeza más parte por dependiente, o escala decreciente** por miembro adicional?; **¿en dinero, en vales o en carnet de consumo**, y con qué bienes libres fuera del salario?; **¿techo por hogar o por persona?**",
          "Ovejero; Redalyc; Leval (casos de Aragón y Levante); Souchy (familias de combatientes)",
          "coef = 1 + 0,5 por dependiente; menores y mayores de 65 cuentan como dependientes; la escala la fija la asamblea de la tribu. **La necesidad no depende de la aportación**: el hogar cobra aunque ningún miembro haya aportado puntos ni publicado nada en la época. Techo de época = `cap_user_epoch × coef(hogar)`, suelo = `floor_user × miembros`. Pago en ECOin al hogar; los vales (TK-E'02) son alternativa, no default",
          "escala lineal por miembro; coef por edad en tramos; techo por persona; salario en vales `TIME` con bienes de primera necesidad a precio 0",
          "CL-3, CL-4, CL-9, TK-B'01, TK-B'03, TK-B'06 *Verificado 2026-09-09 en [draftv1](draftv1.md): el default cambia.*"
        ],
        [
          "TK-D'03",
          "**Vales y cajas de compensación**: qué circulaba dentro (carnet de consumo, vales locales) y entre colectividades (compensación comarcal); **¿el carnet de consumo era cupo por familia (racionamiento) o saldo?**; **¿los vales caducaban y circulaban de mano en mano (endoso) o eran nominativos?**; **¿quién los emitía: la comisión de abastos o la asamblea?**; **¿la compensación comarcal era bilateral entre pueblos o multilateral por la federación (Congreso de Caspe, febrero 1937)?**; **¿con el exterior se pagaba en moneda republicana desde una caja común?**",
          "Leval, Souchy; Gómez (economía confederal); Casanova (Congreso de Caspe)",
          "Vales = `transfers` `TIME` dentro de la tribu, **nominativos, con caducidad (`deadline`) y emitidos por la comisión de abastos (cargo CL-2), sin endoso**; carnet de consumo = **cupo por `household` (CL-9) retirado del almacén de tribu (TK-E'04), no saldo**; compensación entre tribus = saldo `TRUST` **agregado por par de tribus y** liquidado por la federación **(hoy `transfers` no tiene saldo ni admite una tribu como destinatario, `transfers_model.js:12`; requiere CL-5)**; **con el exterior, Market con precio y tesoro de tribu**",
          "moneda local ECOin por tribu; vales al portador endosables; sin compensación",
          "CL-6, TK-E'01, TK-E'02, TK-E'04, TK-F'02 *Verificado 2026-09-09 en [draftv1](draftv1.md): el default cambia.*"
        ],
        [
          "TK-D'04",
          "**Delegados comarcales**: mandato imperativo, duración, revocación, ¿voto por colectividad o ponderado por población?; **¿ratifican las asambleas los acuerdos del pleno o son ejecutivos?**; **adhesión y salida** de la federación (¿por acuerdo de asamblea?, ¿coexistencia con colectividades no federadas?); **distinguir** el Consejo de Aragón (órgano regional con partidos, octubre 1936 a agosto 1937) de la Federación Regional de Colectividades de Aragón (congreso de Caspe, febrero 1937): ¿cuál de los dos es el nivel regional del modelo?",
          "Casanova (Consejo de Aragón y Federación Regional de Colectividades); Vela; Leval (Aragón, Levante)",
          "Un delegado por tribu hija, mandato firmado por su asamblea, revocable en cualquier momento, voto por colectividad. Los acuerdos federales no vinculan hasta ratificación por las asambleas de las hijas; adhesión y salida = voto de la tribu hija; la federación no interviene en la administración interna; el nivel regional del modelo es la federación de colectividades, no un consejo de gobierno",
          "voto ponderado por miembros; delegado rotatorio por sorteo; acuerdos federales ejecutivos con revocación a posteriori",
          "CL-8, TK-F'01, TK-F'04, TK-F'05 *Verificado 2026-09-09 en [draftv1](draftv1.md): el default cambia.*"
        ],
        [
          "TK-D'05",
          "**Individualistas**: condiciones de permanencia fuera de la colectividad, acceso a servicios, entrada posterior",
          "Casanova; Redalyc (voluntariedad y coerción)",
          "Los feeds fuera de la tribu conservan RBU y servicios de red; pueden pedir admisión por voto",
          "exclusión de servicios de tribu; admisión automática",
          "CL-11, TK-G'04"
        ],
        [
          "TK-D'06",
          "**Decreto de Colectivizaciones (24-10-1936) frente a la práctica aragonesa**: qué fijaba el decreto (consejos de empresa, control obrero) y qué hacían las colectividades agrarias",
          "Decreto (BOGC); Vela; Casanova",
          "Este nodo modela la práctica agraria (asamblea + comisión), no el decreto industrial catalán",
          "modelar el consejo de empresa del decreto como variante",
          "CL-1, CL-2"
        ],
        [
          "TK-D'07",
          "**Derechos sociales**: edades de trabajo, jornada, enfermedad y jubilación; ¿quién los pagaba?; **¿quién certificaba la enfermedad** (médico de la colectividad, asamblea)?; ¿maestros y médicos eran **miembros con salario familiar** o contratados de fuera?; **¿obligación de trabajar para los aptos** y qué pasaba con quien no lo hacía?; ¿servicios comarcales (hospital, escuela) financiados por la federación?",
          "Redalyc; Ovejero; Leval (Levante: sanidad federada)",
          "Jubilación y enfermedad pagadas del tesoro de tribu como época especial; edad declarada en `household`; enfermedad declarada por el miembro y validada por la asamblea, como el hogar (TK-B'02); maestro y médico = miembros con `job_type: \"collective\"` y salario familiar (TK-S'03); sin obligación de trabajar codificada: el suelo nunca se condiciona, la asamblea solo puede condicionar el excedente; servicios comarcales fuera de v0 (TK-F'03 si el carril F' lo pide)",
          "pagadas de la RBU general; sin edad; certificación médica por cargo electo (CL-2); trabajo obligatorio con pérdida del excedente",
          "CL-10, TK-B'05, TK-S'01, TK-S'02, TK-S'03"
        ],
        [
          "TK-D'08",
          "**Unidad familiar**: cómo se definía el hogar a efectos de reparto",
          "Leval; Ovejero",
          "`household` declarado por un miembro y validado por la asamblea; una persona pertenece a un solo hogar",
          "hogar = feed (sin cambio); hogar autodeclarado sin validación",
          "CL-9, TK-B'02"
        ],
        [
          "TK-D'09",
          "**Qué se colectivizó y en qué condiciones**: tierras comunales, incautadas, aportadas; ¿daba el aporte algún derecho (renta, voto, ración)?; ¿se devolvía lo aportado al salir, con o sin mejoras?; ¿vendía o alquilaba la colectividad tierras y talleres?; ¿quién fijaba el valor de la cosecha?; ¿se asignaba la vivienda en asamblea?",
          "Casanova (Aragón); Decreto (24-10-1936); Leval (Aragón, Levante); Redalyc",
          "El aporte no da participación ni renta; lo aportado se devuelve al salir sin mejoras; los medios de la tribu no se venden ni alquilan salvo voto; el valor del producto lo aprueba la asamblea con el plan de reparto, no el steward",
          "aporte con participación temporal; sin devolución; venta por voto cualificado; vivienda fuera del modelo",
          "CL-2, CL-3, CL-5, TK-G'07, TK-B'03"
        ],
        [
          "TK-D'09",
          "**Cargos de la colectividad**: composición de la comisión administrativa y de los consejos de empresa del decreto (¿cuántos miembros?, ¿qué funciones?); duración y renovación (¿anual?, ¿por mitades?), ¿límite de reelección?; revocación (¿por mayoría simple?, ¿en cualquier asamblea?); ¿cobraban los cargos algo distinto del salario familiar?, ¿había liberados?; ¿un cargo por persona?; ¿elegían los grupos de trabajo a su delegado?",
          "Leval (comisiones y contabilidad); Souchy; Casanova; Ovejero; Decreto (consejos de empresa)",
          "Steward y custodio de claves electos por un ciclo de 60 d (`TERM_DAYS`) o N = 3 lotes, lo que venza antes; reelección libre; revocación por `passesThreshold` en cualquier momento y sin causa tasada; sin retribución especial (el steward cobra por `computeShares` como cualquier miembro); un cargo por persona; delegado de lote = `proposer` confirmado por el voto del lote",
          "mandato de dos años renovado por mitades (decreto); límite de dos mandatos seguidos; delegado de grupo electo aparte del proposer",
          "CL-2, CL-11, TK-G'03, TK-G'07"
        ]
      ],
      "avisos": []
    },
    {
      "draft": "draftv0",
      "seccion": "OP-01 · Autogobierno de la colectividad",
      "op": "OP-01",
      "kind": "tk",
      "carril": "G'",
      "headers": [
        "ID",
        "Tarea",
        "Depende",
        "Seam",
        "T",
        "P"
      ],
      "rows": [
        [
          "TK-G'01",
          "CL-1: `tribeParliamentRule` gobierna `STRUCTURAL_FIELDS`, invitaciones y expulsiones; `tribe.author` deja de ser autoridad",
          "D'01",
          "`tribes_model.js:11`, `:554-556`, `:612-617`, `:533-541`",
          "L",
          "**C**"
        ],
        [
          "TK-G'02",
          "CL-7: quórum y umbral en `polls`/`votes` con `tribeId`; resultado publicado como regla",
          "D'01",
          "`polls_model.js:84-86`, `votes_model.js:10`, `:173`",
          "M",
          "H"
        ],
        [
          "TK-G'03",
          "CL-2: steward electo por `passesThreshold`, mandato de N lotes (default N = 3 o un ciclo de 60 d), `subject: \"steward\"` revocable en cualquier momento; el índice sigue al steward electo, no al autor raíz",
          "D'06, D'09",
          "`industry_model.js:164`, `:167`, `:240`, `:357-361`, `:379`, `:532`, `:510`, `:980`",
          "L",
          "H"
        ],
        [
          "TK-G'04",
          "CL-11: sucesión del fundador por asamblea; salida libre del steward tras elección",
          "D'05",
          "`tribes_model.js:721`, `:726-729`; `industry_model.js:510`",
          "M",
          "H"
        ],
        [
          "TK-G'05",
          "Publicidad: la deliberación de la asamblea (propuestas y votos) visible a todos los miembros; el cifrado de tribu sigue protegiendo hacia fuera",
          "D'01",
          "`polls_model.js:45-60`",
          "S",
          "M"
        ],
        [
          "TK-G'06",
          "Convocatoria y periodicidad: asamblea ordinaria = ciclo de 60 d del `tribeParliamentTerm`; `assemblyCall` extraordinaria por el 10 % de los miembros abre una ventana de propuestas; solo `ANARCHY` como método de tribu",
          "D'01",
          "`parliament_model.js:1354-1374`, `:1443-1445`",
          "M",
          "H"
        ],
        [
          "TK-G'07",
          "Patrimonio de la instalación: `license` y `laborRate` pasan a materia votable (`subject: \"facility\"` en `SUBJECTS`); `outputValue` se aprueba con el plan de reparto (CL-3); el aporte `material` deja de generar puntos en `computeShares` y entra en el inventario del `tribeAsset` (CL-5)",
          "D'09, G'03",
          "`industry_model.js:439`, `:463`, `:532`, `:306-321`, `:824-831`, `:961`, `:986`",
          "M",
          "H"
        ],
        [
          "TK-G'07",
          "Custodio de claves como cargo: `tribeKeeper` electo por la asamblea por un ciclo de 60 d y revocable; `ensureTribeKeyDistribution`, `rotateTribeKey` y el privilegio de `isRootAuthor` en el índice pasan del autor raíz al custodio vigente; ejecuta los acuerdos de CL-1 sin decidirlos",
          "D'09, G'01",
          "`tribes_model.js:39-40`, `:158-166`, `:175`, `:753`, `:764-769`",
          "L",
          "H"
        ]
      ],
      "avisos": []
    },
    {
      "draft": "draftv0",
      "seccion": "OP-02 · Reparto por necesidades",
      "op": "OP-02",
      "kind": "tk",
      "carril": "B'",
      "headers": [
        "ID",
        "Tarea",
        "Depende",
        "Seam",
        "T",
        "P"
      ],
      "rows": [
        [
          "TK-B'01",
          "CL-4: `coef(hogar)` sustituye a `1 + karma/100` en los tres cálculos",
          "D'02, B'02",
          "`banking_model.js:932`, `:1300`, `:1413`",
          "M",
          "**C**"
        ],
        [
          "TK-B'02",
          "CL-9: tipo `household` (miembros, edades, dependientes) validado por la asamblea",
          "D'08",
          "`inhabitants_model.js:86-88`",
          "M",
          "**C**"
        ],
        [
          "TK-B'03",
          "CL-3: `disposition: \"needs\"` en `computeDistributionPlan`, excedente al tesoro; `subject: \"distribute\"` votable",
          "D'02, B'02, G'03, D'01",
          "`industry_model.js:960-970`, `:306-321`, `:532`, `:980`",
          "M",
          "H"
        ],
        [
          "TK-B'04",
          "CL-5: `tribeTreasury` multisig k-de-n; épocas ejecutadas por la asamblea, no por `isPubNode`",
          "D'01",
          "`banking_model.js:913-917`, `:1004`, `:1413-1416`",
          "L",
          "H"
        ],
        [
          "TK-B'05",
          "CL-10: épocas de enfermedad y jubilación pagadas del tesoro de tribu; elegibles por `household` en vez de por dirección ECOin, exentas de `archTax`, sin caducidad de la asignación no reclamada",
          "D'07, B'02, B'04",
          "`banking_model.js:920-947`, `:924`, `:38`, `:759-768`, `:982`, `:1331-1341`",
          "M",
          "M"
        ],
        [
          "TK-B'06",
          "Cobro sin reclamación ni aportación: la RBU se asigna por `household` (CL-9) y no por dirección ECOin; la asignación no caduca a los 30 d (`graceDays`) para hogares validados; suelo y techo escalan con el hogar; el pago usa el mismo denominador que el plan",
          "D'02, D'08, B'02",
          "`banking_model.js:19-20`, `:924`, `:982`, `:1414`",
          "M",
          "H"
        ]
      ],
      "avisos": []
    },
    {
      "draft": "draftv0",
      "seccion": "OP-03 · Intercambio sin precio",
      "op": "OP-03",
      "kind": "tk",
      "carril": "E'",
      "headers": [
        "ID",
        "Tarea",
        "Depende",
        "Seam",
        "T",
        "P"
      ],
      "rows": [
        [
          "TK-E'01",
          "CL-6: `price = 0` y `kind: gift | barter` en Market y Shops; `barter` = `item_type: \"exchange\"` liberado del `> 0`; el cambio es solo de validación porque `marketPurchase` y `shopPurchase` no pagan nada",
          "D'03",
          "`market_model.js:182`, `:252`, `:391-392`, `:634`; `shops_model.js:415`, `:614`",
          "S",
          "H"
        ],
        [
          "TK-E'02",
          "CL-6: vales de tiempo = `transfers` `TIME` nominativos: emisor = comisión de abastos (cargo CL-2), cierre por confirmación del receptor (`deriveStatus`), caducidad por `deadline`; sin endoso a terceros (el vale se consume, no circula); el carnet de consumo sale de aquí y pasa a TK-E'04",
          "D'03, G'03",
          "`transfers_model.js:25`, `:175-185`, `:230-231`, `:243`, `:339`",
          "M",
          "M"
        ],
        [
          "TK-E'03",
          "Bolsa de trabajo por asamblea: `jobs` con `job_type: \"collective\"` sin `salary`, asignado por voto; parte del tipo `exchange` (`hoursOffered`, `hoursRequested`, `exchangeSkill`) y de que `salary` 0 ya es legal en cualquier tipo",
          "D'02",
          "`jobs_model.js:192`, `:200-201`, `:228-230`, `:334`",
          "M",
          "M"
        ],
        [
          "TK-E'04",
          "Carnet de consumo: el almacén de la colectividad es una `shop` de la tribu; el pedido `shop-purchase` sin precio descuenta un cupo por `household` fijado por la asamblea; `RECEIVED` lo firma el consumidor y `PAID` desaparece (hoy `PAID` lo declara el vendedor y la compra no paga nada)",
          "D'03, B'02, E'01",
          "`shops_model.js:26-28`, `:592-616`, `:636-651`, `:731-734`",
          "M",
          "M"
        ]
      ],
      "avisos": []
    },
    {
      "draft": "draftv0",
      "seccion": "OP-04 · Federación",
      "op": "OP-04",
      "kind": "tk",
      "carril": "F'",
      "headers": [
        "ID",
        "Tarea",
        "Depende",
        "Seam",
        "T",
        "P"
      ],
      "rows": [
        [
          "TK-F'01",
          "CL-8: `delegate` con mandato firmado y revocable; la tribu madre decide solo con voto de delegados",
          "D'04, G'01",
          "`tribes_model.js:341`; `parliament_model.js:1354-1374`",
          "L",
          "H"
        ],
        [
          "TK-F'02",
          "Caja de compensación: saldos `TRUST` entre tribus liquidados por la federación; requiere (a) un agregado de saldo por par de tribus, que `transfers` no tiene (`TRUST` es solo una etiqueta), y (b) que el tesoro de tribu (CL-5) sea emisor y destinatario, porque `isValidId` solo acepta feeds",
          "D'03, B'04",
          "`transfers_model.js:12`, `:25`, `:26-29`, `:175-185`",
          "M",
          "M"
        ],
        [
          "TK-F'03",
          "Tesoro federado: `tribeTreasury` de la tribu madre alimentado por cuotas votadas por las hijas",
          "B'04, F'01",
          "nuevo",
          "L",
          "M"
        ],
        [
          "TK-F'04",
          "CL-8: adhesión y salida federal por asamblea: `parentTribeId` lo fija la tribu hija por voto (no el padre al crearla); la subtribu recupera parlamento propio; sin cascada de `tombstone`; visibilidad propia",
          "D'04, G'01",
          "`backend.js:7799-7801`, `:7808`, `:7820`, `:8305`; `tribes_model.js:218-225`, `:490`",
          "M",
          "H"
        ],
        [
          "TK-F'05",
          "CL-8: ratificación: los acuerdos de la tribu madre se publican a las hijas y entran en vigor tras el voto de N asambleas; ninguna tribu puede presentarse en bloque al parlamento general",
          "F'01, G'02",
          "`parliament_model.js:1484-1492`, `:1206`, `:1303-1309`; `backend.js:8300-8316`, `:8354`",
          "M",
          "M"
        ]
      ],
      "avisos": []
    },
    {
      "draft": "draftv0",
      "seccion": "OP-05 · Derechos sociales",
      "op": "OP-05",
      "kind": "tk",
      "carril": "S'",
      "headers": [
        "ID",
        "Tarea",
        "Depende",
        "Seam",
        "T",
        "P"
      ],
      "rows": [
        [
          "TK-S'01",
          "Documentar que la educación gratuita es el caso por defecto y que el certificado lo emite solo el autor: ¿certifica la asamblea? Precisar que «gratis» en Oasis significa «maestro sin cobrar» (la matrícula de pago es una transferencia `ECONOMIC` del alumno al autor, `:613-616`; la de precio 0 no genera nada), no «pagado por el común»; y que los exámenes solo existen en cursos de pago o por invitación (`:745`): el curso gratuito certifica lecciones completadas, no pruebas (`:1242-1243`)",
          "D'07, S'03",
          "`school_model.js:320`, `:613-616`, `:745`, `:1222`, `:1242-1243`",
          "S",
          "M"
        ],
        [
          "TK-S'02",
          "Jornada y edades de trabajo como reglas de `Industry` y `Jobs`: horas máximas por lote, miembro y semana en la contribución de trabajo (hoy solo exige `hours > 0`, `:827`; el `laborHours` del plano es una estimación de coste, `:632`, no un límite); edad mínima y máxima leídas de `household`; `job_time` y `hoursOffered`/`hoursRequested` de `Jobs` describen la jornada pero no la acotan",
          "D'07, B'02",
          "`industry_model.js:824-827`, `:632`, `:306-321`; `jobs_model.js:203-204`, `:228-229`",
          "M",
          "M"
        ],
        [
          "TK-S'03",
          "Maestro y médico como puestos colectivos: `jobs` con `job_type: \"collective\"` y `salary` 0 (ya admisible: `:201`, `:334`), asignados por voto de la asamblea; cobran el salario familiar (CL-4), no por acto ni por alumno; la sanidad no tiene módulo y se modela como puesto, no como mercado",
          "D'07, E'03, B'01",
          "`jobs_model.js:201`, `:334`; `school_model.js:613-616`",
          "M",
          "M"
        ]
      ],
      "avisos": []
    },
    {
      "draft": "draftv0",
      "seccion": "OP-06 · Voluntariedad y censo",
      "op": "OP-06",
      "kind": "tk",
      "carril": "V'",
      "headers": [
        "ID",
        "Tarea",
        "Depende",
        "Seam",
        "T",
        "P"
      ],
      "rows": [
        [
          "TK-V'01",
          "Individualistas: feeds fuera de la tribu conservan RBU y servicios de red",
          "D'05",
          "`banking_model.js:920-947`",
          "S",
          "H"
        ],
        [
          "TK-V'02",
          "Disolución de la tribu solo por voto (nunca por marcha del fundador)",
          "G'04",
          "`tribes_model.js:726-729`",
          "S",
          "H"
        ]
      ],
      "avisos": []
    },
    {
      "draft": "draftv1",
      "seccion": "1. Carril D' verificado",
      "op": null,
      "kind": "tk",
      "carril": "D'",
      "headers": [
        "ID",
        "Respuesta en fuentes",
        "Confirma default",
        "Default nuevo",
        "Cert.",
        "Tareas afectadas",
        "Fuentes (3 de N)"
      ],
      "rows": [
        [
          "TK-D'01",
          "Fuentes leídas en texto: Leval (PDF todoporhacer, paginación del PDF), Seidman 2000 (libcom), Garrido González (Dialnet), Redalyc 2016, Decreto 24-10-1936 (texto), Souchy 1937 (extractos blog), Wikipedia/es. No accesibles: Casanova, Simoni, Ovejero (uvadoc caído), Vela (zaguan 403). Hechos: (1) Composición: toda la población, un voto por persona; el hogar es unidad de cobro («a cada cabeza de familia... el sueldo familiar», Tamarite art. 15) pero no de voto; mujeres con obligación de asistir (Tamarite art. 16; Seidman p. 229). Los individualistas deliberan sin votar (Leval p. 130), salvo Ballobar; Caspe 1937 los excluye de los beneficios, no del debate; readmisión con plazo de un año en Ballobar. (2) Quórum: ninguna fuente fija porcentaje del censo; «por mayoría, o por unanimidad de los presentes» (Leval p. 41), «régimen de mayoría» (Salas Altas 18º), asistencia obligatoria bajo multa (S",
          "**no**",
          "Nuevo default de TK-D'01: «Asamblea = todos los miembros de la tribu, un voto por persona, no por hogar (Leval p. 130; Tamarite art. 15-16); los feeds fuera de la tribu (individualistas, TK-D'05) leen y proponen, no votan (Leval p. 130). Sin quórum histórico: se decidía por mayoría de presentes con asistencia obligatoria (Leval p. 41; Salas Altas 18º; Seidman p. 212); el 25 % del censo de Oasis se conserva como suelo técnico, no doctrinal, con mayoría simple de votantes. Asamblea ordinaria mensual (30 d), semanal si la propia asamblea lo vota (Leval p. 130); el ciclo de 60 d del tribeParliamentTerm es el mandato del parlamento, no la periodicidad de la asamblea. Extraordinaria convocada por la comisión (CL-2; Garrido p. 267) o por el 10 % de los miembros [C, sin fuente]. Voto público (firmado, visible dentro de la tribu), equivalente a la mano alzada. La asamblea no puede abdicar: no eli",
          "A en composición (todos, un voto por persona), voto público, comisión revocable y periodicidad corta (Leval + Seidman +",
          "CL-1, CL-7, CL-2, CL-9, CL-11, TK-G'01, TK-G'02, TK-G'05, TK-G'06, TK-D'02, TK-D'05, TK-D'06, TK-D'08, TK-B'02, TK-B'03",
          "[Leval, Colectividades libertarias en España, p. 13](https://www.todoporhacer.org/wp-content/uploads/2016/08/Gast%C3%B3n-Leval.-Colectividades-libertarias-en-Espa%C3%B1a.pdf); [Leval, p. 130](https://www.todoporhacer.org/wp-content/uploads/2016/08/Gast%C3%B3n-Leval.-Colectividades-libertarias-en-Espa%C3%B1a.pdf); [Leval, p. 130 (individualistas)](https://www.todoporhacer.org/wp-content/uploads/2016/08/Gast%C3%B3n-Leval.-Colectividades-libertarias-en-Espa%C3%B1a.pdf)"
        ],
        [
          "TK-D'02",
          "El salario familiar real (1936-37) se pagaba por HOGAR, semanalmente, al cabeza de familia («un carnet por familia», Leval, Játiva), en vales o moneda local con caducidad, y su escala era DECRECIENTE por persona adicional, nunca lineal ni «por dependiente» (palabra que no usa ninguna fuente). Cifras: Graus, matrimonio 6 ptas/día y 1 más por persona «mayor o menor», familia de ocho 12 ptas («reducción proporcional que vemos en casi todas partes»); Fraga, 40 ptas/semana solo, 45 matrimonio, tope 70 para diez personas, y 50→85 si hay dos productores; Binéfar, 24/30/33 (hijo <10)/45 (3 mayores + 2 niños, «siempre que de los tres mayores no produzca más que uno»), coincidente con Fraser vía Garrot; Tamarite art. 15, hombre solo 18, mujer sola 14, matrimonio joven 25, matrimonio mayor 21, tres mayores 33, +1,00 ptas/día por mayor y +0,60 por menor adicionales; pleno regional de sindicatos de C",
          "**no**",
          "Se confirma solo la mitad del default («la escala la fija la asamblea de la tribu»; «la necesidad no depende de la aportación» como doctrina). Se retiran «coef = 1 + 0,5 por dependiente» y «menores y mayores de 65 cuentan como dependientes». Nuevo default de TK-D'02: «Hogar = unidad de cobro, un carnet por hogar a nombre del cabeza de familia (Leval, Játiva p. 108; Tamarite art. 15). Escala decreciente por persona, sin la categoría «dependiente»: coef(hogar) = 1 (1.ª persona) + 0,5 (2.ª) + 0,15 (3.ª) + 0,10 (cada una más), norma del pleno regional de Cataluña de 24-9-1936; los menores de 14 cuentan por 0,6 de su tramo (Tamarite 1,00/0,60; Oliete la mitad) y a los 14 se cuenta como mayor. Mayores de 60 (no 65): exentos de trabajar, cuentan como persona mayor en la escala. Tope por hogar, nunca por persona (Fraga: 70 ptas para 10 personas). La escala es una regla de tribu votada en asamble",
          "A en lo estructural (hogar como unidad con carnet al cabeza de familia; escala decreciente por persona; tramos a los 14",
          "TK-D'02, CL-4, CL-9, CL-10, TK-B'01, TK-B'02, TK-B'05, TK-B'06, TK-D'07, TK-D'08, TK-E'02, TK-E'04, TK-F'03, TK-G'01, TK-S'02, revision/04-salario-familiar.md, revision/00-indice.md",
          "[Leval, Colectividades libertarias en España, cap. ](https://reconstruirelcomunal.suportmutu.org/wp-content/uploads/2024/05/Colectividades-libertarias-en-Espana-Gaston-Leval.pdf); [Leval, cap. Graus (PDF p. 59)](https://reconstruirelcomunal.suportmutu.org/wp-content/uploads/2024/05/Colectividades-libertarias-en-Espana-Gaston-Leval.pdf); [Leval, cap. Fraga (PDF p. 64)](https://reconstruirelcomunal.suportmutu.org/wp-content/uploads/2024/05/Colectividades-libertarias-en-Espana-Gaston-Leval.pdf)"
        ],
        [
          "TK-D'03",
          "Cómo funcionaba de verdad, con verbatim (ficha completa en /private/tmp/claude-501/-Users-morente-Desktop-teoria-base/f9420d81-f03a-4ee3-ba0b-61153778ad4e/scratchpad/out/modelos/colectivizaciones/revision/08-d03-vales-y-compensacion.md; operaciones en .../operaciones-TK-D03.json; tabla de fuentes en .../fuentes-TK-D03.md).  1. Carnet de consumo = CUPO por familia, no saldo (A). Fraga: «Cada familia tiene una libreta en la cual figuran las cantidades de productos a las que tiene derecho según las disponibilidades» (Leval). Mas de las Matas: «Hombres, mujeres y niños reciben la misma cantidad estipulada por las asambleas de la colectividad» (Leval). Albalate: «hojas de consumo, gratuitamente. Los productos han sido racionados» (Souchy). Escala por edad: Granollers lleva «fichero donde estaba registrado el nombre y la edad de los miembros de cada familia» con raciones «de acuerdo con los mé",
          "**no**",
          "El default de TK-D'03 se confirma en dos puntos (carnet = cupo por `household`, no saldo; exterior en moneda con precio desde la caja) y se cambia en tres (naturaleza y emisor del vale; forma de la compensación). Texto nuevo del default (operación 1 y 2 de operaciones-TK-D03.json, sobre draftv0.md L194):  «(D'03 verificado, 2026-09-09, ficha 08) Carnet de consumo por `household` (CL-9) = instrumento principal: cupo por hogar fijado por la asamblea con escala por edad (los menores cuentan la mitad), retirado del almacén de tribu (TK-E'04), no saldo; vales = `transfers` `TIME` solo como complemento para lo no racionado (la «moneda de bolsillo» de Souchy: Binéfar 2,50 ptas diarias en fichas), emitidos por el tesoro de tribu (CL-5) según la escala votada, nominativos y sin endoso porque el Congreso de Caspe (14-15 de febrero de 1937) suprimió toda moneda interior a favor de la cartilla; cadu",
          "A en cupo por hogar, moneda local al portador emitida por el comité, supresión de la moneda interior en Caspe, compensac",
          "TK-D'03, CL-6, TK-E'02, TK-E'04, TK-F'02, CL-5, TK-B'04, CL-8, TK-D'05, TK-V'01, CL-11, TK-G'03, TK-G'05, TK-D'01 (nota), TK-D'02 (nota), TK-D'07 (nota), revision/06-intercambio.md (nota fechada), revision/00-indice.md",
          "[Leval, Colectividades libertarias en España (Congr](https://reconstruirelcomunal.suportmutu.org/wp-content/uploads/2024/05/Colectividades-libertarias-en-Espana-Gaston-Leval.pdf); [Leval, Colectividades libertarias en España (Mas d](https://reconstruirelcomunal.suportmutu.org/wp-content/uploads/2024/05/Colectividades-libertarias-en-Espana-Gaston-Leval.pdf); [Leval, Colectividades libertarias en España (pleno](https://reconstruirelcomunal.suportmutu.org/wp-content/uploads/2024/05/Colectividades-libertarias-en-Espana-Gaston-Leval.pdf)"
        ],
        [
          "TK-D'04",
          "Verificado con verbatim (estatutos de la Federación de Colectividades de Aragón, Caspe 14-15/2/1937, reproducidos íntegros en Leval y Carrasquer; Souchy 1937; Vela 2013 sobre Casanova). Cómo funcionaba: (1) Los delegados los elegía cada colectividad («La Federación Comarcal se compone de delegados elegidos por las colectividades de los pueblos», Souchy; el comité comarcal de Mas de las Matas «fue nombrado por una asamblea de delegados de todas las colectividades», Leval). Se contaba por delegación (500 delegados / 600 delegaciones por 80.000 colectivistas). (2) Mandato imperativo y revocación en cualquier momento: «todos los cargos son revocables por voluntad expresa de la Asamblea» y el comité federal «tendrá que actuar ateniéndose a los acuerdos que emanen de los congresos, donde a su vez, dará cuenta de su gestión» (Carrasquer, delegado de Binéfar en Caspe); en Levante el Comité Regio",
          "**no**",
          "Nuevo default de TK-D'04 (texto): «Un delegado por tribu hija, mandato PREVIO firmado por su asamblea, revocable en cualquier momento; el delegado se nombra por congreso o pleno, sin plazo propio; los cargos federales se renuevan por mitades en cada congreso ordinario (arts. 8-9), que es el ciclo de 60 d. Los acuerdos federales vinculan a las federadas desde que se votan (art. 14: «tendrá validez»); la garantía es el mandato previo, la revocación y la salida, no la ratificación; las asambleas de las hijas ratifican la composición de los cargos federales (Carrasquer, comarcal de Binéfar), no los acuerdos. Adhesión = acta de la asamblea de la hija + aprobación de la madre por voto de delegados + acatamiento de las reglas federales (arts. 11-12). Salida por voto de la hija (cert. C, solo doctrina de 1880). La federación no interviene en cargos ni reparto internos, pero el intercambio exteri",
          "A en delegado elegido por la colectividad, mandato revocable, adhesión por asamblea con aprobación del comité regional,",
          "CL-8, TK-F'01, TK-F'04, TK-F'05, TK-D'05, TK-D'03, TK-F'02, TK-G'01, TK-G'02",
          "[Leval, Gaston. Colectividades libertarias en Españ](https://www.todoporhacer.org/wp-content/uploads/2016/08/Gast%C3%B3n-Leval.-Colectividades-libertarias-en-Espa%C3%B1a.pdf); [Leval, Gaston. Colectividades libertarias en Españ](https://www.todoporhacer.org/wp-content/uploads/2016/08/Gast%C3%B3n-Leval.-Colectividades-libertarias-en-Espa%C3%B1a.pdf); [Leval, Gaston. Colectividades libertarias en Españ](https://www.todoporhacer.org/wp-content/uploads/2016/08/Gast%C3%B3n-Leval.-Colectividades-libertarias-en-Espa%C3%B1a.pdf)"
        ]
      ],
      "avisos": []
    },
    {
      "draft": "draftv1",
      "seccion": "2. Pendiente (deuda declarada)",
      "op": null,
      "kind": "tk",
      "carril": "D'",
      "headers": [
        "ID",
        "Estado"
      ],
      "rows": [
        [
          "TK-D'05",
          "sin investigar: default de draftv0 vigente"
        ],
        [
          "TK-D'06",
          "sin investigar: default de draftv0 vigente"
        ],
        [
          "TK-D'07",
          "sin investigar: default de draftv0 vigente"
        ],
        [
          "TK-D'08",
          "sin investigar: default de draftv0 vigente (afecta a CL-9; D'02 aporta parte de la respuesta)"
        ]
      ],
      "avisos": []
    }
  ],
  "resumen": {
    "total_tk": 36,
    "por_carril": {
      "B'": 6,
      "D'": 9,
      "E'": 4,
      "F'": 5,
      "G'": 7,
      "S'": 3,
      "V'": 2
    },
    "por_prioridad": {
      "C": 3,
      "H": 13,
      "M": 11
    },
    "ops": 6,
    "ops_latest": 0,
    "ops_total": 6,
    "tablas_total": 10
  }
}
