01 / 11
Seminario final — Ingeniería de Software

Una Arquitectura Unificada para el Desarrollo Autónomo de Software con Conciencia de Producto

Presento el diseño de un sistema que mantiene un grafo de conocimiento estructurado de inteligencia de producto — features, decisiones arquitectónicas, convenciones, transcripciones de reuniones, feedback de usuarios y métricas — y lo expone a agentes de código basados en LLM a través de un protocolo de herramientas, habilitando pipelines de desarrollo autónomo multi-sesión que construyen, revisan y despliegan código con contexto completo de producto.

Grafos de conocimiento de productoOrquestación de agentes LLMIngeniería de software autónoma

Marzo 2026

01 — Planteamiento del problema

La brecha de contexto en el desarrollo asistido por IA

Los agentes de código LLM actuales (Claude Code, Cursor, Copilot) operan con una única fuente de verdad: el codebase. No tienen acceso al contexto a nivel de producto del que dependen los desarrolladores humanos para tomar decisiones correctas.

Fig. 1 — Información disponible para los agentes de código hoyAgente de código LLM(lee código, escribe código)CodebaseArchivos, historial gitReunionesFeedback usuariosDecisionesConvencionesConocimiento de producto inaccesible (disperso en Notion, Jira, Confluence, Intercom, Slack, memoria)Prompt del usuarioAd-hoc, incompleto

El agente ve el código pero no el razonamiento detrás de él. El conocimiento de producto permanece fragmentado en herramientas desconectadas.

02 — Diseño del sistema

Una arquitectura de tres capas

Diseñé un sistema que unifica inteligencia de producto, gestión de tareas y orquestación de agentes en una única plataforma local. Cada capa alimenta a las demás a través de un grafo de conocimiento compartido.

Fig. 2 — Vista general de la arquitectura del sistemaDAEMON LOCALCapa 1: Inteligencia de productoGrafo de conocimiento — features, decisiones, convenciones, feedback, métricasCapa 2: Gestión de tareasBacklog nativo de grafo — tareas como nodos con inteligencia vinculadaCapa 3: Orquestador de agentesCiclo de vida de sesiones — crear, validar, terminar, encadenar instanciasIngestaReunionesFeedbackBug trackersPRDsCodebaseServidor MCPproduct.contextproduct.featureproduct.searchtask.nexttask.completeAlmacenamiento persistente de conocimientoSQLite + embeddings vectoriales (almacenamiento local)

Las tres capas comparten el mismo modelo de datos. El servidor MCP expone la inteligencia a los agentes de código via el protocolo estándar de herramientas.

03 — El grafo de conocimiento de producto

De documentos desconectados a inteligencia estructurada

Modelo el conocimiento de producto como nodos tipados con relaciones explícitas. Una tarea nunca es huérfana — se conecta al feature que afecta, la decisión que la condiciona, la reunión que la creó y el feedback que la justifica.

Fig. 3 — Grafo de producto: una tarea y sus conexionesTarea"Optimizar checkout mobile"Feature: CheckoutDecisión: Lazy loadReunión: Sprint Mar 2512 quejas de usuarios3 bugs relacionadosPR #847Métrica: 34% CVRComparado con un ticket de Jira, que almacena solo: título, estado, asignado, descripción.El grafo codifica por qué existe la tarea, qué la condiciona y cómo medir el éxito.
04 — Tipos de nodos de inteligencia

Objetos de primera clase en el grafo de producto

Compongo el grafo de conocimiento con siete categorías de nodos tipados. Cada nodo lleva metadatos estructurados y aristas explícitas hacia nodos relacionados.

Tipo de nodoDescripciónEjemplo
FeatureUna capacidad del producto con arquitectura, estado y métricasFlujo de checkout — Stripe, React SPA, 34% conversión
DecisiónUna elección arquitectónica o de producto registrada con razonamiento"Usar collaborative filtering" — 14 ene, elegido sobre content-based
ConvenciónUn estándar del equipo que el agente debe respetar"Todas las APIs retornan {data, error, meta}" — 47 endpoints siguen esto
ReuniónExtracto estructurado: decisiones, tareas, temas discutidosSprint planning Mar 25 — generó 3 tareas, 1 discusión de arquitectura
FeedbackSeñales de usuarios agrupadas y mapeadas a features12 quejas sobre velocidad de checkout — vinculado al feature checkout
MétricaKPI rastreado vinculado a features y tareasConversión mobile: 34%, objetivo 50%, tendencia bajista
BugDefecto mapeado a feature con impacto en usuariosImágenes del carrusel sin comprimir — afecta checkout, decisión CDN
05 — Modelo de orquestación de agentes

Pipeline multi-sesión con progresión con gates

Implemento un orquestador que gestiona sesiones aisladas de Claude Code como un pipeline secuencial. Cada sesión recibe un prompt específico según su rol y el segmento relevante de contexto de producto. Las sesiones son creadas, monitoreadas y terminadas por el proceso daemon.

