Reconstrucción de memoria a partir de Leval, Souchy, Casanova, Ovejero y el artículo de Redalyc, sin páginas a mano: certeza **A** en el núcleo (elección, revocabilidad, ausencia de poder propio) y **B/C** en los detalles (composición, duración, retribución), según la escala de `draft.md` §2. Todo es **[doctrina, sin verbatim]**. Confírmalo en Leval (*Colectividades libertarias en España*, capítulos sobre la organización interna de las colectividades aragonesas y levantinas), en Souchy (reportajes de fábrica) y en el Decreto de Colectivizaciones de la Generalitat (24-10-1936, artículos sobre los consejos de empresa) antes de citar. **Puntos principales del tema «Cargos rotatorios y revocables» (reconstrucción)** | # | Tesis | Cert. | | --- | --- | --- | | 1 | **La comisión administrativa la elige la asamblea general** entre sus propios miembros. Es pequeña (secretario o presidente, tesorero o contable, delegados de rama o de grupo de trabajo) y sus miembros no se cooptan entre sí | A (elección) / B (composición) | | 2 | **Sin poder propio y con rendición de cuentas**: la comisión ejecuta los acuerdos de la asamblea, informa en cada asamblea y lleva la contabilidad a la vista de todos. El cargo es un encargo, no una autoridad | A | | 3 | **Revocables en cualquier momento** por la asamblea, sin causa tasada ni plazo de espera: la asamblea que elige es la que destituye | A | | 4 | **Rotatorios**: renovación periódica (anual o semestral según la colectividad; en el decreto catalán, consejos de empresa de dos años renovados por mitades). La reelección no estaba prohibida, pero la rotación era la norma moral contra la formación de una capa dirigente | B/C | | 5 | **Sin retribución especial**: quien ocupa un cargo sigue trabajando en el campo o en el taller y cobra el mismo salario familiar que los demás; los «liberados» eran pocos o ninguno | A/B | | 6 | **Cargos de abajo arriba**: los grupos de trabajo (10-15 personas) eligen a su delegado, que los representa ante la comisión; el delegado no lo nombra la comisión | B | | 7 | **Cargos técnicos** (contable, secretario de correspondencia) reconocidos por competencia, pero igualmente electos y revocables. En el decreto catalán, el interventor de la Generalitat en el consejo de empresa es el único cargo no electo y fue punto de fricción | B/C | | 8 | **No acumulación**: un cargo por persona; los delegados a la comarcal son distintos de la comisión y llevan mandato aparte | C | | 9 | **Práctica frente a doctrina**: los militantes de prestigio ocupaban de hecho los cargos de forma continuada; la revocabilidad fue más real que la rotación (lectura crítica de Casanova y Vela) | B | **Ficha de confirmación del mapeo** (fuente: [draftv0.md](../drafts/draftv0.md)) - **Mapeado:** tesis 1, 3 y 4 → [CL-2](../drafts/draftv0.md#L169) (steward electo por `passesThreshold`, mandato de N lotes, `subject: "steward"` revocable) y [TK-G'03](../drafts/draftv0.md#L211), para el único cargo que el código conoce: el steward de la instalación (`industry_model.js:164`, `:510`, `:980`). Tesis 3 también → [CL-11](../drafts/draftv0.md#L178) y [TK-G'04](../drafts/draftv0.md#L212) (salida del steward tras elegir sucesor; sucesión del fundador). Tesis 2 → [CL-3](../drafts/draftv0.md#L170) (el plan de reparto es materia votable: la asamblea decide, el steward ejecuta) y, en parte, [TK-G'05](../drafts/draftv0.md#L213) (publicidad de la deliberación). Tesis 7 (decreto y consejos de empresa) → [TK-D'06](../drafts/draftv0.md#L197); tesis 8 (delegados comarcales aparte) → [TK-D'04](../drafts/draftv0.md#L195). El hallazgo [A](../drafts/draftv0.md#L134) y la fila 2 de la [tabla §3](../drafts/draftv0.md#L124) son la tesis 3 negada por el código: autor de tribu y steward vitalicios e irrevocables (`tribes_model.js:721`, `industry_model.js:510`). - **Acierto no explicitado 1 (tesis 5):** `computeShares` ([L306-L321](vendor/oasis/src/models/industry_model.js#L306-L321)) no da prima al steward: puntúa horas, material y ECOin por autor y el steward cobra lo que aporta, como cualquier miembro. El código ya cumple «sin retribución especial» y draftv0 no lo dice en «[Lo que no se toca](../drafts/draftv0.md#L180)». Conviene conservarlo explícitamente cuando CL-2 haga electo al steward. - **Acierto no explicitado 2 (tesis 2):** cada reparto se publica como `industryAllocation` firmado ([L986](vendor/oasis/src/models/industry_model.js#L986)) y solo cuentan las asignaciones firmadas por el steward ([L379](vendor/oasis/src/models/industry_model.js#L379)): la rendición de cuentas del cargo está en el sustrato (log firmado, visible a los miembros). Falta decir que eso **es** la contabilidad a la vista de la tesis 2. - **Hueco 1 (grave, tesis 3 y 4):** Oasis rota por calendario y no revoca por voluntad. El líder de tribu solo cae al expirar `TERM_DAYS = 60` ([L17](vendor/oasis/src/models/parliament_model.js#L17), `isExpiredTerm` [L68-L72](vendor/oasis/src/models/parliament_model.js#L68-L72), `tribeEnsureTerm` [L1433-L1437](vendor/oasis/src/models/parliament_model.js#L1433-L1437)); el único mecanismo llamado revocación en el fichero, `parliamentRevocation` con `REVOCATION_DAYS = 15` ([L19](vendor/oasis/src/models/parliament_model.js#L19), `createRevocation` [L638-L649](vendor/oasis/src/models/parliament_model.js#L638-L649)), revoca **leyes** del parlamento general, nunca personas, y no tiene tipo de tribu ([L14](vendor/oasis/src/models/parliament_model.js#L14): solo `tribeParliamentTerm`, `tribeParliamentCandidature`, `tribeParliamentRule`). La reelección es ilimitada: la única traba es una candidatura por candidato y ciclo ([L1449-L1452](vendor/oasis/src/models/parliament_model.js#L1449-L1452)). Draftv0 no cita ninguna de estas costuras; CL-2 dice «revocación por voto» sin decir que es en cualquier momento ni que el código no tiene de dónde copiarla. - **Hueco 2 (grave, tesis 1 y 3):** CL-2 hace electo al steward en la API (`:164`, `:457`, `:510`, `:980`) pero no en el **índice**: la punta de la instalación solo se sigue si la firma el steward ([L167](vendor/oasis/src/models/industry_model.js#L167)), los nodos de otro autor se descartan ([L240](vendor/oasis/src/models/industry_model.js#L240)), las transiciones `COMPLETED`/`FAILED` solo valen firmadas por él ([L357-L361](vendor/oasis/src/models/industry_model.js#L357-L361)) y las asignaciones ajenas se ignoran ([L379](vendor/oasis/src/models/industry_model.js#L379)). Con la API parcheada y el índice intacto, el steward electo publicaría mensajes que ningún nodo leería. Lo mismo en la tribu: el validador del log privilegia al autor raíz (`validInvitesDelta` [L39-L40](vendor/oasis/src/models/tribes_model.js#L39-L40); `isRootAuthor` [L158-L166](vendor/oasis/src/models/tribes_model.js#L158-L166); en un fork gana su versión, [L175](vendor/oasis/src/models/tribes_model.js#L175)). CL-1 cita `:11`, `:554-556`, `:612-617`, `:533-541` y no el validador. - **Hueco 3 (tesis 7 y contradicción con CL-1):** CL-1 disuelve la autoridad del autor y CL-11 y [TK-V'02](../drafts/draftv0.md#L267) hablan de «sucesión del fundador» sin decir qué se sucede. Lo que sobrevive a CL-1 es un cargo técnico: la **custodia de claves**. `ensureTribeKeyDistribution` solo corre si quien la llama es el autor ([L764-L769](vendor/oasis/src/models/tribes_model.js#L764-L769)) y `rotateTribeKey` ([L753](vendor/oasis/src/models/tribes_model.js#L753)) se dispara desde sus escrituras; el autor es miembro aunque no esté en la lista ([L460](vendor/oasis/src/models/tribes_model.js#L460)). Tras CL-1 alguien tiene que publicar la lista de miembros que la asamblea votó y rotar la clave: eso es la comisión que ejecuta sin decidir (tesis 2), y debe ser electa por un ciclo y revocable (tesis 3 y 4). No hay tarea. - **Hueco 4 (tesis 6):** draftv0 no nombra al `proposer` del lote ([L341](vendor/oasis/src/models/industry_model.js#L341)). El lote se aprueba por voto de los miembros ([L352-L353](vendor/oasis/src/models/industry_model.js#L352-L353)), pero quien lo propone se nombra a sí mismo responsable: solo él o el steward lo hacen avanzar ([L809](vendor/oasis/src/models/industry_model.js#L809)) o lo editan ([L869](vendor/oasis/src/models/industry_model.js#L869)). Es el delegado de grupo de trabajo, sin elección ni revocación. Acierto parcial: la responsabilidad del lote ya está repartida y no concentrada en el steward. - **Hueco 5 (tesis 2 y 5, poder propio residual):** el steward declara solo el `outputValue` que forma el bote a repartir (`pot = treasury + outputValue`, [L961](vendor/oasis/src/models/industry_model.js#L961); [L985](vendor/oasis/src/models/industry_model.js#L985)). CL-3 vota el plan; no dice que el bote es parte del plan. Un cargo que fija unilateralmente cuánto hay que repartir tiene poder propio. - **Hueco 6 (tesis 4, 5 y 8):** ninguna TK-D' pregunta por la duración del mandato, la renovación parcial, el límite de reelección, la retribución de los cargos ni la acumulación. CL-2 deja N sin default y TK-G'03 depende de D'06, que solo pregunta por el decreto frente a la práctica. - **Sin hueco:** tesis 9 (práctica frente a doctrina) es un aviso al carril D', no una costura; queda recogida como pregunta de reelección en la tarea nueva. Veredicto: los cargos están mapeados en el steward de la instalación (elección, mandato y revocación en CL-2 y TK-G'03; salida en CL-11), no en el índice que decide a quién obedecer, ni en los cargos de la tribu (custodia de claves), ni en los cargos menores (`proposer` del lote), ni en la retribución, la rendición de cuentas y la duración del mandato. --- **Correcciones aplicadas (2026-09-09)** - [draftv0.md §2.4 «Lo decisivo»](../drafts/draftv0.md#L93): añadido que el parlamento de tribu tampoco revoca: `parliamentRevocation` (`parliament_model.js:19`, `:638-649`) revoca leyes, no personas, y no tiene tipo de tribu (`:14`); el líder de tribu solo cae por expiración de `TERM_DAYS` (`:17`, `:68-72`, `:1433-1437`) y se reelige sin límite (`:1449-1452`) (hueco 1). - [draftv0.md hallazgo C](../drafts/draftv0.md#L142): añadido el `proposer` del lote (`industry_model.js:341`, `:352-353`, `:809`, `:869`) como delegado de grupo de trabajo autonombrado, y el `outputValue` unilateral del steward (`:961`, `:985`) como poder propio del cargo (huecos 4 y 5). - [draftv0.md CL-2](../drafts/draftv0.md#L169): precisado: default N = 3 lotes o un ciclo de 60 d; revocación en cualquier momento y sin causa tasada; el índice sigue al steward electo (`industry_model.js:167`, `:240`, `:357-361`, `:379`); se conserva `computeShares` sin prima al cargo (`:306-321`); el `outputValue` (`:961`, `:985`) pasa al plan votable de CL-3 (huecos 1, 2 y 5; acierto 1). - [draftv0.md CL-11](../drafts/draftv0.md#L178): precisado qué se sucede: no la autoridad (CL-1) sino la custodia de claves (`tribes_model.js:753`, `:764-769`) y el privilegio del validador (`:39-40`, `:158-166`, `:175`); el sucesor es un custodio electo por un ciclo y revocable (TK-G'07), nunca un nuevo fundador (hueco 3). - [draftv0.md TK-D'09](../drafts/draftv0.md#L199) (nueva, tras TK-D'08): **cargos de la colectividad**: composición, duración y renovación, límite de reelección, revocación, retribución, acumulación, delegado de grupo de trabajo; default: cargos por un ciclo de 60 d o N = 3 lotes, reelección libre, revocación por `passesThreshold` en cualquier momento, sin retribución especial, un cargo por persona; desbloquea TK-G'03 y TK-G'07 (hueco 6, tesis 9). - [draftv0.md TK-G'03](../drafts/draftv0.md#L211): añadidos el default de N, la revocación en cualquier momento y las costuras del índice (`industry_model.js:167`, `:240`, `:357-361`, `:379`); depende también de D'09; tamaño L (hueco 2). - [draftv0.md TK-G'07](../drafts/draftv0.md#L214) (nueva, prioridad alta): custodio de claves como cargo electo por un ciclo y revocable; `ensureTribeKeyDistribution`, `rotateTribeKey` y el privilegio de `isRootAuthor` pasan del autor raíz al custodio vigente; ejecuta los acuerdos de CL-1 sin decidirlos (hueco 3). - [draftv0.md resumen de prioridades](../drafts/draftv0.md#L274): TK-G'07 añadida a la lista de prioridad alta.