Saltar a contenido

Diseño del esqueleto textil (T-1) — cadena de operadores con atestación por rol

Arte Taxco / ICEDE-USC · 31 Julio 2026 · Diseño de alcance (no implementación)

Para qué existe. Convertir la fase T-1 de RUTA-DEMOSTRADOR-TEXTIL.md (cadena de operadores aguas arriba) en una tarea de código acotada, y definir el esqueleto funcional mínimo: una prenda recorre una cadena corta, cada rol atesta los atributos de los que responde, y el sistema emite un pasaporte textil conforme. Es la opción A de la conversación (esqueleto técnico demostrable), no el demostrador real con empresas (opción B, institucional). Escrito tras leer el as-built del canal circular (no un doc de estado).


0. As-built verificado (qué existe HOY, en código)

Pieza Estado real (file:line)
Roles de actor RolActorCircular = REPARADOR / RECICLADOR / REVENDEDOR — todos post-consumo. prisma/schema.prisma
Mínimo privilegio lib/circular/actor-scope.ts: ACTIVIDADES_POR_ROL (rol→tipos de evento) + datosParaActor (rol→proyección de lectura; nunca PII ni precio)
Escritura de eventos por actor /actor (login OTP) + admin.circular.registrarActividadCircular. Los actores registran ACTIVIDADES
Escritura de atributos (AtributoDPP) Existe pero acotada: solo AT, solo joyería (ley/peso), solo en la recertificación de reventa (server/trpc/circular.router.ts:1136). Shape: {clase, clave, valor, unidad, estatus, emisorRol, viaEventoId}
Vista/export de atributos vistaAtributos() hace overlay de lo persistido sobre los campos planos; el export muestra el estatus real
Perfil textil T-0 ✅: textil v1.0-demostrador con nivelExigido por atributo

Dos hechos que definen T-1: 1. El patrón de "atributo atestado" ya existe (verificarOferta) — pero hardcodeado a AT / joyería / recertificación. T-1 lo generaliza: cualquier operador de la cadena atesta un atributo con emisorRol = su rol. 2. Los roles son post-consumo. La cadena de producción (confección, marca) no existe — es el delta central.


1. La cadena mínima del esqueleto (una prenda, pocos roles)

No la cadena completa de la estrategia. La mínima que demuestra atestación multi-operador y emite un pasaporte conforme:

Eslabón Rol Atesta (clave → nivel real que puede dar) Nuevo o existente
Confección CONFECCION composicionFibra → DECLARADO (exige MEDIDO), origenConfeccionATESTADO, cuidado → DECLARADO rol nuevo
Marca / distribución MARCA durabilidad, reparabilidad → DECLARADO; condicionesProduccionATESTADO (la marca responde contractualmente de su cadena) rol nuevo
Venta (flujo actual) Certificate + propietario #1 automático existente
Reventa / reparación REVENDEDOR / REPARADOR eventos R (ya) existente
Clasificación posconsumo CLASIFICACION lectura terminal T-4, fuera

Una prenda productType='textil' la recorre; cada rol entra por su superficie /actor (OTP, mínimo privilegio) y atesta lo suyo. Con eso hay un pasaporte textil real, emitido, con provenance por atributo.


2. La decisión clave: el esqueleto NO finge verificación

El perfil textil exige composicionFibra = MEDIDO (laboratorio) y contenidoReciclado/sustanciasQuimicas = VERIFICADO. En el esqueleto no hay laboratorio (eso es T-2). La tentación sería marcar esos atributos como VERIFICADO/MEDIDO para "que se vea completo". No se hace — es la misma línea roja de toda la disciplina (EPCIS serializable≠emisor, joyería≠textil).

En cambio, el esqueleto exhibe el hueco como evidencia: el atributo lleva nivelExigido="MEDIDO" y estatus="DECLARADO". Esa distancia, legible por máquina, es exactamente lo que la estrategia (§2) y ICEDE (§15) dicen que el pasaforte debe hacer: separar lo afirmado de lo comprobado. Un pasaporte del esqueleto que dice "esta composición REQUIERE ensayo de laboratorio, que aún no se ha hecho" es más honesto —y mejor narrativa de fondos— que uno que finge estar verificado. El gap nivelExigido↔estatus ES el argumento de por qué hace falta T-2.


