Propuesta, no un sistema en marcha

Genealogía del software para una era de descendientes generados

CodeAncestry

Un protocolo de linaje vivo para genomas de software, herencia entre agentes y ecosistemas de software evolutivos.Carlos Carpio · Investigador independiente y constructor de software · agosto de 2026

El software ya se puede copiar, bifurcar, empaquetar y desplegar. Lo que no puede es explicarse: qué capacidades heredó un proyecto, qué comportamientos se cambiaron a propósito, qué agente propuso un cambio y si una mejora encontrada río abajo debería volver río arriba. Este artículo propone una capa que lleve esas respuestas.

El vocabulario es biológico; el sustrato no lo es. Bajo la metáfora, el artículo se queda en ingeniería ordinaria: control de versiones, manifiestos, pruebas, firmas, motores de política, procedencia y mensajería controlada entre agentes.

Empezó como una bifurcación que no bastaba.

La idea salió de KEYLIT, una aplicación de aprendizaje de piano asistida por IA con un diseño, un repositorio, una estructura de lecciones y una interfaz concretos. Personas distintas podrían querer, con toda razón, formas radicalmente distintas del mismo sistema: una versión infantil con gamificación, otra centrada en la accesibilidad con navegación por voz, una versión de aula con paneles para docentes, una localización en español o quechua, una versión de composición que reutilice el motor MIDI, o una versión encarnada donde un avatar se convierte en el profesor.

La respuesta convencional es una rama, una bifurcación, una plantilla o un repositorio nuevo. Pero cuanto más se aleja un derivado, más difícil resulta conservar una relación útil con el original. Las actualizaciones de arriba chocan con la personalización local, las invenciones de abajo nunca regresan al ancestro, y un agente de programación con IA no tiene forma de saber qué partes se heredaron, cuáles son adaptaciones locales soberanas y cuáles no deben sobrescribirse nunca.

¿Y si crear una aplicación personalizada no se tratara solo como copiar código, sino como crear un hijo que sabe qué heredó?

La pregunta que responde el resto del artículo

Cinco palabras, definidas antes de usarlas.

La propuesta es una capa de composición, no un reemplazo de Git, los SBOM, los estándares de procedencia, las líneas de producto ni los protocolos de agentes. Los enlaza alrededor de un vocabulario pequeño, y el vocabulario tiene que ser preciso antes de que nada de esto signifique algo.

  1. 01

    Genoma

    De qué declara estar hecho un proyecto

    Un manifiesto semántico legible por máquina que describe las capacidades, implementaciones, interfaces, pruebas, políticas, procedencia y relaciones de herencia de un proyecto. No es un modelo de variabilidad, sino un registro histórico y operativo de cómo se heredaron y cambiaron las capacidades.

  2. 02

    Gen

    Una capacidad, no un archivo

    Una capacidad semántica con referencias a su implementación: identificador, propósito, interfaz, implementación, pruebas, dependencias, origen, padre, licencia, política y evidencia. Un gen puede abarcar varios repositorios, y algunos son solo de configuración o solo de política. Dar por hecho que una capacidad equivale a un paquete es el error común que este modelo intenta evitar.

  3. 03

    Mutación

    Un cambio intencional, con su evidencia

    Una transformación deliberada de un gen o de un conjunto de genes, acompañada de evidencia: pruebas, mediciones, análisis de seguridad, estudios con personas usuarias o revisión humana. Una mutación es una afirmación sobre un cambio, y la afirmación pretende ser verificable en vez de anecdótica.

  4. 04

    ADN de agente

    Una identidad acotada para el agente de un proyecto

    Un manifiesto de identidad y política, legible por máquina, para el agente asociado a un proyecto: identificadores de linaje, rol, permisos de herramientas, referencias de memoria, privilegios de mutación, alcance de comunicación y adaptaciones locales protegidas. No son los pesos del modelo: un proyecto puede cambiar de proveedor y conservar la misma identidad de linaje.

  5. 05

    Grafo de linaje

    Un multigrafo dirigido, no un árbol

    Proyectos, genes, agentes y artefactos de conocimiento como vértices; ascendencia, derivación de genes, delegación entre agentes y propagación de conocimiento como conjuntos de aristas distintos. Admite herencia vertical, ramificación, fusión, recombinación y transferencia lateral entre familias sin parentesco.

Cuatro formas de descender de algo.

