Geniova Developer Kit

Flujo de Pull Requests

Branch protection, code review automatizado con BecarIA, automerge y override de emergencia. Todo el ciclo de vida de una PR documentado.

Nunca push directo a main

Todo cambio entra al repositorio mediante Pull Request. Sin excepciones. La rama main esta protegida en todos los repositorios de la organizacion.

Prohibido

No se permite git push origin main ni git push --force a main. Branch protection rechazara el push. Cualquier cambio, por pequeno que sea, debe pasar por una PR revisada y aprobada.

Crear una PR

Desde la creacion de la rama hasta la apertura de la Pull Request. Commits pequenos, convenciones claras.

1

Crear rama desde main

Usa el formato estandar con el ID de la card del Planning Game y una descripcion corta.

git checkout -b feat/PRJ-TSK-XXXX-descripcion-corta

Para bugs: fix/PRJ-BUG-XXXX-descripcion-corta

2

Commits con Conventional Commits

Cada commit debe seguir el formato estandar. El hook de commit valida el formato automaticamente.

feat: add employee vacation calendar

Prefijos validos: feat: fix: refactor: chore: test: docs:

3

Mantener las PRs pequenas

Maximo ~300 lineas cambiadas por PR, idealmente menos de 200. PRs atomicas: un solo proposito por PR. Separar infraestructura y refactors de cambios funcionales.

4

Push y crear la PR

Sube la rama y crea la Pull Request con el CLI de GitHub.

gh pr create --title "feat: descripcion" --body "..."

Review por BecarIA

BecarIA es la GitHub App de Geniova que publica reviews automaticas en Pull Requests. Analiza el diff contra las review-rules definidas.

Flujo con Karajan

El flujo recomendado. El desarrollador ejecuta la review en local y BecarIA la publica en GitHub.

  • Desarrollador ejecuta kj review en local (con su propia API key)
  • Karajan analiza el diff de la PR contra las review-rules
  • Si becaria.enabled: true en kj.config.yml, envia repository_dispatch a GitHub
  • El workflow becaria-gateway.yml genera token de la App y publica la review
  • La review aparece como APPROVE o REQUEST_CHANGES de becaria-reviewer[bot]

Flujo sin Karajan

Alternativa cuando Karajan no esta disponible o configurado.

  • Review manual por un companero del equipo
  • Al menos 1 aprobacion requerida para poder mergear

Ambos flujos son validos. Karajan automatiza el proceso pero no es obligatorio para todas las PRs.

Review Rules

Las reglas que BecarIA evalua en cada Pull Request. Si alguna falla, la review sera REQUEST_CHANGES.

CC

Conventional Commits

Todos los commits siguen el formato feat:, fix:, refactor:, etc.

SK

Sin secrets

No API keys, credenciales, tokens ni secretos en el codigo.

AI

Sin refs a IA

No referencias a Claude, Copilot u otras IA en commits o codigo.

TS

Tests

Funcionalidad nueva debe incluir tests. Coverage minimo segun tipo.

XS

Seguridad

Sin XSS, SQL injection, command injection ni path traversal.

CL

Sin console.log

No console.log en codigo de produccion. Usar logger apropiado.

CS

Const por defecto

Usar const siempre. let solo cuando la reasignacion sea necesaria.

NM

Naming descriptivo

Variables y funciones en ingles con nombres claros y descriptivos.

UX

UI/UX

No alert/confirm/prompt nativos. Loading states. Mobile-first.

Labels especiales

Dos labels que activan flujos automaticos en las Pull Requests. Usar con conocimiento de causa.

automerge

Merge automatico

Se anade a PRs que quieres mergear automaticamente tras la aprobacion. Ideal para PRs de bajo riesgo que ya han sido revisadas.

Requisitos: aprobacion de BecarIA + todos los checks CI en verde. El workflow verifica ambas condiciones antes de ejecutar el merge por squash.

houston

Override de emergencia

Para situaciones criticas que requieren merge inmediato. Solo puede usarlo el usuario autorizado configurado en HOUSTON_AUTHORIZED_USER.

Uso: comentar /houston <razon> en la PR. Auto-aprueba y mergea inmediatamente. Deja registro completo: quien, cuando, por que.

Reservado para GeniovaIT. Usar con extrema precaucion.

Branch Protection

Configuracion aplicada a todos los repositorios de la organizacion Geniova-Technologies.

Diagrama del flujo

El recorrido completo de una Pull Request desde el push hasta el merge, incluyendo los flujos alternativos.

Developer
Push rama
Crear PR
kj review
dispatch
BecarIA gateway
Review en PR
automerge label
Aprobacion + CI verde
Merge
o
houston label
/houston <razon>
Emergency merge

Workflows

Los cuatro workflows de GitHub Actions que automatizan el flujo de PRs en los repositorios de Geniova.

becaria-gateway.yml

BecarIA Gateway

Recibe el evento repository_dispatch de Karajan, genera un token de instalacion de la GitHub App y publica la review como becaria-reviewer[bot].

automerge.yml

Automerge

Monitoriza PRs con el label automerge. Cuando detecta aprobacion de BecarIA y todos los checks CI en verde, ejecuta merge por squash automaticamente.

houston-override.yml

Houston Override

Override de emergencia. Escucha el comentario /houston en PRs con el label houston. Verifica el usuario autorizado, auto-aprueba y mergea con registro de auditoria.

no-ai-refs.yml

No AI References

Bloquea atribucion a IA en PRs, issues y comentarios. Detecta Co-Authored-By de Claude, Copilot, y otras referencias a herramientas de IA.