¿Qué hace skillci?
CI para Skills de Claude: lint, evalúa y prueba regresiones de archivos SKILL.md en una matriz de modelos, con un ciclo de evaluación auto-creciente que convierte regresiones no cubiertas en casos de prueba permanentes.
Descripción
Este repositorio implementa un sistema de integración continua (CI) especializado para Skills de Claude. Permite a los desarrolladores:
- Lint: Verificar la sintaxis y estructura de los archivos
SKILL.md. - Eval: Ejecutar evaluaciones automatizadas sobre los skills usando una matriz de modelos de lenguaje (por ejemplo, Claude 3 Haiku, Claude 3 Sonnet, etc.).
- Regression-test: Detectar cambios no deseados en el comportamiento de un skill comparando resultados contra una suite de pruebas.
El sistema incluye un ciclo de evaluación auto-creciente: si durante una ejecución se encuentra una regresión que no tiene un caso de prueba correspondiente, se genera automáticamente un nuevo caso de prueba y se añade a la suite permanente. Esto significa que la cobertura de pruebas mejora con el tiempo, reduciendo la probabilidad de regresiones futuras.
Plataformas compatibles
- GitHub Actions: Ideal para integrar como flujo de trabajo de CI en repositorios de GitHub.
- Local: Puede ejecutarse también en entornos locales para pruebas rápidas.
Cómo funciona
- Se configura una matriz de modelos en el archivo de configuración del CI (por ejemplo, en
.github/workflows/ci.yml). - Para cada modelo, se ejecuta el lint y las evaluaciones definidas en los archivos
SKILL.md. - Se comparan los resultados con las expectativas almacenadas (casos de prueba).
- Si se detecta una regresión no cubierta, se crea un nuevo caso de prueba automáticamente.
Uso básico
Para integrar este CI en tu repositorio de skills de Claude, añade el siguiente flujo de trabajo de GitHub Actions:
name: CI para Skills de Claude
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
model: [claude-3-haiku-20240307, claude-3-sonnet-20240229]
steps:
- uses: actions/checkout@v3
- name: Ejecutar CI de Skill
uses: kabirnarang39/skillci@v1
with:
model: ${{ matrix.model }}
Variables de entorno
| Variable | Descripción |
|---|---|
ANTHROPIC_API_KEY | Clave de API de Anthropic (obligatoria). |
SKILLCI_MODEL | Modelo predeterminado (opcional, se puede pasar como input). |
Ejemplo de archivo SKILL.md
Cada skill debe tener un archivo SKILL.md en su directorio raíz. Por ejemplo:
# Mi Skill
Descripción breve del skill.
## Evaluación
- **Prompt de prueba**: "Responde con 'Hola mundo'."
- **Comportamiento esperado**: La respuesta debe contener exactamente "Hola mundo".
Licencia
Este proyecto está bajo la licencia MIT. Consulta el archivo LICENSE para más detalles.
Contribuciones
Las contribuciones son bienvenidas. Por favor, abre un issue o un pull request para sugerir mejoras o reportar errores.
Contacto
Creado por kabirnarang39.