Sasha Levin de NVIDIA, quien mantiene las ramas LTS del kernel de Linux y forma parte del consejo asesor de la Fundación Linux, ha presentado un conjunto de reglas y documentación para que los desarrolladores las debatan, las cuales los asistentes de IA deben tener en cuenta al generar cambios en el kernel de Linux. Los enlaces a las instrucciones se incluyen en los archivos de configuración preparados para las plataformas de IA Claude, GitHub Copilot, Cursor, Codeium, Continue, Windsurf y Aider.
Se han identificado los siguientes principios clave para la IA:
- Antes de realizar cambios, debe leer la documentación y seguir los requisitos allí establecidos.
- Se deben seguir los requisitos de formato y estilo del código del kernel.
- Antes de enviar un cambio, éste debe probarse exhaustivamente.
- El código debe ir acompañado de un mensaje claro y completo que describa el cambio.
- Los cambios no deben interrumpir la funcionalidad de los componentes del espacio de usuario.
- El cambio debe atribuirse a la IA como coautor, no solo al desarrollador que utilizó el asistente de IA.
Para destacar los cambios preparados con IA, la confirmación debe etiquetarse con "Codesarrollado por: $AI_NAME $AI_MODEL $AI_VERSION". Por ejemplo: "Codesarrollado por: Claude claude-3-opus-20240229", "Codesarrollado por: GitHub-Copilot GPT-4 v1.0.0" y "Codesarrollado por: Cursor gpt-4-turbo-2024-04-09". Asimismo, el asistente de IA no debe añadirse a la etiqueta "Aprobado por". Esta etiqueta solo debe ser agregada por una persona para proporcionar una confirmación legalmente válida del derecho a transferir código bajo una licencia abierta.
Documentación que el asistente de IA debe tener en cuenta:
- Una guía para convertirse en un desarrollador de kernel.
- Información sobre el proceso de desarrollo del kernel.
- Una guía para contribuir con su código al kernel.
- Una lista de verificación de cosas a comprobar antes de enviar código al kernel.
- Requisitos para el estilo y formato del código (uso de tabulaciones para alineación, no más de 80 caracteres por línea, reglas separadas para funciones de formato y expresiones condicionales).
- Requisitos para lenguajes y estándares de programación.
- Prohibición de uso de interfaces y capacidades de software obsoletas.
- Reglas para enviar parches para su inclusión en el kernel.
- Configuración del cliente de correo para enviar parches.
- Reglas para aceptar parches.
- Reglas de licenciamiento del código del kernel (licencia GPL-2.0 con excepciones para llamadas al sistema, presencia de identificadores de licencia SPDX en cada archivo).
- Instrucciones para agregar una nueva llamada al sistema.
- Reglas para enviar parches a las ramas estables del kernel.
- Manejo de problemas de seguridad.
- Acciones cuando se detectan regresiones.
- Guía para interactuar con acompañantes.
- Directrices específicas del subsistema.
Fuente: opennet.ru
