Marketplace-Publishing
Reiche eine Persona im Moonborn-Marketplace ein, durchlaufe die Moderation und lass andere dein Listing installieren oder forken.
Der Marketplace ist der Cross-Org-Distributionskanal: du veröffentlichst eine Persona, sie geht durch Moderation, Downstream- Nutzer installieren oder forken sie. Dieses Tutorial behandelt die Publisher-Seite.
1. Persona vorbereiten
Vor dem Einreichen lasse manuell ein Audit laufen und prüfe den Distinctiveness-Score. Listings, die das Audit nicht bestehen, werden in der Moderations-Queue auto-abgelehnt.
const audit = await client.personas.runAudit({ id: persona.id });
if (audit.overallScore < 4.0) {
console.log('Refine die Persona vor dem Publish — Audit zu niedrig.');
}2. Das Listing einreichen
const listing = await client.marketplace.publishListing({
personaId: persona.id,
license: 'CC-BY-4.0',
priceCents: 0,
description:
'Eine charakter-konsistente Customer-Support-Persona, getuned für SaaS-Onboarding.',
});
console.log(listing.status); // "in_review"Lizenz-Optionen: CC-BY-4.0, CC-BY-SA-4.0, CC0-1.0, plus eine
Moonborn-spezifische commercial-use-Lizenz für kostenpflichtige
Listings. Die Lizenz beeinflusst, welche Forks erlaubt sind
(ShareAlike heißt, Downstream-Forks müssen dieselbe Lizenz behalten).
3. Auf Moderation warten
Jedes neue Listing geht in in_review. Die Default-Policy gated
durch Human Review; das SLA-Ziel ist
marketplace.moderation.review_sla_hours (Standard 48 Stunden).
Drei Ausgänge:
published— das Listing ist live, Downstream-Installs/Forks entsperrt.unpublished— abgelehnt; das Listing gibt einen Verdict-Grund und einen Remediation-Hint zurück.in_review— für tiefere Review zurückgehalten (typisch, wenn die Auto-Policy etwas geflaggt hat, was ein Mensch bestätigen muss).
Abonniere marketplace.listing.published und
marketplace.listing.unpublished-Webhook-Events, wenn du das Outcome
in dein eigenes Produkt verdrahten willst.
4. Das Listing verwalten
Einmal veröffentlicht, kannst du Metadata aktualisieren ohne neu einzureichen:
await client.marketplace.updateListing({
id: listing.id,
description: 'Update: bearbeitet Billing-Eskalationen jetzt sauber.',
});Manuell unpublishen:
await client.marketplace.unpublishListing({ id: listing.id });Listings bleiben im Lineage-Baum, auch wenn unpublished — Downstream-
Forks sind nicht kaputt, aber das Listing erscheint nicht mehr in
/v1/marketplace/listings.
5. Installs und Forks lesen
const detail = await client.marketplace.getListing({ id: listing.id });
console.log(detail.downloads, detail.forks, detail.ratingsAvg);Jeder Install bumpt downloads. Jeder Fork bumpt forks und
schreibt eine Lineage-Kante mit Attribution zurück zu deinem
Listing (siehe Lineage + fork tree).
6. Commerce (Enterprise)
Kostenpflichtige Listings erfordern marketplace.commerce.enabled
(Enterprise-Tier-Gate) und ein Creator-Stripe-Connect-Konto. Der
Revenue-Split ist marketplace.commerce.revenue_share (Standard 0.7
— 70 % Creator, 30 % Plattform).
const creator = await client.marketplace.onboardCreator();
console.log(creator.stripeOnboardingUrl);
// Schick den Nutzer dorthin, um Stripe-Connect-Onboarding abzuschließen.Payouts triggern, wenn das Pending-Balance des Creators
marketplace.commerce.payout_min_usd (Standard $50) übersteigt.
Ein stündlicher Reconciliation-Cron auditiert usage_events gegen
Stripe-Records.
Ehrlicher Scope
Der Marketplace versendet Persona-Templates. Er versendet keine Chat-History, keinen Memory-State und keine workspace-scope'd Configuration. Jede Installation läuft gegen den eigenen Workspace des Installierenden.
Weiter
- Das Narrativ + Use Case: Marketplace publishing use case.
- Forks downstream tracken: Fork attribution guide.
- Marketplace API reference.