Aquí la metáfora es musical antes que biológica. Una canción produce versiones, remezclas, samples y reinterpretaciones que siguen siendo reconociblemente parientes mientras se vuelven distintas de verdad. Aplicado al software, esto replantea la obra derivada: de “copiar y diferenciar” a heredar y expresar con intención.

  1. 01

    Hijo / Bifurcación

    Se queda cerca

    Conserva casi todo del padre y sigue recibiendo de él las mejoras compatibles.

  2. 02

    Remezcla

    Guarda las piezas, cambia la experiencia

    Reutiliza capacidades seleccionadas mientras cambia de forma sustancial la experiencia o el comportamiento.

  3. 03

    Versión

    La misma idea, otro instrumento

    Conserva la especificación funcional o el concepto, pero lo reimplementa en otro stack, lenguaje, plataforma o arquitectura.

  4. 04

    Híbrido

    Más de un padre

    Combina genes de varios proyectos en un nuevo descendiente, sujeto a restricciones de licencia y compatibilidad.

El segundo salto: el descendiente lleva un guardián.

El concepto se vuelve más radical cuando cada proyecto lleva no solo un genoma, sino un agente ligado a él. Ese agente no es un generador de código. Se plantea como intérprete del linaje del proyecto: qué ancestros existen, qué genes se heredaron y cuáles se modificaron localmente, dónde están los límites arquitectónicos, qué parientes son compatibles, qué mutaciones se aceptaron o rechazaron antes, y qué puede compartirse hacia arriba, hacia abajo o de lado.

Qué declara el manifiesto

  1. 01

    Identidad

    Quién es este agente

    Un identificador de linaje único, sus agentes padre y ancestros, y el proyecto y genoma a los que pertenece.

  2. 02

    Rol y capacidades

    Para qué está

    El rol declarado —guardián del linaje, por ejemplo— y las capacidades que ese rol tiene permitido ejercer.

  3. 03

    Permisos de herramientas

    Qué puede tocar

    Permisos de herramientas y límites de confianza, de modo que la autoridad se conceda de forma explícita en vez de deducirse del acceso.

  4. 04

    Referencias de memoria

    Qué puede recordar

    Referencias de memoria y una política de retención, separadas del historial de conversación en bruto que las produjo.

  5. 05

    Alcance de lo compartido

    Qué puede salir del proyecto

    Qué puede compartirse —resúmenes de mediciones, propuestas de mutación firmadas, lecciones no privadas— y qué no: datos privados de personas usuarias, secretos, registros de conversación sin restricción.

  6. 06

    Rasgos protegidos

    Qué no puede sobrescribirse nunca

    Las adaptaciones locales que un descendiente declara soberanas: una política de seguridad infantil, una interfaz simplificada, una decisión de accesibilidad que río arriba no debe revertir en silencio.

Si la historia de un proyecto queda atada al modelo de un proveedor, la continuidad se rompe cada vez que el equipo cambia de herramienta. Hacer del proyecto la unidad estable —y mantener la identidad de linaje separada del modelo que hay detrás— es lo que permitiría que otro asistente, un modelo local o un futuro desarrollador autónomo actúen a través de la misma identidad, si se les autoriza.

Los parientes pueden aprender unos de otros. Copiarse, no.

Esta es la regla de seguridad de la que cuelga el resto del diseño. Una mutación exitosa en un descendiente se convierte en una propuesta candidata, nunca en una actualización automática, y cada proyecto que la recibe sigue siendo soberano para decidir si la adopta. Así la mejora puede viajar hacia arriba al ancestro, hacia abajo a los descendientes y de lado entre familias sin parentesco, siempre como propuesta con evidencia adjunta.

El recorrido de una propuesta

  1. 01Descubrir
  2. 02Describir
  3. 03Atestiguar
  4. 04Simular
  5. 05Probar
  6. 06Revisar
  7. 07Adoptar / Rechazar / Poner en cuarentena

La aptitud es un vector, no una nota

La aptitud biológica es una analogía imperfecta a propósito. Una mutación candidata debería evaluarse en varias dimensiones a la vez, y no debería exigirse una suma ponderada universal: un robot médico y una web de aprendizaje musical no tienen por qué optimizar el mismo objetivo. La política decide qué dimensiones son obligatorias y cuáles solo informativas.

Corrección
Corrección y calidad de las pruebas.
Seguridad
Seguridad informática y seguridad de uso.
Rendimiento
Rendimiento y uso de recursos.
Valor de uso
Métricas de valor para quien lo usa.
Compatibilidad
Compatibilidad entre parientes.
Fiabilidad
Fiabilidad y confianza en la reversión.
Legal
Compatibilidad legal y de licencias.

