--- name: git-push description: Integra cambios a master y publica. Soporta ramas issue/* y quick/*. disable-model-invocation: true user-invocable: true allowed-tools: Bash, Read, Write, Edit --- # git-push Integra cambios a master y publica al remoto. Detecta automáticamente la rama actual. ## Sintaxis ```bash /git-push ``` ## Flujo ### 1. Verificar rama actual y estado ```bash git branch --show-current git status --short ``` **Caso A: En rama issue/* o quick/*** - Continuar al paso 2 **Caso B: En master con cambios** - Crear rama quick automáticamente: - Analizar archivos modificados para generar slug - `git checkout -b quick/` **Caso C: En master sin cambios** - STOP: "No hay nada que publicar" ### 2. Crear commits por bloque lógico ```bash git status --short git diff --stat ``` Agrupar cambios por tipo y crear commits atómicos: ```bash git add git commit -m ": " -m "" ``` **Tipos:** feat, fix, refactor, docs, chore, test **Reglas de commits:** - No WIP - No mezclar tipos - Descripción larga obligatoria en español ### 3. Ejecutar tests ```bash go test -tags goolm ./... ``` - Tests pasan: continuar - Tests fallan: STOP y corregir - No hay tests: informar y continuar ### 4. Merge a master ```bash git checkout master git pull --rebase git merge --no-ff -m "merge: " ``` ### 5. Push a remoto ```bash git push ``` ### 6. Limpiar rama local ```bash git branch -d ``` ### 7. Verificación final ```bash git log --oneline -3 ``` ``` Rama `` integrada a master y publicada Commits creados: - - merge: Rama local eliminada. ``` ## Convenciones - Commits atómicos - Tests obligatorios antes de merge - Merge --no-ff siempre - Push inmediato ## Reglas - NO commits WIP - NO mezclar tipos en un commit - NO saltear tests - NO push --force a master - SIEMPRE usar --no-ff