brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
evolve-skillEvoluciona una habilidad existente refinando su contenido en el lugar o creando una variante avanzada. Cubre la evaluación de la habilidad actual, la recopilación de requisitos de evolución, la elección del alcance (refinamiento vs. variante), la aplicación de cambios, la actualización de metadatos de versión y la sincronización del registro y las referenci…
Independent GitHub snapshot · Automated classification · Original documentation governs
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.
create-r-package y create-r-package-advanced)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 |
# Read the skill
cat skills/<skill-name>/SKILL.md
# Check frontmatter parses
head -20 skills/<skill-name>/SKILL.md
# Verify related skills still exist
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.
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.
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 | Menor (mayor solo si rompe compatibilidad) | 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.
Editar el SKILL.md existente directamente:
Seguir estas reglas de edición:
# Create the variant directory
mkdir -p skills/<skill-name>-advanced/
# Copy the original as a starting point
cp skills/<skill-name>/SKILL.md skills/<skill-name>-advanced/SKILL.md
# Edit the variant:
# - Change `name` to `<skill-name>-advanced`
# - Update `description` to reflect the advanced scope
# - Raise `complexity` (e.g., intermediate → advanced)
# - Reset `version` to "1.0"
# - Add/expand procedure steps for the advanced use case
# - Reference the original in Related Skills as a prerequisite
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>.
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:
# Check for existing translations
ls i18n/*/skills/<skill-name>/SKILL.md 2>/dev/null
npm run validate:translations
source_commit en el frontmatter de cada archivo traducido:npm run check:fence-propagation -- --id <skill-name>
node tools/provenance-field.mjs --field fence_basis_commit --set $(git rev-parse --short HEAD) <mirror paths>
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>
npm run translation:status
No se requiere ninguna acción. Continuar al Paso 5.
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.
Incrementar el campo version en el frontmatter:
| Tipo de cambio | Incremento de versión | Ejemplo |
|---|---|---|
| Corrección tipográfica, aclaración de redacción | Menor: 1.0 → 1.1 | Oración poco clara corregida en el Paso 3 |
| Nuevo paso, nuevo error, nueva tabla | Menor: 1.0 → 1.1 | 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:
complexity si el alcance se expandió (p.ej., basic → intermediate)tags si el área de cobertura cambiódescription si el alcance de la habilidad es materialmente diferenteEsperado: 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.
No se necesitan cambios en el registro (la ruta no cambia). Actualizar las referencias cruzadas solo si las Habilidades Relacionadas cambiaron en otras habilidades:
# Check if any skill references the evolved skill
grep -r "<skill-name>" skills/*/SKILL.md
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:
total_skills al inicio del registro# Project-level
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.
Ejecutar la lista de verificación de validación completa:
version fue incrementada (refinamiento) o establecida en "1.0" (variante)total_skills coincide con el recuento real de habilidades en discogit diff no muestra eliminaciones accidentales del contenido original# Verify frontmatter
head -20 skills/<skill-name>/SKILL.md
# Count skills on disk vs registry
find skills -name SKILL.md | wc -l
grep total_skills skills/_registry.yml
# Check symlinks (for variants)
ls -la .claude/skills/<skill-name>-advanced
readlink -f .claude/skills/<skill-name>-advanced/SKILL.md
# Review all changes
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.
version refleja los cambios realizadostotal_skills del registro coincide con el recuento real en disco_registry.yml con la ruta correcta.claude/skills/ y ~/.claude/skills/git diff confirma que no se eliminó contenido accidentalmenteversion en el frontmatter antes de confirmar.git diff antes de confirmar.total_skills debe incrementarse. Olvidarlo causa fallos de validación en otras habilidades que comprueban el registro.git mv en rutas montadas en NTFS (WSL): En rutas /mnt/, git mv para directorios puede crear permisos rotos (d?????????). Usar mkdir -p + copiar archivos + git rm la ruta antigua en su lugar. Ver la sección de solución de problemas de la guía del entorno.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