Lo que un linaje conectado hace posible y, por lo tanto, tiene que impedir

  1. 01

    Envenenamiento de mutaciones

    Una puerta trasera con buena nota

    Un descendiente malicioso podría anunciar una mutación atractiva que lleve una puerta trasera. Las contramedidas son procedencia firmada, pruebas reproducibles, aislamiento, validación independiente, puntuaciones de confianza, listas de permitidos y adopción sujeta a política.

  2. 02

    Gusanos de propagación

    Una epidemia de actualizaciones

    La propagación automática crearía un análogo de una epidemia, así que hay que prohibir la fusión automática de mutaciones no confiables por defecto. La adopción exige política explícita y umbrales de evidencia.

  3. 03

    Suplantación de agentes

    Afirmar no es ser

    Que un modelo diga ser cierto agente de linaje no basta. La identidad debe estar ligada criptográficamente a la autorización del proyecto y controlada por quien lo posee.

  4. 04

    Fuga de privacidad

    Lecciones, no memorias

    Los agentes deberían intercambiar paquetes de conocimiento estructurados y aprobados por política, con alcance y caducidad, en vez de memorias en bruto, código propietario, datos de personas usuarias o credenciales.

  5. 05

    Contaminación de licencias

    Una restricción dura

    La hibridación entre proyectos puede crear obligaciones incompatibles, así que cada gen lleva metadatos de licencia y atribución, y el resolutor trata la compatibilidad de licencias como restricción dura, no como aviso cosmético.

  6. 06

    Manipulación de métricas

    Por qué la aptitud sigue siendo múltiple

    Si la aptitud influye en la adopción, agentes y desarrolladores optimizarán lo que se ve. Mantenerla multidimensional, auditable y específica de cada dominio es lo que resiste la optimización de un solo número.

Una capa superpuesta, dibujada en cinco niveles.

Git sigue siendo la fuente autorizada del historial de código. La propuesta evita a propósito construir un almacén de código paralelo y no trazable: los objetos de genoma y linaje referencian commits inmutables, etiquetas, artefactos, identificadores de paquete y hashes de contenido siempre que sea posible. Un MVP puede funcionar sobre PostgreSQL con consultas recursivas; una base de datos de grafos resulta útil a escala, pero no hace falta para empezar.

  1. 01

    Interfaces de personas y agentes

    Por dónde se entra

    Asistentes de programación, IDE, sistemas de CI/CD, robots y agentes locales.

  2. 02

    Capa de interoperabilidad

    Cómo se conectan

    Adaptadores de herramientas estilo MCP, mensajería estilo A2A y conectores de repositorio y CI, para que una red de linaje no quede atada a un solo proveedor de modelos.

  3. 03

    Motor de linaje

    La contribución propuesta

    Grafo de proyectos, registro de genes, ADN de agente, propuestas de mutación, motor de política y resolutor de compatibilidad. La compatibilidad combina interfaces declaradas y versiones semánticas, restricciones de dependencias y de construcción, pruebas automatizadas, política de seguridad, obligaciones de licencia, límites del entorno y adaptaciones locales protegidas.

  4. 04

    Capa de evidencia y confianza

    Por qué se puede creer una afirmación

    Firmas, atestaciones SLSA e in-toto, referencias de SBOM en SPDX o CycloneDX, pruebas, mediciones y registros de revisión. Un registro de mutación lleva a la vez la intención semántica y la evidencia verificable de construcción y pruebas.

  5. 05

    Fuente de verdad y almacenamiento

    Dónde vive de verdad

    Repositorios Git, almacenes de artefactos, una base de datos de grafos o de índices y un almacén de memoria cifrado.

Primero un esquema pequeño. Los sistemas encarnados, al final.

La primera especificación debería mantenerse pequeña a propósito. Modelar de entrada cada analogía biológica compraría complejidad antes que comprensión.

  1. 01

    Fase 0

    Terminología y esquema

    Una especificación abierta mínima para los registros de proyecto, genoma, ADN de agente, mutación y adopción, más identificadores direccionados por contenido y firmas.

  2. 02

    Fase 1

    Un MVP conectado a repositorios

    Autenticar, elegir un repositorio, analizar manifiestos, estructura, pruebas y documentación, dejar que un agente proponga un genoma semántico, exigir confirmación humana de genes y límites, guardar el genoma en el repositorio, crear un hijo con metadatos de herencia explícitos y dibujar el primer grafo de linaje.

  3. 03

    Fase 2

    Propuestas de mutación

    Registros de mutación a nivel de gen, pruebas de compatibilidad, evidencia medida, firma y flujos de propuesta hacia arriba y hacia abajo, integrados con atestaciones y referencias de SBOM donde resulte útil.

  4. 04

    Fase 3

    Linaje multiagente

    ADN de agente persistente y adaptadores neutrales respecto al proveedor, para que un proyecto pueda cambiar de modelo con el tiempo conservando una sola identidad de linaje y su política.

  5. 05

    Fase 4

    Registro de genes entre familias

    Descubrimiento de genes entre proyectos sin parentesco, lo que exige licenciamiento, seguridad, gobernanza de esquemas y puntuación de confianza sólidos antes de intentarlo con seguridad.

  6. 06

    Fase 5

    Sistemas encarnados y de vida larga

    Extensión a firmware, configuraciones de hardware, comportamientos de robots, versiones de modelos y casos de seguridad, donde la genealogía de máquinas pasa a ser operativamente relevante y no solo cosa de quien programa.

