原始内容
name: "marktplaats-publisher" description: "Marktplaats-advertenties voorbereiden, plaatsen/bewerken, copy-QA, preflight, live-verificatie en register." metadata: {"clawdbot":{"emoji":"🇳🇱","requires":{"bins":["node"]}}}
Marktplaats Publisher
Gebruik deze skill voor normale Marktplaats-advertenties: voorbereiden, plaatsen, bewerken, live controleren en lokaal registreren.
De workflow is command-first. Proceduretekst is alleen toelichting. Als een gate faalt, stop je.
Voor kleinere modellen: doe steeds een fase, lees de output, en ga pas door als de vorige fase aantoonbaar geslaagd is. De scripts zijn harde gates; publiceren en UI-invulwerk blijven browserwerk met verificatie, geen blinde submit-flow.
Setup En Modelmodus
Als de taak installatie, eerste setup of herstel van de skill is, laad references/setup-small-model-nl.md.
Package-identiteit:
- correcte skill/package:
marktplaats-publisher; - oude namen zoals
marktplaats,marktplaats-nl-publisherofpvoo/marktplaatszijn niet de doel-skill; - vereiste runtime: Node.js 18 of nieuwer;
- vereiste smoke-test:
npm testvanuit de skillmap.
Voor lichte modellen zoals GPT-4.5 mini of de lokaal beschikbare mini-route geldt dit contract:
- voer steeds precies een gate uit;
- lees de output volledig;
- ga alleen door bij expliciet
PASS,self-test okof exitcode 0 met verwachte output; - bij failure: repareer een oorzaak, draai dezelfde gate opnieuw, maximaal twee herstelpogingen per foutklasse;
- publiceer, bewerk of submit niets als setup, copy-QA, preflight of probe niet aantoonbaar groen is;
- houd per advertentie een klein statusblok bij met
adDir,adJson,description,currentGate,lastCommand,resultennextStep.
Als globale CLI-commando's ontbreken, gebruik vanaf de skillmap de directe fallback:
node ./scripts/marktplaats-place-probe.js --self-test
node ./scripts/marktplaats-copy-qa.js --self-test
node ./scripts/marktplaats-ad-preflight.js --self-test
node ./scripts/marktplaats-live-verify.js --self-test
node ./scripts/marktplaats-register-update.js --self-test
Harde Regels
- Geen publicatie of inhoudelijke bewerking zonder expliciete opdracht voor die advertentie.
- Geen betaalde opties, bundels, promoties of betaalflow zonder expliciet akkoord.
- Geen cookies, sessietokens, XSRF/auth-waarden, klantdata of lokale privepaden loggen of publiceren.
- Geen captcha, MFA, login challenge, WAF of accountbeveiliging omzeilen.
- Geen tekst plaatsen als copy-QA of preflight faalt.
- Gebruik
--allow-*opties alleen bij expliciete, taak-specifieke uitzondering van de gebruiker. - Publiceerbare advertentietekst mag nooit websiteadressen of domeinachtige tekst bevatten. Verboden zijn onder andere
http://,https://,www., e-mailadressen en woorden met bekende domeinextensies zoals.com,.nl,.eu,.org,.net,.de,.been.io. Merknamen met een domeinextensie, zoalsStarTech.com, moeten worden herschreven naar een gewone merknaam zonder punt, bijvoorbeeldStarTech. - Publiceer of accepteer geen advertentie waarvan de live omschrijving als een grote lap tekst verschijnt. De lokaal geschreven alinea's moeten live aantoonbaar bewaard blijven via alinea's,
<br>-achtige regelovergangen of Marktplaats-blokken. - Na opslaan altijd live verifieren en het lokale register bijwerken.
- Bij UI-drift, browser-hang of onduidelijke formulierstatus: stop, maak een snapshot en rapporteer de blokkade.
Safari Rustig Gebruiken
Laad references/background-safari-nl.md bij plaats-/bewerkwerk met Safari.
Voorkeursvolgorde:
- Gebruik gewone HTTP/API/zoek-CLI waar geen login nodig is.
- Gebruik
marktplaats-place-probe --browser-fetch --url ...voor authenticated inspectie zonder zichtbare navigatie. - Gebruik
marktplaats-place-probe --browser --open-background ...om een pagina in Safari te openen zonder Safari actief te maken. - Gebruik zichtbare UI alleen als foto-upload, contenteditable tekst of expliciete controle dat vereist.
Regels:
- activeer Safari niet onnodig en open geen extra schermen bovenop het werk van de gebruiker;
- gebruik een bestaande of dedicated Marktplaats-tab; kies tabs op URL/ad-id, niet op schermpositie;
- herstel of laat de actieve gebruikerscontext ongemoeid waar mogelijk;
- log geen cookies, tokens, XSRF-waarden, contactgegevens of browserprofielinformatie;
- bij login/captcha/MFA/WAF, betaalroute, UI-drift of onduidelijke status: stop, schrijf een snapshot en rapporteer.
Lokale Bestanden
Werk per advertentie in:
~/Documents/OpenClaw/Data/marktplaats/<slug>/ad.json
~/Documents/OpenClaw/Data/marktplaats/<slug>/description.md
~/Documents/OpenClaw/Data/marktplaats/<slug>/photos/
Centraal register:
~/Documents/OpenClaw/Data/marktplaats/advertenties.json
ad.json moet minimaal bevatten: titel, prijs, conditie, levering, categorie/categoryIds, biddingAllowed, descriptionFile, imageDir of foto's, URL/adId zodra live, en copyQuality.
Verplichte Pipeline
1. Schrijf De Omschrijving
Schrijf een feitelijke Nederlandse tekst van ongeveer 3200-3500 tekens.
Moet bevatten:
- merk/model of herkenbare productnaam;
- productsoort;
- staat/conditie en wat wel/niet getest is;
- concrete zichtbare kenmerken;
- toepassing en compatibiliteit;
- ophalen/verzenden, prijs en bieden;
- natuurlijke zoekvarianten in gewone zinnen;
- minimaal een, en bij voorkeur niet meer dan twee, subtiele productrelevante typefout-/schrijfvarianten in gewone zinnen. Voorbeeld:
buiten antennenaastbuitenantenne.
Niet doen:
- geen websiteadressen, domeinachtige merknamen,
www.-tekst, URL's of e-mailadressen; - geen
Zoektermen:,Keywords:ofSEO:footer; - geen lange comma-keyworddump;
- geen claims over werking, garantie of compleetheid zonder bewijs.
2. Copy-QA
Altijd draaien voordat Marktplaats wordt ingevuld of opgeslagen:
marktplaats-copy-qa ./description.md \
--require "<merk-of-model>" \
--require "<productsoort>" \
--variant "<natuurlijke zoekvariant>" \
--ad-json ./ad.json
Stop als dit geen PASS geeft. De command schrijft copyQuality inclusief descriptionSha256 naar ad.json.
Herhaal --variant alleen voor een tweede minimale variant als die natuurlijk in de omschrijving past. Gebruik geen losse typefoutenlijst.
Copy-QA faalt bij URL's, www.-tekst, e-mailadressen en domeinachtige tekst zoals startech.com, ook als er geen protocol voor staat.
3. Preflight
Altijd draaien na copy-QA en voor browser/UI-werk:
marktplaats-ad-preflight --ad-json ./ad.json --require-bidding-allowed
Gebruik --require-bidding-allowed wanneer bieden aan moet staan. Stop bij failure.
Preflight controleert onder andere:
- verplichte advertentievelden;
- omschrijving bestaat en is niet gewijzigd na copy-QA;
- copy-QA is geslaagd;
- publiceerbare advertentietekst bevat geen URL's,
www.-tekst, e-mailadressen of domeinachtige tekst; - foto's bestaan;
- biedeninstelling indien vereist.
4. Formulier Probe
Inspecteer Marktplaats voordat je invult. Kies de minst storende route die genoeg bewijs geeft.
Met browser-fetch:
marktplaats-place-probe --browser-fetch --url "https://www.marktplaats.nl/plaats/..." --save ./snapshot-place.json
Als Safari niet de actieve app hoeft te worden, open de plaatsingspagina op de achtergrond en probe daarna dezelfde Safari-context:
marktplaats-place-probe --browser \
--open-background "https://www.marktplaats.nl/plaats/..." \
--save ./snapshot-place.json
Als de juiste Marktplaats-tab al open staat:
marktplaats-place-probe --browser --save ./snapshot-place.json
Stop als:
- login/captcha/MFA/WAF verschijnt;
- betaalde route verplicht lijkt;
- formulierstructuur onduidelijk is;
- foto-upload of bundelkeuze niet te verifieren is;
security.challengeSignalslogin, captcha, MFA, WAF of betaal-/promotiesignalen toont.
5. Plaats Of Bewerk
Vul Marktplaats pas na groene copy-QA en preflight.
Controleer voor submit/save:
- titel;
- prijs;
- bieden toegestaan indien gevraagd;
- conditie;
- levering;
- foto-aantal;
- gratis/basic route;
- laatste zin van de omschrijving zichtbaar in het formulier;
- alinea's zichtbaar in het omschrijvingsveld; gebruik bij voorkeur het zichtbare rich-text/contenteditable veld en geen directe hidden-field submit voor de omschrijving.
Gebruik geen blinde coordinate-clicks. Gebruik DOM/events of een expliciet UI-element met verificatie voor en na.
Gebruik geen directe hidden-field submit of platte URLSearchParams-post voor de omschrijving tenzij live-verificatie daarna bewijst dat alinea's bewaard zijn. Als Marktplaats de tekst ondanks correcte inhoud als een doorlopende lap toont, is de advertentie niet klaar.
6. Live Verify
Na opslaan of plaatsen moet de live advertentie gecontroleerd worden.
Als fetch genoeg tekst bevat:
marktplaats-live-verify --ad-json ./ad.json --url "https://www.marktplaats.nl/seller/view/..." --update-ad-json
Als de pagina dynamisch is, sla eerst zichtbare/live tekst op en verifieer die:
marktplaats-live-verify --ad-json ./ad.json --text ./live-text.txt --update-ad-json
Stop als:
- begin van de omschrijving ontbreekt;
- laatste zin ontbreekt;
- omschrijving dubbel staat;
Zoektermen:of keyworddump live zichtbaar is;- live advertentietekst alsnog websiteadressen of domeinachtige tekst bevat;
- live omschrijving geen aantoonbare alinea-/regelstructuur heeft.
7. Register Update
Werk na live verificatie het centrale register bij:
marktplaats-register-update \
--ad-json ./ad.json \
--central-json ~/Documents/OpenClaw/Data/marktplaats/advertenties.json \
--note "Live gecontroleerd na plaatsing/bewerking."
Run register-updates sequentieel. Het script gebruikt een lock en faalt als een tweede update tegelijk hetzelfde centrale register probeert te schrijven.
De register-update hoort standaard te falen als live-verificatie ontbreekt of faalde. Gebruik --allow-unverified alleen voor niet-gepubliceerde conceptadministratie en vermeld waarom in --note.
Bestaande Advertentie Bewerken
Voor elke inhoudelijke tekstbewerking geldt dezelfde pipeline:
marktplaats-copy-qa ./description.md --require "<term1>" --require "<term2>" --variant "<variant>" --ad-json ./ad.json
marktplaats-ad-preflight --ad-json ./ad.json --require-bidding-allowed
# bewerk via Marktplaats UI/DOM
marktplaats-live-verify --ad-json ./ad.json --url "<live-url>" --update-ad-json
marktplaats-register-update --ad-json ./ad.json --central-json ~/Documents/OpenClaw/Data/marktplaats/advertenties.json
Als live fetch de tekst niet ziet, gebruik --text ./live-text.txt met tekst uit de browser/accessibility snapshot.
Test De Skill
npm test
Deze test moet groen zijn voordat je publiceert naar ClawHub.
Naslag
- Publieke uitleg:
README.md - Langere handleiding:
references/handleiding-nl.md - Engelse guide:
references/guide-en.md - Robuuste checklist:
references/robust-posting-checklist.md - Setup voor kleine modellen:
references/setup-small-model-nl.md - Rustige Safari/background-flow:
references/background-safari-nl.md