Skip to content

Leg de PRD-update vast met een toetsing aan de code - #8

Open
chapter42 wants to merge 1 commit into
mainfrom
docs/prd-fanout-update
Open

chapter42 wants to merge 1 commit into
mainfrom
docs/prd-fanout-update

Conversation

@chapter42

Copy link
Copy Markdown
Owner

Wat

De PRD staat nu in docs/, met daarnaast docs/prd-review.md: een toetsing van het voorstel aan de daadwerkelijke code.

Er is niets uit F0 t/m F7 geïmplementeerd, en dat is opzettelijk. De PRD stelt zelf dat Q1 t/m Q4 blokkerend zijn vóór Phase 1, en twee features raken beloftes die we vorige week publiek hebben gemaakt. Blind bouwen zou die omzeilen.

Vier blokkerende vragen beantwoord uit de code

Met verwijzing naar de regel, niet uit het hoofd:

Q1 — SSE of DOM? → SSE. window.fetch en XMLHttpRequest.send worden gepatcht op document_start, en er staat nul querySelector in de hele capture-laag. F1 t/m F3 zijn dus bouwbaar; de PRD hoeft geen rebuild te worden.

Q3 — publiceren? → Ja, dat loopt al. Permissieset en afwijzingspad zitten dus in scope.

Q6 — captures van vóór 21 juli? → Nee. Eerste commit is 27 juli. Er is geen validatieset, dus F1 haalt de ≥90%-acceptatie-eis niet en moet als ongevalideerd in de interface staan.

Q8 — opslagplafond? → Geen probleem. Gemeten: 7,8 KB per turn, 6,1 MB bij de huidige limiet van 800, unlimitedStorage aanwezig. F0's extra velden kosten ~200 byte per rij.

Q2 en Q4 kan ik niet beantwoorden. Bij Q4 klopt de vraagstelling trouwens niet helemaal: de extensie doet al ChatGPT, Perplexity én Gemini. De echte vraag is of F1 t/m F5 ChatGPT-only blijven.

Drie botsingen die een besluit vragen

1. F1's H1-anchoring breekt de kernbelofte. Dat signaal vereist het ophalen van bronpagina's — uitgaande aanroepen naar willekeurige domeinen. Dat botst met harde regel 1 in CLAUDE.md, met de belofte in het live privacybeleid dat er geen andere bestemmingen zijn, en check.js faalt er hard op. Met de drie overige signalen haalt F1 zijn doel ("drie of vier signalen scoren in plaats van één drempel") nog steeds.

2. F5's utm_present gooien we vandaag actief weg. stripUtm() in src/lib/parser.js:24 verwijdert utm_source vóór opslag — precies het onderscheid tussen getoonde en geopende links dat F5 nodig heeft. Dit moet erin vóór er data wordt verzameld, anders is elke bestaande capture waardeloos voor die feature.

3. F0's account_id/plan/country openen een privacycategorie die het live beleid nu expliciet uitsluit, en breiden een data-disclosure uit die nog niet is ingediend. Nu nog goedkoop te wijzigen, over een maand niet meer.

Twee dingen die de PRD over het hoofd ziet

De positionering onderschat wat er al staat: drie assistenten en entiteit-extractie met het onderscheid "stond in je prompt" versus "door het model toegevoegd". Voor zover uit de PRD op te maken heeft RESONEO geen van beide. Dat is een sterker antwoord op Q5 dan de PRD zelf geeft.

En F4's kritiek raakt ons direct: onze tab Bronnen & domeinen doet nu precies wat de PRD veroordeelt — retrieval-volume rapporteren en het zichtbaarheid noemen. F4 is daarmee de goedkoopste én waardevolste feature in de lijst.

Voorstel voor de volgorde

Afwijkend van sectie 5. Fase 0 (utm_present bewaren, parser_version) en fase 1 (F4 laagselector) raken geen enkele blokkerende vraag en kan ik meteen bouwen. Fase 0 is bovendien onomkeerbaar als je het te laat doet.

Dat is ook mijn antwoord op sectie 10: dat is de kleinste versie die volgende maand een klantgesprek verandert.

Hoe getest

  • npm test groen (33 controles + 108 checks)
  • check.js controleert documentlinks nu ook in docs/, relatief aan het bestand — en faalt aantoonbaar op een kapotte link
  • Elke code-bewering in de review is tegen de bron gecontroleerd, niet uit het geheugen

Versie

  • geen bump — planningsdocumenten raken de extensie niet

Checklist

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

🤖 Generated with Claude Code

De PRD stelt zelf dat Q1 t/m Q4 blokkerend zijn vóór Phase 1. Vier vragen zijn
uit de codebase te beantwoorden en dat is hier gedaan, met verwijzing naar de
regel in plaats van uit het hoofd:

- Q1: SSE-injectie, geen DOM. window.fetch en XMLHttpRequest.send worden gepatcht
  op document_start en er staat nul querySelector in de capture-laag. F1 t/m F3
  zijn dus bouwbaar; de PRD hoeft geen rebuild te worden.
- Q3: het storetraject loopt al, dus de permissieset zit in scope.
- Q6: de eerste commit is van ná de cut-off van 21 juli, dus er is geen
  validatieset. F1 ships ongevalideerd en moet dat in de interface zeggen.
- Q8: gemeten op 7,8 KB per turn, 6,1 MB bij de huidige limiet, unlimitedStorage
  aanwezig. Geen plafond, archivering hoeft niet naar Phase 1.

Q2 en Q4 kan ik niet beantwoorden. Bij Q4 klopt de vraagstelling bovendien niet
helemaal: de extensie doet al drie assistenten, dus de vraag is niet of Gemini
erbij komt maar of F1 t/m F5 ChatGPT-only blijven.

Drie botsingen met bestaande harde regels vragen een besluit vóór de bouw:

1. F1's H1-anchoring vereist het ophalen van bronpagina's. Dat breekt regel 1 in
   CLAUDE.md, de belofte in het live privacybeleid, en check.js faalt erop. Met
   de drie overige signalen haalt F1 zijn doel nog steeds.
2. F5's utm_present wordt vandaag actief vernietigd: stripUtm() verwijdert
   utm_source vóór opslag. Dat moet erin vóór er data wordt verzameld, anders is
   elke bestaande capture waardeloos voor F5.
3. F0's account_id, plan en country openen een privacycategorie die het live
   beleid nu uitsluit, en breiden een data-disclosure uit die nog niet is
   ingediend.

Niets uit F0 t/m F7 is geïmplementeerd. Dat is opzettelijk: de PRD verbiedt het
zelf tot Q2 en Q4 beantwoord zijn, en twee features raken beloftes die we net
publiek hebben gemaakt.

check.js controleert de documentlinks nu ook in docs/, relatief aan het bestand.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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.

2 participants