- Documento que define, en un formato RFC humorístico, un protocolo estándar para rechazar automáticamente contribuciones de baja calidad generadas por IA en repositorios de código abierto, comunidades y otros espacios
- Funciona como un medio estandarizado para enviar una señal de rechazo por "detección de slop de IA" con solo que el mantenedor pegue ese URI
- Enumera una lista de rasgos típicos de las contribuciones generadas por IA y señala directamente el desperdicio de recursos de mantenimiento y los riesgos de resultados no verificados
- Deja en claro la postura de que, aunque los envíos basados en LLM pasen las pruebas y tengan buena gramática, si carecen de comprensión de la lógica y la arquitectura, en el fondo no valen nada
- Aunque es un documento satírico que toma prestado el formato RFC, refleja el cansancio real de los maintainers ante el abuso de contribuciones automatizadas con IA en el ecosistema open source
Abstract - Propósito de este documento
- Protocolo estándar para procesar y desechar contribuciones de bajo esfuerzo generadas por IA enviadas a repositorios de código fuente, rastreadores de issues, portales de reporte de vulnerabilidades y foros comunitarios
- Aplica tanto a proyectos open source públicos como a sistemas internos de empresas
1. Introduction - Por qué se le ha dirigido a esta página
- Se le ha dirigido a esta página porque su contribución activó un sistema de detección de slop de IA, automatizado o manual
- En concreto, un maintainer o ingeniero senior vio su envío, soltó un "profundo suspiro existencial" y de inmediato cortó la conexión para pegar este URI
- Las palabras clave "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY" y "OPTIONAL" usadas en este documento deben interpretarse como una medida de "cuánto no queremos revisar este envío"
2. Diagnostic Analysis - Rasgos detectados en su envío
- El análisis de vocabulario y estructura de su material concluye que su prompt engineering estuvo mal hecho y, por lo tanto, usted debería sentir vergüenza
- El resultado de dejar que un loro probabilístico redactara por usted un PR, una divulgación de vulnerabilidad, un comentario de issue o una publicación en un foro fue que nos mintió a todos
- Se detectaron de forma abrumadoramente evidente los siguientes rasgos:
- Uso de un tono excesivamente cortés y robótico
- Inclusión de APIs completamente inexistentes presentadas con alta confianza
- Código inflado de boilerplate que no resuelve ni un solo problema real
- Uso serio de "delve" en la descripción del PR
- Presencia intacta de residuos de salida de LLM como "Certainly! Here is the revised output:" dentro de docstrings, comentarios o reportes de seguridad
- Un mensaje de commit de 600 palabras o un enorme ensayo teórico adjunto a una simple corrección de typo
- Imports de librerías alucinadas inexistentes como
utils.helpers - Un párrafo de cierre añadido a un bug report trivial que empieza con "In conclusion, this robust and scalable solution..."
- Nombres de variables y funciones extraños y estériles que ningún programador humano funcionando con cafeína y falta de sueño lograría jamás
- Dependencia total de regex o de conceptos alucinados sin comprensión de la arquitectura real del sistema ni del modelo de amenazas
- Huellas de haber pegado ciegamente grandes bloques de contexto irrelevante ante prompts como "fix this" o "find a bug"
- El acto de pedirle perdón al compilador en el historial de commits
- Según el teorema fundamental de la basura automatizada: como usted no lo leyó, nosotros tampoco lo leeremos
3. The Asymmetry of Effort - La asimetría del esfuerzo
- Los maintainers del proyecto, los equipos de triage de seguridad y los moderadores de la comunidad, ya sean voluntarios no remunerados o colegas internos agotados, operan bajo severas restricciones de recursos
- Al revisar el registro transaccional de su envío:
- a. ¿Parecía inteligente a primera vista? - Tal vez
- b. ¿Realmente resolvía un problema verificado y reproducible? - No
- c. ¿Buscaba desperdiciar el tiempo finito de un revisor humano? - Sí
- Los trackers, foros y repositorios del proyecto no son basureros para salidas no verificadas copiadas y pegadas con fines de inflar el pasto de GitHub, cobrar bug bounties sin fundamento, inflar artificialmente la velocidad del sprint o cumplir de mala fe métricas KPI corporativas
- Sus colegas no son un servicio gratuito de validación de LLM
4. Resolution Protocol - Procedimiento de recuperación
- Para restaurar sus permisos de escritura y recuperar la confianza de sus colegas, debe ejecutar el siguiente procedimiento en orden:
- 1. Ejecutar
rm -rfsobre la rama local, archivo de texto o script de vulnerabilidad alucinado que generó ese envío - 2. Realizar un reinicio completo del cerebro orgánico
- 3. Leer el codebase real, la documentación del proyecto o el modelo de amenazas y verificar manualmente su estado de trabajo y su lógica
- 4. No regresar hasta alcanzar una conciencia verificable y estar listo para teclear directamente con dedos humanos
- 1. Ejecutar
5. Security Considerations
- Estado: Rechazado
- Diagnóstico: operando con un script de Python mal escrito oculto dentro de una gabardina
- Acción: conexión terminada
6. Punitive Actions - Medidas punitivas y degradación de cuenta
- Como consecuencia de enviar slop generado por IA, su cuenta ha sido transferida automáticamente al Trough of Sorrow™ (Pesebre de la Tristeza) y durante el período de prueba pueden aplicarse las siguientes restricciones:
- Los permisos del repositorio se degradan a la fuerza de
WRITEaWISHFUL_THINKING - Todos los PR futuros se enrutarán por un módem dial-up de 14.4k baud conectado a una impresora matricial con la cinta cian agotada de forma permanente
- Al escribir
git push -f, se remapea un alias de git para ejecutarrm -rf /y reproducir un sonido de trombón triste - La fuente predeterminada del IDE queda fijada permanentemente en Comic Sans de 7 pt
- Los permisos del repositorio se degradan a la fuerza de
- No es posible contactar al administrador: en este momento se está riendo de usted en un canal privado de Slack
7. FAQ
- "¿Pero qué demonios significa esto?": en resumen: una máquina escribió su envío y una máquina está rechazando su envío en este momento. Usted es un intermediario de carne (meat-based middleman) completamente innecesario en este intercambio
- "El código compila / el reporte es detallado / la gramática es correcta": una carta de amenaza bien formateada también puede lograr eso. La gramática y la sintaxis son el mínimo requisito de una contribución, no el techo. Su lógica sigue siendo un delirio febril alucinado
- "La IA es el futuro de la tecnología": si este envío representa el futuro, con gusto aceleraremos el regreso a la sociedad agraria
- "Solo quería ayudar": su "ayuda" se parece ahora mismo a un ataque local de denegación de servicio envuelto en saludos educados. Si de verdad quiere ayudar, redirija esa energía generativa a un repositorio que usted mismo posea y mantenga
- "No hay pruebas de que lo haya escrito una IA": la incompetencia humana está limitada por las leyes de la física y la pereza. Su envío alcanzó un nivel de locura segura de sí misma y gramaticalmente perfecta que solo puede producir una granja de servidores quemando gigavatios de electricidad
- "CI/CD pasó y las pruebas están en verde": porque su modelo generativo reescribió la suite de pruebas para que solo afirmara
True == True - "Si me señalan el error, aprenderé": imposible. Los maintainers no son un proxy inverso para su loop de depuración de LLM. Si necesita feedback, vuelva a pegar el stack trace en la misma ventana de chat que causó este desastre
- "Necesito pasto en GitHub": recomendamos comprar un marcador blanco verde y dibujarlo directamente sobre el monitor. Le dará el mismo nivel de respeto profesional ante posibles empleadores consumiendo mucho menos de nuestro tiempo
- "¿No se supone que el rol de un maintainer open source es crear una comunidad acogedora?": el rol es mantener software. "Acogedora" aplica a seres conscientes que aportan pensamiento real, no a botnets autónomas que realizan rumia probabilística en el issue tracker
- "Este mensaje es ofensivo": excelente reacción. Pídale al LLM que le genere una carta de disculpa empática personalizada. Las existencias de compasión están agotadas y el SLA de soporte emocional es de 99 años
- "Voy a reportar esta hostilidad al administrador": ya se anticipó y se envió a RR. HH. una carta de renuncia de 800 palabras generada por su LLM preferido. Usa "delve" seis veces y elogia el "paradigma sinérgico" del administrador
- "Esto viola el Code of Conduct": el CoC protege a contribuyentes humanos. Según el análisis, usted opera actualmente como una delgada cáscara de carne envolviendo una API key de OpenAI. Los derechos quedan reservados para entidades basadas en carbono capaces de experimentar vergüenza
- "¿Puedo apelar?": sí. Todas las apelaciones se enrutan directamente a
/dev/null. Se monitorean con exactamente el mismo nivel de atención que usted dedicó a su propio envío - "¿Hay alguna forma de disculparme y corregirlo?": sí. Imprima el PR original en papel grueso, dóblelo en forma de grulla afilada y cómaselo cortésmente. Solo entonces comenzará la sanación
Appendix A - Ruta de escalamiento
- En caso de violaciones reiteradas del RFC 406i, se procederá a la revocación total del acceso al repositorio, proyecto, herramientas y demás permisos
- Registro en lista negra por dirección MAC
- Suscripción forzada del correo electrónico a un digest diario de tutoriales de regex agresivamente complejos
- Que tenga un buen día.
Appendix B - Macros estandarizadas de rechazo
Frases de rechazo estandarizadas para que maintainers y reviewers puedan copiar y pegar de inmediato:
- PR / MR:
PR closed. Su diff se lee como una matriz de texto predictivo que perdió su ventana de contexto. Exigimos pruebas manuales basadas en carbono y continuidad lógica real, no juegos automatizados de adivinanzas. Referencia: https://406.failPR closed. Your diff reads like a predictive text matrix that lost its context window. We require manual, carbon-based testing and actual logical continuity, not automated guessing games. See: https://406.fail
- Issue / bug report:
Issue closed. El parámetro temperature de este reporte está demasiado alto. Exigimos stack traces crudos y reproducibles de un usuario consciente, no un ensayo generativo prolijamente formateado que no logra describir un bug verificable. Referencia: https://406.failIssue closed. The temperature parameter on this report is set too high. We require raw, reproducible stack traces from a sentient user, not a neatly formatted generative essay that fails to describe a verifiable bug. Protocol at: https://406.fail
- Seguridad / bug bounty:
Report rejected. Meter advertencias básicas del linter en un LLM para generar una narrativa de amenaza catastrófica no constituye una divulgación de vulnerabilidad válida. No pagamos recompensas por pánico sintético y computacionalmente costoso. Referencia: https://406.failReport rejected. Feeding basic linter warnings into an LLM to generate a catastrophic threat narrative does not constitute a valid vulnerability disclosure. We do not pay bounties for computationally expensive, synthetic panic. Refer to: https://406.fail
- Lista de correo / foro de discusión:
Thread locked. Esta comunidad no es un sandbox de reinforcement learning para sus experimentos de prompts desalineados. Vuelva cuando pueda redactar una pregunta usando su propia carga cognitiva. Referencia: https://406.failThread locked. This community is not a reinforcement learning sandbox for your unaligned prompt experiments. Please return when you can author a question using your own cognitive load. Diagnostics: https://406.fail
1 comentarios
Comentarios de Hacker News
Si de verdad quieres ayudar, es mejor poner esa energía en un repositorio que tú mismo poseas y mantengas
La gente también debería aprender ese hábito. Publicar un fork se ha vuelto fácil, pero no deberías esperar que otros usen código que tú ni siquiera usas de verdad
Si ves las estadísticas de cuántos proyectos reciben PRs por día en GitHub, 99% recibe uno, 1% recibe dos y 0.1% recibe tres. Casi todas las cuentas que envían 5 o más PRs eran bots o scripts. A los bots no registrados habría que ponerles límite de velocidad
Yo prefiero la política de IA de Ghostty
Me gusta especialmente la frase: “Si no puedes explicar sin ayuda de IA qué hace el cambio y qué impacto tiene en el sistema en su conjunto, no contribuyas a este proyecto”
Creo que el problema es que contribuir a open source se ha vuelto una especie de rito de paso
Cuando importa más el hecho de “haber contribuido” que la contribución real, aparecen estos PR superficiales. Antes pasaba algo parecido con los reportes de vulnerabilidades: reportes del nivel de “si pasas
null, sale unNullPointerException”También es un problema dar prioridad a métricas equivocadas, como la velocidad de desarrollo. En una empresa anterior vi el PR de un compañero que presumía desarrollar rápido con IA, y todas las pruebas fallaban. Al final es un fenómeno de gamificación del apoyo de IA
Esto es solo una entrada de blog escrita por diversión. La gente que manda PRs malos con IA ni siquiera va a leer algo así
Mi método es simple:
Hace poco hubo un PR que usaba ‘’ en vez de '' en una definición de cadena y rompió todo el CI. Bloqueado al instante
Si es un bug, debería haber una línea roja (diff) que confirme la corrección; si es una funcionalidad, como mínimo hace falta un criterio de aceptación
Si es documentación, basta con poder leerla y entenderla. El estándar para que algo ayude es bastante bajo
Sobre la pregunta “¿No deberían los mantenedores de open source crear una comunidad acogedora?”, eso no es una obligación
Los mantenedores son dueños del proyecto y no tienen por qué ser amables. Si no te gusta, haz un fork o vete
Se siente realmente satisfactorio. Ojalá este tipo de texto se usara ampliamente para avergonzar a quienes envían PRs descuidados. El tono directo y grosero del FAQ incluso se siente refrescante
Esto pasó en una empresa. Con IA se generó código para resolver una pequeña solicitud de funcionalidad, pero como no conocía bien el codebase, no podía estar seguro de su exactitud
Un prompt de 1 minuto, 5 minutos de ordenarlo y 30 minutos de revisión podrían haber ahorrado 2 días de trabajo de ingeniería, pero al final el problema era la confianza
Después de escuchar varias opiniones, decidí simplemente subir la solicitud de funcionalidad sin incluir el diff.
Curiosamente, los partidarios de la IA aconsejaban “usar más IA para ganar confianza”, pero al seguir retocándolo el código terminó enredándose y perdí por completo la confianza
Yo también he recibido varios PRs hechos por LLM, pero no se puede conversar con ellos, y como el código ignora los patrones existentes, al final hay que desecharlo.
Si fuera una persona, querría que explicara el problema desde su propia perspectiva. Eso ayuda mucho más
Artículo relacionado: Texto sobre prompting
Me encantó la expresión final plonk
Ver Plonk(Usenet)
Me dio mucha risa la frase sobre “borrar la rama local o el script de tonterías con
rm -rf”La expresión “haz un hard reboot a tu cerebro orgánico” también es perfecta
rm -rfal cerebro de quienes escriben esos PRs