CommunityRedacción y edicióngithub.com

gener8v/gener8v.claude-skills.engineering

Coloca el trabajo en la rama correcta antes de la primera edición. Encuentra la rama base, crea una rama con nombre apropiado desde el último commit remoto y configura un árbol de trabajo por agente para trabajo paralelo. Úsalo al inicio de cualquier cambio en un archivo rastreado, como 'empieza con el issue 42', 'arregla este error tipográfico', 'configura ramas para estos tres tickets' o antes de iniciar subagentes que editen código. No es para abrir o fusionar un PR (github-pr-merge) ni para reescrituras de historial u otros comandos git riesgosos (git-safety).

¿Qué es gener8v.claude-skills.engineering?

Esta habilidad de git automatiza la creación y gestión de ramas para cualquier cambio en un repositorio. Es útil porque garantiza que todo trabajo, incluso correcciones mínimas, se realice en una rama separada y bien nombrada, evitando commits directos en la rama base y manteniendo un historial limpio. La habilidad primero determina la rama base correcta revisando documentos del repositorio (CLAUDE.md, CONTRIBUTING.md) o la rama predeterminada remota, y pregunta al usuario en caso de ambigüedad (por ejemplo, cuando existe una rama 'develop'). Luego, crea una rama desde el último commit remoto (origin/<base>) usando 'git fetch', la nombra siguiendo una convención predefinida (<tipo>/<ref>-<slug>) y permite trabajo paralelo mediante múltiples árboles de trabajo. También incluye reglas para commits pequeños y descriptivos, y para empujar cambios de forma segura con 'set -o pipefail'. Está diseñada para herramientas como Claude Code, Cursor y Codex, y se complementa con habilidades para abrir PRs (github-pr-merge) y para operaciones git riesgosas (git-safety).

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/gener8v/gener8v.claude-skills.engineering/tree/HEAD/skills/git-branching

Installed? Explore more Redacción y edición skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Ramificación de Git

Cada cambio va en su propia rama. Esto incluye una corrección de una línea y un cambio sin issue. No hagas commit en la rama base.

1. Encuentra la rama base

Usa la primera fuente que dé una respuesta:

  1. Instrucciones del repositorio. Lee CLAUDE.md, CONTRIBUTING.md y los documentos de .github/. Si nombran una rama base o de integración, úsala.
  2. Rama predeterminada remota.
    git symbolic-ref --short refs/remotes/origin/HEAD   # imprime origin/<nombre>
    gh repo view --json defaultBranchRef -q .defaultBranchRef.name
    
  3. Ambigüedad. Si el remoto también tiene develop o development y ningún documento indica cuál es la base, pregunta al usuario. No adivines.

Cuando una rama de integración (por ejemplo develop) es la base, una corrección urgente para una versión publicada comienza desde la rama predeterminada en su lugar. Usa esto solo cuando el usuario llame al trabajo una corrección urgente.

2. Verifica dónde estás

git status --porcelain
git rev-parse --abbrev-ref HEAD
  • Si el árbol de trabajo tiene cambios que no hiciste tú, detente. Pregunta al usuario qué hacer con ellos.
  • Si ya estás en una rama para este mismo trabajo, quédate en ella.
  • Si estás en la rama base con tus propias ediciones sin commit, muévelas: git switch -c <nombre> las mantiene en el árbol de trabajo.

3. Inicia la rama desde el último commit remoto

git fetch origin --prune
git switch -c <nombre> origin/<base>
git log -1 --oneline

Comenzar desde origin/<base> significa que una rama base local desactualizada no causa daño. No ejecutes git pull en la rama base para "ponerte al día" primero. No es necesario.

4. Nombra la rama

Usa la convención del repositorio si la tiene. Si no, usa <tipo>/<ref>-<slug>:

ParteValores
tipofeat, fix, docs, chore, refactor, test, release, hotfix
refNúmero de issue (42), ticket del pipeline (ticket-007), o nada
slugDe dos a cinco palabras en minúsculas, unidas con guiones

