cavioca

Atribución y lineage

5 min

Atribución y lineage

Una de las pocas decisiones estructurales que cavioca tomó pronto es que el lineage entre forks se guarda desde el día uno. Aunque hoy no se traduzca en reparto económico, queremos que el día que sí lo haga no haya que reconstruir nada hacia atrás: los datos ya están ahí.

Esta página describe qué guarda cavioca hoy, dónde se ve, y qué no se va a inventar.

Qué se guarda hoy

Cuando alguien forkea una app, cavioca persiste:

  • parent_app_id en el fork — apunta a la app de la que salió.
  • La fecha de fork (implícita en la creación de la app hija).
  • El usuario que hizo el fork (autor de la app hija).

Con esa información, cualquier app puede reconstruir tanto:

  • Su cadena de ancestros — yo vengo de B, B vino de A.
  • Sus descendientes directos — quién ha forkeado mi versión.

No se guarda "qué fragmentos concretos del código se copiaron" ni un diff entre fork y original — sólo el vínculo entre apps.

Dónde se ve hoy: la página de una app

En /apps/[id], dentro del panel de la app, hay una sección de lineage que muestra:

  • La cadena de ancestros (la app original y los forks intermedios hasta llegar a la actual).
  • El número total de forks directos de esta app.
  • La lista de forks directos visibles, con autor y enlace a cada uno.

stub Captura de la sección Lineage en /apps/[id]: una columna a la derecha con "Ancestors" arriba y "Direct forks" debajo, cada entrada con avatar + nombre de la app + autor.

Si una app no tiene ancestros (es un "trunk", no un fork), la sección sólo muestra los forks directos. Si todavía nadie la ha forkeado, lo dice explícitamente: "No-one has forked this app yet."

El panel de atribución en tu perfil

En /u/<tu-username> hay un panel llamado Referral attribution que muestra signups + shares de tus apps. Es importante no confundirlo con el lineage: ese panel mide referrals (gente que llegó vía un enlace tuyo y se registró), no forks.

open Un panel de lineage propio en /u/<username> — "estos forks vienen de mí", agregado por autor — no existe todavía como vista separada. La información existe en la base de datos y se puede componer cruzando parent_app_id con tus apps, pero el dashboard que lo presenta limpio está pendiente.

Lo que cavioca no hace hoy

Esta es la parte importante de esta página: hoy no hay reparto económico de ningún tipo. Ni revenue-split, ni regalías, ni créditos automáticos para el creador original cuando alguien forkea o usa una versión derivada.

deferred El revenue-split basado en lineage — cuando una app monetice, parte del ingreso fluye hacia atrás por la cadena de forks — es una intención de diseño explícita, y el hecho de guardar el lineage desde el día uno está pensado precisamente para soportarlo. Pero el sistema económico que lo haría posible (créditos, pagos, monetización de apps) está aún por construir. Detalles en [[DOC6-monetizacion]].

Mientras tanto, asumir cualquiera de estas cosas sería falso:

  • Que forkear una app te obliga a algo económicamente.
  • Que el creador original cobra "algo" cuando forkeas su app.
  • Que publicar un fork popular te genera ingresos pasivos.

Nada de eso ocurre hoy. Cuando ocurra, lo diremos aquí con números concretos, no con promesas.

¿Por qué guardar el lineage si no lo monetizamos hoy?

Tres motivos prácticos:

  1. Trazabilidad. Saber de dónde viene una app es útil aunque nunca haya dinero de por medio: para auditar, para entender qué ideas se propagan, para que el crédito sea visible.
  2. Reversibilidad. Si en algún momento un creador quiere retirar su app del marketplace, ver qué forks dependen de ella nos ayuda a comunicarlo bien.
  3. Opciones abiertas. No tomar la decisión de monetizar hoy no nos obliga a tomarla nunca, pero tener los datos sí nos deja la opción de hacerlo cuando tenga sentido — sin pedirle a la gente que vuelva a etiquetar el origen de sus apps a posteriori.

Borrar tu fork

open Borrar un fork tuyo lo retira del marketplace y de la lista de forks directos del padre. La cadena de lineage en sentido contrario (los descendientes de tu fork) se queda huérfana en el medio — todavía no hay un comportamiento formalizado para ese caso. Si te afecta, escribe a [email protected] y lo discutimos caso por caso mientras estabilizamos la política.