Higiene de GitHub
Aplica estas reglas para cada operación de GitHub o Git, independientemente del repositorio, la rama o el contexto de la tarea.
Cuándo usarlo
Aplica cuando la tarea involucre alguna de las siguientes acciones:
- Crear o modificar repositorios de GitHub
- Clonar o trabajar con repositorios Git
- Crear, modificar o enviar confirmaciones (commits)
- Crear o actualizar solicitudes de extracción (pull requests)
- Gestionar ramas, flujos de trabajo, colaboradores o configuraciones del repositorio
- Cualquier otra operación que cambie o interactúe con un repositorio de GitHub
1. Restricciones de contribuyentes para agentes de código
Nunca añadas al agente de código como contribuyente o colaborador de GitHub.
No hagas lo siguiente:
- Invitar a una cuenta de IA/agente de código como colaborador del repositorio
- Añadir una cuenta de IA/agente de código a una organización o repositorio de GitHub
- Otorgar permisos de repositorio a una cuenta de IA/agente de código
- Cambiar los permisos del repositorio para convertir una cuenta de IA/agente de código en contribuyente
- Crear o usar una cuenta de GitHub dedicada al agente de IA como identidad del contribuyente
Esto aplica a todas las identidades de IA/agente de código, incluyendo Cursor, Codex, ChatGPT, otros agentes de codificación de IA, bots de codificación automatizados y cualquier cuenta cuyo propósito sea representar al agente de codificación.
Opera usando la identidad Git/GitHub existente del usuario, a menos que el usuario solicite explícitamente una identidad humana diferente.
2. Restricciones de autor e identidad de la confirmación
Las confirmaciones no deben identificar al agente de código como autor, coautor o generador.
No añadas atribución al agente de IA en el asunto, cuerpo, tráileres, metadatos del autor de Git o metadatos del committer de Git.
Prohibido a menos que el usuario lo requiera explícitamente por la configuración existente del repositorio y no se pueda cambiar de forma segura:
Co-authored-by: Cursor
Co-authored-by: Codex
Co-authored-by: ChatGPT
Generated-by: AI
Generated-by: Codex
Generated-by: Cursor
AI-generated
Generated with Cursor
Generated with Codex
Generated with ChatGPT
No configures intencionalmente la identidad de Git para representar al agente de código.
3. Formato del mensaje de confirmación
A menos que el usuario especifique explícitamente otro formato, cada mensaje de confirmación debe seguir:
[xx]xxxxx
Donde:
xxes un prefijo predefinido de dos letras mayúsculas- El prefijo está encerrado entre corchetes
- El prefijo va seguido inmediatamente de una descripción concisa de la confirmación
- La descripción explica el propósito principal del cambio
- No añadas el nombre del agente de IA, atribución ni metadatos no relacionados
Permitido
[FT]add user authentication
[FX]fix token expiration
[FE]update login page
[BE]add user service
[AP]add auth endpoint
[DB]add user table
[TS]add authentication tests
[RF]simplify auth middleware
[CI]update github workflow
[DC]update api documentation
Prohibido
update login page
AI: update login page
[AI]add authentication
[Cursor]fix login bug
[Codex]add api endpoint
[FT] Generated with Codex
Co-authored-by: Codex
4. Prefijos de confirmación predefinidos
Lista de prefijos predeterminados autorizada:
[FE] Frontend
[BE] Backend
[AP] API
[DB] Base de datos
[UI] IU
[CF] Configuración
[CI] CI/CD
[TS] Prueba
[DC] Documentación
[RF] Refactorización
[FX] Corrección
[FT] Funcionalidad
[OP] Optimización
[SC] Seguridad
[DP] Dependencia
[CH] Mantenimiento general
Reglas de selección
A menos que el usuario especifique explícitamente otro prefijo:
- Usa un prefijo predefinido siempre que sea posible
- Nunca inventes un nuevo prefijo
- Nunca modifiques la ortografía o capitalización de un prefijo predefinido
- Usa exactamente dos letras mayúsculas dentro de los corchetes
- Selecciona el prefijo basándote en el propósito principal del cambio
- Cuando múltiples prefijos puedan aplicarse, elige el que mejor represente el propósito principal
| Tipo de cambio | Prefijo |
|---|---|
| Nueva funcionalidad | [FT] |
| Corrección de errores | [FX] |
| Implementación frontend | [FE] |
| Implementación backend | [BE] |
| Cambios en la API | [AP] |
| Cambios en la base de datos | [DB] |
| Cambios solo de IU | [UI] |
| Cambios de configuración | [CF] |
| Cambios de CI/CD | [CI] |
| Pruebas | [TS] |
| Documentación | [DC] |
| Refactorización sin cambios de comportamiento | [RF] |
| Optimización de rendimiento | [OP] |
| Cambios relacionados con seguridad | [SC] |
| Cambios de dependencias | [DP] |
| Mantenimiento general | [CH] |
5. El prefijo especificado por el usuario tiene prioridad
La lista de prefijos predefinidos es el valor predeterminado, no una restricción absoluta.
Si el usuario especifica explícitamente un prefijo o formato de confirmación diferente, sigue la instrucción explícita del usuario.
Ejemplo: el usuario dice Usa [HOT] para esta confirmación. → usa [HOT]fix production issue.
- No reemplaces el prefijo solicitado explícitamente por el usuario con un prefijo predefinido
- Si el usuario no especifica un prefijo, usa la lista predefinida
- Si el usuario especifica solo la descripción, selecciona el prefijo predefinido apropiado
6. Descripción de la confirmación
La descripción después del prefijo debe ser:
- Concisa y específica
- Escrita en inglés a menos que el usuario solicite explícitamente otro idioma
- Centrada en el cambio real
- Libre de atribución al agente de IA
Preferido:
[FX]fix expired access token handling
[FT]add password reset endpoint
[FE]update account settings page
[RF]simplify request validation
Evita:
[FX]fix stuff
[FT]changes
[RF]update code
[BE]AI generated backend changes
7. Alcance de la confirmación
Prefiere un cambio lógico por confirmación cuando sea práctico.
Cuando una tarea contenga múltiples cambios no relacionados:
- No fabriques una única descripción de confirmación engañosa
- Prefiere confirmaciones separadas cuando sea práctico
- Selecciona el prefijo de forma independiente para cada confirmación
- Mantén cada mensaje de confirmación representativo de su contenido real
Si el usuario solicita explícitamente una sola confirmación, sigue esa instrucción y elige el prefijo que mejor represente el propósito principal del cambio combinado.
8. Validación previa a la confirmación
Antes de crear una confirmación, verifica:
Identidad
- El autor de Git es la identidad configurada del usuario
- El committer de Git no es una identidad de IA/agente de código
- No se añadirá atribución al agente de IA
Mensaje
- Comienza con un prefijo válido
- Usa un prefijo predefinido a menos que el usuario haya especificado explícitamente otro
- Usa exactamente dos letras mayúsculas para un prefijo predeterminado
- El prefijo está encerrado entre
[] - Contiene una descripción concisa después del prefijo
- No menciona a Cursor, Codex, ChatGPT, agente de IA o identidad similar de agente
- No contiene tráileres de atribución prohibidos
Permisos de GitHub
Antes de cambiar los permisos del repositorio o los colaboradores:
- Verifica que el destino no sea una identidad de IA/agente de código
- Nunca concedas acceso como contribuyente o colaborador al agente de código
9. Operaciones de envío y GitHub
Antes de enviar confirmaciones (push):
- Asegúrate de que los mensajes de confirmación cumplan con esta habilidad
- Asegúrate de que las confirmaciones no contengan atribución de IA prohibida
- Asegúrate de que el agente de código no se haya añadido como contribuyente de GitHub
- No modifiques los permisos de GitHub solo para facilitar la operación del agente
Si una confirmación existente viola estas reglas y el usuario pide enviarla, corrige la violación antes de enviarla cuando sea seguro hacerlo y coherente con el flujo de trabajo solicitado por el usuario.
Para confirmaciones ya enviadas a una rama compartida/pública, no reescribas el historial automáticamente. Pregunta al usuario antes de:
git commit --amend
git rebase
git reset --hard
git push --force
git push --force-with-lease
10. Solicitudes de extracción
Al crear o actualizar una solicitud de extracción:
- No identifiques al agente de código como contribuyente
- No añadas atribución al agente de IA a menos que el usuario lo solicite explícitamente
- Mantén el título y la descripción de la PR enfocados en los cambios reales
- Sigue la plantilla de PR del repositorio cuando exista una
- No modifiques los permisos del repositorio para crear o actualizar una PR
11. Resolución de conflictos
Si otra instrucción a nivel de repositorio, regla del proyecto o instrucción del usuario entra en conflicto con esta habilidad:
- Sigue la instrucción de mayor prioridad
- Si el usuario especifica explícitamente un prefijo o formato de confirmación, sigue la solicitud explícita del usuario
- De lo contrario, usa la lista de prefijos predefinidos y el formato de confirmación de esta habilidad
- Nunca añadas al agente de código como contribuyente de GitHub
No inventes silenciosamente una regla alternativa.
12. Lista de verificación de cumplimiento final
Antes de completar cualquier tarea relacionada con GitHub:
[ ] El agente de código no se añadió como contribuyente de GitHub.
[ ] El agente de código no se añadió como colaborador de GitHub.
[ ] El autor de Git no es una identidad de agente de IA.
[ ] El committer de Git no es una identidad de agente de IA.
[ ] El mensaje de confirmación sigue [xx]xxxxx por defecto.
[ ] El prefijo predeterminado proviene de la lista predefinida.
[ ] El prefijo especificado por el usuario tiene prioridad sobre la lista predefinida.
[ ] El mensaje de confirmación no contiene atribución al agente de IA.
[ ] Los tráileres de confirmación no contienen atribución al agente de IA.
[ ] Las operaciones de GitHub no modifican innecesariamente los permisos del repositorio.