Ejemplos: fix/42-null-session-crash, feat/ticket-007-search-filters, docs/readme-install-steps.

5. Mientras trabajas

  • Haz commits en pasos pequeños que tengan sentido por sí solos. Escribe el asunto en imperativo, 72 caracteres o menos. Usa el cuerpo para explicar el porqué.
  • No agregues un trailer Co-Authored-By: Claude a ningún mensaje de commit. Esta es una regla de gener8v.
  • Antes del primer push, puedes hacer rebase sobre origin/<base>. Después de que la rama se haya subido, fusiona la base en la rama en su lugar. Un rebase de una rama ya subida reescribe el historial, y engineering:git-safety controla eso.
  • Haz push con una cadena que se detenga en el primer fallo:
    set -o pipefail
    git fetch origin && <comando de prueba> 2>&1 | tail -n 40 && git push -u origin HEAD
    
    Sin set -o pipefail, | tail oculta el código de salida del comando anterior. Nunca pases un comando git o un comando de prueba a través de tail sin él.

Trabajo paralelo

Para dos o más agentes que editan código al mismo tiempo, lee resources/parallel-work.md antes de iniciar cualquier agente. En resumen: una rama de lote desde la base, un árbol de trabajo y una rama por agente desde la rama de lote, y ningún agente trabajando en los mismos archivos.

Terminado cuando

  • Estás en una rama con un nombre claro, y comienza en el origin/<base> actual.
  • git status no muestra cambios que pertenezcan a otra persona.

Habilidades relacionadas

  • engineering:github-pr-merge: abre el PR cuando el trabajo esté completo.
  • engineering:git-safety: reglas de aprobación para push forzado, eliminación de ramas y comandos similares.
  • engineering:github-issue-workflow: el ciclo de vida completo de un issue o un ticket del pipeline. Esta habilidad se llama primero.

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

gener8v/gener8v.claude-skills.engineering

Find and run a project's test, lint, type-check, build and dev-server commands, read the results correctly, and seed a throwaway database when UI work needs realistic data. Never seeds the project's real or default database. Use before 'run the tests', 'lint this', 'does it build', 'start the app so I can see it', 'seed some demo data', and before you claim that a change works. Not for deployment or CI pipeline design; use the project's own deploy tooling for those.

gener8v/gener8v.claude-skills.engineering

Create or top up a project's documentation set: list what exists, let the user choose which document types to add, collect one shared fact sheet from the code, write the documents (in parallel when there are several), then check them against each other and against the code. Use when asked to 'bootstrap the docs', 'start the documentation', 'we have no README or ARCHITECTURE', or 'fill in the missing docs'. Not for the per-commit update of existing documents (documentation-sync), and not for gener8v pipeline documents (gener8v:brownfield and gener8v:planning make those).

gener8v/gener8v.claude-skills.engineering

Before a commit, find every document that describes what the change touched and update it in the same commit, or confirm in one line that no document needs a change. Catches stale text, missing documentation and facts kept in two places. Use before any commit or PR, and when asked 'are the docs up to date', 'update the docs for this change' or 'did I miss a README change'. Not for creating a documentation set or filling large gaps (documentation-bootstrap), and not for gener8v pipeline documents under .gener8v/, which the pipeline skills own.

gener8v/gener8v.claude-skills.engineering

Approval gate for git commands that destroy work or skip checks: force-push, --no-verify, signing bypass, reset --hard, clean -f, discarding uncommitted edits, branch or tag deletion, rewriting pushed commits and push --mirror. Each one needs the user's explicit approval at that moment; an earlier approval never carries over. Also covers a secrets check before a commit and what to do when a secret is already committed. Use before any of these commands, or when asked to 'force push', 'skip the hooks', 'throw away my changes' or 'delete that branch'. Not for normal branching (git-branching) or the PR flow (github-pr-merge).

Skills relacionados