Objetivo del tema
Usar Claude Code dentro de un flujo colaborativo y auditable: preparar ramas seguras, revisar cambios antes de confirmarlos, crear commits y pull requests útiles, responder revisiones, resolver conflictos con criterio, aislar sesiones paralelas mediante worktrees y automatizar tareas con GitHub sin entregar permisos innecesarios.
Registra estados, ramas y diferencias. Es la primera red de seguridad antes de delegar cambios.
Convierte una rama en conversación: issue, pull request, revisión, checks y decisión de merge.
Explora, modifica, prueba y prepara artefactos; tú conservas la decisión sobre commit, push y merge.
GitHub Actions y Code Review ejecutan Claude en eventos del repositorio con identidad y permisos propios.
Claude puede ejecutar comandos Git porque dispone de la misma CLI que tú, no porque Git haya dejado de tener reglas. Un cambio generado por un agente debe recorrer las mismas políticas de rama, revisión y CI que cualquier contribución humana.
Antes de pedir cambios, verifica el entorno con operaciones de sólo lectura:
git status --short --branch
git remote -v
git log --oneline -5
git config user.name
git config user.email
gh --version
gh auth status
GitHub CLI (gh) permite crear PRs, leer checks e interactuar con issues desde Claude Code. Autentícala con gh auth login y concede sólo los alcances necesarios. No pegues tokens en el prompt ni los incluyas en comandos que puedan quedar en el historial.
Detente si el árbol ya tiene cambios desconocidos. Pueden pertenecer a otra persona o sesión. No autorices a Claude a descartarlos, reorganizarlos ni incluirlos en un commit hasta comprender su origen.
Actualiza referencias remotas sin modificar tu trabajo y crea una rama desde la base acordada:
git fetch origin
git switch main
git pull --ff-only
git switch -c feat/validacion-registro
--ff-only evita crear un merge inesperado durante el pull. Si el equipo usa rebase, trunk-based development u otra base, documenta esa política en CLAUDE.md. Una rama debería representar una unidad revisable, no toda una conversación.
Trabaja únicamente en la rama actual. Implementa la validación definida en el issue #142 sin cambiar dependencias ni reformatear archivos no relacionados. Primero inspecciona issue, estado Git y tests existentes; presenta un plan. Al terminar ejecuta la suite relevante, muestra git diff --stat y resume riesgos. No hagas commit ni push.
Separar implementación de commit permite revisar antes de registrar. Para tareas de alto riesgo, separa también diagnóstico, edición y ejecución de comandos.
| Comando | Responde | Qué buscar |
|---|---|---|
git status --short | ¿Qué archivos cambiaron? | Archivos accidentales, secretos, caches y generados. |
git diff --stat | ¿Cuál es el tamaño? | Un cambio desproporcionado respecto del pedido. |
git diff | ¿Qué líneas cambiaron? | Contrato, errores, compatibilidad y código eliminado. |
git diff --check | ¿Hay errores de whitespace? | Marcadores, espacios finales y formato problemático. |
| Tests y lint | ¿El comportamiento está verificado? | Salida completa, casos nuevos y warnings. |
No dependas únicamente del resumen de Claude. Lee el diff real y abre los archivos importantes. Si el cambio mezcla una corrección con una refactorización, pide dividirlo antes del commit.
Cuando el diff sea correcto, puedes pedir que proponga un mensaje sin confirmar todavía:
Analiza únicamente git diff y los resultados de pruebas. Propón un mensaje de commit con asunto imperativo de máximo 72 caracteres y un cuerpo que explique por qué. No ejecutes git add ni git commit.
Luego selecciona archivos explícitamente y revisa el área preparada:
git add src/registro.js tests/registro.test.js
git diff --cached
git commit -m "feat: valida correo en el registro"
git show --stat --oneline HEAD
Evita git add -A cuando el árbol contiene cambios ajenos. Un commit atómico puede revertirse y revisarse por sí solo. No incluyas “generado por IA” salvo que la política del equipo lo exija; sí conserva trazabilidad mediante issue, PR, pruebas y autores reales.
Publica la rama y crea el PR con GitHub CLI:
git push -u origin feat/validacion-registro
gh pr create --draft \
--title "Valida correo durante el registro" \
--body-file .github/PULL_REQUEST_TEMPLATE.md
Si no existe plantilla, pide a Claude un cuerpo basado en el diff y luego revísalo. Debe explicar objetivo, decisiones, pruebas, riesgo, migración y capturas cuando corresponda. Nunca afirmes “todos los tests pasan” si sólo se ejecutó una suite parcial.
## Qué cambia
- Valida formato de correo antes de persistir el usuario.
- Conserva el código de error público acordado.
## Cómo se verificó
- `npm test -- registro`: 12 tests aprobados.
- Suite completa no ejecutada: requiere servicio externo.
## Riesgo y reversión
- Riesgo bajo; no modifica esquema ni dependencias.
- Revertir este commit restaura el comportamiento anterior.
Para una revisión local, trae la rama o inicia un worktree desde el PR. Pide primero hallazgos, no ediciones:
gh pr view 142
gh pr checks 142
gh pr diff 142
# Worktree aislado creado por Claude Code
claude --worktree "#142"
Revisa el PR #142. No modifiques archivos. Prioriza defectos funcionales, seguridad, regresiones y tests ausentes; ignora preferencias cosméticas. Para cada hallazgo indica severidad, archivo y línea, escenario reproducible y evidencia. Si no puedes demostrarlo, márcalo como hipótesis.
Verifica cada observación contra el código y las pruebas. Un comentario automático no reemplaza al propietario del dominio. La función administrada Code Review publica comentarios inline mediante análisis multiagente, pero a agosto de 2026 continúa en research preview para Team y Enterprise y no aprueba ni bloquea PRs.
Convierte cada comentario aceptado en una tarea comprobable. Claude debe leer el hilo y el código actual, porque la observación puede haber quedado obsoleta tras otro push:
Lee los comentarios sin resolver del PR actual con gh. Clasifícalos en: defecto confirmado, pregunta, sugerencia opcional o ya resuelto. No edites todavía. Para los defectos confirmados propone un test de regresión y el cambio mínimo.
Después de corregir, crea un commit adicional mientras la revisión está activa; evita reescribir historia si otras personas ya basaron comentarios en esos commits. Responde explicando qué cambió y cita la prueba:
git add src/registro.js tests/registro.test.js
git commit -m "fix: preserva correos normalizados"
git push
gh pr checks --watch
Resolver una conversación en GitHub es una decisión humana: una respuesta fluida de Claude no demuestra que el revisor esté de acuerdo.
Un conflicto no es un error sintáctico; representa dos historias incompatibles. Actualiza tu rama según la política del equipo:
git fetch origin
git rebase origin/main
# inspeccionar conflictos
git status
git diff --name-only --diff-filter=U
Pide a Claude que explique ambos lados antes de editar. Tras resolver cada archivo, ejecuta pruebas relevantes y continúa:
git add ruta/resuelta.js
git rebase --continue
# sólo si necesitas abandonar y volver al estado anterior
git rebase --abort
No autorices un push --force genérico. Si la política permite actualizar una rama propia tras rebase, git push --force-with-lease protege contra sobrescribir trabajo remoto que no viste. Nunca lo uses sobre una rama compartida sin coordinación.
Dos sesiones sobre la misma carpeta pueden pisarse. Un worktree aporta archivos y rama independientes compartiendo historial y remoto:
# aceptar primero la confianza ejecutando claude una vez en el repo
claude --worktree feature-auth
claude --worktree bugfix-142
git worktree list
Claude Code los crea por defecto bajo .claude/worktrees/; agrega esa ruta a .gitignore. Cada worktree requiere instalar dependencias o preparar su entorno. Los archivos ignorados como .env no aparecen automáticamente; usa .worktreeinclude sólo para los estrictamente necesarios y evalúa el riesgo de replicar secretos.
| Mecanismo | Úsalo para | Aislamiento |
|---|---|---|
| Worktree | Sesiones independientes que editan archivos. | Archivos y rama separados. |
| Subagente | Investigación lateral que vuelve como resumen. | Contexto separado; worktree opcional. |
claude agents | Despachar y supervisar varias tareas independientes. | Usa worktrees al editar; research preview. |
| Equipo de agentes | Trabajadores que coordinan tareas y mensajes. | No aísla archivos por sí solo; experimental. |
La acción oficial puede responder a menciones @claude o ejecutar un prompt ante eventos. La configuración rápida requiere acceso administrativo, GitHub CLI autenticada y una revisión consciente de permisos:
gh auth status
claude
/install-github-app
El asistente instala la GitHub App, configura el secreto y abre un PR con los workflows. Revisa ese PR como código de producción. El modo interactivo espera una mención; el modo automatizado incluye un prompt en el workflow. Un ejemplo mínimo vigente usa anthropics/claude-code-action@v1:
name: Claude Code
on:
issue_comment:
types: [created]
jobs:
claude:
if: contains(github.event.comment.body, '@claude')
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
issues: write
id-token: write
actions: read
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 1
- uses: anthropics/claude-code-action@v1
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
GitHub interpretará la expresión de secreto; nunca reemplaces esa referencia por el valor real. Para organizaciones, prefiere OIDC y cuentas de servicio cuando estén disponibles, limita --max-turns, fija timeout y concurrencia, y restringe quién puede disparar ejecuciones. La acción comprueba por defecto que el actor sea humano y tenga acceso de escritura.
| Control | Resultado esperado |
|---|---|
| Alcance | Issue, rama, commits y diff representan una sola intención. |
| Secretos | Ninguna credencial en archivos, prompts, logs o historial. |
| Evidencia | Pruebas y checks ejecutados; limitaciones declaradas. |
| Revisión | Hallazgos automáticos verificados y aprobación humana requerida. |
| Permisos | GitHub App, workflow y token con el alcance mínimo viable. |
| Paralelismo | Sesiones aisladas y cambios integrados deliberadamente. |
| Merge | Política del equipo respetada; rama protegida y CI en verde. |
Principio central: Git no es una excusa para actuar sin cuidado porque “todo se puede revertir”. Es el registro que permite revisar, atribuir y recuperar; cuanto más autónomo sea el agente, más importantes son ramas protegidas, permisos mínimos y criterios de aceptación verificables.
Consulta las guías oficiales de worktrees, GitHub Actions y Code Review para cambios de compatibilidad y disponibilidad.
Conclusión: Claude Code acelera implementación, documentación y revisión, pero Git y GitHub siguen definiendo la unidad de colaboración. Un flujo profesional comienza con estado conocido, termina con evidencia y conserva la decisión de merge en manos del equipo. En el próximo tema personalizaremos Claude Code mediante subagentes, comandos y permisos.