evolve-skill
について
`evolve-skill`スキルは、既存のClaudeスキルを、現在の内容をその場で改良するか、高度な派生版を作成することで更新します。このスキルは、現在のスキルの評価と要件収集から、変更の適用、バージョンメタデータの更新、レジストリの同期に至るまでの、進化プロセス全体を処理します。スキルの手順が時代遅れになった場合、ユーザーフィードバックから不足が明らかになった場合、複雑さのアップグレードが必要な場合、または相互参照が陳腐化した場合にご利用ください。
クイックインストール
Claude Code
推奨npx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/evolve-skillこのコマンドをClaude Codeにコピー&ペーストしてスキルをインストールします
ドキュメント
Evolucionar una Habilidad Existente
Mejora, extiende o crea una variante avanzada de una habilidad que fue creada originalmente con create-skill. Este procedimiento cubre el lado de mantenimiento del ciclo de vida de la habilidad: evaluar brechas, aplicar mejoras específicas, actualizar versiones y mantener sincronizados el registro y las referencias cruzadas.
Cuándo Usar
- Los pasos del procedimiento de una habilidad están desactualizados o incompletos tras cambios en las herramientas
- Los comentarios de usuarios revelan errores faltantes, pasos poco claros o validación débil
- Una habilidad necesita crecer de básica a intermedia (o de intermedia a avanzada)
- Se necesita una variante avanzada junto a la original (p.ej.,
create-r-packageycreate-r-package-advanced) - Se añadieron o eliminaron habilidades relacionadas y las referencias cruzadas están obsoletas
Entradas
- Requerido: Ruta al SKILL.md existente que se va a evolucionar
- Requerido: Disparador de evolución (comentario, cambio de herramienta, actualización de complejidad, nuevas habilidades relacionadas, errores descubiertos)
- Opcional: Nivel de complejidad objetivo si cambia (basic, intermediate, advanced)
- Opcional: Si crear una variante avanzada en lugar de refinar en el lugar (por defecto: refinar en el lugar)
Procedimiento
Paso 1: Evaluar la Habilidad Actual
Leer el SKILL.md existente y evaluar cada sección frente a la lista de verificación de calidad:
| Sección | Qué verificar | Problemas comunes |
|---|---|---|
| Frontmatter | Todos los campos requeridos presentes, description < 1024 chars | Falta tags, version obsoleta |
| When to Use | 3-5 condiciones de activación concretas | Disparadores vagos o superpuestos |
| Inputs | Requeridos vs. opcionales claramente separados | Faltan valores por defecto para entradas opcionales |
| Procedure | Cada paso tiene código + Expected + On failure | Faltan bloques On failure, pseudocódigo en lugar de comandos reales |
| Validation | Cada elemento es de paso/fallo binario | Criterios subjetivos ("el código está limpio") |
| Common Pitfalls | 3-6 con causa y cómo evitarlos | Demasiado genéricos ("tener cuidado") |
| Related Skills | 2-5 referencias de habilidades válidas | Referencias obsoletas a habilidades renombradas/eliminadas |
# Leer la habilidad
cat skills/<skill-name>/SKILL.md
# Verificar que el frontmatter se analiza
head -20 skills/<skill-name>/SKILL.md
# Verificar que las habilidades relacionadas aún existen
grep -oP '`[\w-]+`' skills/<skill-name>/SKILL.md | sort -u
Esperado: Una lista de brechas específicas, debilidades u oportunidades de mejora.
En caso de fallo: Si el SKILL.md no existe o no tiene frontmatter, esta habilidad no aplica — usar create-skill en su lugar para crearlo desde cero.
Paso 2: Reunir los Requisitos de Evolución
Identificar y categorizar qué desencadenó la evolución:
| Disparador | Ejemplo | Alcance típico |
|---|---|---|
| Comentario del usuario | "El paso 3 no está claro" | Refinamiento |
| Cambio de herramienta | Nueva versión de API, comando obsoleto | Refinamiento |
| Error descubierto | Fallo común no documentado | Refinamiento |
| Actualización de complejidad | La habilidad es demasiado superficial para uso real | Refinamiento o variante |
| Nuevas habilidades relacionadas | Se añadió una habilidad adyacente | Refinamiento (referencias cruzadas) |
| Caso de uso avanzado | Los usuarios avanzados necesitan mayor cobertura | Variante |
Documentar los cambios específicos necesarios antes de editar. Listar cada cambio con su sección objetivo.
Esperado: Una lista concreta de cambios (p.ej., "Añadir On failure al Paso 4", "Añadir nuevo Paso 6 para caso extremo X", "Actualizar Related Skills para incluir new-skill").
En caso de fallo: Si los cambios no están claros, consultar al usuario para aclaración antes de proceder. Los objetivos de evolución vagos producen mejoras vagas.
Paso 3: Elegir el Alcance de la Evolución
Usar esta matriz de decisión para determinar si refinar en el lugar o crear una variante:
| Criterios | Refinamiento (en el lugar) | Variante Avanzada (nueva habilidad) |
|---|---|---|
| ID de habilidad | Sin cambios | Nuevo ID: <skill>-advanced |
| Ruta del archivo | Mismo SKILL.md | Nuevo directorio |
| Incremento de versión | Parche o menor | Comienza en 1.0 |
| Complejidad | Puede aumentar | Mayor que la original |
| Registro | Sin nueva entrada | Nueva entrada añadida |
| Symlinks | Sin cambio | Nuevos symlinks necesarios |
| Habilidad original | Modificada directamente | Intacta, gana referencia cruzada |
Refinamiento: Elegir al mejorar la calidad, corregir brechas o añadir contenido nuevo modesto. La habilidad mantiene su identidad.
Variante: Elegir cuando la versión evolucionada duplicaría la longitud, cambiaría el público objetivo o requeriría entradas sustancialmente diferentes. El original permanece como está para casos de uso más simples.
Esperado: Una decisión clara — refinamiento o variante — con justificación.
En caso de fallo: Si no estás seguro, por defecto optar por refinamiento. Siempre puedes extraer una variante más tarde; es más difícil fusionarla de vuelta.
Paso 4: Aplicar los Cambios de Contenido
Para Refinamientos
Editar el SKILL.md existente directamente:
# Abrir para edición
# Añadir/revisar pasos del procedimiento
# Fortalecer pares Expected/On failure
# Añadir tablas o ejemplos
# Actualizar los disparadores de When to Use
# Revisar Inputs si el alcance cambió
Seguir estas reglas de edición:
- Preservar todas las secciones existentes — añadir contenido, no eliminar secciones
- Mantener la numeración de pasos secuencial tras las inserciones
- Cada paso nuevo o modificado debe tener tanto Expected como On failure
- Los nuevos errores van al final de la sección Common Pitfalls
- Las nuevas habilidades relacionadas van al final de la sección Related Skills
Para Variantes
# Crear el directorio de variante
mkdir -p skills/<skill-name>-advanced/
# Copiar el original como punto de partida
cp skills/<skill-name>/SKILL.md skills/<skill-name>-advanced/SKILL.md
# Editar la variante:
# - Cambiar `name` a `<skill-name>-advanced`
# - Actualizar `description` para reflejar el alcance avanzado
# - Aumentar `complexity` (p.ej., intermediate → advanced)
# - Restablecer `version` a "1.0"
# - Añadir/expandir pasos del procedimiento para el caso de uso avanzado
# - Referenciar el original en Related Skills como requisito previo
Esperado: El SKILL.md (refinado o nueva variante) pasa la lista de verificación de evaluación del Paso 1.
En caso de fallo: Si una edición rompe la estructura del documento, usar git diff para revisar los cambios y revertir ediciones parciales con git checkout -- <file>.
Paso 4.5: Sincronizar Variantes Traducidas
Obligatorio cuando existen traducciones. Este paso se aplica tanto a autores humanos como a agentes de IA que siguen este procedimiento. No omitir — los valores obsoletos de
source_commithacen quenpm run validate:translationsinforme advertencias falsas de obsolescencia en todas las localizaciones.
Comprobar si existen traducciones para la habilidad evolucionada y actualizarlas para reflejar el nuevo estado de la fuente:
# Comprobar las traducciones existentes
ls i18n/*/skills/<skill-name>/SKILL.md 2>/dev/null
Si existen traducciones
- Obtener el hash del commit de la fuente actual:
SOURCE_COMMIT=$(git rev-parse HEAD)
- Actualizar
source_commiten el frontmatter de cada archivo traducido:
for locale_file in i18n/*/skills/<skill-name>/SKILL.md; do
sed -i "s/^source_commit: .*/source_commit: $SOURCE_COMMIT/" "$locale_file"
done
- Marcar archivos para re-traducción incluyendo las localizaciones afectadas en el mensaje de commit:
evolve(<skill-name>): <descripción de los cambios>
Translations flagged for re-sync: de, zh-CN, ja, es
Changed sections: <lista de secciones que cambiaron>
- Regenerar los archivos de estado de traducción:
npm run translation:status
Si no existen traducciones
No se requiere ninguna acción. Continuar al Paso 5.
Para Variantes
Aplazar la traducción de nuevas variantes hasta que la variante se estabilice (1-2 versiones). Traducir una variante v1.0 que puede cambiar sustancialmente para v1.2 desperdicia esfuerzo. Añadir traducciones después de que la variante haya sido refinada al menos una vez.
Esperado: Todos los archivos traducidos tienen source_commit actualizado al commit actual. El mensaje de commit indica qué localizaciones necesitan re-traducción y qué secciones cambiaron. npm run translation:status sale con 0.
En caso de fallo: Si sed no coincide con el campo del frontmatter, el archivo traducido puede tener un formato no estándar. Abrirlo manualmente y verificar que tiene source_commit en su frontmatter YAML. Si el campo falta, el archivo no se generó correctamente — regenerar con npm run translate:scaffold.
Paso 5: Actualizar la Versión y los Metadatos
Incrementar el campo version en el frontmatter siguiendo las convenciones de semver:
| Tipo de cambio | Incremento de versión | Ejemplo |
|---|---|---|
| Corrección tipográfica, aclaración de redacción | Parche: 1.0 → 1.1 | Oración poco clara corregida en el Paso 3 |
| Nuevo paso, nuevo error, nueva tabla | Menor: 1.0 → 2.0 | Añadido Paso 7 para manejo de casos extremos |
| Procedimiento reestructurado, entradas cambiadas | Mayor: 1.0 → 2.0 | Reorganizado de 5 a 8 pasos |
También actualizar:
complexitysi el alcance se expandió (p.ej., basic → intermediate)tagssi el área de cobertura cambiódescriptionsi el alcance de la habilidad es materialmente diferente
Esperado: El version del frontmatter refleja la magnitud de los cambios. Las nuevas variantes comienzan en "1.0".
En caso de fallo: Si olvidas incrementar la versión, la próxima evolución no tendrá forma de distinguir el estado actual del anterior. Siempre incrementar antes de confirmar.
Paso 6: Actualizar el Registro y las Referencias Cruzadas
Para Refinamientos
No se necesitan cambios en el registro (la ruta no cambia). Actualizar las referencias cruzadas solo si las Habilidades Relacionadas cambiaron en otras habilidades:
# Comprobar si alguna habilidad referencia la habilidad evolucionada
grep -r "<skill-name>" skills/*/SKILL.md
Para Variantes
Añadir la nueva habilidad a skills/_registry.yml:
- id: <skill-name>-advanced
path: <skill-name>-advanced/SKILL.md
complexity: advanced
language: multi
description: One-line description of the advanced variant
Luego:
- Incrementar
total_skillsal inicio del registro - Añadir referencia cruzada de Related Skills en la habilidad original apuntando a la variante
- Añadir referencia cruzada de Related Skills en la variante apuntando al original
- Crear symlinks para el descubrimiento de comandos slash:
# A nivel de proyecto
ln -s ../../skills/<skill-name>-advanced .claude/skills/<skill-name>-advanced
# Global
ln -s /mnt/d/dev/p/agent-almanac/skills/<skill-name>-advanced ~/.claude/skills/<skill-name>-advanced
Esperado: El total_skills del registro coincide con find skills -name SKILL.md | wc -l. Las referencias cruzadas son bidireccionales.
En caso de fallo: Si el recuento del registro es incorrecto, ejecutar find skills -name SKILL.md | wc -l para obtener el recuento verdadero y corregir el registro. Para symlinks rotos, usar readlink -f para depurar la resolución.
Paso 7: Validar la Habilidad Evolucionada
Ejecutar la lista de verificación de validación completa:
- SKILL.md existe en la ruta esperada
- El frontmatter YAML se analiza sin errores
-
versionfue incrementada (refinamiento) o establecida en "1.0" (variante) - Todas las secciones presentes: When to Use, Inputs, Procedure, Validation, Common Pitfalls, Related Skills
- Cada paso del procedimiento tiene bloques Expected y On failure
- Las Habilidades Relacionadas hacen referencia a nombres de habilidades válidos y existentes
- La entrada del registro existe con la ruta correcta (solo variantes)
- El recuento
total_skillscoincide con el recuento real de habilidades en disco - Los symlinks se resuelven correctamente (solo variantes)
-
git diffno muestra eliminaciones accidentales del contenido original
# Verificar frontmatter
head -20 skills/<skill-name>/SKILL.md
# Contar habilidades en disco vs registro
find skills -name SKILL.md | wc -l
grep total_skills skills/_registry.yml
# Comprobar symlinks (para variantes)
ls -la .claude/skills/<skill-name>-advanced
readlink -f .claude/skills/<skill-name>-advanced/SKILL.md
# Revisar todos los cambios
git diff
Esperado: Todos los elementos de la lista de verificación pasan. La habilidad evolucionada está lista para confirmar.
En caso de fallo: Abordar cada elemento fallido individualmente. El problema más común tras la evolución es un recuento total_skills obsoleto — siempre verificarlo al final.
Validación
- SKILL.md existe y tiene frontmatter YAML válido
- El campo
versionrefleja los cambios realizados - Todos los pasos del procedimiento tienen bloques Expected y On failure
- Las referencias de Related Skills son válidas (sin referencias cruzadas rotas)
- El
total_skillsdel registro coincide con el recuento real en disco - Para variantes: nueva entrada en
_registry.ymlcon la ruta correcta - Para variantes: symlinks creados en
.claude/skills/y~/.claude/skills/ -
git diffconfirma que no se eliminó contenido accidentalmente
Errores Comunes
- Olvidar incrementar la versión: Sin incrementos de versión, no hay forma de rastrear qué cambió o cuándo. Siempre actualizar
versionen el frontmatter antes de confirmar. - Eliminación accidental de contenido: Al reestructurar pasos, es fácil perder un bloque On failure o una fila de tabla. Siempre revisar
git diffantes de confirmar. - Referencias cruzadas obsoletas: Al crear una variante, tanto el original como la variante necesitan referenciarse mutuamente. Las referencias unidireccionales dejan el grafo incompleto.
- Desviación del recuento del registro: Tras crear una variante, el recuento
total_skillsdebe incrementarse. Olvidarlo causa fallos de validación en otras habilidades que comprueban el registro. - Aumento de alcance durante el refinamiento: Un refinamiento que duplica la longitud de la habilidad debería ser probablemente una variante en su lugar. Si añades más de 3 nuevos pasos del procedimiento, reconsiderar la decisión de alcance del Paso 3.
- Evitar
git mven rutas montadas en NTFS (WSL): En rutas/mnt/,git mvpara directorios puede crear permisos rotos (d?????????). Usarmkdir -p+ copiar archivos +git rmla ruta antigua en su lugar. Ver la sección de solución de problemas de la guía del entorno.
Habilidades Relacionadas
create-skill— base para la creación de nuevas habilidades; evolve-skill asume que esto se siguió originalmentecommit-changes— confirmar la habilidad evolucionada con un mensaje descriptivoconfigure-git-repository— cambios de habilidades bajo control de versionessecurity-audit-codebase— revisar habilidades evolucionadas para detectar secretos incluidos accidentalmente
GitHub リポジトリ
関連スキル
content-collections
メタこのスキルは、Content Collections(Markdown/MDXファイルを型安全なデータコレクションに変換するTypeScriptファーストのツール)の本番環境でテストされた設定を提供します。Zodバリデーションによる型安全性を実現し、ブログ、ドキュメントサイト、コンテンツ重視のVite + Reactアプリケーション構築時にご利用ください。Viteプラグインの設定、MDXコンパイルから、デプロイ最適化、スキーマバリデーションまで、すべてを網羅しています。
polymarket
メタこのスキルは、開発者がPolymarket予測市場プラットフォームを活用したアプリケーション構築を可能にします。API統合による取引や市場データの取得に加え、WebSocketを介したリアルタイムデータストリーミングにより、ライブ取引や市場活動を監視できます。取引戦略の実装や、ライブ市場更新を処理するツールの作成にご利用ください。
creating-opencode-plugins
メタこのスキルは、開発者がコマンド、ファイル、LSP操作など25種類以上のイベントタイプにフックするOpenCodeプラグインを作成することを支援します。JavaScript/TypeScriptモジュール向けに、プラグイン構造、イベントAPI仕様、および実装パターンを提供します。カスタムイベント駆動ロジックでOpenCode AIアシスタントのライフサイクルをインターセプト、監視、または拡張する必要がある場合にご利用ください。
sglang
メタSGLangは、高性能なLLMサービングフレームワークであり、RadixAttentionプレフィックスキャッシュを活用したJSON、正規表現、エージェントワークフロー向けの高速で構造化された生成を特長とします。特にプレフィックスが繰り返されるタスクにおいて、大幅に高速な推論を実現し、複雑な構造化出力やマルチターン対話に最適です。制約付きデコードが必要な場合や、広範なプレフィックス共有を伴うアプリケーションを構築する場合は、vLLMなどの代替案ではなくSGLangを選択してください。
