App öffnen
Moonborn — Developers

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