Cuándo usar esta skill
- Al finalizar una tarea y preparar el commit
- Cuando el usuario pida "commitear" o "preparar commit"
- Después de que todas las validaciones pasen
Contexto necesario antes de empezar
- Verificar que
ruff check .pasa - Verificar que
ruff format --check .pasa - Listar archivos modificados con
git status - Entender qué cambio se hizo y por qué
Pasos
Ejecutar validaciones
ruff check . ruff format --check . python -c "from app import app"Revisar cambios
git status git diff --statDeterminar tipo de commit
feat: Nueva funcionalidadfix: Corrección de bugdocs: Solo documentaciónstyle: Formato sin cambio de lógicarefactor: Refactorizacióntest: Testschore: Mantenimiento
Determinar scope (basado en archivos tocados)
api: blueprints/main.pyenergy,pihole,mealie,settleup: clientes específicosui: templates/, static/css/js: static/js/config: config.py, .envdeps: requirements.txt
Generar mensaje
<tipo>(<scope>): <descripción imperativa max 72 chars> [cuerpo opcional explicando el qué y por qué]
NUNCA:
- Punto final en la descripción
- Commits sin tipo
- Mezclar múltiples cambios no relacionados
PREFERENTEMENTE:
- Un commit por cambio lógico
- Cuerpo si el cambio no es obvio
Ejemplos de commits del proyecto
feat(api): añadir endpoint /api/network para dispositivos WiFi
fix(energy): manejar estado 'unavailable' de sensores HA
refactor(pihole): extraer lógica de auth a método separado
docs(readme): actualizar instrucciones de instalación NAS
chore(deps): actualizar Flask a 3.0.3
test(api): añadir tests para endpoint /api/status
Checklist de validación
-
ruff check .pasa sin errores -
ruff format --check .pasa - La app arranca correctamente
- El mensaje sigue formato Conventional Commits
- La descripción es clara y en imperativo