Was es tut
Erfasst eine Reihe von Finanzierungsplattformen und erstellt einen Plan: welche Oberflächen angezeigt werden sollen,
in welcher Reihenfolge, mit welchem Label und Gate. Jede Plattform wird mittels eines
kanonischen Handles referenziert (z. B. patreon: fedpromptly) und speichert oder sendet niemals eine
Live-Checkout-URL, Client-ID, veröffentlichten Schlüssel, Buy-Button-ID oder Händler-ID.
Voraussetzungen
bashundjqimPATHreferences/funding-links.jsonvorhandenreferences/embeds.mdvorhanden (warum hier kein Embed-HTML gespeichert wird)
Umgebung prüfen
Führe vor allem anderen Folgendes aus:
command -v jq && command -v bash
Fehlt eines von beiden, stoppen und melden: MISSING_DEP: jq.
Schritt-für-Schritt-Anleitung
-
Stelle sicher, dass die Referenzdaten vorhanden sind:
test -f references/funding-links.json -
Für jeden Plattform-Handle den passenden Planeintrag nachschlagen:
bash scripts/classify.sh "patreon:fedpromptly" -
Den Plan in dieser Reihenfolge zusammenstellen (zuerst wiederkehrend, zuletzt einmalig):
- GitHub Sponsors
- Patreon
- Ko-fi
- Buy Me a Coffee
- PayPal Subscription
- Stripe
- Crypto (NOWPayments)
-
Für jeden Eintrag ausgeben:
label,handle,class,gateunddisclosure(falls vorhanden). Niemals eine URL, einen Schlüssel oder eine ID ausgeben. -
Übergibt dir ein Benutzer eine Live-Checkout-URL, dann plane sie nicht. Löse sie zum kanonischen Handle auf, plane diesen und melde
RESOLVED: <url> -> <handle>.
Niemals annehmen
- Gib niemals eine Client-ID, einen veröffentlichten Schlüssel, eine Buy-Button-ID oder eine Händler-ID in einem Plan aus. Der Plan referenziert Plattformen ausschließlich über kanonische Handles.
- Platziere niemals eine Live-Checkout-URL im Plan. Nur kanonische Landingpages.
- Nimm niemals an, Patreon sei eingestellt, nur weil es auf einer bestimmten Seite fehlt.
Gleiche mit
references/funding-links.jsonab, bevor du ausgibst. - Gürte einen Zahlungsbutton niemals mit einer Altersprüfung. Zahlung ist kein altersbeschränkter Inhalt; falls Erwachseneninhalte existieren, gürte den Inhalt serverseitig, nicht den Button.
- Gib niemals HTML aus. Der Plan sind Daten.
- Speichere niemals eine Widget-ID, Buy-Button-ID oder einen Bild-Button-Token. Siehe
references/embeds.mdfür die Begründung, warum das Embed jeder Plattform außerhalb des Repos bleibt.
Ausgabe
Ein Finanzierungsplan: geordnete Liste von {label, handle, class, gate, disclosure}.
Keine URLs, keine Schlüssel, keine IDs, kein HTML.
Fehlerbehandlung
classify.shgibtUnknownzurück → meldeUNCLASSIFIED: <handle>, stoppe.- Eine Live-Anmeldedaten werden in einer überwachten Datei erkannt → melde
CREDENTIAL_LEAK: <path>, stoppe. references/funding-links.jsonfehlt → meldeMISSING_REF, stoppe.