A cuento de https://app.renegados.es/es/posts/github-aplicacion-de-escritorio-meneame-expandido y de Expanse y lo que es en realidad el Expanse. Un experimento para saber cual es la mejor estrategia a la hora de programar con IA.
Introducción: Un experimento para entender el futuro del desarrollo
neutral-starter-py es un experimento concebido para explorar cómo debemos diseñar las aplicaciones en la era de los agentes de IA. Su premisa es radical: si queremos que la IA colabore activamente en el desarrollo y mantenimiento del software, la arquitectura debe estar pensada desde el inicio para ser legible, modificable y extensible por modelos de lenguaje.
Este proyecto, que combina Python (Flask) con el motor de plantillas Neutral TS, propone una vía: la modularidad extrema basada en componentes autocontenidos. Pero más allá de la tecnología, lo realmente innovador es su objetivo declarado: "proporcionar a los desarrolladores capacidades agentivas impulsadas por IA". Es, ante todo, un banco de pruebas para entender hacia dónde nos dirigimos.
La motivación: Adaptarse a la nueva realidad
Vivimos un cambio de paradigma. Los modelos de IA ya no son solo herramientas de consulta o generación de texto; se están convirtiendo en agentes capaces de ejecutar tareas complejas en nuestro entorno de desarrollo. Sin embargo, la mayoría de las bases de código actuales están optimizadas para la lectura humana, no para la intervención autónoma de una IA.
¿Cómo podemos los desarrolladores enfrentar este reto?
La respuesta podría estar en cambiar nuestro rol: de ser meros "escribas de código" a convertirnos en diseñadores y orquestadores de arquitecturas. Nuestro trabajo ya no será solo implementar funcionalidades, sino crear los planos y las reglas (los "skills") para que los agentes de IA puedan construir y evolucionar el software dentro de unos límites seguros y coherentes.
El corazón del sistema: Componentes como "unidades atómicas" para la IA
La fortaleza de este enfoque reside en un directorio como src/component/. Cada subcarpeta con un prefijo identificativo (por ejemplo, cmp_6100_rrss, un lector de RSS) es una funcionalidad completa y aislada.
¿Qué significa esto para una IA?
- Autocontención: Un componente incluye todo lo que necesita: rutas, lógica de negocio, plantillas, archivos estáticos, configuración y metadatos. Una IA puede leer un solo componente y entender completamente su propósito y funcionamiento sin examinar el resto del proyecto.
- Aislamiento: Si un modelo recibe la instrucción "modifica el lector de RSS para que incluya imágenes", puede operar dentro de los límites de ese componente con la certeza de que no afectará al componente de login o al de la base de datos. Esto reduce drásticamente los errores en cadena y la necesidad de supervisión humana constante.
- Reemplazabilidad: Un componente puede ser eliminado simplemente borrando su carpeta, sin provocar fallos en la aplicación. Esta característica es crucial para permitir que la IA experimente, proponga versiones alternativas y las someta a pruebas.
Ejemplo práctico: Un componente como
cmp_7000_hellocompsirve como plantilla. Contiene su propia lógica, su CSS/JS específico, y sus plantillas. Para una IA, es un modelo a seguir: "si quieres crear un nuevo componente, copia la estructura dehellocompy adáptala".
La memoria persistente: Los "skills" de la IA
Uno de los mayores desafíos al trabajar con IA en proyectos de software es la pérdida de contexto entre conversaciones. Cada nueva interacción comienza prácticamente desde cero, lo que lleva a inconsistencias y a tener que repetir instrucciones.
La solución que propone este paradigma es la creación de un repositorio de "skills" (habilidades) accesible para la IA, normalmente en una carpeta como .agent/skills. Son definiciones de "habilidades" que la IA debe leer para alinear su comportamiento con la arquitectura del proyecto.
¿Cómo funcionan en la práctica?
- Al iniciar una nueva tarea, la IA consulta estos archivos.
- Encuentra reglas como: "Para crear un nuevo componente, debes:
- Nombrarlo con un prefijo y un número de orden.
- Incluir un archivo de metadatos.
- Definir sus rutas siguiendo el patrón establecido."
- Con estas "instrucciones de taller", la IA puede generar código que se integre perfectamente con el resto de la aplicación, manteniendo la coherencia a lo largo del tiempo.
La conclusión es clave: gran parte del trabajo del desarrollador en este nuevo paradigma consistirá en dotar al proyecto de suficientes skills o habilidades. De la misma manera que hasta ahora documentábamos el código para que otros humanos lo entendieran, ahora tenemos que documentar las tareas y los procesos para que la IA pueda ejecutarlas de forma autónoma y coherente. Cada operación recurrente (crear un componente, añadir una ruta, modificar una plantilla) debe tener su contrapartida documentada en forma de "skill". Estos skills son la memoria a largo plazo del proyecto y el principal entregable del desarrollador-arquitecto.
Prompt Strategy: El arte de comunicarse con la IA
Si los skills son el "manual", el prompt es la "orden de trabajo". Un buen prompt en este contexto sigue una estructura que podríamos denominar Prompt Strategy: la manera sistemática de pedirle a la IA que genere nueva funcionalidad.
Un prompt efectivo contiene elementos clave:
"Tu tarea es crear el componente
[nombre], que debe [descripción funcional]. Usa la ruta:/mi-ruta. Para completar la tarea, revisa: -.agent/skills/manage-component/SKILL.md-.agent/skills/manage-templates/SKILL.md-src/component/[componente_ejemplo](como ejemplo). Define las rutas dinámicamente si es necesario, siguiendo el patrón usado por otros componentes."
Esta estrategia incluye:
- Identidad clara: Nombre del componente.
- Propósito funcional: Qué debe hacer.
- Punto de entrada: La URL.
- Referencias a la documentación: Los skills que la IA debe consultar.
- Un ejemplo concreto: Un componente real del que extraer patrones.
- Principios de diseño: Directrices de estilo.
Una buena Prompt Strategy reconoce que la IA es un "colaborador" que necesita contexto, ejemplos y reglas claras para operar eficazmente dentro de nuestro ecosistema de código.
Un salto cualitativo: Hacia un "desarrollo darwiniano" de componentes
La modularidad basada en componentes abre posibilidades fascinantes. Dado que cada componente es una unidad independiente, nada impide que, para una misma funcionalidad (por ejemplo, un sistema de comentarios), existan múltiples versiones simultáneas generadas por diferentes modelos de IA o en distintas sesiones.
Un desarrollador (o incluso un "supervisor IA") podría entonces:
- Ejecutar pruebas de rendimiento y seguridad sobre cada versión.
- Evaluar la calidad del código, la legibilidad o el consumo de recursos.
- Seleccionar la mejor implementación y promoverla a versión definitiva.
Esto convierte el proceso de desarrollo en un ciclo de generación, evaluación y selección, similar a un proceso evolutivo. Nuestro papel ya no sería escribir cada línea, sino diseñar el experimento, definir los criterios de selección y orquestar el flujo.
Conclusión: El nuevo rol del desarrollador como arquitecto-orquestador
Proyectos como neutral-starter-py nos obligan a reflexionar sobre el futuro de nuestra profesión. Si la IA puede escribir código cada vez más complejo, nuestro valor ya no residirá en la capacidad de teclear algoritmos, sino en:
- Diseñar arquitecturas que sean inherentemente "amigables para la IA", con límites claros y reglas explícitas.
- Definir los "skills" , es decir, documentar las tareas y procesos que la IA debe conocer para operar coherentemente. Esto es, en esencia, documentar el "cómo se hacen las cosas" en el proyecto.
- Crear Prompt Strategies efectivas que guíen a la IA hacia soluciones óptimas.
- Orquestar y evaluar el trabajo generado, decidiendo qué componentes merecen integrarse.
En este nuevo paradigma, el código no es solo para que lo lean los humanos, sino también para que lo interpreten y modifiquen las máquinas. La documentación ya no es solo para otros desarrolladores: es el combustible que permite a la IA operar de forma autónoma y alineada con nuestros objetivos.
La pregunta ya no es "¿cómo programo esto?", sino "¿cómo organizo el conocimiento, la arquitectura y las tareas para que la IA pueda programarlo conmigo, de forma coherente y fiable?". Responder a esta pregunta será, probablemente, la habilidad más valiosa del desarrollador en la próxima década.
Únete á comunidade
RexistrarseRexístrate para votar, comentar, gardar artigos e moito máis. Mantente ao día coas últimas publicacións de Renegados. Non estás seguro? Coñece como funciona.
Comentarios (0)