3. Los deltas de T-1 (sobre lo que ya existe)

  1. Cuarto nivel epistémico ATESTADO (decidido 31 Jul — fidelidad a la taxonomía de 4 niveles de la estrategia §2/§2.1). Agregar ATESTADO al enum EstatusAtributo (hoy DECLARADO/VERIFICADO/MEDIDO), en el orden de fuerza epistémica DECLARADO < ATESTADO < VERIFICADO < MEDIDO. La atestación en cadena deja de representarse como "VERIFICADO + emisorRol" y pasa a ser su propio nivel: el proveedor responde contractualmente, distinto del tercero que responde bajo evaluación de conformidad. Toca el modelo canónico, no solo textil: EstatusAtributo (db push aditivo), EstatusType en public/dpp/dpp-1.0.xsd, y el manejo del valor nuevo en lib/dpp/export.ts y en la vista. Joyería no cambia (nadie usa ATESTADO ahí todavía). Es el primer paso de T-1 porque el write-path (delta 2) lo usa.

  2. Roles de producción. Extender RolActorCircular con CONFECCION y MARCA (aditivo, prisma db push nunca migrate dev). Extender el tipo RolActor en actor-scope.ts en paralelo (o el tsc rompe).

  3. Write-path genérico de atributo atestado. Generalizar el patrón de verificarOferta a una operación reutilizable registrarAtributoAtestado(actor, folio, clave, valor, estatus, viaEvento?) que escribe AtributoDPP con emisorRol = rol del actor. Es el corazón de la "atestación en cadena" hecha ejecutable.
  4. Matriz rol×atributo de ESCRITURA. Añadir ATRIBUTOS_POR_ROL a actor-scope.ts (junto a ACTIVIDADES_POR_ROL): qué atributos puede atestar cada rol. Es la parte del contrato de interfaz que el software aplica (la cláusula legal es institucional, fuera del esqueleto). Impide que la marca atesta composición o que el revendedor toque el origen.
  5. Proyección de lectura para los roles nuevos: extender datosParaActor (qué ve un operador de confección — su prenda, los atributos que atesta, nunca PII ni precio).
  6. Superficie /actor: UI de atestación de atributo (extiende la de actividad; misma auth OTP).

Todo aditivo. Toca: schema.prisma (2 valores de enum), actor-scope.ts, el router tRPC (una operación nueva generalizando verificarOferta), y /actor.


4. Qué NO es T-1 (para no construir de más)

  • Verificación real / laboratorio → T-2 (institucional + técnico).
  • Firma did:web (EN 18246) → T-3.
  • Endpoint de la planta de clasificación → T-4.
  • Empresas reales, prendas reales, contratos de interfaz legales → programa institucional (opción B).
  • Interconexión por APIs (§6 del multi-actor) → pospuesto a fondos por decisión del 25 Jul (MAPA-ECOSISTEMA-DPP.md).

El esqueleto se opera a mano: una persona por rol camina una prenda de prueba por la cadena. No necesita terceros para demostrar la capacidad.


5. Distancia real al piloto

  • Esqueleto (A): T-1 + pulido mínimo de las superficies por rol. Al terminar T-1 puedes caminar una prenda por la cadena y emitir su pasaporte — la prueba de capacidad / TRL para una solicitud. Semanas de código, no meses.
  • Demostrador real (B): la estrategia lo dimensiona (1.5–3 M€, 24 meses, 15–25 empresas). El cuello de botella es reclutar operadores, contratos de interfaz, laboratorio ENAC, financiación. T-1 no lo acorta — le da la capacidad que ese proyecto usaría, y la evidencia (esqueleto funcional) que hace creíble la solicitud.

6. El prompt T-1 (acotado, para el chat de código)

