# Habilidad

## @trustless-work/skill

> Instala habilidades de IA y verifica las integraciones de Trustless Work directamente desde tu terminal.

[![npm version](https://img.shields.io/npm/v/@trustless-work/skill)](https://www.npmjs.com/package/@trustless-work/skill) [![npm downloads](https://img.shields.io/npm/dm/@trustless-work/skill)](https://www.npmjs.com/package/@trustless-work/skill)

***

### ¿Qué son las habilidades de IA?

Los asistentes modernos de codificación con IA como **Claude Code** o **Gemini CLI** son herramientas de propósito general: saben mucho sobre programación, pero no entienden de forma inherente tu producto específico, tus convenciones de API ni los matices de tus patrones de integración.

**Las habilidades** resuelven este problema. Una habilidad es un conjunto curado de archivos markdown inyectados en el directorio de contexto del agente de IA, para que el asistente pueda leerlos como material de referencia cuando te ayuda a escribir, depurar o revisar código. Piensa en ello como darle a la IA un manual enfocado para una integración específica, sin ningún ajuste fino ni cambios en el modelo.

Una habilidad normalmente contiene:

* Conceptos básicos y modelos mentales del producto
* Documentación de referencia de API y SDK
* Guías de ciclo de vida y definiciones de roles
* Ejemplos de código funcionales y patrones comunes
* Listas de verificación de preproducción

Cuando el agente de IA inicia una sesión, puede acceder a estos archivos y aplicar su conocimiento a cada sugerencia que haga. El resultado es un asistente que entiende profundamente tu stack y al que no tienes que volver a explicarle todo cada vez.

***

### ¿Por qué son útiles las habilidades?

#### Sin una habilidad

Pasas tiempo explicando el mismo contexto en cada conversación:

> "Trustless Work es un protocolo de escrow en Stellar... el endpoint de despliegue devuelve una transacción XDR sin firmar... necesitas firmarla con la wallet del financiador... la trustline se configura con la dirección del emisor, no con la dirección del contrato..."

#### Con una habilidad

La IA ya sabe todo eso. Puedes ir directamente a:

> "Genera el flujo de despliegue del escrow para mi marketplace freelance."

Y producirá código correcto y idiomático al primer intento.

Las habilidades son especialmente valiosas para:

* **Incorporar a nuevos desarrolladores** — la IA puede guiarlos con contexto preciso
* **Reducir errores de integración** — la IA detecta patrones incorrectos antes de que se publiquen
* **Mantenerse al día** — ejecuta `update` cuando la habilidad lanza una nueva versión y tu IA se actualiza al instante

***

### La habilidad de Trustless Work

El `@trustless-work/skill` paquete instala una base de conocimiento curada sobre **Trustless Work Escrow-as-a-Service** en tu asistente de codificación con IA preferido. Cubre todo lo que tu IA necesita para ayudarte a construir integraciones de escrow correctas y listas para producción en Stellar.

#### Lo que la habilidad enseña a la IA

| Tema                      | Contenido                                                                                                                                          |
| ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Conceptos básicos**     | Qué es Trustless Work, tipos de escrow, el patrón de firma XDR                                                                                     |
| **Roles**                 | Los 9 roles (Proveedor de servicio, Aprobador, Firmante de liberación, Receptor, Dirección de la plataforma, Resolutor de disputas) y sus permisos |
| **Ciclo de vida**         | Las 6 fases desde la Iniciación hasta la Liberación y la Resolución de disputas                                                                    |
| **REST API**              | Endpoints, autenticación, URLs base, cargas útiles de despliegue, límites de tasa                                                                  |
| **SDK**                   | Hooks de React/Next.js, `TrustlessWorkConfig` configuración del proveedor, tipos de TypeScript                                                     |
| **Blocks**                | Componentes de UI preconstruidos, orden de anidación de proveedores, dependencias entre pares                                                      |
| **Ejemplos**              | Escenarios completos de integración funcional para API y SDK                                                                                       |
| **Lista de verificación** | Elementos de verificación de preproducción antes de salir a producción                                                                             |

#### Detalles críticos que codifica la habilidad

Estos son los errores de integración más comunes: la habilidad enseña a la IA a detectarlos:

* Cada operación de escritura devuelve una **transacción XDR sin firmar** que debe ser firmada por el rol correcto antes de enviarse
* El `trustline` en la carga útil de despliegue requiere la **dirección del emisor** (`G…`) — no la dirección del contrato (`C…`)
* Las trustlines deben añadirse desde la **propia wallet del usuario** — no existe una llamada API para esto
* El orden de anidación de los proveedores importa: `QueryClientProvider → TrustlessWorkConfig → WalletProvider`
* Las aprobaciones de hitos son **irreversibles en la cadena**
* El límite de tasa de la API es **50 solicitudes por 60 segundos**

***

### Agentes de IA compatibles

| Agente          | Estado          | Ruta de la habilidad             |
| --------------- | --------------- | -------------------------------- |
| **Claude Code** | ✅ Compatible    | `.claude/skills/trustless-work/` |
| **Gemini CLI**  | ✅ Compatible    | `.gemini/skills/trustless-work/` |
| **OpenCode**    | 🔜 Próximamente | —                                |

***

### Instalación

No se requiere instalación global. Ejecuta directamente con `npx`:

```bash
npx @trustless-work/skill
```

Un mensaje interactivo te guiará por tres pasos:

**Paso 1 — Selecciona tu agente de IA**

```
? ¿Qué agente de IA estás usando?
  ❯ Claude Code
    Gemini CLI
```

**Paso 2 — Selecciona una acción**

```
? ¿Qué te gustaría hacer?
  ❯ Instalar habilidad
    Verificar integración
```

**Paso 3 — Elige un preset de producto** *(solo instalación)*

```
? ¿Qué productos de Trustless Work estás usando?
  ❯ Solo REST API
    Solo SDK
    Solo Blocks
    REST API + SDK
    Stack completo (API + SDK + Blocks)
```

Los archivos de habilidad seleccionados se copian al directorio de contexto de tu agente. A partir de ese momento, tu asistente de IA tiene conocimiento completo de la superficie de integración de Trustless Work.

***

### Mantener la habilidad actualizada

A medida que la API y el SDK de Trustless Work evolucionan, también lo hace la habilidad. Para actualizar todas las habilidades instaladas a la última versión:

```bash
npx @trustless-work/skill update
```

Esto detecta automáticamente qué agentes tienen instalada la habilidad y actualiza todos los archivos de plantilla.

***

### Verificando tu integración

Además de instalar contexto para la IA, la CLI incluye un **verificador de integración** que analiza estáticamente tu base de código e informa problemas antes de que despliegues a producción.

```bash
npx @trustless-work/skill
# Selecciona: Verificar integración
```

El verificador detecta el tipo de proyecto (Next.js, React SPA, backend de Node.js) y ejecuta comprobaciones específicas según los productos de Trustless Work que estés usando.

#### Qué se verifica

**Uso de REST API**

* La clave de API se carga desde una variable de entorno (no está codificada de forma fija)
* Las solicitudes incluyen el `x-api-key` encabezado
* Las URLs base son correctas para testnet y mainnet
* El patrón de firma XDR está implementado correctamente
* Existe manejo de límites de tasa

**Uso del SDK (`@trustless-work/escrow`)**

* El paquete está instalado
* `TrustlessWorkConfig` el proveedor envuelve la aplicación
* `"use client"` la directiva está presente donde se requiere
* `QueryClientProvider` se coloca antes de `TrustlessWorkConfig`
* `engagementId` se pasa al crear escrows
* Stellar Wallets Kit está integrado para la firma XDR

**Uso de Blocks (`@trustless-work/blocks`)**

* El paquete y todas las dependencias entre pares están instalados
* El orden de anidación de los proveedores es correcto
* `"use client"` está configurado en los archivos de layout
* `WalletNetwork` está configurado
* `setSelectedEscrow` el patrón se usa correctamente
* Los diálogos de confirmación de aprobación están implementados
* La guía de trustline está presente en la interfaz de usuario

#### Informe de verificación

Cada comprobación devuelve uno de tres estados:

| Estado  | Significado                                 |
| ------- | ------------------------------------------- |
| ✅ OK    | Implementado correctamente                  |
| ⚠️ WARN | Funciona pero no está listo para producción |
| ❌ FAIL  | Problema crítico que debe corregirse        |

Cada hallazgo incluye una descripción, lo que se detectó y una guía de "cómo solucionarlo" con un enlace a la documentación relevante.

El informe se imprime en la consola y también se guarda como un archivo markdown en:

* `.claude/skills/trustless-work/report.md` *(Claude Code)*
* `.gemini/skills/trustless-work/report.md` *(Gemini CLI)*

Este archivo puede versionarse en tu repositorio o compartirse con revisores.

***

### Estructura de archivos de la habilidad

Después de la instalación, los siguientes archivos están disponibles en el directorio de habilidades de tu agente:

```
.claude/skills/trustless-work/        (o .gemini/...)
├── SKILL.md                          # Conceptos básicos, roles, ciclo de vida, patrón XDR
├── references/
│   ├── api.md                        # Referencia de REST API
│   ├── sdk.md                        # Referencia del SDK de React/Next.js
│   ├── blocks.md                     # Componentes de UI preconstruidos
│   ├── examples.md                   # Ejemplos completos de integración
│   └── checklist.md                  # Lista de verificación de preproducción
└── meta.json                         # Metadatos de instalación (agente, preset, versión, fecha)
```

Puedes leer cualquiera de estos archivos directamente en tu editor. Son markdown plano: no se requiere ninguna herramienta especial.

***

### Requisitos

* **Node.js** >= 18.0.0
* Uno de los agentes de IA compatibles instalado en tu máquina

***

### Referencia rápida

| Comando                            | Descripción                                 |
| ---------------------------------- | ------------------------------------------- |
| `npx @trustless-work/skill`        | Instalación o verificación interactiva      |
| `npx @trustless-work/skill update` | Actualizar todas las habilidades instaladas |

**npm:** [npmjs.com/package/@trustless-work/skill](https://www.npmjs.com/package/@trustless-work/skill)
