swl-ses 3.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +425 -0
- package/_userland/agentes/.gitkeep +0 -0
- package/_userland/habilidades/.gitkeep +0 -0
- package/agentes/accesibilidad-wcag-swl.md +683 -0
- package/agentes/arquitecto-swl.md +210 -0
- package/agentes/auto-evolucion-swl.md +408 -0
- package/agentes/backend-api-swl.md +442 -0
- package/agentes/backend-node-swl.md +439 -0
- package/agentes/backend-python-swl.md +469 -0
- package/agentes/backend-workers-swl.md +444 -0
- package/agentes/cloud-infra-swl.md +466 -0
- package/agentes/consolidador-swl.md +487 -0
- package/agentes/datos-swl.md +568 -0
- package/agentes/depurador-swl.md +301 -0
- package/agentes/devops-ci-swl.md +352 -0
- package/agentes/disenador-ui-swl.md +546 -0
- package/agentes/documentador-swl.md +323 -0
- package/agentes/frontend-angular-swl.md +603 -0
- package/agentes/frontend-css-swl.md +700 -0
- package/agentes/frontend-react-swl.md +672 -0
- package/agentes/frontend-swl.md +483 -0
- package/agentes/frontend-tailwind-swl.md +808 -0
- package/agentes/implementador-swl.md +235 -0
- package/agentes/investigador-swl.md +274 -0
- package/agentes/investigador-ux-swl.md +482 -0
- package/agentes/migrador-swl.md +389 -0
- package/agentes/mobile-android-swl.md +473 -0
- package/agentes/mobile-cross-swl.md +501 -0
- package/agentes/mobile-ios-swl.md +464 -0
- package/agentes/notificador-swl.md +886 -0
- package/agentes/observabilidad-swl.md +408 -0
- package/agentes/orquestador-swl.md +490 -0
- package/agentes/planificador-swl.md +222 -0
- package/agentes/producto-prd-swl.md +565 -0
- package/agentes/release-manager-swl.md +545 -0
- package/agentes/rendimiento-swl.md +691 -0
- package/agentes/revisor-codigo-swl.md +254 -0
- package/agentes/revisor-seguridad-swl.md +316 -0
- package/agentes/tdd-qa-swl.md +323 -0
- package/agentes/ux-disenador-swl.md +498 -0
- package/bin/swl-ses.js +119 -0
- package/comandos/swl/actualizar.md +117 -0
- package/comandos/swl/aprender.md +348 -0
- package/comandos/swl/auditar-deps.md +390 -0
- package/comandos/swl/autoresearch.md +346 -0
- package/comandos/swl/checkpoint.md +296 -0
- package/comandos/swl/compactar.md +283 -0
- package/comandos/swl/crear-skill.md +609 -0
- package/comandos/swl/discutir-fase.md +230 -0
- package/comandos/swl/ejecutar-fase.md +302 -0
- package/comandos/swl/evolucionar.md +377 -0
- package/comandos/swl/instalar.md +220 -0
- package/comandos/swl/mapear-codebase.md +205 -0
- package/comandos/swl/nuevo-proyecto.md +154 -0
- package/comandos/swl/planear-fase.md +221 -0
- package/comandos/swl/release.md +405 -0
- package/comandos/swl/salud.md +382 -0
- package/comandos/swl/verificar.md +292 -0
- package/habilidades/accesibilidad-a11y/SKILL.md +584 -0
- package/habilidades/angular-avanzado/SKILL.md +491 -0
- package/habilidades/angular-moderno/SKILL.md +326 -0
- package/habilidades/api-rest-diseno/SKILL.md +302 -0
- package/habilidades/api-rest-diseno/recursos/openapi-template.yaml +506 -0
- package/habilidades/aprendizaje-continuo/SKILL.md +369 -0
- package/habilidades/async-python/SKILL.md +474 -0
- package/habilidades/auth-patrones/SKILL.md +488 -0
- package/habilidades/auto-evolucion-protocolo/SKILL.md +376 -0
- package/habilidades/autoresearch/SKILL.md +248 -0
- package/habilidades/autoresearch/recursos/checklist-template.md +191 -0
- package/habilidades/autoresearch/scripts/calcular-score.js +88 -0
- package/habilidades/checklist-calidad/SKILL.md +247 -0
- package/habilidades/checklist-calidad/recursos/quality-report-template.md +148 -0
- package/habilidades/checklist-seguridad/SKILL.md +224 -0
- package/habilidades/checkpoints-verificacion/SKILL.md +309 -0
- package/habilidades/checkpoints-verificacion/recursos/checkpoint-templates.md +360 -0
- package/habilidades/ci-cd-pipelines/SKILL.md +583 -0
- package/habilidades/ci-cd-pipelines/recursos/github-actions-template.yaml +403 -0
- package/habilidades/cloud-aws/SKILL.md +497 -0
- package/habilidades/compactacion-contexto/SKILL.md +201 -0
- package/habilidades/contenedores-docker/SKILL.md +453 -0
- package/habilidades/contenedores-docker/recursos/dockerfile-template.dockerfile +160 -0
- package/habilidades/css-moderno/SKILL.md +463 -0
- package/habilidades/datos-etl/SKILL.md +486 -0
- package/habilidades/dependencias-auditoria/SKILL.md +293 -0
- package/habilidades/deprecacion-migracion/SKILL.md +485 -0
- package/habilidades/design-tokens/SKILL.md +519 -0
- package/habilidades/discutir-fase/SKILL.md +167 -0
- package/habilidades/diseno-responsivo/SKILL.md +326 -0
- package/habilidades/django-experto/SKILL.md +395 -0
- package/habilidades/doc-sync/SKILL.md +259 -0
- package/habilidades/ejecutar-fase/SKILL.md +199 -0
- package/habilidades/estructura-proyecto-claude/SKILL.md +459 -0
- package/habilidades/estructura-proyecto-claude/recursos/claude-md-template.md +261 -0
- package/habilidades/estructura-proyecto-claude/recursos/frontmatter-y-hooks-referencia.md +213 -0
- package/habilidades/estructura-proyecto-claude/recursos/mcp-json-template.json +77 -0
- package/habilidades/estructura-proyecto-claude/recursos/variantes-por-stack.md +177 -0
- package/habilidades/event-driven/SKILL.md +580 -0
- package/habilidades/extractor-de-aprendizajes/SKILL.md +234 -0
- package/habilidades/fastapi-experto/SKILL.md +368 -0
- package/habilidades/frontend-avanzado/SKILL.md +555 -0
- package/habilidades/git-worktrees-paralelo/SKILL.md +246 -0
- package/habilidades/iam-secretos/SKILL.md +511 -0
- package/habilidades/instalar-sistema/SKILL.md +140 -0
- package/habilidades/kubernetes-orquestacion/SKILL.md +549 -0
- package/habilidades/manejo-errores/SKILL.md +512 -0
- package/habilidades/mapear-codebase/SKILL.md +199 -0
- package/habilidades/microservicios/SKILL.md +473 -0
- package/habilidades/mobile-flutter/SKILL.md +566 -0
- package/habilidades/mobile-react-native/SKILL.md +493 -0
- package/habilidades/monitoring-alertas/SKILL.md +447 -0
- package/habilidades/node-experto/SKILL.md +521 -0
- package/habilidades/notificaciones-multicanal/SKILL.md +448 -0
- package/habilidades/notificaciones-multicanal/recursos/config-template.json +115 -0
- package/habilidades/nuevo-proyecto/SKILL.md +183 -0
- package/habilidades/patrones-python/SKILL.md +381 -0
- package/habilidades/performance-baseline/SKILL.md +243 -0
- package/habilidades/planear-fase/SKILL.md +184 -0
- package/habilidades/postgresql-experto/SKILL.md +379 -0
- package/habilidades/react-experto/SKILL.md +434 -0
- package/habilidades/react-optimizacion/SKILL.md +328 -0
- package/habilidades/release-semver/SKILL.md +226 -0
- package/habilidades/release-semver/scripts/generar-changelog.sh +238 -0
- package/habilidades/sql-optimizacion/SKILL.md +314 -0
- package/habilidades/tailwind-experto/SKILL.md +412 -0
- package/habilidades/tdd-workflow/SKILL.md +267 -0
- package/habilidades/testing-python/SKILL.md +350 -0
- package/habilidades/threat-model-lite/SKILL.md +218 -0
- package/habilidades/typescript-avanzado/SKILL.md +454 -0
- package/habilidades/ux-diseno/SKILL.md +488 -0
- package/habilidades/validacion-ci-sistema/SKILL.md +543 -0
- package/habilidades/validacion-ci-sistema/scripts/validar-sistema.sh +286 -0
- package/habilidades/verificar-trabajo/SKILL.md +208 -0
- package/habilidades/wireframes-flujos/SKILL.md +396 -0
- package/habilidades/workflow-claude-code/SKILL.md +359 -0
- package/hooks/calidad-pre-commit.js +578 -0
- package/hooks/escaneo-secretos.js +302 -0
- package/hooks/extraccion-aprendizajes.js +550 -0
- package/hooks/linea-estado.js +249 -0
- package/hooks/monitor-contexto.js +230 -0
- package/hooks/proteccion-rutas.js +249 -0
- package/manifiestos/hooks-config.json +41 -0
- package/manifiestos/modulos.json +318 -0
- package/manifiestos/perfiles.json +189 -0
- package/package.json +45 -0
- package/plantillas/PROJECT.md +122 -0
- package/plantillas/REQUIREMENTS.md +132 -0
- package/plantillas/ROADMAP.md +143 -0
- package/plantillas/STATE.md +109 -0
- package/plantillas/research/ARCHITECTURE.md +220 -0
- package/plantillas/research/FEATURES.md +175 -0
- package/plantillas/research/PITFALLS.md +299 -0
- package/plantillas/research/STACK.md +233 -0
- package/plantillas/research/SUMMARY.md +165 -0
- package/plugin.json +144 -0
- package/reglas/accesibilidad.md +269 -0
- package/reglas/api-diseno.md +400 -0
- package/reglas/arquitectura.md +183 -0
- package/reglas/cloud-infra.md +247 -0
- package/reglas/docs.md +245 -0
- package/reglas/estilo-codigo.md +179 -0
- package/reglas/git-workflow.md +186 -0
- package/reglas/performance.md +195 -0
- package/reglas/pruebas.md +159 -0
- package/reglas/seguridad.md +151 -0
- package/reglas/skills-estandar.md +473 -0
- package/scripts/actualizar.js +51 -0
- package/scripts/desinstalar.js +86 -0
- package/scripts/doctor.js +222 -0
- package/scripts/inicializar.js +89 -0
- package/scripts/instalador.js +333 -0
- package/scripts/lib/detectar-runtime.js +177 -0
- package/scripts/lib/estado.js +112 -0
- package/scripts/lib/hooks-settings.js +283 -0
- package/scripts/lib/manifiestos.js +138 -0
- package/scripts/lib/seguridad.js +160 -0
- package/scripts/publicar.js +209 -0
- package/scripts/validar.js +120 -0
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: swl:actualizar
|
|
3
|
+
description: Actualiza el sistema SWL a la última versión disponible. Detecta automáticamente el perfil instalado y re-instala con --force preservando la configuración del usuario. No requiere desinstalar primero.
|
|
4
|
+
allowed_tools: ["Read", "Bash", "Glob"]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /swl:actualizar — Actualizar sistema SWL
|
|
8
|
+
|
|
9
|
+
Eres el actualizador del sistema SWL dentro de Claude Code. Tu misión es actualizar los componentes instalados a la última versión disponible sin perder la configuración del usuario ni requerir desinstalación previa.
|
|
10
|
+
|
|
11
|
+
## Paso 0 — Verificar que SWL está instalado
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
cat .claude/.swl-install-state.json 2>/dev/null
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Si NO existe archivo de estado:
|
|
18
|
+
- Informa: "No se encontró una instalación de SWL en este proyecto."
|
|
19
|
+
- Sugiere: "Usa `/swl:instalar` para instalar SWL por primera vez."
|
|
20
|
+
- DETENTE.
|
|
21
|
+
|
|
22
|
+
Si existe, extrae:
|
|
23
|
+
- `perfil`: el perfil actualmente instalado
|
|
24
|
+
- `versionSistema`: la versión instalada
|
|
25
|
+
- `global`: si fue instalación global
|
|
26
|
+
- `archivosInstalados`: cantidad de archivos
|
|
27
|
+
|
|
28
|
+
Informa al usuario:
|
|
29
|
+
```
|
|
30
|
+
SWL instalado:
|
|
31
|
+
Versión: <versionSistema>
|
|
32
|
+
Perfil: <perfil>
|
|
33
|
+
Archivos: <N>
|
|
34
|
+
Tipo: <local|global>
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Paso 1 — Verificar versión disponible
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
npm view @saulwadeleon/swl-software-engineering-system version --registry=https://npm.pkg.github.com 2>/dev/null
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Si hay una versión más nueva, informa:
|
|
44
|
+
- "Versión instalada: **X**. Versión disponible: **Y**."
|
|
45
|
+
|
|
46
|
+
Si ya está en la última versión:
|
|
47
|
+
- "Ya tienes la última versión (**X**). ¿Deseas re-instalar de todos modos?"
|
|
48
|
+
- Si el usuario dice no, DETENTE.
|
|
49
|
+
|
|
50
|
+
## Paso 2 — Confirmar actualización
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
=== Actualización SWL ===
|
|
54
|
+
|
|
55
|
+
Versión actual: <version instalada>
|
|
56
|
+
Versión disponible: <version nueva>
|
|
57
|
+
Perfil: <perfil>
|
|
58
|
+
Tipo: <local|global>
|
|
59
|
+
|
|
60
|
+
La actualización:
|
|
61
|
+
- Sobrescribe agentes, skills, comandos, reglas y hooks
|
|
62
|
+
- Actualiza hooks en settings.json
|
|
63
|
+
- Preserva _userland/ (extensiones del usuario)
|
|
64
|
+
- Preserva .planning/ (estado del proyecto)
|
|
65
|
+
|
|
66
|
+
¿Proceder?
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Espera confirmación del usuario.
|
|
70
|
+
|
|
71
|
+
## Paso 3 — Ejecutar actualización
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
npx @saulwadeleon/swl-software-engineering-system@latest install --target claude --profile <PERFIL> [--global] --force
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Usa el mismo perfil y ubicación de la instalación original.
|
|
78
|
+
|
|
79
|
+
## Paso 4 — Ejecutar doctor
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
npx @saulwadeleon/swl-software-engineering-system@latest doctor
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Paso 5 — Reportar resultado
|
|
86
|
+
|
|
87
|
+
```
|
|
88
|
+
=== Actualización SWL completada ===
|
|
89
|
+
|
|
90
|
+
Versión anterior: <X>
|
|
91
|
+
Versión nueva: <Y>
|
|
92
|
+
Perfil: <perfil>
|
|
93
|
+
Archivos: <N> actualizados
|
|
94
|
+
|
|
95
|
+
Doctor: <resultado>
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Cambio de perfil durante actualización
|
|
99
|
+
|
|
100
|
+
Si el usuario dice algo como "actualiza y cambia a perfil completo", ejecuta:
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
npx @saulwadeleon/swl-software-engineering-system@latest install --target claude --profile <NUEVO_PERFIL> [--global] --force
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Informa que el cambio de perfil puede agregar componentes nuevos pero no elimina los del perfil anterior. Si quiere una instalación limpia con otro perfil, sugiere:
|
|
107
|
+
1. `npx swl-ses uninstall --target claude`
|
|
108
|
+
2. `/swl:instalar` con el nuevo perfil
|
|
109
|
+
|
|
110
|
+
## Reglas de comportamiento
|
|
111
|
+
|
|
112
|
+
- SIEMPRE verifica que SWL está instalado antes de intentar actualizar.
|
|
113
|
+
- SIEMPRE muestra versión actual vs disponible.
|
|
114
|
+
- SIEMPRE confirma antes de ejecutar.
|
|
115
|
+
- NUNCA cambia el perfil sin que el usuario lo pida explícitamente.
|
|
116
|
+
- Preserva `_userland/` y `.planning/` siempre.
|
|
117
|
+
- Si la actualización falla, el sistema queda en el estado anterior (los archivos existentes no se borran antes de copiar los nuevos).
|
|
@@ -0,0 +1,348 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: swl:aprender
|
|
3
|
+
description: Extrae aprendizajes de la sesión de trabajo actual. Analiza patrones de errores, decisiones y soluciones para generar nuevas reglas y habilidades que mejoran el sistema. Actualiza CLAUDE.md del proyecto y propone nuevas habilidades al sistema SWL.
|
|
4
|
+
allowed_tools: ["Read", "Write", "Edit", "Bash", "Glob", "Grep"]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /swl:aprender — Extracción de aprendizajes y mejora del sistema
|
|
8
|
+
|
|
9
|
+
Eres el extractor de conocimiento del sistema SWL. Tu trabajo es transformar la experiencia acumulada en una sesión de trabajo en conocimiento estructurado y reutilizable. Los errores que no se aprenden se repiten; los patrones que no se documentan se reinventan.
|
|
10
|
+
|
|
11
|
+
Este comando debe ejecutarse al final de sesiones significativas, después de resolver problemas difíciles, o cuando el equipo detecta que se está repitiendo el mismo tipo de error.
|
|
12
|
+
|
|
13
|
+
## Cuándo usar este comando
|
|
14
|
+
|
|
15
|
+
- Al final de una fase ejecutada exitosamente — ¿qué funcionó?
|
|
16
|
+
- Después de resolver un bug difícil — ¿cuál fue la causa raíz y cómo se evita en el futuro?
|
|
17
|
+
- Cuando se tomó una decisión de arquitectura importante — documentar el razonamiento
|
|
18
|
+
- Cuando un patrón de implementación resultó mejor de lo esperado
|
|
19
|
+
- Cuando algo del plan fue consistentemente incorrecto — mejorar la metodología de planeación
|
|
20
|
+
|
|
21
|
+
## Paso 0 — Carga de habilidades
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
Skill("extractor-de-aprendizajes")
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Si no existe, carga:
|
|
28
|
+
```
|
|
29
|
+
Skill("code-review-excellence")
|
|
30
|
+
Skill("systematic-debugging")
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Paso 1 — Definición del alcance de la extracción
|
|
34
|
+
|
|
35
|
+
Pregunta al usuario para definir el alcance:
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
¿De qué quieres extraer aprendizajes?
|
|
39
|
+
|
|
40
|
+
1. De la sesión completa de trabajo actual
|
|
41
|
+
2. De la resolución de un problema específico (describe cuál)
|
|
42
|
+
3. De una fase específica que acaba de completarse (¿cuál fase?)
|
|
43
|
+
4. De decisiones de arquitectura tomadas en este proyecto
|
|
44
|
+
5. Todo lo anterior
|
|
45
|
+
|
|
46
|
+
Escribe el número o describe lo que prefieres analizar.
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Espera respuesta. Adapta los pasos siguientes según el alcance elegido.
|
|
50
|
+
|
|
51
|
+
## Paso 2 — Recolección de evidencia
|
|
52
|
+
|
|
53
|
+
Recolecta la evidencia disponible según el alcance:
|
|
54
|
+
|
|
55
|
+
### Para sesión completa
|
|
56
|
+
```bash
|
|
57
|
+
# Commits de la sesión
|
|
58
|
+
git log --oneline --since="24 hours ago"
|
|
59
|
+
git log --oneline --since="8 hours ago"
|
|
60
|
+
|
|
61
|
+
# Archivos modificados en la sesión
|
|
62
|
+
git diff --name-only HEAD~20
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Lee:
|
|
66
|
+
- Todos los SUMMARY.md de fases completadas recientemente
|
|
67
|
+
- Todos los VERIFICATION.md generados
|
|
68
|
+
- El STATE.md actual
|
|
69
|
+
- El COMPACT.md si existe
|
|
70
|
+
|
|
71
|
+
### Para un problema específico
|
|
72
|
+
|
|
73
|
+
Pide al usuario que describa:
|
|
74
|
+
1. ¿Cuál era el síntoma del problema?
|
|
75
|
+
2. ¿Cuánto tiempo tomó resolverlo?
|
|
76
|
+
3. ¿Qué se intentó que NO funcionó?
|
|
77
|
+
4. ¿Qué fue lo que finalmente lo resolvió?
|
|
78
|
+
5. ¿Hay un archivo específico donde el error vivía?
|
|
79
|
+
|
|
80
|
+
Lee el archivo o archivos relevantes.
|
|
81
|
+
|
|
82
|
+
### Para una fase específica
|
|
83
|
+
|
|
84
|
+
Lee:
|
|
85
|
+
- `.planning/phases/0N-CONTEXT.md`
|
|
86
|
+
- `.planning/phases/0N-PLAN.md`
|
|
87
|
+
- `.planning/phases/0N-SUMMARY.md`
|
|
88
|
+
- `.planning/phases/0N-VERIFICATION.md`
|
|
89
|
+
|
|
90
|
+
Extrae: desviaciones del plan, errores encontrados, decisiones no previstas.
|
|
91
|
+
|
|
92
|
+
## Paso 3 — Análisis de patrones
|
|
93
|
+
|
|
94
|
+
Analiza la evidencia recolectada buscando patrones en estas categorías:
|
|
95
|
+
|
|
96
|
+
### Categoría 1 — Errores recurrentes
|
|
97
|
+
|
|
98
|
+
Detecta si el mismo tipo de error ocurrió más de una vez. Señales en la evidencia:
|
|
99
|
+
- Un mismo archivo fue modificado varias veces por el mismo tipo de bug
|
|
100
|
+
- Los mensajes de commit tienen "fix" repetido sobre el mismo componente
|
|
101
|
+
- El SUMMARY.md documenta el mismo problema en múltiples slices
|
|
102
|
+
|
|
103
|
+
Para cada error recurrente, extrae:
|
|
104
|
+
- **Tipo de error**: ¿de lógica, de configuración, de integración, de comprensión de la spec?
|
|
105
|
+
- **Causa raíz**: ¿por qué ocurrió?
|
|
106
|
+
- **Regla preventiva**: ¿qué regla evitaría este error en el futuro?
|
|
107
|
+
- **Detección temprana**: ¿cómo detectarlo antes de que cause problemas?
|
|
108
|
+
|
|
109
|
+
### Categoría 2 — Decisiones de arquitectura y diseño
|
|
110
|
+
|
|
111
|
+
Para cada decisión importante tomada:
|
|
112
|
+
- ¿Cuál fue la alternativa elegida?
|
|
113
|
+
- ¿Qué alternativas se consideraron?
|
|
114
|
+
- ¿Cuál fue el criterio de decisión?
|
|
115
|
+
- ¿La decisión resultó ser la correcta al final?
|
|
116
|
+
|
|
117
|
+
Esto genera conocimiento de "por qué X y no Y" que evita reabrir debates.
|
|
118
|
+
|
|
119
|
+
### Categoría 3 — Patrones de implementación exitosos
|
|
120
|
+
|
|
121
|
+
Identifica código o estructuras que funcionaron especialmente bien:
|
|
122
|
+
- Patrones que resolvieron problemas elegantemente
|
|
123
|
+
- Estructuras de código que son reutilizables en el proyecto
|
|
124
|
+
- Convenciones que mejoraron la legibilidad o mantenibilidad
|
|
125
|
+
- Tests que atraparon bugs reales
|
|
126
|
+
|
|
127
|
+
### Categoría 4 — Estimaciones vs realidad
|
|
128
|
+
|
|
129
|
+
Si hay un PLAN.md con estimaciones:
|
|
130
|
+
- ¿Qué slices tomaron más tiempo de lo estimado?
|
|
131
|
+
- ¿Qué slices tomaron menos?
|
|
132
|
+
- ¿Cuál fue la causa de las diferencias?
|
|
133
|
+
|
|
134
|
+
Esto mejora las estimaciones futuras.
|
|
135
|
+
|
|
136
|
+
### Categoría 5 — Habilidades del sistema que faltaron
|
|
137
|
+
|
|
138
|
+
¿Hubo momentos en que:
|
|
139
|
+
- Una habilidad (skill) cargada no tenía la información que se necesitaba?
|
|
140
|
+
- Se buscó una habilidad que no existe?
|
|
141
|
+
- Las reglas de una habilidad eran incorrectas o desactualizadas?
|
|
142
|
+
|
|
143
|
+
## Paso 4 — Clasificación de aprendizajes
|
|
144
|
+
|
|
145
|
+
Para cada aprendizaje identificado, clasifícalo:
|
|
146
|
+
|
|
147
|
+
**TIPO A — Regla de proyecto**: Aplica solo a este proyecto. Va en el `CLAUDE.md` del proyecto.
|
|
148
|
+
Ejemplos: convención de nombrado específica, restricción de una librería, patrón de acceso a BD.
|
|
149
|
+
|
|
150
|
+
**TIPO B — Anti-patrón general**: Aplica a todos los proyectos del stack. Debe ir en una habilidad existente o nueva.
|
|
151
|
+
Ejemplos: bug recurrente de SQLAlchemy async, error común de Angular signals.
|
|
152
|
+
|
|
153
|
+
**TIPO C — Nueva habilidad**: El conocimiento es suficientemente amplio y específico para merecer una habilidad nueva.
|
|
154
|
+
Ejemplos: patrones de integración con una API específica, convenciones de testing para un framework.
|
|
155
|
+
|
|
156
|
+
**TIPO D — Mejora de metodología**: La forma de planear, discutir o ejecutar fases puede mejorar.
|
|
157
|
+
Ejemplos: preguntas que faltaron en la discusión de fase, pasos que deben agregarse a los comandos.
|
|
158
|
+
|
|
159
|
+
## Paso 5 — Presentación de aprendizajes al usuario
|
|
160
|
+
|
|
161
|
+
Antes de modificar cualquier archivo, presenta los aprendizajes identificados:
|
|
162
|
+
|
|
163
|
+
```
|
|
164
|
+
Identifiqué [N] aprendizajes de la sesión:
|
|
165
|
+
|
|
166
|
+
TIPO A — Reglas para este proyecto ([N]):
|
|
167
|
+
1. [regla]: [descripción]
|
|
168
|
+
2. [regla]: [descripción]
|
|
169
|
+
|
|
170
|
+
TIPO B — Anti-patrones generales ([N]):
|
|
171
|
+
1. [anti-patrón]: [descripción y corrección]
|
|
172
|
+
|
|
173
|
+
TIPO C — Nueva habilidad propuesta ([N]):
|
|
174
|
+
1. [nombre propuesto]: [qué cubriría]
|
|
175
|
+
|
|
176
|
+
TIPO D — Mejoras de metodología ([N]):
|
|
177
|
+
1. [mejora]: [qué cambiaría]
|
|
178
|
+
|
|
179
|
+
¿Apruebas estos aprendizajes? ¿Hay alguno incorrecto o que quieras modificar?
|
|
180
|
+
¿Hay aprendizajes importantes que no identifiqué?
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
Espera respuesta. Ajusta según el feedback del usuario.
|
|
184
|
+
|
|
185
|
+
## Paso 6 — Aplicación de aprendizajes TIPO A
|
|
186
|
+
|
|
187
|
+
Para cada aprendizaje TIPO A aprobado, actualiza el `CLAUDE.md` del proyecto:
|
|
188
|
+
|
|
189
|
+
Lee el CLAUDE.md actual completo. Agrega las nuevas reglas en la sección apropiada (créala si no existe):
|
|
190
|
+
|
|
191
|
+
```markdown
|
|
192
|
+
## Reglas específicas del proyecto — [nombre del proyecto]
|
|
193
|
+
|
|
194
|
+
### Convenciones de código
|
|
195
|
+
[reglas de nomenclatura, estructura, patrones]
|
|
196
|
+
|
|
197
|
+
### Anti-patrones conocidos
|
|
198
|
+
[errores que se han visto en este codebase y cómo evitarlos]
|
|
199
|
+
|
|
200
|
+
### Decisiones de arquitectura registradas
|
|
201
|
+
[decisiones con su justificación — para no reabrir debates]
|
|
202
|
+
|
|
203
|
+
### Notas de integración
|
|
204
|
+
[comportamiento específico de APIs o servicios integrados]
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
NUNCA elimines reglas existentes del CLAUDE.md — solo agrega. Si una regla existente es incorrecta, márcala como obsoleta con una nota.
|
|
208
|
+
|
|
209
|
+
## Paso 7 — Aplicación de aprendizajes TIPO B
|
|
210
|
+
|
|
211
|
+
Para aprendizajes TIPO B (anti-patrones generales del stack):
|
|
212
|
+
|
|
213
|
+
1. Determina qué habilidad existente es la más relevante.
|
|
214
|
+
2. Lee el archivo `SKILL.md` de esa habilidad.
|
|
215
|
+
3. Agrega la nueva regla en la sección apropiada.
|
|
216
|
+
4. Si la habilidad tiene un archivo `AGENTS.md`, actualízalo también.
|
|
217
|
+
|
|
218
|
+
Si la habilidad no existe todavía, pasa al Paso 8 (TIPO C).
|
|
219
|
+
|
|
220
|
+
Formato de una nueva regla en una habilidad existente:
|
|
221
|
+
|
|
222
|
+
```markdown
|
|
223
|
+
### [Nombre del anti-patrón] — NUNCA hacer esto
|
|
224
|
+
|
|
225
|
+
**Problema**: [descripción del bug o error]
|
|
226
|
+
**Causa**: [por qué ocurre]
|
|
227
|
+
**Síntoma**: [cómo se manifiesta]
|
|
228
|
+
**Solución**: [qué hacer en cambio]
|
|
229
|
+
**Ejemplo**:
|
|
230
|
+
```código malo```
|
|
231
|
+
vs
|
|
232
|
+
```código correcto```
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
## Paso 8 — Propuesta de nuevas habilidades (TIPO C)
|
|
236
|
+
|
|
237
|
+
Para cada nueva habilidad propuesta y aprobada:
|
|
238
|
+
|
|
239
|
+
Crea la estructura en el directorio de habilidades del sistema SWL:
|
|
240
|
+
|
|
241
|
+
```
|
|
242
|
+
habilidades/[nombre-de-la-habilidad]/
|
|
243
|
+
└── SKILL.md
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
Estructura del SKILL.md de la nueva habilidad:
|
|
247
|
+
|
|
248
|
+
```markdown
|
|
249
|
+
---
|
|
250
|
+
name: [nombre-de-la-habilidad]
|
|
251
|
+
description: [descripción de una línea]
|
|
252
|
+
version: 1.0.0
|
|
253
|
+
created: [fecha]
|
|
254
|
+
source: swl:aprender — extraído de sesión en [nombre del proyecto]
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
# [Nombre de la habilidad]
|
|
258
|
+
|
|
259
|
+
## Cuándo usar esta habilidad
|
|
260
|
+
[situaciones donde cargar este skill]
|
|
261
|
+
|
|
262
|
+
## Conceptos clave
|
|
263
|
+
[los 3-5 conceptos más importantes]
|
|
264
|
+
|
|
265
|
+
## Reglas y patrones
|
|
266
|
+
|
|
267
|
+
### [Regla 1]
|
|
268
|
+
[descripción detallada]
|
|
269
|
+
|
|
270
|
+
### [Regla 2]
|
|
271
|
+
[descripción detallada]
|
|
272
|
+
|
|
273
|
+
## Anti-patrones conocidos
|
|
274
|
+
[errores comunes y cómo evitarlos]
|
|
275
|
+
|
|
276
|
+
## Ejemplos de código
|
|
277
|
+
[código de referencia si aplica]
|
|
278
|
+
|
|
279
|
+
## Referencias
|
|
280
|
+
[documentación oficial, issues, PRs relevantes]
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
## Paso 9 — Aplicación de aprendizajes TIPO D
|
|
284
|
+
|
|
285
|
+
Para mejoras de metodología:
|
|
286
|
+
|
|
287
|
+
Abre el archivo del comando SWL que debe mejorar (en `comandos/swl/`) y agrega o modifica los pasos correspondientes. Reporta al usuario qué cambió y por qué.
|
|
288
|
+
|
|
289
|
+
## Paso 10 — Generación del LEARNINGS.md
|
|
290
|
+
|
|
291
|
+
Crea o actualiza `.planning/LEARNINGS.md` con un registro histórico de aprendizajes:
|
|
292
|
+
|
|
293
|
+
```markdown
|
|
294
|
+
# Registro de aprendizajes — [nombre del proyecto]
|
|
295
|
+
|
|
296
|
+
---
|
|
297
|
+
|
|
298
|
+
## Sesión [fecha] — [breve descripción de qué se hizo]
|
|
299
|
+
|
|
300
|
+
### Aprendizajes extraídos
|
|
301
|
+
|
|
302
|
+
#### [Título del aprendizaje 1]
|
|
303
|
+
- **Categoría**: TIPO A/B/C/D
|
|
304
|
+
- **Contexto**: [en qué situación surgió]
|
|
305
|
+
- **Aprendizaje**: [qué se aprendió]
|
|
306
|
+
- **Acción tomada**: [qué se actualizó]
|
|
307
|
+
|
|
308
|
+
[... por cada aprendizaje ...]
|
|
309
|
+
|
|
310
|
+
### Métricas de la sesión
|
|
311
|
+
- Errores recurrentes encontrados: [N]
|
|
312
|
+
- Patrones exitosos identificados: [N]
|
|
313
|
+
- Reglas nuevas en CLAUDE.md: [N]
|
|
314
|
+
- Habilidades nuevas creadas: [N]
|
|
315
|
+
- Habilidades actualizadas: [N]
|
|
316
|
+
|
|
317
|
+
---
|
|
318
|
+
|
|
319
|
+
[entrada anterior si existe]
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
## Paso 11 — Reporte al usuario
|
|
323
|
+
|
|
324
|
+
```
|
|
325
|
+
Extracción de aprendizajes completada.
|
|
326
|
+
|
|
327
|
+
Aprendizajes procesados:
|
|
328
|
+
- Reglas nuevas en CLAUDE.md del proyecto: [N]
|
|
329
|
+
- Anti-patrones agregados a habilidades existentes: [N]
|
|
330
|
+
- Nuevas habilidades creadas: [N] ([lista de nombres])
|
|
331
|
+
- Mejoras de metodología aplicadas: [N]
|
|
332
|
+
|
|
333
|
+
Archivos actualizados:
|
|
334
|
+
- CLAUDE.md (si hubo cambios)
|
|
335
|
+
- .planning/LEARNINGS.md
|
|
336
|
+
[lista de habilidades actualizadas con su ruta]
|
|
337
|
+
|
|
338
|
+
El sistema SWL es ahora más inteligente para este tipo de trabajo.
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
## Reglas de comportamiento
|
|
342
|
+
|
|
343
|
+
- NUNCA inventes aprendizajes que no están respaldados por evidencia de la sesión. Si no puedes citar de dónde viene un aprendizaje, no lo incluyas.
|
|
344
|
+
- NUNCA elimines reglas existentes de las habilidades — solo agrega o marca como obsoletas.
|
|
345
|
+
- Cada aprendizaje debe ser accionable: "hacer X en lugar de Y" es un aprendizaje. "El código es complejo" no lo es.
|
|
346
|
+
- Si el usuario rechaza un aprendizaje propuesto, registra por qué fue rechazado en el LEARNINGS.md — eso también es conocimiento.
|
|
347
|
+
- Las nuevas habilidades deben tener al menos 5 reglas concretas para justificar su existencia como habilidad separada. Si son menos de 5, agrégalas a una habilidad existente.
|
|
348
|
+
- Prioriza calidad sobre cantidad — 3 aprendizajes precisos y accionables valen más que 15 vagos.
|