Qué habría que medir.

Las afirmaciones centrales son comprobables, y ninguna se ha comprobado. Un primer estudio podría crear varios descendientes de un mismo proyecto y comparar dos formas de mantenerlos a lo largo de una secuencia de cambios: bifurcaciones ordinarias con fusión y revisión manuales como referencia, y genomas explícitos con genes protegidos y propuestas conscientes del linaje como tratamiento.

  1. RQ1

    ¿Se pueden generar genomas semánticos con precisión suficiente para que quien desarrolla los acepte con poca corrección?

  2. RQ2

    ¿La herencia a nivel de gen reduce el esfuerzo de mantener descendientes especializados frente a las bifurcaciones convencionales?

  3. RQ3

    ¿Pueden los agentes de linaje detectar mejoras reutilizables de río abajo sin aumentar el riesgo de regresión?

  4. RQ4

    ¿Un ADN de agente explícito mejora la continuidad cuando un proyecto cambia de proveedor de programación con IA?

  5. RQ5

    ¿La procedencia de las mutaciones mejora la confianza de quien desarrolla y la velocidad de depuración?

  6. RQ6

    ¿Cómo debería medirse la aptitud sin fomentar la manipulación de métricas ni una optimización insegura?

  7. RQ7

    ¿Qué escala de grafo, patrones de consulta y garantías de consistencia hacen falta para millones de proyectos y miles de millones de relaciones entre genes?

  8. RQ8

    ¿Cómo pueden interoperar los linajes propietarios y los de código abierto sin filtrar código privado ni datos de personas usuarias?

Por dónde podría fallar.

La propuesta se enfrenta a problemas conceptuales y de ingeniería reales, y debería empezar como un sistema pragmático de procedencia semántica con abstracciones evolutivas opcionales, no como un intento de meter toda la ingeniería de software en vocabulario biológico.

  1. 01

    Límites ambiguos

    Qué cuenta como gen

    Los límites semánticos son genuinamente ambiguos, y distintas personas desarrolladoras discreparán sobre dónde termina una capacidad y empieza la siguiente.

  2. 02

    Error de extracción

    Un genoma puede estar mal

    La extracción de genomas por IA puede alucinar relaciones o inferir mal la intención; por eso la confirmación humana está dentro del MVP y no después de él.

  3. 03

    Cambio entrelazado

    No todo se descompone

    Muchos cambios reales abarcan varias capacidades a la vez y no se pueden atribuir con limpieza a un solo gen.

  4. 04

    Peso legal y social

    La ascendencia es delicada

    La procedencia puede dar a entender atribución, propiedad o responsabilidad. Esas implicaciones hay que representarlas con cuidado, no afirmarlas con una arista de grafo.

  5. 05

    Superficie de ataque

    Conectar es arriesgar

    Un linaje conectado de forma continua crea una exposición de seguridad y un riesgo de privacidad que una bifurcación desconectada sencillamente no tiene.

  6. 06

    Ruido en el grafo

    Demasiadas mutaciones

    Si cada cambio trivial se registra como mutación, un grafo de linaje grande se vuelve ruido y desaparece la señal que debía llevar.

  7. 07

    Deriva de la metáfora

    El software no está vivo

    La evolución del software es de ingeniería, guiada por políticas y a menudo discontinua a propósito. La metáfora genética engaña en cuanto se toma al pie de la letra.

Límite de publicación

01Estado de la evidencia
Artículo conceptualUna propuesta escrita y una agenda de investigación. Aquí no se informa de ninguna implementación, medición ni estudio con personas usuarias.
02Estado del sistema
No hay nada funcionandoDetrás de esta ruta no hay motor de linaje, registro de genes, red de agentes, servicio alojado ni datos en vivo.
03Adopción
No es un estándarCodeAncestry no es una especificación aceptada y no afirma adopción, socios, grupo de trabajo ni respaldo alguno.
04Nombre
Título de trabajoEl nombre es provisional. Las comprobaciones de nombre, dominio y marca están pendientes y habría que completarlas antes de cualquier lanzamiento.

Un cambio de pregunta, antes que un producto.

El control de versiones pregunta qué líneas cambiaron. La gestión de dependencias, qué paquetes se incluyen. La procedencia, cómo se produjo un artefacto. Un genoma de software añade otra pregunta: ¿qué capacidades significativas se heredaron, mutaron, recombinaron o aprendieron a lo largo de la familia? Esa pregunta se vuelve más difícil de esquivar a medida que los agentes abaratan la producción de descendientes más rápido de lo que las personas pueden seguirlos.