25eefbd5e3
- settings.json: enable caveman marketplace+plugin, effortLevel=high - commands/git-branch + git-push: refactor docs - skills/parallel-fix-issues: SKILL.md + scripts updates
60 lines
2.0 KiB
Markdown
60 lines
2.0 KiB
Markdown
# Command: git branch (TBD)
|
|
|
|
Wrapper sobre `tbd_branch_create_bash_infra`. La función del registry maneja toda la lógica determinista (verificar limpio, autodetectar master/main, pull --rebase, validar slug + número de issue, crear rama). Este comando solo decide los inputs.
|
|
|
|
## Uso
|
|
|
|
```
|
|
/git-branch # preguntar al usuario
|
|
/git-branch issue 0021 hot-reload
|
|
/git-branch quick fix-typo-readme
|
|
```
|
|
|
|
## Pasos del asistente
|
|
|
|
1. **Decidir modo e inputs**:
|
|
- Preguntar si el cambio está asociado a un issue o no.
|
|
- Si es issue: pedir `<NNNN>` (4 dígitos) y `<slug>` kebab-case.
|
|
- Si es quick: pedir `<slug>` kebab-case descriptivo.
|
|
|
|
2. **Llamar la función del registry**:
|
|
```bash
|
|
source /home/lucas/fn_registry/bash/functions/infra/tbd_branch_create.sh
|
|
tbd_branch_create issue 0021 hot-reload
|
|
# o
|
|
tbd_branch_create quick fix-typo-readme
|
|
```
|
|
|
|
La función:
|
|
- Verifica que el working tree esté limpio (aborta si dirty).
|
|
- Cambia a master/main (autodetecta).
|
|
- `git pull --rebase` desde la rama base.
|
|
- Valida `<NNNN>` (regex 4 dígitos) y `<slug>` (kebab-case ASCII).
|
|
- `git checkout -b <rama>`.
|
|
- Imprime confirmación.
|
|
|
|
## Convenciones
|
|
|
|
- **Formato issue**: `issue/<NNNN>-<slug>` (4 dígitos siempre).
|
|
- **Formato quick**: `quick/<slug>` (sin número).
|
|
- **Ramas cortas**: idealmente horas, no días.
|
|
- **Una rama por issue**: no mezclar issues en la misma rama.
|
|
- **Nunca pushear la rama al remoto**: el push se hace desde master después del merge (ver `/git-push`).
|
|
- **No commits WIP**: cada commit atómico con mensaje real.
|
|
|
|
## Features multi-issue
|
|
|
|
Para features que no caben en una sola rama, sub-issues con sufijo letra:
|
|
|
|
```
|
|
issue/0015a-telegram-types
|
|
issue/0015b-telegram-client
|
|
issue/0015c-telegram-listener
|
|
```
|
|
|
|
Cada sub-rama sigue el mismo flujo. El código parcial se protege con **feature flags** en `dev/feature_flags.json`.
|
|
|
|
## Para tocar la lógica
|
|
|
|
Editar `tbd_branch_create_bash_infra` en `bash/functions/infra/tbd_branch_create.sh`, no este wrapper.
|