Prompt T-1 — Cadena de operadores con atestación por rol (esqueleto textil)¶
Arte Taxco / ICEDE-USC · 31 Julio 2026 · Pegar como primer mensaje del chat de Claude Code para T-1
Contexto. Segunda fase de
docs/RUTA-DEMOSTRADOR-TEXTIL.md. El diseño y las decisiones (roles CONFECCION+MARCA, cuarto nivel ATESTADO, prenda sintética) están endocs/DISENO-ESQUELETO-TEXTIL-T1.md— este prompt lo deriva. T-0 ya desplegó el perfil de atributos textil (FEAT-DPP-TEXTIL-001); T-1 construye la cadena de operadores que atesta esos atributos. Es un esqueleto técnico (una prenda recorre la cadena, operada a mano), NO el demostrador con empresas.
Pega esto en el chat de Claude Code¶
Eres el asistente técnico del proyecto Arte Taxco. Antes de tocar nada, LEE en este orden:
- docs/SYSTEM-PROMPT.md, docs/FIXES.md (reglas; español; aditivo; NUNCA prisma migrate dev)
- docs/DISENO-ESQUELETO-TEXTIL-T1.md (el diseño de esta tarea; decisiones resueltas)
- docs/RUTA-DEMOSTRADOR-TEXTIL.md (la ruta; T-1 es su segunda fase)
- apps/web/lib/circular/actor-scope.ts (mínimo privilegio: ACTIVIDADES_POR_ROL, datosParaActor)
- apps/web/server/trpc/circular.router.ts → la operación verificarOferta (~línea 1136): es la
PLANTILLA del "atributo atestado" (escribe AtributoDPP con clase/clave/valor/estatus/emisorRol/viaEventoId)
- apps/web/lib/dpp/atributos.ts (perfil textil PERFILES.textil, ya en v1.0-demostrador con nivelExigido)
- los enums EstatusAtributo y RolActorCircular + el modelo AtributoDPP en apps/web/prisma/schema.prisma
- apps/web/app/actor/page.tsx (superficie del actor, login OTP)
CONTEXTO: el motor DPP es agnóstico del producto; el perfil textil ya existe (T-0). Hoy los actores
circulares (REPARADOR/RECICLADOR/REVENDEDOR, post-consumo) registran EVENTOS, no atributos. El write
de AtributoDPP existe pero acotado a AT/joyería/recertificación (verificarOferta). T-1 GENERALIZA esa
plantilla a operadores de la cadena de producción, para que una prenda textil recorra la cadena y cada
rol atesta lo suyo, emitiendo un pasaporte conforme. Esqueleto operado a mano; sin empresas reales.
TAREA T-1 — en pasos, cada uno con su commit:
0) NIVEL EPISTÉMICO 'ATESTADO' (paso propio). Agrega ATESTADO al enum EstatusAtributo, en el orden de
fuerza DECLARADO < ATESTADO < VERIFICADO < MEDIDO. Actualiza EstatusType en public/dpp/dpp-1.0.xsd y
el manejo del valor en lib/dpp/export.ts y en la vista de atributos. Aditivo (prisma db push, NUNCA
migrate dev). Joyería no usa ATESTADO todavía; su export no debe cambiar salvo admitir el valor.
1) ROLES DE PRODUCCIÓN. Agrega CONFECCION y MARCA a RolActorCircular (aditivo, db push). Extiende el
tipo RolActor en actor-scope.ts en paralelo (o rompe tsc).
2) MATRIZ rol×atributo de ESCRITURA. Añade ATRIBUTOS_POR_ROL a actor-scope.ts (junto a
ACTIVIDADES_POR_ROL): qué atributos del perfil textil puede atestar cada rol —
CONFECCION: composicionFibra, origenConfeccion, cuidado; MARCA: durabilidad, reparabilidad,
condicionesProduccion. Gate: rolPuedeAtestar(rol, clave). Es la parte del contrato de interfaz que
el software APLICA (la cláusula legal es institucional, fuera de T-1).
3) WRITE-PATH GENÉRICO de atributo atestado. Generaliza el patrón de verificarOferta en una operación
reutilizable (tRPC) registrarAtributoAtestado(actor, folio, clave, valor, estatus, viaEvento?):
escribe AtributoDPP { clase y unidad TOMADAS del perfil PERFILES.textil, clave, valor, estatus,
emisorRol = rol del actor, viaEventoId? }. Gateada por rolPuedeAtestar.
REGLA DURA DE HONESTIDAD: el estatus que un operador puede poner está ACOTADO por lo que su rol prueba.
En el esqueleto (sin laboratorio): composicionFibra/contenidoReciclado/sustanciasQuimicas quedan
DECLARADO aunque el perfil exija MEDIDO/VERIFICADO; origenConfeccion y condicionesProduccion, que el
operador atesta contractualmente, quedan ATESTADO. NUNCA marcar VERIFICADO/MEDIDO sin evidencia real
(eso es T-2). El pasaporte debe MOSTRAR el gap nivelExigido↔estatus (exige MEDIDO, tiene DECLARADO):
ese gap legible por máquina ES la evidencia de por qué hace falta T-2, no un defecto.
4) PROYECCIÓN DE LECTURA para CONFECCION/MARCA en datosParaActor (mínimo privilegio; nunca PII ni precio).
5) SUPERFICIE /actor: formulario de atestación de atributo (reutiliza la auth OTP y la UI de actividad
existentes). El operador elige un atributo que su rol puede atestar y captura el valor.
RESTRICCIONES DURAS:
- 100% aditivo. Cambios de enum/schema: npx prisma db push, NUNCA migrate dev.
- No toques joyería, PERFILES.joyeria, ni el flujo de recertificación (verificarOferta) salvo lo mínimo
para admitir el valor ATESTADO.
- Español en código, comentarios y commits.
- Documenta en docs/FIXES.md (sugerido FEAT-DPP-TEXTIL-T1-001).
CRITERIO DE ACEPTACIÓN:
- npx tsc --noEmit → 0 errores (mantener el 0).
- Una prenda de prueba SINTÉTICA (productType textil) recorre CONFECCION→MARCA vía /actor, y su export
XML/EPCIS muestra, por atributo: emisorRol del operador que lo atestó, estatus real (DECLARADO/ATESTADO)
y nivelExigido del perfil. El gap (p. ej. composición: nivelExigido MEDIDO, estatus DECLARADO) es visible.
- Joyería y el flujo de recertificación intactos.
- MUÉSTRAME EL DIFF ANTES DE HACER PUSH. Dame el comando de commit explícito, en español.
FUERA DE ALCANCE (son T-2..T-4 de la ruta, NO los hagas): verificación con laboratorio, firma did:web
(EN 18246), endpoint de la planta de clasificación, empresas reales, interconexión por APIs. Solo la
cadena de atestación con dos roles.
Notas para Marco (no van en el prompt)¶
- Por qué T-1 es de tamaño medio (no de un día como T-0): toca enum + XSD + export (paso 0),
actor-scope.ts(roles + matriz + proyección), una operación tRPC nueva, y la UI/actor. Son 5 pasos aditivos; por eso el prompt pide commit por paso y diff antes del push. - Lo aprendido en T-0 quedó incorporado: "muéstrame el diff antes del push" está en el criterio de aceptación — en T-0 el otro chat empujó a producción sin que lo vieras; salió bien por ser acotado, pero T-1 toca más superficie.
- La línea roja es la misma de siempre: el esqueleto no finge verificación. Composición en DECLARADO con el gap visible es más honesto —y mejor narrativa de fondos— que fingir MEDIDO. Si el chat propone marcar algo como VERIFICADO/MEDIDO "para que se vea completo", eso es un error, no una mejora.
Arte Taxco / ICEDE-USC · Prompt T-1 · 31 Jul 2026 · deriva de DISENO-ESQUELETO-TEXTIL-T1.md