Yeda AI Tips · #058

English

Documenta las trampas inline, donde muerden

¿El bug que te costó un día? Escribe la advertencia justo donde la próxima persona va a caer. Una página de wiki que nadie abre no detiene la próxima trampa — el archivo de código es el único documento que cada futuro lector tendrá abierto, garantizado, en el momento exacto en que está por repetir tu error. Y eso ahora incluye a tu asistente de IA, que lee el archivo que le indicas, no la base de conocimiento de tu equipo.

Por qué la wiki pierde

Una trampa es conocimiento con ubicación. "Este endpoint trunca silenciosamente payloads de más de 1 MB" es inútil en una página de Confluence titulada API Notes y vale oro como comentario sobre la función que arma el payload. La regla de Jeff Atwood sigue vigente dos décadas después: el código solo puede decirte cómo funciona el programa; los comentarios te dicen por qué. El límite de truncado se ve en el código — el hecho de que una vez costó un día de debugging en producción, no.

El costo de descubrimiento lo decide todo. Una advertencia en la wiki exige que el lector (1) sepa que la página existe, (2) sospeche que esta función es la riesgosa y (3) vaya a buscarla — tres pasos que fallan en silencio. Un comentario inline exige cero pasos: aparece en el diff, en el editor, en la salida de grep y en la ventana de contexto.

Cómo escribir la advertencia

Pon el comentario sobre el símbolo riesgoso, no al inicio del archivo, y haz que cargue tres cosas:

# IMPORTANT: send_batch() silently drops events after the first
# failure in a batch (upstream API returns 200 either way).
# Why: the vendor treats a batch as best-effort delivery.
# If you need all-or-nothing, call send_single() in a loop —
# yes it's slower; we lost a day of analytics data learning this.
def send_batch(events: list[Event]) -> None:
    ...

La anatomía:

PartePregunta que respondeSin ella
Trampa¿Qué sale mal?El lector no sabe que hay una trampa
Por qué¿Cuál es la causa de fondo?El lector "arregla" el workaround y reintroduce el bug
Salida¿Qué debo hacer en su lugar?El lector conoce el peligro pero reinventa tu día de debugging

La guía de estilo de Python de Google lo dice sin rodeos: "si vas a tener que explicarlo en el próximo code review, deberías comentarlo ahora". Y el principio "leave a trace for the reader" de su guía de C++ dice lo mismo — cuando pasa algo sorprendente, deja pistas textuales en el punto de uso.

Lo que no hay que escribir: comentarios que repiten el código. La primera regla del blog de ingeniería de Stack Overflow es "no dupliques el código" — un comentario de trampa se gana sus líneas justamente porque dice algo que el código no puede decir.

Tu agente también los lee

Esta es la parte que cambió la economía del asunto. Las advertencias inline antes protegían solo a los humanos que leían con cuidado. Ahora cada agente de código que carga el archivo recibe la advertencia inyectada directo en su contexto — gratis, en el momento en que importa. La guía de Claude Code de Anthropic lista explícitamente "gotchas comunes o comportamientos no obvios" como contenido que vale la pena persistir para el agente, y señala que marcadores de énfasis como IMPORTANT mejoran de forma medible la adherencia. El mismo prefijo # IMPORTANT: que atrapa el ojo humano en un review es una señal que el modelo pondera antes de llamar a tu función con trampa.

La recompensa es simétrica: el próximo ingeniero y el próximo agente esquivan la trampa, en lugar de que tu equipo pague dos veces por el mismo bug.

Movidas de usuario avanzado

Recursos

Read this article in English

¿Construyendo una función con IA? Yeda AI diseña, audita y entrega sistemas LLM de producción.

Habla con nosotros · Lee el blog