Fork-Attribution
Lies den Lineage-Baum, zähle Downstream-Forks, finde den kanonischen Ancestor jeder Persona.
Jeder Fork schreibt eine Parent-Kante in den Lineage-Baum. Queries:
Die Ancestry einer Persona finden
const lineage = await client.personas.getLineage({ id: persona.id });
console.log(lineage.ancestors); // root → ... → parent
console.log(lineage.root.id);Direkte + transitive Forks zählen
lineage.descendants gibt jede Persona zurück, die zu dieser
zurückreicht (transitive). lineage.children gibt die direkten
Forks zurück.
const lineage = await client.personas.getLineage({ id: canonical.id });
console.log({
directForks: lineage.children.length,
totalDescendants: lineage.descendants.length,
});Marketplace-Attribution-Graph durchlaufen
Listings publishen mit einer fromPersonaId. Wenn ein Downstream-
Nutzer installiert und dann forkt, erscheint das Original-Listing in
der Ancestry des Forks. Um den Downstream-Impact eines Listings zu
billen oder zu reporten:
const listing = await client.marketplace.getListing({ id: listing.id });
console.log({
downloads: listing.downloads, // Installs (keine weitere Mutation)
forks: listing.forks, // Installs, die neue Personas produzierten
ratingsAvg: listing.ratingsAvg,
});Cross-Org-Attribution
Ein Fork von einem Marketplace-Install respektiert die Lizenz des
Original-Listings (CC-BY / ShareAlike / commercial-use). Die Lineage-
Kante zeichnet sowohl den unmittelbaren Parent (den Install) als auch
das Marketplace-Listing auf — sichtbar in lineage.ancestors mit
einem marketplaceListingId-Breadcrumb.
Tarif
Lineage-Queries: jeder Tier. Marketplace-Cross-Org-Attribution: Free und höher (Listing muss public sein).