Elke poging bij een directory eindigt met één commando. scripts/record.py schrijft per platform één actuele rij naar submissions.json in de productmap, en weigert rijen die de toolkit als onbewezen of onveilig beschouwt. Die weigering is precies de bedoeling: de tracker voorkomt dat ‘we hebben bij 40 directory’s ingediend’ eigenlijk betekent ‘we hebben 40 formulieren ingevuld en er het beste van gehoopt’. Deze gids behandelt de statussen, het bewijs dat elke status nodig heeft, de flags van het commando en wat wel en niet in een notitie mag. Het is een samenvatting van RUNBOOK.md en de controles in het script zelf, geen vervanging daarvan.
Het commando
Het voorbeeld uit het runbook, uitgevoerd vanuit de toolkitmap met een al aangemaakte privéprojectmap:
Gebruik op Windows py -3 in plaats van python3 in de commando’s hieronder (of python als dat jouw commando voor Python 3.10+ is). Bewaar je werkruimte in een lokale privémap buiten OneDrive of andere synchronisatiemappen. Zet shellvoorbeelden die over meerdere regels lopen in PowerShell op één regel en verwijder de \-tekens aan het regeleinde.
python3 scripts/record.py --project ../private-product pitchwall draft \
--note "Product import corrected; final form not sent" \
--next-action "Check saved profile and review final form"
Twee positionele argumenten (platform-id en status) en twee verplichte opties (--note, --next-action). De optionele flags zijn --public-url, --confirmed-public, --launch-date en --replace. De platform-id moet een slug in kleine letters zijn, de status moet een van de elf hieronder zijn, en de tracker stopt met een uitleg zodra niet aan een regel is voldaan. Het registratieformulier in het lokale dashboard roept dezelfde functie aan, met dezelfde regels.
De elf statussen en het minimale bewijs
De tabel uit het runbook, in het kort:
| Status | Wat je moet hebben waargenomen |
|---|---|
draft |
Werk voorbereid; definitieve inzending niet bevestigd. |
prepared_needs_human |
Een concrete actie of controle voor de eigenaar (CAPTCHA, 2FA) blokkeert voorbereid werk. |
submitted_pending_review |
Het platform bevestigt uitdrukkelijk dat de inzending is ontvangen; moderatie volgt nog. |
queued |
Het platform bevestigt een plek in de wachtrij of op een wachtlijst. |
scheduled |
Het platform bevestigt een lanceerdatum op of na de ondergrens; openstaande goedkeuring blijft in de notitie. |
live |
Openbare vermelding geverifieerd, zonder label ‘in afwachting’; openbare URL en --confirmed-public vereist. |
already_listed |
Een bestaande openbare vermelding geverifieerd; dezelfde vereisten als live. |
blocked |
Geschiktheid, accountcapaciteit of een ontbrekend verplicht gegeven verhindert voortgang. |
deferred_paid |
De bruikbare route vereist betaling; er is niets gekocht. |
not_a_fit |
Het product voldoet niet aan de doelgroep- of vermeldingscriteria. |
unavailable |
De route of het platform is op dit moment niet te gebruiken; noteer het probleem. |
De belangrijkste onderscheidingen zijn concept vs. ingediend en in afwachting vs. live. Een bedankscherm maakt een vermelding niet live. Een pagina die je kunt bereiken, kan nog steeds op goedkeuring wachten. Een aangevinkt vakje ‘ook naar onze partner doorsturen’ betekent niet dat een tweede platform iets heeft ontvangen. Het resultaat van elk platform blijft op zichzelf staan, zodat totalen nooit worden opgeblazen.
De regels die het script afdwingt
- Openbare statussen vereisen bewijs.
liveenalready_listedvereisen--public-urlmet een gecontroleerde HTTPS-URL – zonder querystring, zonder fragment, zonder account-, dashboard- of loginpaden – en--confirmed-public, jouw verklaring dat je de pagina hebt bekeken. - Ingepland vereist een datum.
--launch-date YYYY-MM-DDis verplicht en mag niet vóórearliest_launch_dateinproduct.jsonliggen; de gids over de ondergrens voor de lanceerdatum legt uit waarom. - Notities blijven schoon. Notities en volgende acties mogen geen links, e-mailadressen, paren in de stijl van
password=of bekende tokenprefixen bevatten. Het trackerbestand is bedoeld om te kunnen delen; bewijs met account-URL’s hoort in privéopslag. - Eén rij per platform. Heeft het platform al een rij, dan faalt het commando tenzij je
--replacemeegeeft – nadat je zowel de bestaande rij als het platform hebt bekeken. Vervangen is een bewuste keuze, nooit een bijeffect. - Geen symlinks, atomaire schrijfacties, een lockbestand. Saaie details, maar ze zorgen ervoor dat twee agents die tegelijk schrijven de tracker niet beschadigen.
Hervatten zonder dubbele inzendingen
Lees aan het begin van de volgende sessie eerst de tracker voordat je ook maar één formulier aanraakt. Geef voorrang aan overdrachten aan jou en aan ingeplande lanceringen die geverifieerd moeten worden, daarna aan inzendingen in afwachting waarvan de opgegeven beoordelingstermijn verstreken is. Geeft een platform geen beoordelingstermijn op, spreek dan met de eigenaar een opvolgdatum af in plaats van er zelf een te verzinnen. En dien nooit opnieuw in om hoger in een wachtrij te komen: controleer het bestaande record opnieuw. De tracker slaat de huidige status op, geen geschiedenis; heb je een audittrail nodig, archiveer dan apart samenvattingen van runs waaruit gevoelige gegevens zijn verwijderd.
Uitgewerkte voorbeelden van de statussen op echte platforms vind je in het artikel over inzendstatussen en in de oudere gids over bijhouden zonder dubbeltellingen; de woordenschat zelf is gedefinieerd onder vermeldingsstatus.