# 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 `` (4 dígitos) y `` kebab-case. - Si es quick: pedir `` kebab-case descriptivo. 2. **Llamar la función del registry**: ```bash # Path portable (cualquier PC): FN_REGISTRY_ROOT si está, si no ~/fn_registry. # Se invoca con `bash` (no `source`): el script llama a tbd_branch_create con # los argumentos al ejecutarse directamente, y así funciona aunque la shell de # la sesión sea zsh (evita el fallo de BASH_SOURCE). FN_TBD="${FN_REGISTRY_ROOT:-$HOME/fn_registry}/bash/functions/infra/tbd_branch_create.sh" bash "$FN_TBD" issue 0021 hot-reload # o bash "$FN_TBD" 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 `` (regex 4 dígitos) y `` (kebab-case ASCII). - `git checkout -b `. - Imprime confirmación. ## Convenciones - **Formato issue**: `issue/-` (4 dígitos siempre). - **Formato quick**: `quick/` (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.