diff --git a/.claude/commands/git-branch.md b/.claude/commands/git-branch.md index c45a733..b2c6074 100644 --- a/.claude/commands/git-branch.md +++ b/.claude/commands/git-branch.md @@ -1,14 +1,22 @@ # Command: git branch (TBD) -Crea una rama de trabajo para un issue. **Nunca trabajar directamente en master.** +Crea una rama de trabajo. **Nunca trabajar directamente en master.** + +Soporta dos tipos de rama: +- `issue/-` — para implementar un issue existente de `dev/issues/` +- `quick/` — para cambios pequeños sin issue asociado (fixes, config, docs, etc.) ## Inputs -Se necesita el numero del issue y el slug. Si no se proporcionan, preguntar. +Preguntar al usuario si el cambio esta asociado a un issue o no. +### Si es un issue: - `issue_number`: numero de 4 digitos (e.g. `0020`) - `slug`: nombre corto separado por guiones (e.g. `hot-reload`) +### Si es un cambio rapido (sin issue): +- `slug`: nombre corto descriptivo separado por guiones (e.g. `fix-typo-readme`) + ## Flujo obligatorio 1. Verificar que estamos en master y limpio: @@ -34,22 +42,29 @@ git pull --rebase 3. Crear la rama y cambiar a ella: +**Para issues:** ```bash git checkout -b issue/- ``` - Ejemplo: `git checkout -b issue/0013-hot-reload` +**Para cambios rapidos:** +```bash +git checkout -b quick/ +``` +Ejemplo: `git checkout -b quick/fix-typo-readme` + 4. Confirmar al usuario: ``` -Rama `issue/-` creada desde master actualizado. +Rama `` creada desde master actualizado. Puedes empezar a trabajar. Cuando termines, usa `/git-push` para integrar a master. ``` ## Convenciones -- **Formato de rama**: `issue/-` (siempre 4 digitos) +- **Formato de rama issue**: `issue/-` (siempre 4 digitos) +- **Formato de rama quick**: `quick/` (sin numero) - **Ramas cortas**: idealmente horas, no dias - **Una rama por issue**: no mezclar issues en la misma rama - **Nunca pushear la rama al remoto**: el push se hace desde master despues del merge diff --git a/.claude/commands/git-push.md b/.claude/commands/git-push.md index f022851..89ba52c 100644 --- a/.claude/commands/git-push.md +++ b/.claude/commands/git-push.md @@ -1,6 +1,6 @@ # Command: git push -Integra cambios a master y publica. Soporta dos flujos segun la rama actual. +Integra cambios a master y publica. Soporta ramas `issue/*` y `quick/*`. ## Flujo obligatorio @@ -11,7 +11,7 @@ git branch --show-current git status --short ``` -#### Si estamos en una rama `issue/*` +#### Si estamos en una rama `issue/*` o `quick/*` Continuar directamente al paso 2. @@ -19,16 +19,21 @@ Continuar directamente al paso 2. Crear una rama automaticamente antes de continuar: -1. Preguntar al usuario un nombre descriptivo si no es obvio por los cambios. -2. Determinar el siguiente numero de issue disponible (buscar en `dev/issues/` y `dev/issues/completed/`). -3. Crear la rama: +1. Preguntar al usuario: **¿Este cambio esta asociado a un issue existente?** +2. **Si es un issue**: pedir el numero y slug, crear rama `issue/-`. +3. **Si NO es un issue**: pedir un slug descriptivo, crear rama `quick/`. ```bash +# Para issues: git checkout -b issue/- +# Para cambios rapidos: +git checkout -b quick/ ``` 4. Continuar al paso 2 con los cambios ya en la rama nueva. +**IMPORTANTE**: No inventar numeros de issue. Solo usar `issue/` si el issue existe en `dev/issues/`. + #### Si estamos en `master` sin cambios **STOP**: no hay nada que publicar. @@ -86,13 +91,17 @@ Si el issue es autocontenido (se completa en esta rama), no necesita flag. Salta ```bash git checkout master git pull --rebase -git merge --no-ff issue/- -m "merge: issue/-" +git merge --no-ff -m "merge: " ``` El merge commit debe tener formato: -- Titulo: `merge: issue/-` +- Titulo: `merge: ` - Cuerpo (opcional): resumen de lo que entra +Ejemplos: +- `merge: issue/0021-threads-default-config — habilitar threads en agentes` +- `merge: quick/fix-typo-readme — corregir typo en README` + Si hay conflictos durante el merge: 1. Resolver los conflictos 2. `git add` los archivos resueltos @@ -107,13 +116,13 @@ git push ### 7. Limpiar rama local ```bash -git branch -d issue/- +git branch -d ``` ### 8. Confirmar al usuario ``` -Rama `issue/-` integrada a master y publicada. +Rama `` integrada a master y publicada. Rama local eliminada. ``` @@ -138,7 +147,7 @@ Rama local eliminada. ## Checklist rapido -- [ ] Todos los cambios estan commiteados en una rama `issue/*`. +- [ ] Todos los cambios estan commiteados en una rama `issue/*` o `quick/*`. - [ ] Se separaron cambios distintos en commits diferentes. - [ ] Cada commit tiene descripcion larga en espanol. - [ ] Tests ejecutados y pasando (o no aplican).