Copy-paste prompts for an external agent with its own
vision-capable LLM (e.g. GitHub Copilot CLI, Claude Code) to drive the Discover API - see
project memory for the staged rollout. Base URL: https://whale.sebastianchristoph.com/
1. Analyze ALL products in one shop (staged for review)
Agent picks a shop itself and posts suggestions -
nothing goes live until a human accepts them on that shop's "AI suggestions" page.
Kontext: Du prüfst Produkt-Matches für ein internes Preisvergleichs-Tool (Paula's
Choice Produkte bei verschiedenen Webshops vs. Amazon, zum Schutz der Amazon-Buybox). Die
API-Antwort enthält bereits alle Vergleichsdaten, die du brauchst - kein Vorwissen über unseren
Katalog nötig. Kein Auth/API-Key nötig (Test-Setup, lauscht nur auf dieser internen IP). In
candidates[]: our_score ist NUR ein Hinweis unseres eigenen, schwächeren Text/Bild-Abgleichs,
keine Vorentscheidung - urteile selbst anhand Bild, Titel und Größe. sku_match=true bedeutet
eine exakte interne Artikelnummer-Übereinstimmung (starkes Zusatzsignal, aber kein Automatismus).
1. Ruf GET https://whale.sebastianchristoph.com/api/discover/ready-shops auf und wähle EINEN Shop aus (deine Wahl).
2. Ruf GET https://whale.sebastianchristoph.com/api/discover/{storefront_id}/tasks für diesen Shop auf. tasks[] enthält pro
Produkt die Referenzwahrheit (product_name, product_size, product_image_url - aus der
Kunden-CSV) und candidates[] (title, size, image_url, our_score als reiner Hinweis, keine
Vorentscheidung).
3. Prüfe für JEDES Produkt jeden Kandidaten anhand von drei Signalen:
- Bild: product_image_url vs. candidate.image_url visuell vergleichen.
- Titel: inhaltlich dasselbe Produkt, auch bei anderer Formulierung/Sprache.
- Größe: product_size muss mit der Kandidaten-Größe übereinstimmen.
4. Eindeutiger Treffer: POST https://whale.sebastianchristoph.com/api/discover/{storefront_id}/suggest mit
{"asin": "...", "url": "...", "title": "...", "image_url": "...",
"reasoning": "<kurze Begründung>"}. Schreibt NICHTS live, nur ein Vorschlag zur Prüfung.
5. Kein eindeutiger Treffer: Produkt überspringen, kein Call nötig.
6. Für alle Produkte des Shops wiederholen. Am Ende berichten: Shop, Anzahl Vorschläge, Anzahl
übersprungen.
Ruf NICHTS unter /api/discover/*/accept auf - das übernimmt sofort live, hier geht's nur ums
Vorschlagen. Die Vorschläge landen zur Prüfung unter https://whale.sebastianchristoph.com/storefront/{storefront_id}/ai-suggestions.
2. Analyze ONE random unmatched product (quick spot-test)
Picks a random shop + product, reports back, asks
you to confirm in chat before anything is accepted.
Kontext: Du prüfst Produkt-Matches für ein internes Preisvergleichs-Tool (Paula's
Choice Produkte bei verschiedenen Webshops vs. Amazon, zum Schutz der Amazon-Buybox). Die
API-Antwort enthält bereits alle Vergleichsdaten, die du brauchst - kein Vorwissen über unseren
Katalog nötig. Kein Auth/API-Key nötig (Test-Setup, lauscht nur auf dieser internen IP). In
candidates[]: our_score ist NUR ein Hinweis unseres eigenen, schwächeren Text/Bild-Abgleichs,
keine Vorentscheidung - urteile selbst anhand Bild, Titel und Größe. sku_match=true bedeutet
eine exakte interne Artikelnummer-Übereinstimmung (starkes Zusatzsignal, aber kein Automatismus).
1. Ruf GET https://whale.sebastianchristoph.com/api/discover/random-task auf. Die Antwort enthält
storefront_id, asin, die Referenzwahrheit (product_name, product_size, product_image_url)
und candidates[] (title, size, image_url, our_score als reiner Hinweis).
2. Prüfe jeden Kandidaten anhand von drei Signalen:
- Bild: product_image_url vs. candidate.image_url visuell vergleichen.
- Titel: inhaltlich dasselbe Produkt, auch bei anderer Formulierung/Sprache.
- Größe: product_size muss mit der Kandidaten-Größe übereinstimmen.
3. Gib mir KEINE automatische Bestätigung. Nenne in deinem Bericht IMMER zuerst Shop-Name,
storefront_id, ASIN und Produktname, die dir random-task gegeben hat (damit ich das
nachverfolgen kann) - auch wenn kein Kandidat passt. Berichte dann, ob ein Kandidat eindeutig
passt (welcher, mit Begründung je Signal) oder keiner passt.
4. Ruf NICHT POST https://whale.sebastianchristoph.com/api/discover/{storefront_id}/accept auf, bevor ich das bestätigt habe.
Wenn ich bestätige: ruf den accept-Endpunkt mit {"asin": "<ASIN>", "url": "<Kandidaten-URL>",
"image_url": "<Kandidaten-Bild-URL>", "title": "<Kandidaten-Titel>"} auf - title nicht
weglassen, es wird als Alias-Name für dieses Produkt gespeichert und hilft beim Identifizieren
in ANDEREN Shops.
3. Analyze ONE specific product in ONE specific shop