# 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.