Fig. 4 — Pipeline de ejecución de tareasDeveloperConstruir + testearGate: CIReviewerPR vs. decisionesGateIntegradorMerge + documentarGate humanoConflicto con decisiónarquitectónica detectadoNotificación pushal miembro del equipoSesión 1Sesión 2Sesión 3Cada sesión corre en un worktree git aislado con su propio proceso Claude Code. El daemon mata las sesiones completadas para liberar recursos.
06 — Interfaz del protocolo de herramientas

Superficie de herramientas MCP expuesta a los agentes

Expongo la inteligencia de producto a través del Model Context Protocol (MCP), haciéndola accesible a cualquier agente LLM compatible. El agente puede leer contexto antes de construir y escribir resultados de vuelta al completar.

Operaciones de lectura

// Comprensión completa del producto product.context() arquitectura, convenciones, design system // Feature específico con todos sus vínculos product.feature("checkout") PRD, bugs, feedback, decisiones, métricas // Búsqueda semántica en todo el conocimiento product.search("checkout mobile lento") citas de reuniones, quejas, causa raíz // Siguiente tarea priorizada con contexto task.next({ status: "ready" })

Operaciones de escritura

// Después de construir: documentar cambios product.document({ feature: "checkout", changes: "Agregado lazy loading..." }) // Señalar conflictos durante el desarrollo product.flag({ conflict: "Contradice decisión del 14 ene" }) // Resolver ítems del backlog task.complete("checkout-speed", { pr: "#847", resolved_bugs: ["carousel"] })

El ciclo lectura-escritura crea un bucle auto-reforzante: el agente construye con contexto, luego enriquece el grafo con lo que aprendió. Esto es lo que hace que el sistema mejore solo.

07 — Independencia del developer

El sistema corre solo. El developer decide, no opera.

El daemon corre en un servidor dedicado, VPS, o container — no en la laptop de nadie. Los pipelines se ejecutan 24/7. Cuando el sistema necesita una decisión humana, notifica al developer por el canal configurado.

Canales de comunicación

Configuro el canal una vez: Slack, Discord, WhatsApp (Twilio), email, o SMS. Toda interacción humano-sistema pasa por ahí. El developer responde "aprobado" desde el celular y el pipeline continúa.

Human gates inteligentes

El sistema envía notificaciones ricas: qué tarea se afecta, qué conflicto detectó, la decisión arquitectónica relevante, y botones de acción. No necesito abrir una terminal, un dashboard, ni una laptop.

ServidordaemonPipelineConflictoSlackWhatsAppAprobar / RechazarPipeline continúaSigue otra tareaFig. 5 — Flujo de notificación
08 — IA proactiva

El sistema no espera instrucciones. Busca problemas y oportunidades.

Implemento agentes de análisis que corren en schedule sobre el mismo orquestador. Cruzan el codebase con el grafo de producto para detectar lo que ningún humano está mirando.

Detección de bugs

Código que viola convenciones registradas en el grafo. Dependencias con CVEs conocidos. Features eliminadas con código huérfano. Áreas críticas sin cobertura de tests.

Detección de drift

"Decidimos usar lazy loading en enero, pero el carrusel de la página de producto todavía carga todo sincrónico." Cruza decisiones registradas con implementación real.

Oportunidades de mejora

"5 usuarios pidieron filtros en la búsqueda esta semana. La data ya está indexada." Agrupa feedback, detecta quick wins, y los propone como tareas priorizadas.

Cada hallazgo genera un ítem de backlog con evidencia completa (feature afectado, decisión relevante, impacto estimado) y notifica al equipo según la severidad configurada.

09 — Versionado de producto

No versiono código. Versiono el producto completo.

Un tag de versión en mi sistema captura el estado completo: código, features, decisiones, convenciones, métricas, y backlog. Un rollback restaura todo ese contexto, no solo un commit.

Fig. 6 — Composición de una versión de productoTAG v2.4.0Códigoabc123fFeatures12 activosDecisiones34 vigentesConvenciones8 activasMétricasSnapshotBacklog12 / 3 res.rollback v2.4.0Restaura código + inteligencia completa. Los agentes post-rollback construyen con el contexto de v2.4.0.

Diff entre versiones

Comparo dos tags y veo no solo cambios de código, sino qué features cambiaron, qué decisiones se tomaron, qué métricas se movieron, y qué feedback se abordó.

Rollback consciente

Después de un rollback, los agentes construyen con la inteligencia de la versión restaurada, no con el estado roto. El sistema sabe cómo era el producto cuando funcionaba.

10 — Análisis comparativo

Posicionamiento frente a herramientas existentes

No encontré ningún sistema que combine las cinco capas. Cada herramienta del mercado aborda una sola dimensión.

SistemaInteligenciaGestiónOrquestaciónProactividadVersionado
Jira / LinearNoTickets planosNoNoNo
NotionDocs sueltosNoNoNoNo
DevinSolo códigoNo1 sesiónNoNo
LangSmithPost-deployNoNoNoNo
Mi sistemaGrafoGrafoMulti-sesiónContinuaProducto

El diferenciador no es ninguna capa individual sino la integración entre las cinco. La inteligencia alimenta la gestión, ambas alimentan al orquestador, la proactividad enriquece el grafo continuamente, y el versionado captura el estado completo en cada release.