Skip to content

Bereid de Chrome Web Store-indiening voor - #5

Merged
chapter42 merged 1 commit into
mainfrom
docs/chrome-web-store
Jul 27, 2026
Merged

chapter42 merged 1 commit into
mainfrom
docs/chrome-web-store

Conversation

@chapter42

Copy link
Copy Markdown
Owner

Wat

CHROMEWEBSTORE.md met alles wat het Developer Dashboard vraagt, PRIVACY.md, en npm run package voor een schone ZIP.

Eén echte blocker gevonden

De manifest-beschrijving was 174 tekens terwijl de Chrome Web Store op 132 afkapt — die zou afgekapt in de zoekresultaten hebben gestaan. Het viel niet eerder op omdat Chrome de beschrijving lokaal wél volledig toont; de limiet geldt alleen in de store. Ingekort tot 124 tekens.

check.js bewaakt nu de beschrijvingslengte, de naamlengte, en dat er geen merknaam in de extensienaam staat. Dat laatste is een bekende afwijzingsgrond — nominatief gebruik in de beschrijving ("werkt op ChatGPT") mag juist wel, en dat doen we.

Verpakken

npm run package gebruikt een include-lijst, geen exclude-lijst. Bij uitsluiten lekt vroeg of laat een nieuw dev-bestand mee dat niemand opmerkt. Het draait eerst de projectcontroles en weigert te bouwen als er alsnog iets in glipt.

Geverifieerd: 35 bestanden, alleen manifest.json, icons/, src/ en LICENSE. Het script weigert aantoonbaar zodra tools/ aan de include-lijst wordt toegevoegd.

Permissies

Elke permissie heeft een specifieke onderbouwing in plaats van "nodig voor de werking", wat wordt afgewezen. De lastigste is tabs: de checklist adviseert activeTab, maar dat werkt niet bij een klik in een zijpaneel — dat staat expliciet in de onderbouwing zodat een reviewer niet hoeft te raden waarom de bredere permissie er staat.

Data-disclosure

Het antwoord op "verzamelt de extensie gebruikersdata" is nee in de zin die de store hanteert: er gaat niets van het apparaat af. Maar er wordt wél gevoelige inhoud verwerkt en lokaal bewaard, dus de tabel is daar expliciet over — inclusief het ChatGPT-sessietoken dat bij Historie ophalen kortstondig wordt gelezen en nergens opgeslagen. Bij twijfel is te veel disclosure veiliger dan te weinig.

Twee dingen die ik bewust niet heb opgelost

Beide vragen een menselijke afweging en staan in de review notes:

  1. Screenshots moeten van echte gesprekken komen. npm run preview levert de UI op 1280×800, maar met verzonnen inhoud — "no misleading screenshots" maakt dat een risico. En let op dat er geen klantnamen in belanden; een screenshot is openbaar.

  2. Voorwaarden van de assistenten. De extensie leest alleen mee met verkeer dat de browser toch al ontvangt voor het eigen account, en omzeilt geen authenticatie of limieten — vergelijkbaar met de netwerk-tab in DevTools. Of dat binnen de voorwaarden van OpenAI, Perplexity en Google valt, is een inschatting die jij moet maken. Een afwijzing op die grond is niet met een codewijziging op te lossen.

Hoe getest

  • npm test groen (33 controles + 108 checks)
  • npm run package gebouwd en de inhoud geïnspecteerd
  • De guard in het verpakkingsscript faalt aantoonbaar bij een verkeerd bestand
  • Nieuwe controles falen bij overtreding (beschrijving > 132, merknaam in de naam)

Versie

  • PATCH — 0.3.4, de manifest-beschrijving is gebruikerszichtbaar

Checklist

  • Eén onderwerp in deze PR
  • Regel toegevoegd in CHANGELOG.md
  • Geen nieuwe dependencies, host-permissies of uitgaande aanroepen

🤖 Generated with Claude Code

CHROMEWEBSTORE.md bundelt alles wat het Developer Dashboard vraagt: listingtekst,
een onderbouwing per permissie, de data-disclosure en een eerlijke opsomming van
de beperkingen. PRIVACY.md staat naast de code zodat het beleid niet uit de pas
kan lopen met wat de extensie doet — en de git-historie laat elke wijziging zien.

Onderweg één echte blocker gevonden: de manifest-beschrijving was 174 tekens
terwijl de store op 132 afkapt. Die zou dus afgekapt in de zoekresultaten hebben
gestaan. Viel niet op omdat Chrome hem lokaal wél volledig toont; de limiet geldt
alleen in de store. check.js bewaakt nu de lengte, de naamlengte, en dat er geen
merknaam in de extensienaam staat — dat laatste is een bekende afwijzingsgrond,
terwijl nominatief gebruik in de beschrijving juist wel mag.

npm run package bouwt de ZIP met een include-lijst in plaats van een
exclude-lijst: bij uitsluiten lekt vroeg of laat een nieuw dev-bestand mee dat
niemand opmerkt. Het draait eerst de projectcontroles en weigert te bouwen als er
alsnog iets in glipt. Geverifieerd: 35 bestanden, alleen manifest, icons, src en
LICENSE — en het script weigert aantoonbaar zodra tools/ wordt toegevoegd.

Twee dingen zijn bewust niet opgelost omdat ze een menselijke afweging vragen:
screenshots moeten van echte gesprekken komen in plaats van fixture-data, en of
meelezen binnen de voorwaarden van OpenAI, Perplexity en Google valt is een
inschatting die de eigenaar moet maken. Beide staan benoemd in de review notes.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@chapter42
chapter42 merged commit 63bf11a into main Jul 27, 2026
3 checks passed
@chapter42
chapter42 deleted the docs/chrome-web-store branch July 27, 2026 18:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant