¿Qué hace skill-stocktake?
Comando de barra (/skill-stocktake) que audita todos los skills y comandos de Claude usando una lista de verificación de calidad + juicio holístico de IA. Soporta dos modos: Quick Scan para skills modificados recientemente, y Full Stocktake para una revisión completa.
Alcance
El comando apunta a las siguientes rutas relativas al directorio donde se invoca:
| Ruta | Descripción |
|---|---|
~/.claude/skills/ | Skills globales (todos los proyectos) |
{cwd}/.claude/skills/ | Skills a nivel de proyecto (si el directorio existe) |
Al inicio de la Fase 1, el comando lista explícitamente qué rutas se encontraron y escanearon.
Apuntar a un proyecto específico
Para incluir skills a nivel de proyecto, ejecute desde el directorio raíz de ese proyecto:
cd ~/ruta/a/mi-proyecto
/skill-stocktake
Si el proyecto no tiene un directorio .claude/skills/, solo se evalúan los skills y comandos globales.
Modos
| Modo | Disparador | Duración |
|---|---|---|
| Quick Scan | results.json existe (por defecto) | 5–10 min |
| Full Stocktake | results.json ausente, o /skill-stocktake full | 20–30 min |
Caché de resultados: ~/.claude/skills/skill-stocktake/results.json
Flujo de Quick Scan
Re-evalúa solo los skills que han cambiado desde la última ejecución (5–10 min).
- Leer
~/.claude/skills/skill-stocktake/results.json - Ejecutar:
bash ~/.claude/skills/skill-stocktake/scripts/quick-diff.sh \ ~/.claude/skills/skill-stocktake/results.json(El directorio del proyecto se detecta automáticamente desde$PWD/.claude/skills; páselo explícitamente solo si es necesario) - Si la salida es
[]: informar "Sin cambios desde la última ejecución." y detenerse - Re-evaluar solo esos archivos modificados usando los mismos criterios de la Fase 2
- Mantener los skills sin cambios de los resultados anteriores
- Mostrar solo el diff
- Ejecutar:
bash ~/.claude/skills/skill-stocktake/scripts/save-results.sh \ ~/.claude/skills/skill-stocktake/results.json <<< "$EVAL_RESULTS"
Flujo de Full Stocktake
Fase 1 — Inventario
Ejecutar: bash ~/.claude/skills/skill-stocktake/scripts/scan.sh
El script enumera archivos de skill, extrae frontmatter y recopila marcas de tiempo UTC.
El directorio del proyecto se detecta automáticamente desde $PWD/.claude/skills; páselo explícitamente solo si es necesario.
Presentar el resumen del escaneo y la tabla de inventario desde la salida del script:
Escaneando:
✓ ~/.claude/skills/ (17 archivos)
✗ {cwd}/.claude/skills/ (no encontrado — solo skills globales)
| Skill | Uso 7d | Uso 30d | Descripción |
|---|
Fase 2 — Evaluación de Calidad
Lanzar un subagente de herramienta Agent (agente de propósito general) con el inventario completo y la lista de verificación:
Agent(
subagent_type="general-purpose",
prompt="
Evalúe el siguiente inventario de skills contra la lista de verificación.
[INVENTARIO]
[LISTA DE VERIFICACIÓN]
Devuelva JSON para cada skill:
{ "verdict": "Keep"|"Improve"|"Update"|"Retire"|"Merge into [X]", "reason": "..." }
"
)
El subagente lee cada skill, aplica la lista de verificación y devuelve JSON por skill:
{ "verdict": "Keep"|"Improve"|"Update"|"Retire"|"Merge into [X]", "reason": "..." }
Guía de fragmentación: Procesar ~20 skills por invocación de subagente para mantener el contexto manejable. Guardar resultados intermedios en results.json (status: "in_progress") después de cada fragmento.
Después de que todos los skills sean evaluados: establecer status: "completed", proceder a la Fase 3.
Detección de reanudación: Si se encuentra status: "in_progress" al inicio, reanudar desde el primer skill no evaluado.
Cada skill se evalúa contra esta lista de verificación:
- [ ] Superposición de contenido con otros skills verificada
- [ ] Superposición con MEMORY.md / CLAUDE.md verificada
- [ ] Frescura de referencias técnicas verificada (usar WebSearch si hay nombres de herramientas / flags de CLI / APIs)
- [ ] Frecuencia de uso considerada
Criterios de veredicto:
| Veredicto | Significado |
|---|---|
| Keep | Útil y actual |
| Improve | Vale la pena conservar, pero se necesitan mejoras específicas |
| Update | La tecnología referenciada está desactualizada (verificar con WebSearch) |
| Retire | Baja calidad, obsoleto o asimétrico en costo |
| Merge into [X] | Superposición sustancial con otro skill; nombrar el destino de fusión |
La evaluación es juicio holístico de IA — no una rúbrica numérica. Dimensiones orientadoras:
- Accionabilidad: ejemplos de código, comandos o pasos que permitan actuar de inmediato
- Ajuste de alcance: nombre, disparador y contenido están alineados; no demasiado amplio ni estrecho
- Unicidad: valor no reemplazable por MEMORY.md / CLAUDE.md / otro skill
- Actualidad: las referencias técnicas funcionan en el entorno actual
Requisitos de calidad del motivo — el campo reason debe ser autocontenido y permitir la toma de decisiones:
- NO escribir "sin cambios" solo — siempre reafirmar la evidencia central
- Para Retire: indicar (1) qué defecto específico se encontró, (2) qué cubre la misma necesidad en su lugar
- Malo:
"Reemplazado" - Bueno:
"disable-model-invocation: true ya está establecido; reemplazado por continuous-learning-v2 que cubre todos los mismos patrones más puntuación de confianza. No queda contenido único."
- Malo:
- Para Merge: nombrar el destino y describir qué contenido integrar
- Malo:
"Se superpone con X" - Bueno:
"Contenido delgado de 42 líneas; el Paso 4 de chatlog-to-article ya cubre el mismo flujo. Integrar el consejo de 'ángulo de artículo' como una nota en ese skill."
- Malo:
- Para Improve: describir el cambio específico necesario (qué sección, qué acción, tamaño objetivo si corresponde)
- Malo:
"Demasiado largo" - Bueno:
"276 líneas; la Sección 'Comparison Framework' (L80–140) duplica ai-era-architecture-principles; eliminarla para llegar a ~150 líneas."
- Malo:
- Para Keep (solo cambio de mtime en Quick Scan): reafirmar la justificación del veredicto original, no escribir "sin cambios"
- Malo:
"Sin cambios" - Bueno:
"mtime actualizado pero contenido sin cambios. Referencia Python única importada explícitamente por rules/python/; no se encontró superposición."
- Malo:
Fase 3 — Tabla Resumen
| Skill | Uso 7d | Veredicto | Motivo |
|---|
Fase 4 — Consolidación
- Retirar / Fusionar: presentar justificación detallada por archivo antes de confirmar con el usuario:
- Qué problema específico se encontró (superposición, obsolescencia, referencias rotas, etc.)
- Qué alternativa cubre la misma funcionalidad (para Retire: qué skill/regla existente; para Merge: el archivo destino y qué contenido integrar)
- Impacto de la eliminación (skills dependientes, referencias en MEMORY.md o flujos de trabajo afectados)
- Mejorar: presentar sugerencias de mejora específicas con justificación:
- Qué cambiar y por qué (ej., "reducir 430→200 líneas porque las secciones X/Y duplican python-patterns")
- El usuario decide si actuar
- Actualizar: presentar contenido actualizado con fuentes verificadas
- Verificar el recuento de líneas de MEMORY.md; proponer compresión si >100 líneas
Esquema del Archivo de Resultados
~/.claude/skills/skill-stocktake/results.json:
evaluated_at: Debe establecerse en la hora UTC real de finalización de la evaluación.
Obtener mediante Bash: date -u +%Y-%m-%dT%H:%M:%SZ. Nunca usar una aproximación solo de fecha como T00:00:00Z.
{
"evaluated_at": "2026-02-21T10:00:00Z",
"mode": "full",
"batch_progress": {
"total": 80,
"evaluated": 80,
"status": "completed"
},
"skills": {
"skill-name": {
"path": "~/.claude/skills/skill-name/SKILL.md",
"verdict": "Keep",
"reason": "Valor concreto, accionable y único para el flujo de trabajo X",
"mtime": "2026-01-15T08:30:00Z"
}
}
}
Notas
- La evaluación es ciega: la misma lista de verificación se aplica a todos los skills independientemente de su origen (ECC, auto-redactados, extraídos automáticamente)
- Las operaciones de archivar / eliminar siempre requieren confirmación explícita del usuario
- No hay bifurcación de veredicto según el origen del skill