Tarea T-1 — Cadena de operadores con atestación de atributos por rol. LEE primero: docs/DISENO-ESQUELETO-TEXTIL-T1.md (este doc), docs/RUTA-DEMOSTRADOR-TEXTIL.md, lib/circular/actor-scope.ts, server/trpc/circular.router.ts (la operación verificarOferta, ~línea 1136, que es la PLANTILLA del atributo atestado), lib/dpp/atributos.ts (perfil textil, PERFILES.textil), y el modelo AtributoDPP + enum RolActorCircular en prisma/schema.prisma.

  1. Nivel epistémico ATESTADO: agrega ATESTADO al enum EstatusAtributo (orden DECLARADO < ATESTADO < VERIFICADO < MEDIDO), EstatusType en public/dpp/dpp-1.0.xsd, y el manejo del valor en lib/dpp/export.ts y la vista. Aditivo (prisma db push). Es un paso propio, con su commit; joyería no lo usa aún.
  2. Roles de producción: agrega CONFECCION y MARCA a RolActorCircular (aditivo, prisma db push, NUNCA migrate dev); extiende el tipo RolActor en actor-scope.ts.
  3. ATRIBUTOS_POR_ROL en actor-scope.ts: matriz rol→atributos del perfil textil que ese rol puede atestar (CONFECCION: composicionFibra, origenConfeccion, cuidado; MARCA: durabilidad, reparabilidad, condicionesProduccion). Gate: rolPuedeAtestar(rol, clave).
  4. Write-path genérico registrarAtributoAtestado: generaliza el patrón de verificarOferta — escribe AtributoDPP {clase (del perfil), clave, valor, unidad (del perfil), estatus, emisorRol = rol del actor, viaEventoId?}. Regla dura de honestidad: el estatus que un operador puede poner está ACOTADO por lo que su rol puede probar. En el esqueleto (sin laboratorio): composición/reciclado/químicos quedan DECLARADO aunque el perfil exija MEDIDO/VERIFICADO; origen y condiciones de producción, que el operador atesta contractualmente, quedan ATESTADO. NUNCA marcar VERIFICADO/MEDIDO sin evidencia real (eso es T-2). La clase y la unidad salen del perfil (PERFILES.textil), no se inventan.
  5. Proyección de lectura para CONFECCION/MARCA en datosParaActor (mínimo privilegio; nunca PII ni precio).
  6. Superficie /actor: formulario de atestación de atributo (reutiliza la auth OTP y la UI de actividad existentes).

ACEPTACIÓN: npx tsc --noEmit 0 errores; una prenda de prueba (productType textil) recorre CONFECCION→MARCA y su export XML/EPCIS muestra cada atributo con emisorRol del operador que lo atestó, estatus real y nivelExigido del perfil; joyería y el flujo de recertificación intactos. Documenta en FIXES.md (sugerido FEAT-DPP-TEXTIL-T1-001). Commit en español; muéstrame el diff antes del push.

FUERA DE ALCANCE: laboratorio (T-2), firma did:web (T-3), endpoint de clasificación (T-4), empresas reales, APIs. Solo la cadena de atestación.


7. Decisiones (resueltas 31 Jul 2026)

  • Roles del esqueleto → CONFECCION + MARCA (dos aguas arriba). Agregar APROVISIONAMIENTO (hilatura/tejeduría) queda para después: un valor de enum
  • una fila en ATRIBUTOS_POR_ROL.
  • Cuarto nivel ATESTADO → SÍ (ver delta 0). Fidelidad a la taxonomía de 4 niveles de la estrategia (§2/§2.1): el proveedor que atesta responde contractualmente, distinto del tercero que verifica bajo conformidad. El demostrador es evidencia TRL de una solicitud anclada en esa estrategia; el estatus legible por máquina debe calzar con sus cuatro niveles.
  • Prenda de prueba → sintética, etiquetada como dato de prueba. Una prenda real con ensayo de fibra es T-2 (laboratorio).

Arte Taxco / ICEDE-USC · Diseño del esqueleto textil (T-1) · 31 Jul 2026 · alcance, no implementación. Deriva de RUTA-DEMOSTRADOR-TEXTIL.md; leído contra el as-built del canal circular.