Diez redes sobre Oasis
Artifact publicado en claude.ai (app HTML interactiva). Primero, el texto visible; después, la fuente HTML íntegra, porque parte del contenido (guion, diálogos, datos) vive en el script.
Texto visible
Informe de tutoría · Trabajo de fin de grado · Modelador de Redes
Diez redes sobre Oasis
Informe de tutoría · TFG «Modelador de Redes» · 2026-09-09. Evaluación de los ejemplos presentados en su potencialidad, puntuación de la plasticidad del software base (Oasis 1.0.7 @ 9a657b7 + ecosistema FairCoop), catálogo de diez redes arquetípicas (tres iniciadas, siete propuestas) y vías para pasar del juguete animus iocandi a ciencia aplicada y a ciclos DevOps reales.
Objeto
Repo alephscriptorium-eng/modelador-redes v0.2.0, rama main en 162cc60 (23 commits, un autor)
Ramas
Cuatro, no tres: tres nodos (dev/res_publica, dev/colectivizaciones, dev/clase) y una arista (dev/res_publica+colectivizaciones, en pausa), todas mergeadas con --no-ff
Material
2.428 líneas de drafts y fichas · generador Python de 1.699 líneas con 8 ficheros de test · web estática publicada en Pages
Código auditado
Oasis 1.0.7: 70 modelos, 32.849 líneas, 67 vistas, 1.069 tests upstream. FairCoop: inventariado (12 repos) y no auditado
Veredicto corto
Lo que se demuestra no es la plasticidad del software sino la plasticidad del método de auditoría, que se ha doblado tres veces sin romperse. El software tiene plasticidad declarativa alta y plasticidad operativa casi nula: 22/40 hoy, 34/40 con los parches del catálogo
1. Qué se ha presentado, leído desde la tutoría
El alumno sostiene que el proyecto es un «modelador dual (SNH, fair ecosystem) para sociedad y economía». Conviene fijar tres precisiones antes de puntuar nada.
El catálogo es un grafo, y hay cuatro ramas. El propio llms.md del repo lo define: nodos (doctrinas puras auditadas contra el mismo commit de Oasis) y aristas (híbridos o contrastes entre dos nodos). La cuarta rama, la arista res_publica+colectivizaciones, está en pausa por decisión correcta: no se puede contrastar dos constituciones hasta que ambas tengan auditoría propia. En la defensa hay que decir «tres nodos y una arista», porque la arista es precisamente la pieza que convierte una colección de ejemplos en un catálogo.
La dualidad SNH / Fair está desequilibrada, y el trabajo lo sabe. Las 33.000 líneas de Oasis están auditadas con fichero:línea; del ecosistema FairCoop hay cero líneas auditadas. El alumno verificó por API que faircoin/faircoin no recibe commits desde 2022-02-05, que los dominios de FairCoop y Bank of the Commons están caídos y que fair-coin.org anunció el «cooling down» en junio de 2024. La respuesta ha sido honesta y doble: sustituir Faircoin por lo que Oasis usa de verdad (ECOin vía el módulo Banking) y dejar planificado un génesis nuevo («Faircoin3», carril C) más un plan de vendorización de 12 repos (vendor/plan.md, sin ejecutar). El lado «fair» del título es hoy documental, no auditado. No es un defecto de ejecución sino de alcance: hay que declararlo así en el resumen.
No se implementa nada, y eso está dicho en la primera línea. «No se implementa ningún producto. El repo es documentación de backlog y el generador que la publica.» Los parches RP-1…10, CL-1…11 y EU-1…6 son especificaciones con punto de intervención, no código. La palabra «modelador» promete más de lo que hay si se lee como simulador; es exacta si se lee como catálogo de modelizaciones: doctrina → criterios → auditoría → confrontación → parches → backlog → revisión. Esa cadena de seis pasos es la tecnología real del trabajo y es lo que hay que evaluar.
1.1 El método en seis pasos, y sus tres flexiones
| Paso | res_publica | colectivizaciones | clase |
|---|---|---|---|
| 1. Corpus → unidades auditables | 7 criterios normativos | 8 criterios normativos | 7 coordenadas de análisis (no hay nada que «cumplir») |
2. Auditoría con fichero:línea | Parliament, Courts, Banking, L.A.R.P. | Tribes, Industry, Market, Transfers, Jobs, Housing, School, Inhabitants | Capa cortical: config, hops, update, panic, IA, Multiverse |
| 3. Confrontación | Cumple / Falla / Parcial / Ortogonal | Igual, más «existe y no manda» | Trituración: implementada / ausente / fusionada / en manos del operador |
| 4. Parches | RP-n que reparan un criterio | CL-n que conectan lo que ya existe | Solo EU-n de eutaxia (lo único que la doctrina licencia prescribir) |
| 5. Backlog por carriles con defaults | D → G → C → B → F → E → L | D' → G' → B' → E' → F' | D → T → EU |
| 6. Revisión retroalimentada | 8 fichas (Libro III, cap. a cap.) | 1 ficha (por tema) | 0 (por concepto, planificadas) |
El método se dobló tres veces: de reparar (Trevijano) a conectar (colectividades) a triturar (Bueno). El generador tuvo que doblarse con él: la expresión regular de identificadores del extractor de backlog admite ya TK|OP|RP|CL|EU y carriles con apóstrofo (TK-D'01), y el commit 505868b es la huella de esa adaptación. Esa es la plasticidad demostrada, y es más interesante que la del software.
2. Evaluación de los ejemplos en su potencialidad
Rúbrica de siete criterios, 0–5 cada uno. Se evalúa lo que el material permite, no lo que ejecuta.
| Criterio | res_publica | colectivizaciones | clase |
|---|---|---|---|
| Corpus → criterios con certeza marcada | 4 | 4 | 3 |
Auditoría verificable (fichero:línea) | 5 | 5 | 4 |
| Confrontación y hallazgos estructurales | 5 | 5 | 4 |
| Parches con seam y «lo que no se toca» | 4 | 5 | 3 |
| Backlog con caminos por defecto | 5 | 4 | 3 |
| Revisión que corrige aguas arriba | 4 | 2 | 0 |
| Honestidad epistémica (grados de certeza, «no verificado») | 5 | 5 | 5 |
| Total / 35 | 32 | 30 | 22 |
2.1 res_publica (Trevijano): el nodo maduro
Lo que vale. Tres hallazgos que ningún manual de Oasis dice y que el código confirma: el karma es un solo escalar que decide desempate electoral, ley bajo KARMATOCRACY, orden de jueces y cuantía de renta básica (parliament_model.js:422, courts_model.js:805, banking_model.js:932); la fusión de poderes está implementada como comprobación de integridad (courts_model.js:140-155 exige gobierno DICTATORSHIP para que el gobernante juzgue); y la «anarquía calculada» de resolveElection (parliament_model.js:373-393) es un período constituyente permanente que nadie diseñó. El backlog v3 con caminos por defecto (cada incógnita doctrinal tiene un default que deja avanzar al carril siguiente) es una técnica de gestión de incertidumbre exportable. Las ocho fichas de revisión corrigen tareas concretas aguas arriba con enlace de línea, y crearon tareas nuevas (D17, D18, G10, G11) al detectar huecos: el control del ejecutivo sin derribo, el test de constitucionalidad ejecutable.
Lo que falta. Nada está verificado contra el libro: las ocho fichas son «reconstrucción de memoria» con certeza A/B/C del revisor. El propio índice lo declara como deuda. El carril C (cadena Faircoin3 con génesis nuevo) multiplica el alcance por diez respecto al carril G y es donde el trabajo deja de ser auditoría para ser proyecto de infraestructura. La conclusión de draftv1 («no es un clon y no puede serlo: falta el territorio y falta la escala») es la frase más honesta del repo y debería ir en el resumen de la memoria.
2.2 colectivizaciones (1936-37): la auditoría más fina
Lo que vale. Audita justo los módulos que el nodo anterior dejó «en una línea» y encuentra la estructura de propiedad del código: la tribu pertenece a su fundador (tribes_model.js:721, no puede irse; :726-729, si se le fuerza la tribu muere), la instalación industrial a quien firmó el mensaje raíz (industry_model.js:164, :980), y trabajo, material y ECOin entran en la misma bolsa de puntos (:306-321). El argumento por vocabulario (en 33.000 líneas no aparece assembly, council, recall ni commons; salary doce veces) es una técnica de auditoría barata y contundente. Y el hallazgo central es constructivo: la asamblea ya existe (todo parlamento de tribu nace en ANARCHY, :1354-1384) y solo hay que darle manos. La única ficha (01-asamblea) detectó que la asamblea podía votarse un dictador de tribu (parliament_model.js:1443-1445) y cerró la puerta en CL-1.
Lo que falta. Una ficha de seis. Toda la doctrina es paráfrasis sin página. Y hay un problema técnico no tratado que el tutor debe señalar: la unidad familiar (household, CL-9) es un tipo autodeclarado sobre una red donde ya «un feed = una persona» es una convención sin verificación (inhabitants_model.js:86-88). El salario familiar sobre hogares autodeclarados es un incentivo sybil de libro; la validación por asamblea que propone CL-9 mitiga pero no resuelve. También queda sin verificar si ECOin admite multisig k-de-n (CL-5 lo da por hecho).
2.3 clase (Bueno): la semilla más difícil y la más transversal
Lo que vale. Es un draft semilla, pero hace dos cosas que los otros no. Primera: corrige el chuletario generado por un LLM antes de usarlo (las «capas del Estado» del chuletario no son las de Bueno; las capas del cuerpo político son conjuntiva, basal y cortical; el diagrama que identifica géneros de materialidad con ejes antropológicos «se descarta»). Segunda: la tabla de las nueve ramas del poder contra Oasis produce el hallazgo más transversal del repo: la red tiene poderes sin ramas. Toda la capa cortical (caps del handshake, hops, invitaciones del PUB, puentes Multiverse, POST /update, modo pánico) y los parámetros constitutivos de la basal (constantes de carbono y de renta básica, walletPub) están en manos del operador del nodo, que no es un órgano del cuerpo político sino un poder exterior a él. Ese hallazgo afecta a los diez arquetipos del catálogo: ninguna constitución que se escriba en el log manda sobre el fichero de configuración.
Lo que falta. Todo lo demás. Y un riesgo: quedarse en filosofía. La salida está en el propio draft: los parches de eutaxia EU-1…6 (respaldo real de identidad, POST /update que no destruya src/configs, métrica de uptime, confirmación en dos pasos del modo pánico, constantes con procedencia) son hardening de seguridad y operación. Es el nodo más filosófico y el más DevOps a la vez.
2.4 La arista, y el generador
La arista en pausa es una decisión correcta y su draft conserva aún las ingenuidades del chuletario original (smart contracts en Faircoin, nodo central en SSB), marcadas para corregir. El generador (modelador build|check|zip|indice) es el contenido informático del TFG que más se parece a software: descubre modelos, valida el grafo, extrae backlogs de tablas heterogéneas, reescribe enlaces al blob del SHA auditado y falla si queda una ruta local o un enlace roto. Tiene tests y no tiene CI que los ejecute; public/ va commiteado. Es un sitio estático bien hecho y debe presentarse como tal, no esconderse detrás de la doctrina.
3. Puntuación de la plasticidad del software base
Plasticidad, aquí: cuánto régimen distinto se obtiene por cuánto cambio. Ocho dimensiones, con la evidencia que los tres nodos ya han verificado, puntuadas «hoy» (código en 9a657b7) y «potencial» (tras los parches de tamaño S/M que el catálogo propone; nada de tamaño L).
| # | Dimensión | Evidencia (fichero:línea) | Hoy | Potencial |
|---|---|---|---|---|
| P1 | Parametría constitucional: constantes que cambian el régimen | parliament_model.js:17-26 (60 d, 25 %, 7 d, 15 d), banking_model.js:14-21 (renta básica), courts_model.js:8-11 (plazos). Todas hardcodeadas; POST /update borra src/configs (backend.js:9552) | 2 | 5 |
| P2 | Selector de regímenes: métodos de gobierno y de justicia | METHODS (:22-23): DEMOCRACY, MAJORITY, MINORITY, DICTATORSHIP, KARMATOCRACY, ANARCHY; Courts (:139): JUDGE, MEDIATION, POPULAR, KARMATOCRACY, DICTATOR. Menú amplio y cerrado: añadir un método es bifurcar | 4 | 4 |
| P3 | Primitivas reutilizables | Tribu cifrada anidable (tribes_model.js:341), parlamento por tribu (:1354-1445), voto con quórum y mayoría acotada (industry_model.js:23-27, :98-101), épocas selladas con hash (banking_model.js:960-962), vales TIME/TRUST (transfers_model.js:25), certificados (school_model.js:1222), muro público del gobernante (larp_model.js:576) | 4 | 5 |
| P4 | Tipos de mensaje nuevos sin tocar el protocolo | SSB es un log tipado: los tres nodos proponen más de quince tipos (mandate, household, delegate, constituentCall, executiveReport…) sin cambiar replicación ni cifrado. No hay cargador de módulos: cada tipo nuevo es un parche al backend | 4 | 5 |
| P5 | Desacoplamiento (inverso de los seams rígidos que golpean todos los modelos) | Cinco acoplamientos: karma escalar único (banking_model.js:840 → parliament:422, courts:805, banking:932); autor = propietario (tribes:721, industry:164, school:1222); precio > 0 (market:182, shops:415); un feed = una persona (inhabitants:86-88); operador del nodo como poder exterior (config, hops, backend.js:4651) | 1 | 3 |
| P6 | Ejecutabilidad: ¿una ley cambia algo? | enactApprovedChanges (:1102) publica texto; nada lee un parliamentLaw para cambiar una constante ni un reparto. Rama ejecutiva ausente (nueve ramas, nodo clase) | 1 | 3 |
| P7 | Capa económica intercambiable | Banking es un adaptador RPC de 14 métodos; dinero solo en sendtoaddress (:1004); pero ^E ×12 y coin: "ECO" ×7 hardcodeados; tesoro = cartera del PUB (:913-917) | 2 | 4 |
| P8 | Observabilidad y trazabilidad | Log de solo-anexado, votos firmados y visibles, karma publicado (:501-506), hash por época; sin uptime (stats_model.js:438); derogación = tombstone de cliente (:1145) | 4 | 5 |
| Total / 40 | 22 | 34 |
Lectura. Oasis es plástico en lo que se declara (tipos, primitivas, menú de regímenes, trazabilidad) y rígido en lo que pesa (cinco seams que los tres nodos golpean en el mismo sitio, y una ley que no ejecuta nada). Tres de los cinco acoplamientos son cambios de una línea (if (p <= 0), tribe.author !== userId, 1 + karma/100); los otros dos (un feed = una persona; el operador como soberano de hecho) no son parches sino problemas abiertos de toda red sin territorio ni identidad verificada, y el trabajo hace bien en no fingir que los resuelve.
Hay un dato más que la puntuación no recoge y que el catálogo de la sección 4 hace visible: el software no es neutral. Tiene una doctrina implícita (karmatocracia: mérito por notoriedad, decaimiento exponencial, castigo por bytes) y de las diez redes arquetípicas hay exactamente una (la meritocracia política, nº 10) que le encaja con parches de tamaño S. La plasticidad de un sistema se mide mejor desde el arquetipo que le exige menos cambios, y ese arquetipo delata el sesgo del código.
4. Catálogo: diez redes arquetípicas
Tres iniciadas y siete propuestas, elegidas para que cada seam rígido de Oasis sea golpeado por al menos dos doctrinas distintas y para que cada una tenga un corpus con verbatim disponible (cosa que hoy ningún nodo tiene). Cada ficha lleva el mismo esqueleto que exige llms.md para abrir un nodo: corpus, criterios, lo que ya está en el código, lo que choca, parche clave, arista natural, coste (S/M/L) y valor para ciencia aplicada.
1 · res_publica — República constitucional (Trevijano)
- Estado: nodo,
draftv2, 8 fichas, 10 parches RP, carriles D→G→C→B→F→E→L. - Criterios: separación de poderes en origen; representación uninominal con mandato imperativo; sufragio igual sin karma; constituyente previo; república como forma, no ideología.
- Ya está: calendario fijo sin convocante (
parliament:17-38); retorno aANARCHY(:373-393); procedimiento codificado. - Choca: karma (
:422,banking:840); tribu candidata (canPropose :1298);DICTATOR(courts:140-155); derogación por tombstone (:1145). - Parche clave: TK-32 (karma fuera de la política) y TK-78 (
constituent_model.js). - Deuda: verificar las 8 fichas contra el libro.
2 · colectivizaciones — Comunismo libertario 1936-37
- Estado: nodo,
draftv0, 1 ficha de 6, 11 parches CL. - Criterios: asamblea soberana que no puede abdicar; cargos rotatorios y revocables; propiedad colectiva; salario familiar; federación de delegados; intercambio sin precio; voluntariedad.
- Ya está: parlamento de tribu en
ANARCHY(:1354-1384); suelo inmovible de la renta básica (banking:941); educación gratis por defecto (school:320); copyleft (industry:439). - Choca: autor vitalicio (
tribes:721); steward único (industry:164,:980); reparto pro rata a capital (:306-321); precio > 0 (market:182); sin hogar (inhabitants:86-88). - Parche clave: CL-1 (la asamblea gobierna la tribu) y CL-9 (
household). - Riesgo no tratado: hogar autodeclarado = sybil de hogar.
3 · clase — Materialismo filosófico (Bueno)
- Estado: nodo semilla; coordenadas K1–K7; nueve ramas trituradas; EU-1…6 sin implementar.
- Coordenadas: tres géneros de materialidad; cierre categorial; espacio antropológico; capas conjuntiva/basal/cortical; nueve ramas; eutaxia; holización.
- Hallazgo: poderes sin ramas: la capa cortical entera está en manos del operador del nodo (
server-config.json,oasis-pub.js:41,backend.js:4651,:9552). - Reducción detectada:
karma = rawKarma − carbonGrams(banking:839-840) reduce M₃ a M₁: fisicalismo, no materialismo. - Parche clave: EU-1 (órgano para la capa cortical), EU-2/EU-3 (respaldo de identidad,
updatesinreset --hard). - Valor: transversal; sus parches son hardening.
4 · sorteo — Democracia por sorteo
- Corpus: Aristóteles, Política IV; Hansen, The Athenian Democracy (1991); Manin, Los principios del gobierno representativo (1997); Flanigan et al., «Fair algorithms for selecting citizens' assemblies», Nature 596 (2021).
- Criterios: cargos por sorteo entre voluntarios; mandatos cortos sin reelección; rendición de cuentas al cesar (euthynai); jurados grandes por sorteo; asamblea con iniciativa.
- Ya está: RP-3 ya pide sorteo verificable por hash del log; rotación por calendario (
:17-38); turno sin elección en L.A.R.P. (larp:164-166);juryDrawpropuesto en TK-G07. - Choca: toda la elección (
:744-761); karma en el desempate (:422); sin límite de mandatos;POPULARen Courts es plebiscito, no jurado. - Parche clave:
sortitionTerm:resolveElectionsorteado entre quienes publicanwillingness;euthynaobligatoria reutilizandoexecutiveReport(TK-G10). - Arista:
res_publica+sorteo(elección frente a sorteo: el debate de Manin sobre el mismo código). - Coste: S/M. Valor: alto; hay algoritmos de selección con cuotas contra los que comparar el hash-sorteo.
5 · confederalismo — Municipalismo libertario / confederalismo democrático
- Corpus: Bookchin, The Next Revolution (2015); Öcalan, Confederalismo democrático (2011); Contrato Social de Rojava (2014, 2016); Knapp, Flach & Ayboğa, Revolution in Rojava (2016).
- Criterios: asamblea de base como unidad; confederación de delegados con mandato revocable; copresidencia paritaria; ecología social (la economía subordinada a la ecología); poder dual.
- Ya está: anidamiento (
tribes:341); la tasa de carbono es la única eutaxia ecológica del código (banking:31-37); parlamento por tribu. - Choca:
parentTribeIdes privacidad, no delegación (CL-8 lo diagnostica); un sololeaderId; sin atributos de persona por diseño (la paridad no es representable); el carbono resta karma individual en vez de financiar el común. - Parche clave:
delegatecon mandato (compartido con CL-8);leaderIds[2]con copresidencia; el impuesto de carbono ingresa entribeTreasury(CL-5) en lugar de descontarse del karma. - Arista:
colectivizaciones+confederalismo(federación sindical de 1936 frente a federación territorial de Rojava). - Coste: M. Valor: único arquetipo con implementación viva documentada; permite comparación etnográfica.
6 · liquida — Democracia líquida
- Corpus: Behrens, Kistner, Nitsche & Swierczek, The Principles of LiquidFeedback (2014); Blum & Zuber, «Liquid Democracy», J. Political Philosophy 24 (2016); Kling et al., «Voting behaviour and power in online democracy», ICWSM (2015).
- Criterios: delegación por tema, transitiva, revocable en cualquier momento; el voto directo anula la delegación; delegaciones públicas; una iniciativa entra a votación por quórum de apoyos; voto preferencial.
- Ya está:
FOLLOW_MAJORITY(votes:173) es la única delegación del sistema;tags_model.jsda los temas; el grafo de follows es una delegación latente; todo voto es firmado y visible. - Choca: la delegación es al agregado anónimo, no a una persona; sin transitividad;
pollssin quórum (:84-86); iniciativa racionada (:1298). - Parche clave: tipo
delegation {topicTag, to, until}; resolución transitiva con corte de ciclos en el recuento devotes_model.js; entrada por quórum de apoyos (RP-8 reformulada). - Arista:
res_publica+liquida(mandato imperativo frente a delegación revocable: parecidos peligrosos). - Coste: M. Valor: el más alto para ciencia aplicada: existe software de referencia (LiquidFeedback) y datos empíricos del Partido Pirata sobre concentración en superdelegados; el karma de Oasis es una concentración ya medible.
7 · mixta — República mixta y republicanismo neorromano
- Corpus: Polibio, Historias VI; Maquiavelo, Discursos I; Pettit, Republicanism (1997); Skinner, Liberty before Liberalism (1998).
- Criterios: gobierno mixto; no-dominación: toda decisión es contestable; tribunado con veto; magistraturas colegiadas y anuales; cursus honorum; dictadura temporal con plazo y nombrada por otro poder.
- Ya está: revocación de leyes a 15 días (
:1145) ≈ veto tribunicio;TERM_DAYS60 ≈ anualidad;DICTATORSHIPcomo método (es el único arquetipo que puede conservarla, si le pone plazo); Courts como instancia de contestación;MINORITYal 20 % (:240-242). - Choca: gobierno unipersonal; el candidato elige su propio método (
:81); ninguna magistratura veta a otra; sin elegibilidad por historial. - Parche clave:
collegiate: true(dosleaderIdconintercessiorecíproca);tribunate= cargo elegido por el 20 % reutilizando el umbralMINORITYcomo voz de la minoría en lugar de como legislador;DICTATORSHIPconexpiresAty nombramiento por la Cámara. - Arista:
res_publica+mixta(dos republicanismos: separación en origen frente a contestabilidad). - Coste: M. Valor: Pettit da un criterio computable sobre el log (dominación = capacidad de interferencia arbitraria: quién puede
tombstonea quién).
8 · comunes — Gobierno de los bienes comunes (Ostrom)
- Corpus: Ostrom, Governing the Commons (1990); Ostrom, Understanding Institutional Diversity (2005, marco IAD); Cox, Arnold & Villamayor, meta-análisis de los 8 principios, Ecology & Society 15 (2010); Hess & Ostrom, Understanding Knowledge as a Commons (2007); Frey & Schneider, «Modular politics», CSCW (2021).
- Criterios (los 8 principios): límites claros; congruencia con condiciones locales; elección colectiva de las reglas; monitoreo por los propios; sanciones graduadas; resolución barata de conflictos; reconocimiento externo; empresas anidadas.
- Ya está: límites = tribu con clave rotada (
tribes:533-541); elección colectiva parcial en Industry (:211-223);MEDIATION(courts:139); anidamiento (:341); log público = monitoreo gratis; copyleft (industry:439). - Choca: ninguna sanción graduada: solo expulsión (
:533) o tombstone; las reglas son constantes globales, no locales por tribu;laborRatelo fija el steward (:438). El seam esreports_model.js(361 líneas, sin auditar por ningún nodo). - Parche clave:
sanction {level}en Reports → Courts (aviso, suspensión temporal del voto, expulsión);tribeRulescon constantes de Industry y Banking por tribu (principio 2). - Arista:
colectivizaciones+comunes(Aragón 1936 leído como recurso de uso común) ocooperativa+comunes. - Coste: M. Valor: muy alto: el marco empírico más validado para instituciones autogestionadas; los principios son ya una rúbrica y las «situaciones de acción» del IAD mapean uno a uno a los modelos de Oasis.
9 · cooperativa — Cooperativismo (ACI, Mondragón, FairCoop)
- Corpus: Declaración de la Alianza Cooperativa Internacional (1995, 7 principios); estatutos de Rochdale (1844); Ley 27/1999 de Cooperativas; Arizmendiarrieta y el modelo Mondragón (ratio salarial, fondos COFIP/FRO); FairCoop como cooperativa integral y Bank of the Commons;
FreedomCoop/valuenetwork(contabilidad REA), ya en el plan de vendorización. - Criterios: adhesión voluntaria; un socio, un voto; retorno proporcional a la actividad, nunca al capital; fondos irrepartibles; autonomía; educación; intercooperación; ratio salarial máxima.
- Ya está: un miembro, un voto en Industry (
:98-101,:211-223); School gratis (:320); Projects (financiación con objetivo); arte previo envaluenetwork. - Choca:
computeShares(:306-321) mezcla capital y trabajo (retorno por capital = anticooperativo); excedente repartido al 100 % (:960-970), sin fondo irrepartible; steward (:164); sin ratio; renta por karma. - Parche clave:
ecofuera del numerador decomputeShares(capital remunerado a interés limitado);reserveFundcomo porcentaje obligatorio delpothaciatribeTreasury(CL-5);maxRatiode puntos por hora entre miembros. - Arista:
colectivizaciones+cooperativa(colectividad ≠ cooperativa: el debate de la CNT) y `cooperativa+faircoin`, la arista que reconecta el lado «fair» del título. - Coste: S/M. Valor: alto y con derecho positivo: hay ley y estatutos contra los que auditar con verbatim, cosa que ningún nodo actual tiene.
10 · meritocracia — Meritocracia política
- Corpus: Bell, The China Model (2015); Platón, República V–VII; el examen imperial confuciano; Young, The Rise of the Meritocracy (1958) como crítica; Sandel, The Tyranny of Merit (2020).
- Criterios: selección por examen o certificación; promoción por desempeño; deliberación de expertos; legitimidad por resultados; democracia en la base y mérito en la cúspide.
- Ya está: casi todo.
KARMATOCRACY(:22-23): la ley del proponente con más karma; karma como mérito acumulado con decaimiento (banking:525-607); certificados de School (:1222); desempate por karma (:422); jueces por karma (courts:805); TK-D07 ya propone jueces con certificado. La estructura tribu/general de Oasis es exactamente «democracia abajo, mérito arriba». - Choca: el «mérito» es notoriedad (un
postvale 10, unlike2), no competencia; el carbono resta (:840); ningún examen condiciona el cargo; no hay evaluación del desempeño del gobierno (TK-G10 la daría). - Parche clave:
merit = f(certificados, veredictos confirmados, leyes no revocadas)en lugar dekarmapor volumen; elegibilidad = certificado;ANARCHY/DEMOCRACYen tribus,KARMATOCRACYen el general. - Arista:
meritocracia+res_publicaes la arista de mayor contraste del catálogo: el escalar que Trevijano exige abolir es aquí el principio constitutivo. Tambiénmeritocracia+clase(holización y karma). - Coste: S. Valor: metodológicamente decisivo: es el arquetipo nativo del código y demuestra que Oasis tiene doctrina implícita.
Suplentes, por si el tribunal prefiere otra cobertura: orden espontáneo (Hayek, Derecho, legislación y libertad: el gossip y ANARCHY como catalaxia, el precio > 0 como virtud, aboliría Banking); decisionismo (Schmitt: DICTATORSHIP y estado de excepción; el único que legitima al operador del nodo como soberano; útil como control negativo); sociocracia (consentimiento, círculos enlazados, elección sin candidatos; Tasks, Agenda y Workflows ya existen y es el arquetipo más cercano a un equipo DevOps).
4.1 Cobertura de seams
Cada columna es un seam rígido o un módulo; cada fila, un arquetipo. El objetivo del catálogo es que ninguna columna dependa de un solo modelo.
| Arquetipo | Parliament | Courts | Banking / karma | Tribes | Industry | Market | School | Cortical (operador) |
|---|---|---|---|---|---|---|---|---|
| 1 res_publica | ● | ● | ● | ○ | ○ | |||
| 2 colectivizaciones | ● | ● | ● | ● | ● | ○ | ||
| 3 clase | ○ | ○ | ● | ○ | ● | |||
| 4 sorteo | ● | ● | ○ | |||||
| 5 confederalismo | ○ | ● | ● | |||||
| 6 liquida | ● | ○ | ||||||
| 7 mixta | ● | ● | ○ | |||||
| 8 comunes | ● | ○ | ● | ● | ○ | |||
| 9 cooperativa | ● | ○ | ● | ○ | ● | |||
| 10 meritocracia | ● | ● | ● | ● |
● seam central del modelo · ○ seam tocado.
5. Del juguete a la ciencia aplicada y a DevOps
La licencia compuesta (GPL-3.0 + capa Animus Iocandi) y el eslogan «juguete-pasatiempo» son una zona experimental legítima. Bajar de ella no exige cambiar de licencia ni de tono: exige que alguna afirmación del catálogo pueda ser falsada y que algún parche pueda ser desplegado. Seis vías, ordenadas por coste, con el primer paso concreto de cada una.
5.1 Ciencia aplicada
A. Constitución ejecutable: parches como tests de aceptación. Oasis trae 1.069 tests en 82 ficheros, un runner con aislamiento de ~/.ssb y un seed.js. Cada RP/CL/EU tiene ya un seam; convertirlo en un test que hoy falla (rojo) y que el parche pone en verde es el paso mínimo entre especificación e ingeniería. TK-G11 lo propone (test/constitutional.js con los cinco criterios de constitucionalidad). Primer paso: escribir el test de RP-4 («ningún resultado electoral depende del karma») contra chooseWinnerFromCandidaturesAsync y verlo fallar en 9a657b7. Ampliación natural: pruebas basadas en propiedades (invariantes: sufragio igual, ninguna ley sin quórum, ningún tombstone resucita) con fast-check.
B. Simulación multiagente sobre nodos reales. N contenedores con ssb-server y agentes sintéticos que publican, votan y forman tribus según perfiles; el log de solo-anexado es el dataset. Métricas: Gini del karma por ciclo, frecuencia de ANARCHY, captura del legislativo por tribus, dispersión de la renta básica. Hipótesis falsables que ya están implícitas en el repo: «el acoplamiento karma-renta produce un Gini superior a x en k ciclos»; «el sorteo (nº 4) reduce la captura respecto a la elección»; «la delegación transitiva (nº 6) concentra en superdelegados como en LiquidFeedback». Primer paso: docker-compose con un PUB (receta en docs/PUB/deploy.md: Node 22, server-config.json) y tres clientes sembrados con test/seed.js.
C. Estudio observacional en La Plaza. El PUB público del proyecto es una población real y el karma se publica en el log (banking:501-506): la distribución de mérito, los mandatos y las leyes son observables sin instrumentar nada. Requiere consentimiento y un protocolo ético (los datos son públicos por diseño, pero las personas no son sujetos de experimento por defecto). Primer paso: un modelador observar que lea un log SSB y emita data/observaciones.json con las mismas métricas de B, para comparar simulación y campo.
D. Elección social computacional. Cada método de METHODS es una regla de agregación y la cascada de desempate (:408-437) es una función de elección social determinista. Sus propiedades formales (monotonía, resistencia a la manipulación, tratamiento de la abstención) se pueden demostrar o refutar con la literatura COMSOC, y la máquina de estados proposición → voto → promulgación → revocación cabe en un modelo TLA+ o Alloy pequeño. Primer paso: especificar enactApprovedChanges y tombstone en Alloy y comprobar «ninguna ley revocada vuelve a mostrarse».
5.2 Ciclos DevOps reales
E. Externalizar la constitución y devolver un parche upstream. El paso que más plasticidad compra por menos código: un bloque constitution en oasis-config.json con las constantes de parliament:17-26, banking:14-21 y courts:8-11, con procedencia registrada (EU-5), y que POST /update deje de destruir src/configs (EU-3). Con eso P1 pasa de 2 a 5 y todos los arquetipos se vuelven configuraciones en lugar de forks. La AGPL obliga a devolver: un pull request aceptado en epsylon/oasis convierte el juguete en contribución. Primer paso: elegir el parche más pequeño y más decisivo (RP-6, derogación con memoria, tamaño S; o TK-32) e implementarlo con su test de A.
F. Integración continua del propio catálogo. El repo tiene tests y no tiene CI. Añadir un workflow que ejecute pytest, modelador build y modelador check, más dos comprobaciones nuevas: scripts/vendor.sh --check (del plan de vendorización) y un modelador citas permanente que verifique que cada fichero:línea citado en modelos/ existe en el vendor al SHA y contiene el símbolo nombrado. Con eso la auditoría es reproducible y se rompe visiblemente si upstream cambia. Primer paso: promover el script de un solo uso check_citas.py a subcomando con test.
G. Pipeline especificación → parche → prueba → despliegue. Cada TK con seam nace como rama oasis-<modelo>/<TK> en un fork; el id del TK va en el commit; el generador publica el estado de cada tarea (especificada / implementada / probada / desplegada) leyendo el fork. El testnet constitucional de B es el entorno de despliegue; para la capa económica, fairchains-tool crea una cadena PoC desde JSON sin recompilar (verificado en vendor/plan.md), lo que da una regtest Faircoin3 sin tocar mainnet. Primer paso: un modelador parches --modelo X que emita el esqueleto de la serie de parches con sus seams.
H. Eutaxia como SRE. El nodo clase define eutaxia como capacidad de recurrencia. Traducida: uptime, réplicas alcanzables, épocas ejecutadas a tiempo, identidades con respaldo. faircoin_exporter (Prometheus, en el plan de vendorización) y EU-4 (uptime en stats) dan las métricas; un panel con objetivos de nivel de servicio es la primera implementación operativa de una categoría de Bueno. Y el propio repo puede comer su comida: completar la migración a Radicle (anunciada, no ejecutada) y tomar las decisiones del catálogo (qué nodo abrir, qué arista cerrar) en una instancia de Oasis cuya primera población sea el equipo del proyecto.
5.3 Orden recomendado
| Hito | Contenido | Vías | Horizonte |
|---|---|---|---|
| 1 | CI con pytest, check, vendor --check y citas verificadas; constantes externalizadas a config | F, E | Semanas |
| 2 | Testnet en contenedores; un parche S implementado con test y enviado upstream; suite constitucional | A, B, E, G | Meses |
| 3 | Simulación con métricas, estudio observacional con protocolo ético, un artículo comparando dos arquetipos (sorteo frente a elección, o líquida frente a mandato) | B, C, D | Un semestre |
6. Observaciones para la defensa
- Decir «tres nodos y una arista», y explicar que la arista en pausa es la prueba de que el catálogo es un grafo y no una lista.
- Declarar la asimetría de la dualidad: Oasis auditado línea a línea, FairCoop inventariado y muerto desde 2022; la sustitución por ECOin/Banking y el plan de vendorización son la respuesta, no una omisión.
- Declarar la deuda doctrinal en el resumen: ninguna de las nueve fichas está verificada contra su fuente; la certeza A/B/C es la del revisor. La rúbrica de la sección 2 premia haberlo dicho; el tribunal castigará no decirlo.
- Presentar el generador como el software del TFG (1.699 líneas, tests, validación de grafo y enlaces, extractor tolerante de backlogs) y los parches como especificaciones. Si hay tiempo antes de la defensa, implementar uno de tamaño S (RP-6 o TK-32) con su test: cambia la naturaleza del trabajo.
- Corregir `CITATION.cff`: «Modelador de Redes Contributors» no sirve para un trabajo de fin de grado; debe constar el autor.
- Llevar la sección 3 como resultado: la plasticidad de Oasis es 22/40 hoy y 34/40 con parches S/M; tres de los cinco acoplamientos rígidos son cambios de una línea; el software tiene doctrina implícita y el arquetipo que la delata es la meritocracia.
Fuente HTML íntegra
<!doctype html><html><head><meta charset=utf8><meta name=viewport content="width=device-width,initial-scale=1"><style>:root{color-scheme:light}body{margin:0;padding:0;font:14px -apple-system,BlinkMacSystemFont,sans-serif;background:#faf9f5;color:#141413}img{max-width:100%}[hidden]:not([hidden=until-found]){display:none!important}</style></head><body>
<title>Diez redes sobre Oasis</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,600;12..96,700&family=Source+Serif+4:ital,opsz,wght@0,8..60,400;0,8..60,600;1,8..60,400&family=JetBrains+Mono:wght@400;500&display=swap">
<style>
:root{
--bg:#F1F3EF; --surface:#FAFBF8; --ink:#171B18; --muted:#5A645D; --line:#CBD3CC;
--accent:#1E6B58; --accent-ink:#0E4A3A; --accent-soft:#DDEBE4;
--code-bg:#E4E9E4; --ok:#2F7D4F; --warn:#A5711A; --bad:#A63A2C;
--display:'Bricolage Grotesque','Helvetica Neue',Arial,sans-serif;
--body:'Source Serif 4',Georgia,'Times New Roman',serif;
--mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
}
@media (prefers-color-scheme: dark){
:root:not([data-theme="light"]){
--bg:#121614; --surface:#191E1B; --ink:#E3E7E1; --muted:#98A39B; --line:#2B342F;
--accent:#62C4A0; --accent-ink:#8ADBBE; --accent-soft:#1B2E27;
--code-bg:#202723; --ok:#6FCB8E; --warn:#E0A84A; --bad:#E07A6A;
}
}
:root[data-theme="dark"]{
--bg:#121614; --surface:#191E1B; --ink:#E3E7E1; --muted:#98A39B; --line:#2B342F;
--accent:#62C4A0; --accent-ink:#8ADBBE; --accent-soft:#1B2E27;
--code-bg:#202723; --ok:#6FCB8E; --warn:#E0A84A; --bad:#E07A6A;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.55;
font-variant-numeric:tabular-nums oldstyle-nums}
.page{max-width:1080px;margin:0 auto;padding:40px 24px 96px}
.eyebrow{font-family:var(--display);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 10px}
h1{font-family:var(--display);font-weight:700;font-size:clamp(38px,6vw,64px);line-height:1;letter-spacing:-.02em;margin:0 0 20px;text-wrap:balance}
h2{font-family:var(--display);font-weight:600;font-size:28px;line-height:1.15;letter-spacing:-.01em;margin:64px 0 16px;text-wrap:balance;
padding-top:18px;border-top:2px solid var(--ink)}
h3{font-family:var(--display);font-weight:600;font-size:19px;line-height:1.25;margin:36px 0 10px;text-wrap:balance}
p,ul,ol{max-width:70ch}
p{margin:0 0 16px}
ul,ol{padding-left:1.2em;margin:0 0 16px}
li{margin:0 0 6px}
a{color:var(--accent-ink);text-decoration-thickness:1px;text-underline-offset:2px}
strong{font-weight:600}
em{font-style:italic}
code{font-family:var(--mono);font-size:.82em;background:var(--code-bg);padding:.1em .35em;border-radius:3px;white-space:nowrap}
h1 code,h2 code,h3 code{font-size:.8em;background:transparent;padding:0}
.lead{font-size:19px;color:var(--ink);max-width:78ch}
.lead strong{font-family:var(--display);font-weight:600}
dl.ficha{display:grid;grid-template-columns:max-content 1fr;gap:10px 22px;margin:28px 0 8px;padding:20px 24px;
background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--accent);max-width:900px}
dl.ficha dt{font-family:var(--display);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding-top:4px}
dl.ficha dd{margin:0}
dl.ficha dd code{white-space:normal}
.table-wrap{overflow-x:auto;margin:18px 0 24px;border:1px solid var(--line);background:var(--surface)}
table{border-collapse:collapse;width:100%;font-size:15px;line-height:1.4}
th,td{padding:9px 12px;vertical-align:top;border-bottom:1px solid var(--line);text-align:left}
th{font-family:var(--display);font-weight:600;font-size:13px;letter-spacing:.04em;background:var(--accent-soft);color:var(--ink)}
tr:last-child td{border-bottom:none}
td[style*="right"]{font-family:var(--mono);font-size:14px}
td[style*="center"]{font-size:16px;color:var(--accent-ink)}
td code{white-space:normal}
tbody tr:last-child td strong{font-family:var(--display)}
.catalogo{display:grid;grid-template-columns:repeat(auto-fit,minmax(440px,1fr));gap:20px;margin:24px 0 20px}
@media (max-width:520px){.catalogo{grid-template-columns:1fr}}
.arq{background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--accent);padding:18px 22px 10px;min-width:0}
.arq.iniciado{border-top-style:dashed}
.arq h3{margin:0 0 12px;font-size:18px}
.arq ul{max-width:none;padding-left:1.05em;font-size:15px;line-height:1.45}
.arq li{margin:0 0 7px}
.arq li strong{font-family:var(--display);font-weight:600;font-size:13px;letter-spacing:.03em;text-transform:uppercase;color:var(--accent-ink)}
.arq code{font-size:.8em}
.leyenda{color:var(--muted);font-size:14px}
hr{border:0;border-top:1px solid var(--line);margin:40px 0}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}
</style>
<main class="page">
<p class="eyebrow">Informe de tutoría · Trabajo de fin de grado · Modelador de Redes</p>
<h1>Diez redes sobre Oasis</h1>
<p class="lead"><strong>Informe de tutoría · TFG «Modelador de Redes» · 2026-09-09.</strong> Evaluación de los ejemplos presentados en su potencialidad, puntuación de la plasticidad del software base (Oasis 1.0.7 @ <code>9a657b7</code> + ecosistema FairCoop), catálogo de diez redes arquetípicas (tres iniciadas, siete propuestas) y vías para pasar del juguete <em>animus iocandi</em> a ciencia aplicada y a ciclos DevOps reales.</p>
<dl class="ficha">
<dt>Objeto</dt><dd>Repo <code>alephscriptorium-eng/modelador-redes</code> v0.2.0, rama <code>main</code> en <code>162cc60</code> (23 commits, un autor)</dd>
<dt>Ramas</dt><dd><strong>Cuatro</strong>, no tres: tres nodos (<code>dev/res_publica</code>, <code>dev/colectivizaciones</code>, <code>dev/clase</code>) y una arista (<code>dev/res_publica+colectivizaciones</code>, en pausa), todas mergeadas con <code>--no-ff</code></dd>
<dt>Material</dt><dd>2.428 líneas de drafts y fichas · generador Python de 1.699 líneas con 8 ficheros de test · web estática publicada en Pages</dd>
<dt>Código auditado</dt><dd>Oasis 1.0.7: 70 modelos, 32.849 líneas, 67 vistas, 1.069 tests upstream. FairCoop: inventariado (12 repos) y <em>no</em> auditado</dd>
<dt>Veredicto corto</dt><dd>Lo que se demuestra no es la plasticidad del software sino la plasticidad del <strong>método de auditoría</strong>, que se ha doblado tres veces sin romperse. El software tiene plasticidad declarativa alta y plasticidad operativa casi nula: <strong>22/40 hoy, 34/40 con los parches del catálogo</strong></dd>
</dl>
<h2 id="1-qué-se-ha-presentado-leído-desde-la-tutoría">1. Qué se ha presentado, leído desde la tutoría</h2>
<p>El alumno sostiene que el proyecto es un «modelador dual (SNH, fair ecosystem) para sociedad y economía». Conviene fijar tres precisiones antes de puntuar nada.</p>
<p><strong>El catálogo es un grafo, y hay cuatro ramas.</strong> El propio <code>llms.md</code> del repo lo define: nodos (doctrinas puras auditadas contra el mismo commit de Oasis) y aristas (híbridos o contrastes entre dos nodos). La cuarta rama, la arista <code>res_publica+colectivizaciones</code>, está en pausa por decisión correcta: no se puede contrastar dos constituciones hasta que ambas tengan auditoría propia. En la defensa hay que decir «tres nodos y una arista», porque la arista es precisamente la pieza que convierte una colección de ejemplos en un catálogo.</p>
<p><strong>La dualidad SNH / Fair está desequilibrada, y el trabajo lo sabe.</strong> Las 33.000 líneas de Oasis están auditadas con <code>fichero:línea</code>; del ecosistema FairCoop hay cero líneas auditadas. El alumno verificó por API que <code>faircoin/faircoin</code> no recibe commits desde 2022-02-05, que los dominios de FairCoop y Bank of the Commons están caídos y que fair-coin.org anunció el «cooling down» en junio de 2024. La respuesta ha sido honesta y doble: sustituir Faircoin por lo que Oasis usa de verdad (ECOin vía el módulo <code>Banking</code>) y dejar planificado un génesis nuevo («Faircoin3», carril C) más un plan de vendorización de 12 repos (<code>vendor/plan.md</code>, sin ejecutar). El lado «fair» del título es hoy documental, no auditado. No es un defecto de ejecución sino de alcance: hay que declararlo así en el resumen.</p>
<p><strong>No se implementa nada, y eso está dicho en la primera línea.</strong> «No se implementa ningún producto. El repo es documentación de backlog y el generador que la publica.» Los parches RP-1…10, CL-1…11 y EU-1…6 son especificaciones con punto de intervención, no código. La palabra «modelador» promete más de lo que hay si se lee como simulador; es exacta si se lee como <em>catálogo de modelizaciones</em>: doctrina → criterios → auditoría → confrontación → parches → backlog → revisión. Esa cadena de seis pasos es la tecnología real del trabajo y es lo que hay que evaluar.</p>
<h3 id="11-el-método-en-seis-pasos-y-sus-tres-flexiones">1.1 El método en seis pasos, y sus tres flexiones</h3>
<div class="table-wrap"><table>
<thead>
<tr>
<th style="text-align:left">Paso</th>
<th style="text-align:left">res_publica</th>
<th style="text-align:left">colectivizaciones</th>
<th style="text-align:left">clase</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">1. Corpus → unidades auditables</td>
<td style="text-align:left">7 criterios normativos</td>
<td style="text-align:left">8 criterios normativos</td>
<td style="text-align:left">7 <strong>coordenadas</strong> de análisis (no hay nada que «cumplir»)</td>
</tr>
<tr>
<td style="text-align:left">2. Auditoría con <code>fichero:línea</code></td>
<td style="text-align:left">Parliament, Courts, Banking, L.A.R.P.</td>
<td style="text-align:left">Tribes, Industry, Market, Transfers, Jobs, Housing, School, Inhabitants</td>
<td style="text-align:left">Capa cortical: config, hops, update, panic, IA, Multiverse</td>
</tr>
<tr>
<td style="text-align:left">3. Confrontación</td>
<td style="text-align:left">Cumple / Falla / Parcial / Ortogonal</td>
<td style="text-align:left">Igual, más «existe y no manda»</td>
<td style="text-align:left"><strong>Trituración</strong>: implementada / ausente / fusionada / en manos del operador</td>
</tr>
<tr>
<td style="text-align:left">4. Parches</td>
<td style="text-align:left">RP-n que <em>reparan</em> un criterio</td>
<td style="text-align:left">CL-n que <em>conectan</em> lo que ya existe</td>
<td style="text-align:left">Solo EU-n de <strong>eutaxia</strong> (lo único que la doctrina licencia prescribir)</td>
</tr>
<tr>
<td style="text-align:left">5. Backlog por carriles con defaults</td>
<td style="text-align:left">D → G → C → B → F → E → L</td>
<td style="text-align:left">D' → G' → B' → E' → F'</td>
<td style="text-align:left">D → T → EU</td>
</tr>
<tr>
<td style="text-align:left">6. Revisión retroalimentada</td>
<td style="text-align:left">8 fichas (Libro III, cap. a cap.)</td>
<td style="text-align:left">1 ficha (por tema)</td>
<td style="text-align:left">0 (por concepto, planificadas)</td>
</tr>
</tbody>
</table></div>
<p>El método se dobló tres veces: de reparar (Trevijano) a conectar (colectividades) a triturar (Bueno). El generador tuvo que doblarse con él: la expresión regular de identificadores del extractor de backlog admite ya <code>TK|OP|RP|CL|EU</code> y carriles con apóstrofo (<code>TK-D'01</code>), y el commit <code>505868b</code> es la huella de esa adaptación. Esa es la plasticidad demostrada, y es más interesante que la del software.</p>
<h2 id="2-evaluación-de-los-ejemplos-en-su-potencialidad">2. Evaluación de los ejemplos en su potencialidad</h2>
<p>Rúbrica de siete criterios, 0–5 cada uno. Se evalúa lo que el material <em>permite</em>, no lo que ejecuta.</p>
<div class="table-wrap"><table>
<thead>
<tr>
<th style="text-align:left">Criterio</th>
<th style="text-align:right">res_publica</th>
<th style="text-align:right">colectivizaciones</th>
<th style="text-align:right">clase</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">Corpus → criterios con certeza marcada</td>
<td style="text-align:right">4</td>
<td style="text-align:right">4</td>
<td style="text-align:right">3</td>
</tr>
<tr>
<td style="text-align:left">Auditoría verificable (<code>fichero:línea</code>)</td>
<td style="text-align:right">5</td>
<td style="text-align:right">5</td>
<td style="text-align:right">4</td>
</tr>
<tr>
<td style="text-align:left">Confrontación y hallazgos estructurales</td>
<td style="text-align:right">5</td>
<td style="text-align:right">5</td>
<td style="text-align:right">4</td>
</tr>
<tr>
<td style="text-align:left">Parches con seam y «lo que no se toca»</td>
<td style="text-align:right">4</td>
<td style="text-align:right">5</td>
<td style="text-align:right">3</td>
</tr>
<tr>
<td style="text-align:left">Backlog con caminos por defecto</td>
<td style="text-align:right">5</td>
<td style="text-align:right">4</td>
<td style="text-align:right">3</td>
</tr>
<tr>
<td style="text-align:left">Revisión que corrige aguas arriba</td>
<td style="text-align:right">4</td>
<td style="text-align:right">2</td>
<td style="text-align:right">0</td>
</tr>
<tr>
<td style="text-align:left">Honestidad epistémica (grados de certeza, «no verificado»)</td>
<td style="text-align:right">5</td>
<td style="text-align:right">5</td>
<td style="text-align:right">5</td>
</tr>
<tr>
<td style="text-align:left"><strong>Total / 35</strong></td>
<td style="text-align:right"><strong>32</strong></td>
<td style="text-align:right"><strong>30</strong></td>
<td style="text-align:right"><strong>22</strong></td>
</tr>
</tbody>
</table></div>
<h3 id="21-res_publica-trevijano-el-nodo-maduro">2.1 res_publica (Trevijano): el nodo maduro</h3>
<p><strong>Lo que vale.</strong> Tres hallazgos que ningún manual de Oasis dice y que el código confirma: el karma es un solo escalar que decide desempate electoral, ley bajo KARMATOCRACY, orden de jueces y cuantía de renta básica (<code>parliament_model.js:422</code>, <code>courts_model.js:805</code>, <code>banking_model.js:932</code>); la fusión de poderes está implementada como comprobación de integridad (<code>courts_model.js:140-155</code> exige gobierno <code>DICTATORSHIP</code> para que el gobernante juzgue); y la «anarquía calculada» de <code>resolveElection</code> (<code>parliament_model.js:373-393</code>) es un período constituyente permanente que nadie diseñó. El backlog v3 con caminos por defecto (cada incógnita doctrinal tiene un default que deja avanzar al carril siguiente) es una técnica de gestión de incertidumbre exportable. Las ocho fichas de revisión corrigen tareas concretas aguas arriba con enlace de línea, y crearon tareas nuevas (D17, D18, G10, G11) al detectar huecos: el control del ejecutivo sin derribo, el test de constitucionalidad ejecutable.</p>
<p><strong>Lo que falta.</strong> Nada está verificado contra el libro: las ocho fichas son «reconstrucción de memoria» con certeza A/B/C del revisor. El propio índice lo declara como deuda. El carril C (cadena Faircoin3 con génesis nuevo) multiplica el alcance por diez respecto al carril G y es donde el trabajo deja de ser auditoría para ser proyecto de infraestructura. La conclusión de <code>draftv1</code> («no es un clon y no puede serlo: falta el territorio y falta la escala») es la frase más honesta del repo y debería ir en el resumen de la memoria.</p>
<h3 id="22-colectivizaciones-1936-37-la-auditoría-más-fina">2.2 colectivizaciones (1936-37): la auditoría más fina</h3>
<p><strong>Lo que vale.</strong> Audita justo los módulos que el nodo anterior dejó «en una línea» y encuentra la estructura de propiedad del código: la tribu pertenece a su fundador (<code>tribes_model.js:721</code>, no puede irse; <code>:726-729</code>, si se le fuerza la tribu muere), la instalación industrial a quien firmó el mensaje raíz (<code>industry_model.js:164</code>, <code>:980</code>), y trabajo, material y ECOin entran en la misma bolsa de puntos (<code>:306-321</code>). El argumento por vocabulario (en 33.000 líneas no aparece <em>assembly</em>, <em>council</em>, <em>recall</em> ni <em>commons</em>; <em>salary</em> doce veces) es una técnica de auditoría barata y contundente. Y el hallazgo central es constructivo: la asamblea <em>ya existe</em> (todo parlamento de tribu nace en <code>ANARCHY</code>, <code>:1354-1384</code>) y solo hay que darle manos. La única ficha (<code>01-asamblea</code>) detectó que la asamblea podía votarse un dictador de tribu (<code>parliament_model.js:1443-1445</code>) y cerró la puerta en CL-1.</p>
<p><strong>Lo que falta.</strong> Una ficha de seis. Toda la doctrina es paráfrasis sin página. Y hay un problema técnico no tratado que el tutor debe señalar: la unidad familiar (<code>household</code>, CL-9) es un tipo autodeclarado sobre una red donde ya «un feed = una persona» es una convención sin verificación (<code>inhabitants_model.js:86-88</code>). El salario familiar sobre hogares autodeclarados es un incentivo sybil de libro; la validación por asamblea que propone CL-9 mitiga pero no resuelve. También queda sin verificar si ECOin admite multisig k-de-n (CL-5 lo da por hecho).</p>
<h3 id="23-clase-bueno-la-semilla-más-difícil-y-la-más-transversal">2.3 clase (Bueno): la semilla más difícil y la más transversal</h3>
<p><strong>Lo que vale.</strong> Es un draft semilla, pero hace dos cosas que los otros no. Primera: corrige el chuletario generado por un LLM antes de usarlo (las «capas del Estado» del chuletario no son las de Bueno; las capas del cuerpo político son conjuntiva, basal y cortical; el diagrama que identifica géneros de materialidad con ejes antropológicos «se descarta»). Segunda: la tabla de las nueve ramas del poder contra Oasis produce el hallazgo más transversal del repo: <strong>la red tiene poderes sin ramas</strong>. Toda la capa cortical (caps del handshake, hops, invitaciones del PUB, puentes Multiverse, <code>POST /update</code>, modo pánico) y los parámetros constitutivos de la basal (constantes de carbono y de renta básica, <code>walletPub</code>) están en manos del operador del nodo, que no es un órgano del cuerpo político sino un poder exterior a él. Ese hallazgo afecta a los diez arquetipos del catálogo: ninguna constitución que se escriba en el log manda sobre el fichero de configuración.</p>
<p><strong>Lo que falta.</strong> Todo lo demás. Y un riesgo: quedarse en filosofía. La salida está en el propio draft: los parches de eutaxia EU-1…6 (respaldo real de identidad, <code>POST /update</code> que no destruya <code>src/configs</code>, métrica de uptime, confirmación en dos pasos del modo pánico, constantes con procedencia) son <em>hardening</em> de seguridad y operación. Es el nodo más filosófico y el más DevOps a la vez.</p>
<h3 id="24-la-arista-y-el-generador">2.4 La arista, y el generador</h3>
<p>La arista en pausa es una decisión correcta y su draft conserva aún las ingenuidades del chuletario original (smart contracts en Faircoin, nodo central en SSB), marcadas para corregir. El generador (<code>modelador build|check|zip|indice</code>) es el contenido informático del TFG que más se parece a software: descubre modelos, valida el grafo, extrae backlogs de tablas heterogéneas, reescribe enlaces al blob del SHA auditado y falla si queda una ruta local o un enlace roto. Tiene tests y no tiene CI que los ejecute; <code>public/</code> va commiteado. Es un sitio estático bien hecho y debe presentarse como tal, no esconderse detrás de la doctrina.</p>
<h2 id="3-puntuación-de-la-plasticidad-del-software-base">3. Puntuación de la plasticidad del software base</h2>
<p>Plasticidad, aquí: cuánto régimen distinto se obtiene por cuánto cambio. Ocho dimensiones, con la evidencia que los tres nodos ya han verificado, puntuadas «hoy» (código en <code>9a657b7</code>) y «potencial» (tras los parches de tamaño S/M que el catálogo propone; nada de tamaño L).</p>
<div class="table-wrap"><table>
<thead>
<tr>
<th style="text-align:left">#</th>
<th style="text-align:left">Dimensión</th>
<th style="text-align:left">Evidencia (<code>fichero:línea</code>)</th>
<th style="text-align:right">Hoy</th>
<th style="text-align:right">Potencial</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">P1</td>
<td style="text-align:left"><strong>Parametría constitucional</strong>: constantes que cambian el régimen</td>
<td style="text-align:left"><code>parliament_model.js:17-26</code> (60 d, 25 %, 7 d, 15 d), <code>banking_model.js:14-21</code> (renta básica), <code>courts_model.js:8-11</code> (plazos). Todas hardcodeadas; <code>POST /update</code> borra <code>src/configs</code> (<code>backend.js:9552</code>)</td>
<td style="text-align:right">2</td>
<td style="text-align:right">5</td>
</tr>
<tr>
<td style="text-align:left">P2</td>
<td style="text-align:left"><strong>Selector de regímenes</strong>: métodos de gobierno y de justicia</td>
<td style="text-align:left"><code>METHODS</code> (<code>:22-23</code>): DEMOCRACY, MAJORITY, MINORITY, DICTATORSHIP, KARMATOCRACY, ANARCHY; Courts (<code>:139</code>): JUDGE, MEDIATION, POPULAR, KARMATOCRACY, DICTATOR. Menú amplio y cerrado: añadir un método es bifurcar</td>
<td style="text-align:right">4</td>
<td style="text-align:right">4</td>
</tr>
<tr>
<td style="text-align:left">P3</td>
<td style="text-align:left"><strong>Primitivas reutilizables</strong></td>
<td style="text-align:left">Tribu cifrada anidable (<code>tribes_model.js:341</code>), parlamento por tribu (<code>:1354-1445</code>), voto con quórum y mayoría acotada (<code>industry_model.js:23-27</code>, <code>:98-101</code>), épocas selladas con hash (<code>banking_model.js:960-962</code>), vales <code>TIME</code>/<code>TRUST</code> (<code>transfers_model.js:25</code>), certificados (<code>school_model.js:1222</code>), muro público del gobernante (<code>larp_model.js:576</code>)</td>
<td style="text-align:right">4</td>
<td style="text-align:right">5</td>
</tr>
<tr>
<td style="text-align:left">P4</td>
<td style="text-align:left"><strong>Tipos de mensaje nuevos</strong> sin tocar el protocolo</td>
<td style="text-align:left">SSB es un log tipado: los tres nodos proponen más de quince tipos (<code>mandate</code>, <code>household</code>, <code>delegate</code>, <code>constituentCall</code>, <code>executiveReport</code>…) sin cambiar replicación ni cifrado. No hay cargador de módulos: cada tipo nuevo es un parche al backend</td>
<td style="text-align:right">4</td>
<td style="text-align:right">5</td>
</tr>
<tr>
<td style="text-align:left">P5</td>
<td style="text-align:left"><strong>Desacoplamiento</strong> (inverso de los seams rígidos que golpean todos los modelos)</td>
<td style="text-align:left">Cinco acoplamientos: karma escalar único (<code>banking_model.js:840</code> → <code>parliament:422</code>, <code>courts:805</code>, <code>banking:932</code>); autor = propietario (<code>tribes:721</code>, <code>industry:164</code>, <code>school:1222</code>); precio > 0 (<code>market:182</code>, <code>shops:415</code>); un feed = una persona (<code>inhabitants:86-88</code>); operador del nodo como poder exterior (config, hops, <code>backend.js:4651</code>)</td>
<td style="text-align:right">1</td>
<td style="text-align:right">3</td>
</tr>
<tr>
<td style="text-align:left">P6</td>
<td style="text-align:left"><strong>Ejecutabilidad</strong>: ¿una ley cambia algo?</td>
<td style="text-align:left"><code>enactApprovedChanges</code> (<code>:1102</code>) publica texto; nada lee un <code>parliamentLaw</code> para cambiar una constante ni un reparto. Rama ejecutiva ausente (nueve ramas, nodo <code>clase</code>)</td>
<td style="text-align:right">1</td>
<td style="text-align:right">3</td>
</tr>
<tr>
<td style="text-align:left">P7</td>
<td style="text-align:left"><strong>Capa económica intercambiable</strong></td>
<td style="text-align:left"><code>Banking</code> es un adaptador RPC de 14 métodos; dinero solo en <code>sendtoaddress</code> (<code>:1004</code>); pero <code>^E</code> ×12 y <code>coin: "ECO"</code> ×7 hardcodeados; tesoro = cartera del PUB (<code>:913-917</code>)</td>
<td style="text-align:right">2</td>
<td style="text-align:right">4</td>
</tr>
<tr>
<td style="text-align:left">P8</td>
<td style="text-align:left"><strong>Observabilidad y trazabilidad</strong></td>
<td style="text-align:left">Log de solo-anexado, votos firmados y visibles, karma publicado (<code>:501-506</code>), hash por época; sin uptime (<code>stats_model.js:438</code>); derogación = tombstone de cliente (<code>:1145</code>)</td>
<td style="text-align:right">4</td>
<td style="text-align:right">5</td>
</tr>
<tr>
<td style="text-align:left"></td>
<td style="text-align:left"><strong>Total / 40</strong></td>
<td style="text-align:left"></td>
<td style="text-align:right"><strong>22</strong></td>
<td style="text-align:right"><strong>34</strong></td>
</tr>
</tbody>
</table></div>
<p><strong>Lectura.</strong> Oasis es plástico en lo que se <em>declara</em> (tipos, primitivas, menú de regímenes, trazabilidad) y rígido en lo que <em>pesa</em> (cinco seams que los tres nodos golpean en el mismo sitio, y una ley que no ejecuta nada). Tres de los cinco acoplamientos son cambios de una línea (<code>if (p <= 0)</code>, <code>tribe.author !== userId</code>, <code>1 + karma/100</code>); los otros dos (un feed = una persona; el operador como soberano de hecho) no son parches sino problemas abiertos de toda red sin territorio ni identidad verificada, y el trabajo hace bien en no fingir que los resuelve.</p>
<p>Hay un dato más que la puntuación no recoge y que el catálogo de la sección 4 hace visible: <strong>el software no es neutral</strong>. Tiene una doctrina implícita (karmatocracia: mérito por notoriedad, decaimiento exponencial, castigo por bytes) y de las diez redes arquetípicas hay exactamente una (la meritocracia política, nº 10) que le encaja con parches de tamaño S. La plasticidad de un sistema se mide mejor desde el arquetipo que le exige menos cambios, y ese arquetipo delata el sesgo del código.</p>
<h2 id="4-catálogo-diez-redes-arquetípicas">4. Catálogo: diez redes arquetípicas</h2>
<p>Tres iniciadas y siete propuestas, elegidas para que cada seam rígido de Oasis sea golpeado por al menos dos doctrinas distintas y para que cada una tenga un corpus con verbatim disponible (cosa que hoy ningún nodo tiene). Cada ficha lleva el mismo esqueleto que exige <code>llms.md</code> para abrir un nodo: corpus, criterios, lo que ya está en el código, lo que choca, parche clave, arista natural, coste (S/M/L) y valor para ciencia aplicada.</p>
<div class="catalogo">
<article class="arq iniciado">
<h3 id="1--res_publica--república-constitucional-trevijano">1 · <code>res_publica</code> — República constitucional (Trevijano)</h3>
<ul>
<li><strong>Estado:</strong> nodo, <code>draftv2</code>, 8 fichas, 10 parches RP, carriles D→G→C→B→F→E→L.</li>
<li><strong>Criterios:</strong> separación de poderes en origen; representación uninominal con mandato imperativo; sufragio igual sin karma; constituyente previo; república como forma, no ideología.</li>
<li><strong>Ya está:</strong> calendario fijo sin convocante (<code>parliament:17-38</code>); retorno a <code>ANARCHY</code> (<code>:373-393</code>); procedimiento codificado.</li>
<li><strong>Choca:</strong> karma (<code>:422</code>, <code>banking:840</code>); tribu candidata (<code>canPropose :1298</code>); <code>DICTATOR</code> (<code>courts:140-155</code>); derogación por tombstone (<code>:1145</code>).</li>
<li><strong>Parche clave:</strong> TK-32 (karma fuera de la política) y TK-78 (<code>constituent_model.js</code>).</li>
<li><strong>Deuda:</strong> verificar las 8 fichas contra el libro.</li>
</ul>
</article>
<article class="arq iniciado">
<h3 id="2--colectivizaciones--comunismo-libertario-1936-37">2 · <code>colectivizaciones</code> — Comunismo libertario 1936-37</h3>
<ul>
<li><strong>Estado:</strong> nodo, <code>draftv0</code>, 1 ficha de 6, 11 parches CL.</li>
<li><strong>Criterios:</strong> asamblea soberana que no puede abdicar; cargos rotatorios y revocables; propiedad colectiva; salario familiar; federación de delegados; intercambio sin precio; voluntariedad.</li>
<li><strong>Ya está:</strong> parlamento de tribu en <code>ANARCHY</code> (<code>:1354-1384</code>); suelo inmovible de la renta básica (<code>banking:941</code>); educación gratis por defecto (<code>school:320</code>); copyleft (<code>industry:439</code>).</li>
<li><strong>Choca:</strong> autor vitalicio (<code>tribes:721</code>); steward único (<code>industry:164</code>, <code>:980</code>); reparto pro rata a capital (<code>:306-321</code>); precio > 0 (<code>market:182</code>); sin hogar (<code>inhabitants:86-88</code>).</li>
<li><strong>Parche clave:</strong> CL-1 (la asamblea gobierna la tribu) y CL-9 (<code>household</code>).</li>
<li><strong>Riesgo no tratado:</strong> hogar autodeclarado = sybil de hogar.</li>
</ul>
</article>
<article class="arq iniciado">
<h3 id="3--clase--materialismo-filosófico-bueno">3 · <code>clase</code> — Materialismo filosófico (Bueno)</h3>
<ul>
<li><strong>Estado:</strong> nodo semilla; coordenadas K1–K7; nueve ramas trituradas; EU-1…6 sin implementar.</li>
<li><strong>Coordenadas:</strong> tres géneros de materialidad; cierre categorial; espacio antropológico; capas conjuntiva/basal/cortical; nueve ramas; eutaxia; holización.</li>
<li><strong>Hallazgo:</strong> poderes sin ramas: la capa cortical entera está en manos del operador del nodo (<code>server-config.json</code>, <code>oasis-pub.js:41</code>, <code>backend.js:4651</code>, <code>:9552</code>).</li>
<li><strong>Reducción detectada:</strong> <code>karma = rawKarma − carbonGrams</code> (<code>banking:839-840</code>) reduce M₃ a M₁: fisicalismo, no materialismo.</li>
<li><strong>Parche clave:</strong> EU-1 (órgano para la capa cortical), EU-2/EU-3 (respaldo de identidad, <code>update</code> sin <code>reset --hard</code>).</li>
<li><strong>Valor:</strong> transversal; sus parches son hardening.</li>
</ul>
</article>
<article class="arq">
<h3 id="4--sorteo--democracia-por-sorteo">4 · <code>sorteo</code> — Democracia por sorteo</h3>
<ul>
<li><strong>Corpus:</strong> Aristóteles, <em>Política</em> IV; Hansen, <em>The Athenian Democracy</em> (1991); Manin, <em>Los principios del gobierno representativo</em> (1997); Flanigan et al., «Fair algorithms for selecting citizens' assemblies», <em>Nature</em> 596 (2021).</li>
<li><strong>Criterios:</strong> cargos por sorteo entre voluntarios; mandatos cortos sin reelección; rendición de cuentas al cesar (<em>euthynai</em>); jurados grandes por sorteo; asamblea con iniciativa.</li>
<li><strong>Ya está:</strong> RP-3 ya pide sorteo verificable por hash del log; rotación por calendario (<code>:17-38</code>); turno sin elección en L.A.R.P. (<code>larp:164-166</code>); <code>juryDraw</code> propuesto en TK-G07.</li>
<li><strong>Choca:</strong> toda la elección (<code>:744-761</code>); karma en el desempate (<code>:422</code>); sin límite de mandatos; <code>POPULAR</code> en Courts es plebiscito, no jurado.</li>
<li><strong>Parche clave:</strong> <code>sortitionTerm</code>: <code>resolveElection</code> sorteado entre quienes publican <code>willingness</code>; <code>euthyna</code> obligatoria reutilizando <code>executiveReport</code> (TK-G10).</li>
<li><strong>Arista:</strong> <code>res_publica+sorteo</code> (elección frente a sorteo: el debate de Manin sobre el mismo código).</li>
<li><strong>Coste:</strong> S/M. <strong>Valor:</strong> alto; hay algoritmos de selección con cuotas contra los que comparar el hash-sorteo.</li>
</ul>
</article>
<article class="arq">
<h3 id="5--confederalismo--municipalismo-libertario--confederalismo-democrático">5 · <code>confederalismo</code> — Municipalismo libertario / confederalismo democrático</h3>
<ul>
<li><strong>Corpus:</strong> Bookchin, <em>The Next Revolution</em> (2015); Öcalan, <em>Confederalismo democrático</em> (2011); Contrato Social de Rojava (2014, 2016); Knapp, Flach & Ayboğa, <em>Revolution in Rojava</em> (2016).</li>
<li><strong>Criterios:</strong> asamblea de base como unidad; confederación de delegados con mandato revocable; copresidencia paritaria; ecología social (la economía subordinada a la ecología); poder dual.</li>
<li><strong>Ya está:</strong> anidamiento (<code>tribes:341</code>); la tasa de carbono es la única eutaxia ecológica del código (<code>banking:31-37</code>); parlamento por tribu.</li>
<li><strong>Choca:</strong> <code>parentTribeId</code> es privacidad, no delegación (CL-8 lo diagnostica); un solo <code>leaderId</code>; sin atributos de persona por diseño (la paridad no es representable); el carbono <em>resta karma individual</em> en vez de financiar el común.</li>
<li><strong>Parche clave:</strong> <code>delegate</code> con mandato (compartido con CL-8); <code>leaderIds[2]</code> con copresidencia; el impuesto de carbono ingresa en <code>tribeTreasury</code> (CL-5) en lugar de descontarse del karma.</li>
<li><strong>Arista:</strong> <code>colectivizaciones+confederalismo</code> (federación sindical de 1936 frente a federación territorial de Rojava).</li>
<li><strong>Coste:</strong> M. <strong>Valor:</strong> único arquetipo con implementación viva documentada; permite comparación etnográfica.</li>
</ul>
</article>
<article class="arq">
<h3 id="6--liquida--democracia-líquida">6 · <code>liquida</code> — Democracia líquida</h3>
<ul>
<li><strong>Corpus:</strong> Behrens, Kistner, Nitsche & Swierczek, <em>The Principles of LiquidFeedback</em> (2014); Blum & Zuber, «Liquid Democracy», <em>J. Political Philosophy</em> 24 (2016); Kling et al., «Voting behaviour and power in online democracy», ICWSM (2015).</li>
<li><strong>Criterios:</strong> delegación por tema, transitiva, revocable en cualquier momento; el voto directo anula la delegación; delegaciones públicas; una iniciativa entra a votación por quórum de apoyos; voto preferencial.</li>
<li><strong>Ya está:</strong> <code>FOLLOW_MAJORITY</code> (<code>votes:173</code>) es la única delegación del sistema; <code>tags_model.js</code> da los temas; el grafo de <em>follows</em> es una delegación latente; todo voto es firmado y visible.</li>
<li><strong>Choca:</strong> la delegación es al agregado anónimo, no a una persona; sin transitividad; <code>polls</code> sin quórum (<code>:84-86</code>); iniciativa racionada (<code>:1298</code>).</li>
<li><strong>Parche clave:</strong> tipo <code>delegation {topicTag, to, until}</code>; resolución transitiva con corte de ciclos en el recuento de <code>votes_model.js</code>; entrada por quórum de apoyos (RP-8 reformulada).</li>
<li><strong>Arista:</strong> <code>res_publica+liquida</code> (mandato imperativo frente a delegación revocable: parecidos peligrosos).</li>
<li><strong>Coste:</strong> M. <strong>Valor:</strong> <strong>el más alto para ciencia aplicada</strong>: existe software de referencia (LiquidFeedback) y datos empíricos del Partido Pirata sobre concentración en superdelegados; el karma de Oasis es una concentración ya medible.</li>
</ul>
</article>
<article class="arq">
<h3 id="7--mixta--república-mixta-y-republicanismo-neorromano">7 · <code>mixta</code> — República mixta y republicanismo neorromano</h3>
<ul>
<li><strong>Corpus:</strong> Polibio, <em>Historias</em> VI; Maquiavelo, <em>Discursos</em> I; Pettit, <em>Republicanism</em> (1997); Skinner, <em>Liberty before Liberalism</em> (1998).</li>
<li><strong>Criterios:</strong> gobierno mixto; no-dominación: toda decisión es contestable; tribunado con veto; magistraturas colegiadas y anuales; <em>cursus honorum</em>; dictadura temporal con plazo y nombrada por otro poder.</li>
<li><strong>Ya está:</strong> revocación de leyes a 15 días (<code>:1145</code>) ≈ veto tribunicio; <code>TERM_DAYS</code> 60 ≈ anualidad; <code>DICTATORSHIP</code> como método (es el único arquetipo que puede conservarla, si le pone plazo); Courts como instancia de contestación; <code>MINORITY</code> al 20 % (<code>:240-242</code>).</li>
<li><strong>Choca:</strong> gobierno unipersonal; el candidato elige su propio método (<code>:81</code>); ninguna magistratura veta a otra; sin elegibilidad por historial.</li>
<li><strong>Parche clave:</strong> <code>collegiate: true</code> (dos <code>leaderId</code> con <code>intercessio</code> recíproca); <code>tribunate</code> = cargo elegido por el 20 % reutilizando el umbral <code>MINORITY</code> como voz de la minoría en lugar de como legislador; <code>DICTATORSHIP</code> con <code>expiresAt</code> y nombramiento por la Cámara.</li>
<li><strong>Arista:</strong> <code>res_publica+mixta</code> (dos republicanismos: separación en origen frente a contestabilidad).</li>
<li><strong>Coste:</strong> M. <strong>Valor:</strong> Pettit da un criterio computable sobre el log (dominación = capacidad de interferencia arbitraria: quién puede <code>tombstone</code> a quién).</li>
</ul>
</article>
<article class="arq">
<h3 id="8--comunes--gobierno-de-los-bienes-comunes-ostrom">8 · <code>comunes</code> — Gobierno de los bienes comunes (Ostrom)</h3>
<ul>
<li><strong>Corpus:</strong> Ostrom, <em>Governing the Commons</em> (1990); Ostrom, <em>Understanding Institutional Diversity</em> (2005, marco IAD); Cox, Arnold & Villamayor, meta-análisis de los 8 principios, <em>Ecology & Society</em> 15 (2010); Hess & Ostrom, <em>Understanding Knowledge as a Commons</em> (2007); Frey & Schneider, «Modular politics», <em>CSCW</em> (2021).</li>
<li><strong>Criterios (los 8 principios):</strong> límites claros; congruencia con condiciones locales; elección colectiva de las reglas; monitoreo por los propios; sanciones graduadas; resolución barata de conflictos; reconocimiento externo; empresas anidadas.</li>
<li><strong>Ya está:</strong> límites = tribu con clave rotada (<code>tribes:533-541</code>); elección colectiva parcial en Industry (<code>:211-223</code>); <code>MEDIATION</code> (<code>courts:139</code>); anidamiento (<code>:341</code>); log público = monitoreo gratis; copyleft (<code>industry:439</code>).</li>
<li><strong>Choca:</strong> ninguna sanción graduada: solo expulsión (<code>:533</code>) o tombstone; las reglas son constantes globales, no locales por tribu; <code>laborRate</code> lo fija el steward (<code>:438</code>). El seam es <code>reports_model.js</code> (361 líneas, sin auditar por ningún nodo).</li>
<li><strong>Parche clave:</strong> <code>sanction {level}</code> en Reports → Courts (aviso, suspensión temporal del voto, expulsión); <code>tribeRules</code> con constantes de Industry y Banking por tribu (principio 2).</li>
<li><strong>Arista:</strong> <code>colectivizaciones+comunes</code> (Aragón 1936 leído como recurso de uso común) o <code>cooperativa+comunes</code>.</li>
<li><strong>Coste:</strong> M. <strong>Valor:</strong> <strong>muy alto</strong>: el marco empírico más validado para instituciones autogestionadas; los principios son ya una rúbrica y las «situaciones de acción» del IAD mapean uno a uno a los modelos de Oasis.</li>
</ul>
</article>
<article class="arq">
<h3 id="9--cooperativa--cooperativismo-aci-mondragón-faircoop">9 · <code>cooperativa</code> — Cooperativismo (ACI, Mondragón, FairCoop)</h3>
<ul>
<li><strong>Corpus:</strong> Declaración de la Alianza Cooperativa Internacional (1995, 7 principios); estatutos de Rochdale (1844); Ley 27/1999 de Cooperativas; Arizmendiarrieta y el modelo Mondragón (ratio salarial, fondos COFIP/FRO); FairCoop como cooperativa integral y Bank of the Commons; <code>FreedomCoop/valuenetwork</code> (contabilidad REA), ya en el plan de vendorización.</li>
<li><strong>Criterios:</strong> adhesión voluntaria; un socio, un voto; retorno proporcional a la actividad, nunca al capital; fondos irrepartibles; autonomía; educación; intercooperación; ratio salarial máxima.</li>
<li><strong>Ya está:</strong> un miembro, un voto en Industry (<code>:98-101</code>, <code>:211-223</code>); School gratis (<code>:320</code>); Projects (financiación con objetivo); arte previo en <code>valuenetwork</code>.</li>
<li><strong>Choca:</strong> <code>computeShares</code> (<code>:306-321</code>) mezcla capital y trabajo (retorno por capital = anticooperativo); excedente repartido al 100 % (<code>:960-970</code>), sin fondo irrepartible; steward (<code>:164</code>); sin ratio; renta por karma.</li>
<li><strong>Parche clave:</strong> <code>eco</code> fuera del numerador de <code>computeShares</code> (capital remunerado a interés limitado); <code>reserveFund</code> como porcentaje obligatorio del <code>pot</code> hacia <code>tribeTreasury</code> (CL-5); <code>maxRatio</code> de puntos por hora entre miembros.</li>
<li><strong>Arista:</strong> <code>colectivizaciones+cooperativa</code> (colectividad ≠ cooperativa: el debate de la CNT) y <strong><code>cooperativa+faircoin</code></strong>, la arista que reconecta el lado «fair» del título.</li>
<li><strong>Coste:</strong> S/M. <strong>Valor:</strong> alto y con <strong>derecho positivo</strong>: hay ley y estatutos contra los que auditar con verbatim, cosa que ningún nodo actual tiene.</li>
</ul>
</article>
<article class="arq">
<h3 id="10--meritocracia--meritocracia-política">10 · <code>meritocracia</code> — Meritocracia política</h3>
<ul>
<li><strong>Corpus:</strong> Bell, <em>The China Model</em> (2015); Platón, <em>República</em> V–VII; el examen imperial confuciano; Young, <em>The Rise of the Meritocracy</em> (1958) como crítica; Sandel, <em>The Tyranny of Merit</em> (2020).</li>
<li><strong>Criterios:</strong> selección por examen o certificación; promoción por desempeño; deliberación de expertos; legitimidad por resultados; democracia en la base y mérito en la cúspide.</li>
<li><strong>Ya está: casi todo.</strong> <code>KARMATOCRACY</code> (<code>:22-23</code>): la ley del proponente con más karma; karma como mérito acumulado con decaimiento (<code>banking:525-607</code>); certificados de School (<code>:1222</code>); desempate por karma (<code>:422</code>); jueces por karma (<code>courts:805</code>); TK-D07 ya propone jueces con certificado. La estructura tribu/general de Oasis es exactamente «democracia abajo, mérito arriba».</li>
<li><strong>Choca:</strong> el «mérito» es notoriedad (un <code>post</code> vale 10, un <code>like</code> 2), no competencia; el carbono resta (<code>:840</code>); ningún examen condiciona el cargo; no hay evaluación del desempeño del gobierno (TK-G10 la daría).</li>
<li><strong>Parche clave:</strong> <code>merit = f(certificados, veredictos confirmados, leyes no revocadas)</code> en lugar de <code>karma</code> por volumen; elegibilidad = certificado; <code>ANARCHY</code>/<code>DEMOCRACY</code> en tribus, <code>KARMATOCRACY</code> en el general.</li>
<li><strong>Arista:</strong> <code>meritocracia+res_publica</code> es <strong>la arista de mayor contraste del catálogo</strong>: el escalar que Trevijano exige abolir es aquí el principio constitutivo. También <code>meritocracia+clase</code> (holización y karma).</li>
<li><strong>Coste:</strong> S. <strong>Valor:</strong> metodológicamente decisivo: es el arquetipo <em>nativo</em> del código y demuestra que Oasis tiene doctrina implícita.</li>
</ul>
</article>
</div>
<p><strong>Suplentes</strong>, por si el tribunal prefiere otra cobertura: <em>orden espontáneo</em> (Hayek, <em>Derecho, legislación y libertad</em>: el gossip y <code>ANARCHY</code> como catalaxia, el precio > 0 como virtud, aboliría <code>Banking</code>); <em>decisionismo</em> (Schmitt: <code>DICTATORSHIP</code> y estado de excepción; el único que legitima al operador del nodo como soberano; útil como control negativo); <em>sociocracia</em> (consentimiento, círculos enlazados, elección sin candidatos; <code>Tasks</code>, <code>Agenda</code> y <code>Workflows</code> ya existen y es el arquetipo más cercano a un equipo DevOps).</p>
<h3 id="41-cobertura-de-seams">4.1 Cobertura de seams</h3>
<p>Cada columna es un seam rígido o un módulo; cada fila, un arquetipo. El objetivo del catálogo es que ninguna columna dependa de un solo modelo.</p>
<div class="table-wrap"><table>
<thead>
<tr>
<th style="text-align:left">Arquetipo</th>
<th style="text-align:center">Parliament</th>
<th style="text-align:center">Courts</th>
<th style="text-align:center">Banking / karma</th>
<th style="text-align:center">Tribes</th>
<th style="text-align:center">Industry</th>
<th style="text-align:center">Market</th>
<th style="text-align:center">School</th>
<th style="text-align:center">Cortical (operador)</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">1 res_publica</td>
<td style="text-align:center">●</td>
<td style="text-align:center">●</td>
<td style="text-align:center">●</td>
<td style="text-align:center">○</td>
<td style="text-align:center"></td>
<td style="text-align:center"></td>
<td style="text-align:center">○</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:left">2 colectivizaciones</td>
<td style="text-align:center">●</td>
<td style="text-align:center"></td>
<td style="text-align:center">●</td>
<td style="text-align:center">●</td>
<td style="text-align:center">●</td>
<td style="text-align:center">●</td>
<td style="text-align:center">○</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:left">3 clase</td>
<td style="text-align:center">○</td>
<td style="text-align:center">○</td>
<td style="text-align:center">●</td>
<td style="text-align:center"></td>
<td style="text-align:center">○</td>
<td style="text-align:center"></td>
<td style="text-align:center"></td>
<td style="text-align:center">●</td>
</tr>
<tr>
<td style="text-align:left">4 sorteo</td>
<td style="text-align:center">●</td>
<td style="text-align:center">●</td>
<td style="text-align:center">○</td>
<td style="text-align:center"></td>
<td style="text-align:center"></td>
<td style="text-align:center"></td>
<td style="text-align:center"></td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:left">5 confederalismo</td>
<td style="text-align:center">○</td>
<td style="text-align:center"></td>
<td style="text-align:center">●</td>
<td style="text-align:center">●</td>
<td style="text-align:center"></td>
<td style="text-align:center"></td>
<td style="text-align:center"></td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:left">6 liquida</td>
<td style="text-align:center">●</td>
<td style="text-align:center"></td>
<td style="text-align:center"></td>
<td style="text-align:center">○</td>
<td style="text-align:center"></td>
<td style="text-align:center"></td>
<td style="text-align:center"></td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:left">7 mixta</td>
<td style="text-align:center">●</td>
<td style="text-align:center">●</td>
<td style="text-align:center"></td>
<td style="text-align:center"></td>
<td style="text-align:center"></td>
<td style="text-align:center"></td>
<td style="text-align:center">○</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:left">8 comunes</td>
<td style="text-align:center"></td>
<td style="text-align:center">●</td>
<td style="text-align:center">○</td>
<td style="text-align:center">●</td>
<td style="text-align:center">●</td>
<td style="text-align:center"></td>
<td style="text-align:center"></td>
<td style="text-align:center">○</td>
</tr>
<tr>
<td style="text-align:left">9 cooperativa</td>
<td style="text-align:center"></td>
<td style="text-align:center"></td>
<td style="text-align:center">●</td>
<td style="text-align:center">○</td>
<td style="text-align:center">●</td>
<td style="text-align:center">○</td>
<td style="text-align:center">●</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:left">10 meritocracia</td>
<td style="text-align:center">●</td>
<td style="text-align:center">●</td>
<td style="text-align:center">●</td>
<td style="text-align:center"></td>
<td style="text-align:center"></td>
<td style="text-align:center"></td>
<td style="text-align:center">●</td>
<td style="text-align:center"></td>
</tr>
</tbody>
</table></div>
<p class="leyenda">● seam central del modelo · ○ seam tocado.</p>
<h2 id="5-del-juguete-a-la-ciencia-aplicada-y-a-devops">5. Del juguete a la ciencia aplicada y a DevOps</h2>
<p>La licencia compuesta (GPL-3.0 + capa Animus Iocandi) y el eslogan «juguete-pasatiempo» son una zona experimental legítima. Bajar de ella no exige cambiar de licencia ni de tono: exige que alguna afirmación del catálogo pueda ser <strong>falsada</strong> y que algún parche pueda ser <strong>desplegado</strong>. Seis vías, ordenadas por coste, con el primer paso concreto de cada una.</p>
<h3 id="51-ciencia-aplicada">5.1 Ciencia aplicada</h3>
<p><strong>A. Constitución ejecutable: parches como tests de aceptación.</strong> Oasis trae 1.069 tests en 82 ficheros, un runner con aislamiento de <code>~/.ssb</code> y un <code>seed.js</code>. Cada RP/CL/EU tiene ya un seam; convertirlo en un test que hoy falla (rojo) y que el parche pone en verde es el paso mínimo entre especificación e ingeniería. TK-G11 lo propone (<code>test/constitutional.js</code> con los cinco criterios de constitucionalidad). <em>Primer paso:</em> escribir el test de RP-4 («ningún resultado electoral depende del karma») contra <code>chooseWinnerFromCandidaturesAsync</code> y verlo fallar en <code>9a657b7</code>. Ampliación natural: pruebas basadas en propiedades (invariantes: sufragio igual, ninguna ley sin quórum, ningún tombstone resucita) con <code>fast-check</code>.</p>
<p><strong>B. Simulación multiagente sobre nodos reales.</strong> N contenedores con <code>ssb-server</code> y agentes sintéticos que publican, votan y forman tribus según perfiles; el log de solo-anexado es el dataset. Métricas: Gini del karma por ciclo, frecuencia de <code>ANARCHY</code>, captura del legislativo por tribus, dispersión de la renta básica. Hipótesis falsables que ya están implícitas en el repo: «el acoplamiento karma-renta produce un Gini superior a <em>x</em> en <em>k</em> ciclos»; «el sorteo (nº 4) reduce la captura respecto a la elección»; «la delegación transitiva (nº 6) concentra en superdelegados como en LiquidFeedback». <em>Primer paso:</em> <code>docker-compose</code> con un PUB (receta en <code>docs/PUB/deploy.md</code>: Node 22, <code>server-config.json</code>) y tres clientes sembrados con <code>test/seed.js</code>.</p>
<p><strong>C. Estudio observacional en La Plaza.</strong> El PUB público del proyecto es una población real y el karma se publica en el log (<code>banking:501-506</code>): la distribución de mérito, los mandatos y las leyes son observables sin instrumentar nada. Requiere consentimiento y un protocolo ético (los datos son públicos por diseño, pero las personas no son sujetos de experimento por defecto). <em>Primer paso:</em> un <code>modelador observar</code> que lea un log SSB y emita <code>data/observaciones.json</code> con las mismas métricas de B, para comparar simulación y campo.</p>
<p><strong>D. Elección social computacional.</strong> Cada método de <code>METHODS</code> es una regla de agregación y la cascada de desempate (<code>:408-437</code>) es una función de elección social determinista. Sus propiedades formales (monotonía, resistencia a la manipulación, tratamiento de la abstención) se pueden demostrar o refutar con la literatura COMSOC, y la máquina de estados proposición → voto → promulgación → revocación cabe en un modelo TLA+ o Alloy pequeño. <em>Primer paso:</em> especificar <code>enactApprovedChanges</code> y <code>tombstone</code> en Alloy y comprobar «ninguna ley revocada vuelve a mostrarse».</p>
<h3 id="52-ciclos-devops-reales">5.2 Ciclos DevOps reales</h3>
<p><strong>E. Externalizar la constitución y devolver un parche upstream.</strong> El paso que más plasticidad compra por menos código: un bloque <code>constitution</code> en <code>oasis-config.json</code> con las constantes de <code>parliament:17-26</code>, <code>banking:14-21</code> y <code>courts:8-11</code>, con procedencia registrada (EU-5), y que <code>POST /update</code> deje de destruir <code>src/configs</code> (EU-3). Con eso P1 pasa de 2 a 5 y todos los arquetipos se vuelven configuraciones en lugar de forks. La AGPL obliga a devolver: un <em>pull request</em> aceptado en <code>epsylon/oasis</code> convierte el juguete en contribución. <em>Primer paso:</em> elegir el parche más pequeño y más decisivo (RP-6, derogación con memoria, tamaño S; o TK-32) e implementarlo con su test de A.</p>
<p><strong>F. Integración continua del propio catálogo.</strong> El repo tiene tests y no tiene CI. Añadir un workflow que ejecute <code>pytest</code>, <code>modelador build</code> y <code>modelador check</code>, más dos comprobaciones nuevas: <code>scripts/vendor.sh --check</code> (del plan de vendorización) y un <code>modelador citas</code> permanente que verifique que cada <code>fichero:línea</code> citado en <code>modelos/</code> existe en el vendor al SHA y contiene el símbolo nombrado. Con eso la auditoría es reproducible y se rompe visiblemente si upstream cambia. <em>Primer paso:</em> promover el script de un solo uso <code>check_citas.py</code> a subcomando con test.</p>
<p><strong>G. Pipeline especificación → parche → prueba → despliegue.</strong> Cada TK con seam nace como rama <code>oasis-<modelo>/<TK></code> en un fork; el id del TK va en el commit; el generador publica el estado de cada tarea (especificada / implementada / probada / desplegada) leyendo el fork. El testnet constitucional de B es el entorno de despliegue; para la capa económica, <code>fairchains-tool</code> crea una cadena PoC desde JSON sin recompilar (verificado en <code>vendor/plan.md</code>), lo que da una <em>regtest</em> Faircoin3 sin tocar mainnet. <em>Primer paso:</em> un <code>modelador parches --modelo X</code> que emita el esqueleto de la serie de parches con sus seams.</p>
<p><strong>H. Eutaxia como SRE.</strong> El nodo <code>clase</code> define eutaxia como capacidad de recurrencia. Traducida: uptime, réplicas alcanzables, épocas ejecutadas a tiempo, identidades con respaldo. <code>faircoin_exporter</code> (Prometheus, en el plan de vendorización) y EU-4 (uptime en <code>stats</code>) dan las métricas; un panel con objetivos de nivel de servicio es la primera implementación operativa de una categoría de Bueno. Y el propio repo puede comer su comida: completar la migración a Radicle (anunciada, no ejecutada) y tomar las decisiones del catálogo (qué nodo abrir, qué arista cerrar) en una instancia de Oasis cuya primera población sea el equipo del proyecto.</p>
<h3 id="53-orden-recomendado">5.3 Orden recomendado</h3>
<div class="table-wrap"><table>
<thead>
<tr>
<th style="text-align:left">Hito</th>
<th style="text-align:left">Contenido</th>
<th style="text-align:left">Vías</th>
<th style="text-align:left">Horizonte</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">1</td>
<td style="text-align:left">CI con <code>pytest</code>, <code>check</code>, <code>vendor --check</code> y citas verificadas; constantes externalizadas a config</td>
<td style="text-align:left">F, E</td>
<td style="text-align:left">Semanas</td>
</tr>
<tr>
<td style="text-align:left">2</td>
<td style="text-align:left">Testnet en contenedores; un parche S implementado con test y enviado upstream; suite constitucional</td>
<td style="text-align:left">A, B, E, G</td>
<td style="text-align:left">Meses</td>
</tr>
<tr>
<td style="text-align:left">3</td>
<td style="text-align:left">Simulación con métricas, estudio observacional con protocolo ético, un artículo comparando dos arquetipos (sorteo frente a elección, o líquida frente a mandato)</td>
<td style="text-align:left">B, C, D</td>
<td style="text-align:left">Un semestre</td>
</tr>
</tbody>
</table></div>
<h2 id="6-observaciones-para-la-defensa">6. Observaciones para la defensa</h2>
<ul>
<li><strong>Decir «tres nodos y una arista»</strong>, y explicar que la arista en pausa es la prueba de que el catálogo es un grafo y no una lista.</li>
<li><strong>Declarar la asimetría de la dualidad:</strong> Oasis auditado línea a línea, FairCoop inventariado y muerto desde 2022; la sustitución por ECOin/Banking y el plan de vendorización son la respuesta, no una omisión.</li>
<li><strong>Declarar la deuda doctrinal en el resumen:</strong> ninguna de las nueve fichas está verificada contra su fuente; la certeza A/B/C es la del revisor. La rúbrica de la sección 2 premia haberlo dicho; el tribunal castigará no decirlo.</li>
<li><strong>Presentar el generador como el software del TFG</strong> (1.699 líneas, tests, validación de grafo y enlaces, extractor tolerante de backlogs) y los parches como especificaciones. Si hay tiempo antes de la defensa, implementar uno de tamaño S (RP-6 o TK-32) con su test: cambia la naturaleza del trabajo.</li>
<li><strong>Corregir <code>CITATION.cff</code>:</strong> «Modelador de Redes Contributors» no sirve para un trabajo de fin de grado; debe constar el autor.</li>
<li><strong>Llevar la sección 3 como resultado:</strong> la plasticidad de Oasis es 22/40 hoy y 34/40 con parches S/M; tres de los cinco acoplamientos rígidos son cambios de una línea; el software tiene doctrina implícita y el arquetipo que la delata es la meritocracia.</li>
</ul>
</main>
</body></html>