portal-git-workflow
Manage branches (feature/E{epic}-US-XXX-{slug}), Conventional Commits with epic scope, PRs to develop, and User Story closure for the Portal Centralizado de Datos Financieros. Use when committing, cre
SKILL.md.claude/skills/portal-git-workflow/SKILL.md
GitHubPortal Git Workflow Skill
Rules — NON-NEGOTIABLE
- Rama por User Story:
feature/E{epic}-US-XXX-{slug}— épicas válidas:UX,E0,E1,E2,E3,E4,E5. - Conventional Commits con scope de épica:
feat(E2): ...,fix(E3): ...,docs(UX): .... - Commits SIN trailer
Co-Authored-Byde asistentes IA — la autoría queda en elAuthor:real. - Sin emojis en mensajes de commit ni descripciones de PR.
- PR siempre a
developconmake checklimpio ANTES de abrirlo. Merge amain= deploy automático a Cloud Run (skillportal-cicd) — solo cuando el equipo decide desplegar. - Cerrar una US exige criterios de aceptación verificados y referencia a las US absorbidas que cubre.
Branches
main— protegido; merge aquí dispara build +dbmate up+ deploy a Cloud Run.develop— integración continua; target de todos los PRs de features.feature/E{epic}-US-XXX-{slug}— una rama por US del plan.hotfix/{slug}— solo fixes urgentes sobremain; cherry-pick de vuelta adevelop.
Conventional Commits con scope de épica
feat(E0): add docker compose with backend, frontend and postgres services
feat(E2): implement semantic query compiler with catalog validation
fix(E3): cancel LLM call on SSE client disconnect
feat(E2): add user CRUD endpoints with admin scope
docs(UX): add journey maps evidence for A2 deliverable
test(E5): add TTFT measurement script with percentile report
chore(E0): pin pnpm version via packageManager field
ci(E0): add dbmate migration step before cloud run deploy
| Tipo | Cuándo |
|---|---|
| feat | nueva funcionalidad de una US |
| fix | corrección de bug |
| docs | documentación y entregables (docs(UX): para A1–A5) |
| test | añadir/corregir pruebas |
| refactor | sin cambio de comportamiento |
| perf | mejora de rendimiento (ECharts, Polars) |
| chore | mantenimiento, dependencias |
| ci | pipelines y workflows |
Flujo por User Story
# Inicio — partir SIEMPRE de develop actualizado
git checkout develop && git pull
# XXX = numero de la US segun context/planeacion_proyecto.md
git checkout -b feature/E2-US-XXX-jwt-rbac
# Trabajo iterativo: commits atomicos con scope de epica
git add backend/app/core/auth.py
git commit -m "feat(E2): add pwdlib password hashing with dummy-hash timing guard"
git add db/migrations/20260728000000_create_app_user.sql db/schema.sql
git commit -m "feat(E2): add app_user migration and seed with argon2 passwords"
# Pre-PR: gate obligatorio
make check && make test
# Push y PR a develop (NUNCA directo a main)
git push -u origin feature/E2-US-XXX-jwt-rbac
gh pr create --base develop --title "feat(E2): US-XXX JWT auth and RBAC" \
--body "## US-XXX — Autenticacion JWT y RBAC
Criterios de aceptacion verificados:
- [x] OAuth2 password flow con PyJWT HS256 + pwdlib argon2id
- [x] Scopes por rol; 401/403 verificados por matriz de pruebas
- [x] Seed de 7 usuarios via migracion dbmate
Si absorbe US del backlog consolidado (plan §18), citarlas aqui."
# Tras aprobacion y CI verde
gh pr merge --squash
git checkout develop && git pull
git branch -d feature/E2-US-XXX-jwt-rbac
Cierre de US
- PR mergeado a
developcon CI verde. - Criterios de aceptación de la US verificados uno a uno contra
context/planeacion_proyecto.md. - Referenciar US absorbidas en el PR/cierre para trazabilidad con el backlog original (backlog consolidado, plan §18).
- Si la US ejecutó una degradación acordada (§10.2: CRUD de usuarios reducido, ECharts a 500 K), documentarla en el cierre.
- Marcar la US como completada en el tracking del equipo.
Merge a main = deploy
# Solo cuando el equipo decide desplegar (fin de sprint o demo)
gh pr create --base main --head develop --title "release: sprint S2 increment"
# El merge dispara deploy.yml: build -> Artifact Registry -> dbmate up -> Cloud Run
# Post-merge: verificar smoke tests verdes en Actions (skill portal-testing)
QA Checklist
- Rama sigue
feature/E{epic}-US-XXX-{slug}con épica válida (UX, E0–E5) - Commits con Conventional Commits + scope de épica
- Sin trailer
Co-Authored-Byde IA ni emojis -
make checklimpio antes de abrir el PR - PR target
develop(main solo para releases/deploy) - PR referencia la US y sus US absorbidas
- Criterios de aceptación verificados al cierre
- CI verde antes de merge; smoke tests verdes tras deploy a main