pablo formoso FUTURE / DATA & AI
ES EN Transmitiendo –:–:– UTC

csk: un gestor de skills para Claude Code, hecho 100% con Claude Code

Ayer publiqué csk, un gestor de skills para Claude Code. La parte recursiva: está hecho de principio a fin con Claude Code. Te cuento qué problema resuelve —skills personales sin esqueleto ni tejido conectivo— y cómo probarlo en cinco minutos.

csk: un gestor de skills para Claude Code, hecho 100% con Claude Code

Ayer publiqué la primera versión usable de un proyecto pequeño y un poco recursivo: csk, un gestor de skills para Claude Code. La parte recursiva es que no escribí ni una línea de código a mano. csk está hecho, de principio a fin, con Claude Code. Una herramienta para Claude Code, construida por Claude Code. Una serpiente mordiéndose la cola, pero una serpiente que compila.

Quiero contarte qué problema resuelve, porque seguramente lo tienes y no le has puesto nombre todavía, y dejarte el camino para probarlo en cinco minutos.

El problema: skills sin esqueleto

Si usas Claude Code, sabes que una skill es una carpeta con instrucciones que le enseña a hacer algo concreto: un flujo, un formato, una manía tuya. Claude Code tiene dos formas de cargarlas. Los plugins se distribuyen por un marketplace, se instalan con un comando y se actualizan solos. Y luego están las skills personales: carpetas sueltas en ~/.claude/skills/.

Aquí está la grieta. Los plugins tienen una historia de distribución cuidada. Las skills personales no tienen ninguna. Si desarrollas una skill en su propio repositorio de git, el flujo es artesanal y un poco triste: clonar a mano, copiar o enlazar dentro de ~/.claude/skills/, y acordarte —tú, con tu memoria de primate— de hacer git pull cada cierto tiempo. No hay manifiesto. No hay lockfile. No hay forma de declarar "este es mi conjunto de skills" y reproducirlo en otra máquina o pasárselo a un compañero.

Piénsalo en términos de biomecánica. Un plugin es una prótesis que viene con su servicio de ajuste: encaja, se calibra, se revisa. Una skill personal es una prótesis que llevas suelta en la mochila y te atas como puedes cada mañana. Funciona, sí. Pero no hay tejido conectivo: nada que sujete el conjunto, nada que garantice que el brazo de hoy es el mismo que el de ayer.

Y el efecto secundario es el peor de todos: la deriva. Trabajas en el portátil, en la torre de casa, en el de la oficina. Cada máquina acumula sus propias versiones, sus propios parches, sus propios olvidos. Al cabo de unos meses no tienes un entorno replicado tres veces: tienes tres subespecies distintas del mismo organismo, evolucionando por separado y en silencio. El día que una falla y otra no, no tienes ni idea de por qué.

Qué es csk

csk llena exactamente esa grieta. La idea es robarle el modelo mental a herramientas que ya funcionan: lo que cargo o uv son para las librerías, csk lo es para las skills. Tres piezas, y la metáfora se cae sola:

El manifiesto (skills.toml) es el ADN. Tú lo editas. Declaras cada skill con una clave, una URL de git y, si quieres, una rama o un subdirectorio. Es la intención: "este organismo debería tener estos órganos".

El lockfile (skills.lock) es la expresión fijada de ese ADN. Lo escribe csk, no tú, y ancla cada skill a un commit exacto. Es la diferencia entre "quiero un perro" y "quiero este perro, con este genoma, hasta el último par de bases".

csk install es la clonación. En una máquina nueva, csk lee el lockfile y reconstruye el conjunto idéntico: mismas skills, mismos commits clavados. El mismo organismo, no un primo lejano.

Lo elegante es que csk no toca Claude Code para nada. Escribe en las mismas rutas de ~/.claude/skills/ que Claude ya lee. Claude Code no necesita enterarse de que csk existe. Cero acoplamiento.

Pruébalo en cinco minutos

csk es un único binario estático, escrito en Go. En macOS o Linux se instala así (en el README tienes la versión para Windows con PowerShell):

mkdir -p ~/.local/bin
OS=$(uname -s | tr '[:upper:]' '[:lower:]')
ARCH=$(uname -m); case "$ARCH" in x86_64|amd64) ARCH=x86_64;; aarch64|arm64) ARCH=arm64;; esac
VERSION=$(curl -sI https://github.com/pformoso-deus-ai/csk/releases/latest | awk -F/ '/^location:/ {print $NF}' | tr -d '[:cntrl:]')
curl -fsSL "https://github.com/pformoso-deus-ai/csk/releases/download/${VERSION}/csk_${VERSION#v}_${OS}_${ARCH}.tar.gz" | tar xz -C ~/.local/bin csk
chmod +x ~/.local/bin/csk

A partir de ahí, el flujo del día a día:

csk init                 # crea el manifiesto y el lockfile vacíos
csk search handoff       # busca en el registro público (Skill Central)
csk add handoff          # instala una skill por su nombre corto
csk list                 # ves qué tienes y en qué estado está cada cosa

También puedes instalar directamente desde cualquier URL de git, sin pasar por el registro:

csk add https://github.com/pformoso-deus-ai/handoff-claude-skill.git

Y aquí está el momento que justifica todo el invento. Haces commit de tus dos ficheros —skills.toml y skills.lock— junto a tus dotfiles. En la siguiente máquina, después de clonarlos:

csk install

Mismo conjunto de skills, mismos commits, sin deriva. La diferencia entre recordar y no tener que recordar. Si prefieres un conjunto por proyecto en lugar de uno global, los mismos comandos dentro de la carpeta del proyecto crean un .claude/skills.toml local; csk detecta el ámbito solo.

Hay más en la caja —csk update para refrescar versiones, csk adopt para registrar una skill que ya tenías instalada a mano sin perder nada, csk doctor para diagnosticar la deriva antes de que duela, csk upgrade para que el propio binario se actualice—, pero con esos cuatro comandos ya tienes el 90% del valor.

La parte recursiva

Vuelvo al principio, porque es lo que más me interesa de este experimento. csk salió de una conversación: una especificación escrita junto a Claude Code, discutida, recortada, y luego implementada en Go por el propio Claude Code. Catorce commits, cuatro releases, de la idea a un binario que funciona en tres sistemas operativos. Yo hice de arquitecto y de crítico; el teclado lo llevó el modelo.

Y eso abre una puerta con un punto distópico que no me apetece esquivar. A medida que el agente se convierte en tu interfaz principal de trabajo, tus skills dejan de ser un detalle de configuración: son, literalmente, tu cuerpo aumentado. Son lo que sabes hacer a través de la máquina. Y ahora mismo ese cuerpo no tiene control de versiones. Cada portátil es un injerto distinto, cada actualización un parche sin registrar, y nadie —ni tú— sabe exactamente de qué está hecho tu propio entorno.

csk es, en el fondo, un intento modesto de ponerle un esqueleto a eso. Un manifiesto que diga "esto es lo que soy" y un lockfile que lo demuestre. Porque si vamos a delegar cada vez más de nuestra capacidad en estas herramientas, lo mínimo es saber —y poder reproducir— de qué están hechas.

El proyecto es open source, con licencia MIT, y está aquí: github.com/pformoso-deus-ai/csk. Si lo pruebas, una star y, sobre todo, tu feedback en los issues me harían el día.


Fuentes y enlaces: repositorio de csk en GitHub · documentación de skills de Claude Code

Pablo Formoso
autor

Pablo Formoso

Notas de campo desde la intersección de datos, IA, y filosofía aplicada.

entradas
11
desde
2024

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *