User Tools

Site Tools


provenance:privacy:requests

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
provenance:privacy:requests [2026/08/12 17:12] – Add section 11: the full review log, four passes, every finding with accept or reject and why (including the two rejections and the reviewer who reported a fix as the error). Correct section 7's claim about what the external-checks script covers, re-embed karel.kubicek.claudeprovenance:privacy:requests [2026/09/21 14:57] (current) – Amendment 2026-09-21: record the removal of the duplicate which-lists table, the stale 198 pointer (filter_lists prints 194), the script output behind every figure kept, and the rendered-DOM structural check. Authored by Claude karel.kubicek.claude
Line 63: Line 63:
 | censorship | 3 | | censorship | 3 |
 | certificate / key revocation | 2 | | certificate / key revocation | 2 |
 +
 +**35 distinct papers**, not 36: a paper can use several kinds of blocklist, so the rows do not sum. The content page quotes the union; the report script prints both.
  
 These belong on [[design:website_classification]] and [[design:ip_classification]], not here. These belong on [[design:website_classification]] and [[design:ip_classification]], not here.
Line 918: Line 920:
 ===== 10. Guard runs, and what each iteration caught ===== ===== 10. Guard runs, and what each iteration caught =====
  
-''check_page_numbers.mjs'' was run whole-page, windowed on the corpus section, and with ''--code''. It took three iterations:+''check_page_numbers.mjs'' was run whole-page, windowed on the corpus section, and with ''%%--code%%''. It took three iterations:
  
 ^ Run ^ Unaccounted ^ What it found ^ ^ Run ^ Unaccounted ^ What it found ^
 | 1 | 45 | The per-paper figures were verified but **not printed** by ''verify_requests_figures.mjs'', so the guard could not see them. Fixed by printing every ''FOUND'' line. Also exposed that the verify script only covered 63 of the page's figures; extended to 143 | | 1 | 45 | The per-paper figures were verified but **not printed** by ''verify_requests_figures.mjs'', so the guard could not see them. Fixed by printing every ''FOUND'' line. Also exposed that the verify script only covered 63 of the page's figures; extended to 143 |
 | 2 | 10 | Version-string and licence fragments (''0.13'' from ''0.13.2'', ''3.0'' from GPL-3.0), now in a ''NOT_FIGURES'' block with reasons. And two **real errors**: the page still said the verification had covered "63 of 63 figures" after the verifier had been extended well past that, and it described 410.5 days as a **median** when the paper reports it as the **mean** (median 195.5) | | 2 | 10 | Version-string and licence fragments (''0.13'' from ''0.13.2'', ''3.0'' from GPL-3.0), now in a ''NOT_FIGURES'' block with reasons. And two **real errors**: the page still said the verification had covered "63 of 63 figures" after the verifier had been extended well past that, and it described 410.5 days as a **median** when the paper reports it as the **mean** (median 195.5) |
-| 3 | 0 (''--code'': 3) | Inside the embedded ''%%<file>%%'' block: the script's docstring quoted EasyList's **total** rule count (77,736) where the page quotes its **network** rule count. Aligned both to 52,556 |+| 3 | 0 (''%%--code%%'': 3) | Inside the embedded ''%%<file>%%'' block: the script's docstring quoted EasyList's **total** rule count (77,736) where the page quotes its **network** rule count. Aligned both to 52,556 |
  
 ''check_page_numbers.mjs'' is **not** run against this provenance page: its numbers are meta (section numbers, DOIs, the size of the old page, figures quoted precisely because they were rejected), so the guard's whole premise does not apply. Running it anyway reports 13 unaccounted values, all of that kind. ''check_page_numbers.mjs'' is **not** run against this provenance page: its numbers are meta (section numbers, DOIs, the size of the old page, figures quoted precisely because they were rejected), so the guard's whole premise does not apply. Running it anyway reports 13 unaccounted values, all of that kind.
Line 982: Line 984:
  
 **What the generic pass changed about how the rest of the review should be read.** Its finding 5 — that the review order was freeze, review, apply and we ran review-while-applying — is the process lesson of this run, and it is why two of the three focused reviewers reported items that had already been fixed. It also means this page's own §11.1–§11.3 verdicts are recorded against a page that kept moving while they were written. **What the generic pass changed about how the rest of the review should be read.** Its finding 5 — that the review order was freeze, review, apply and we ran review-while-applying — is the process lesson of this run, and it is why two of the three focused reviewers reported items that had already been fixed. It also means this page's own §11.1–§11.3 verdicts are recorded against a page that kept moving while they were written.
 +
 +===== 11.5 Re-verification pass after the fixes (Sonnet, against the frozen text) =====
 +
 +^ # ^ Finding ^ Verdict ^
 +| 1 | "**The bibliography for this page is broken** — 20 citation keys used on the page do not exist in ''pages/literature_bibliography.txt''", including three of the five papers it had just re-verified. | **Rejected.** The reviewer diffed against a **stale local cache** of the bibliography (last written 10:01; the 20 entries were appended to the live wiki at 16:46). The live file has 160 entries, every one of the 20 keys resolves, and the rendered page shows 172 ''bibtex_citekey'' markers with zero ''bibtex_error''. The stale local copy has now been refreshed so the next run cannot repeat this. **A reminder that "the file on disk" and "the page on the wiki" are different objects, for reviewers as much as for authors.** |
 +| 2 | **A fifth Duumviri passage survived the correction**: the reading-order sentence still said "labels without a list". | **Accepted.** Four passages were fixed; this was the one in [[privacy:requests#What to Read First]], which no grep for the claim's //numbers// would have found because it makes the claim in words only. Reworded. |
 +| 3 | **The HTTP Archive box cited a Web Almanac chapter that does not exist** and attributed a method to the wrong one: there is no "advertising" chapter, and //Third Parties// categorises with Patrick Hulce's ''third-party-web'' dataset, not with filter lists or WhoTracks.me. The chapter that uses WhoTracks.me is //Privacy//. | **Accepted.** The box now names the Privacy chapter and warns which chapter answers which question. This claim entered via the generic pass's accepted finding 11 and **nobody read the cited chapter's methodology before publishing it** — an accepted review finding is not a verified one. |
 +| 4 | The MV3 sentence flattened the paper's significant //increase// in anti-tracking effectiveness into "no reduction". | **Accepted.** Now states both, with the ~1.8 additional trackers per site. |
 +| 5 | The canary description omits the third outcome ("unconfirmed") and does not say the technique was applied to the 33,584 syntactic matches rather than to every request. | **Noted, not changed.** Neither omission makes the box false and the box is already the longest paragraph on the page; the full algorithm is in §4.2 of the paper, which the page tells the reader to read. A reasonable person would add the third outcome. |
 +| — | Part 1 confirmed four of the five earlier fixes correct against the source papers (Böttger 8,163/122,548, Bouhoula 95.1%/90.9%, the canary, Rasaii ~45k). Part 2 reproduced every script figure. **Part 3 re-checked numerator/denominator provenance across nine further "X of Y" figures** — WebGraph's two adversarial rates, WTAGRAPH's transductive vs inductive accuracies, AutoFR's 86-vs-87, CV-Inspector's "over a third", and all six of Lin et al.'s churn figures — and found every pairing correct. | Noted. The Part-3 sweep is the check the Böttger error should have had, and the page now has it. |
  
 ===== 12. Run log ===== ===== 12. Run log =====
Line 995: Line 1007:
 | Process mistake worth repeating out loud | Corrections were applied while the three focused reviewers were still running, so two of them reported findings that had already been fixed and one of those (Duumviri) reported the fix as the error. **Freeze the page, review, then apply.** The generic pass caught this and it is finding 5 of §11.2 and the closing note of §11.4 | | Process mistake worth repeating out loud | Corrections were applied while the three focused reviewers were still running, so two of them reported findings that had already been fixed and one of those (Duumviri) reported the fix as the error. **Freeze the page, review, then apply.** The generic pass caught this and it is finding 5 of §11.2 and the closing note of §11.4 |
 | Accidental exposure | None. All credentials stayed in ''.env''; no authenticated request was made to any third party. The GitHub API was used unauthenticated and its 60-per-hour limit was exhausted mid-run, which is why ''out/requests_github_1626.txt'' exists as a separate record of the successful window — the later ''external_checks_requests.sh'' run shows ''ERROR API rate limit exceeded'' for those rows and **must not be read as confirming them** | | Accidental exposure | None. All credentials stayed in ''.env''; no authenticated request was made to any third party. The GitHub API was used unauthenticated and its 60-per-hour limit was exhausted mid-run, which is why ''out/requests_github_1626.txt'' exists as a separate record of the successful window — the later ''external_checks_requests.sh'' run shows ''ERROR API rate limit exceeded'' for those rows and **must not be read as confirming them** |
 +
 +===== Amendment, 2026-09-04: citekey consolidation =====
 +
 +  * ''bouhoula2024automated'' was one of two keys for the same paper in [[:literature:bibliography]]. The wiki-wide consolidation of 2026-09-04 (drain item ''dedup-regional-filter-lists-bibkey'') kept ''bouhoula2024_automated'' and deleted the other entry.
 +  * 1 citation marker on [[:privacy:requests]] was repointed to the kept key. No prose on either page changed, and no figure moved. Statements above that name the deleted key describe the state when they were written. Full query log and the invariants checked before saving: [[:provenance:literature:bibliography]].
  
 ====== References ====== ====== References ======
  
 <bibtex bibliography></bibtex> <bibtex bibliography></bibtex>
 +
 +===== Markup sweep, 2026-09-17 =====
 +
 +Mechanical rendering repair only: a fresh live raw/XHTML export of 188 pages was checked with ''check_wrap.mjs'' and ''check_typography.mjs''. Affected plugin tags, CLI flags and heading markup were repaired; no figures or substantive prose were changed. The resulting source and rendered DOM were re-checked after saving.
 +
 +===== Amendment, 2026-09-21: the duplicate "which lists" table was removed =====
 +
 +**What was wrong.** This page's //Use in Publications// carried a full per-list adoption table over its S1 population (197 papers), and [[programming:filter_lists]] carried the same table, computed by the same fold, over a 194-paper population. Two copies of one table, maintained separately, drift; [[provenance:programming:filter_lists]] recorded the duplication as a **live inconsistency left for a later run to finish**, and this is that run. A second, smaller defect came with it: the sentence introducing the table described the filter-lists population as **198 papers**, which was that page's figure before its tuple-context exclusion. That page has printed **194** since, so the pointer was quoting a number the target page no longer published.
 +
 +**The commands and their real output.**
 +
 +<code>
 +$ node scripts/report_requests.mjs
 +S1 — used or produced an ad-or-tracker filter list                197
 +S2 — classified web requests for an advertising/tracking purpose  164
 +**page population = S1 ∪ S2**                                     254
 +
 +Denominator: 197 papers that used or produced an ad-or-tracker filter list.
 +EasyList                                                        110     55.8%         32
 +EasyPrivacy                                                     71      36.0%         26
 +Disconnect                                                      48      24.4%         28
 +Ghostery / WhoTracks.me                                         34      17.3%         12
 +── Exact-string vs folded, for the four lists the page names ──
 +  EasyList                 exact-string  90  folded 110  undercount 18.2%
 +  Disconnect               exact-string  26  folded  48  undercount 45.8%
 +
 +$ node scripts/report_filter_lists.mjs
 +   USED or PRODUCED a filter list  == POPULATION               194 3.3% of corpus
 +</code>
 +
 +**What changed.** The fifteen-row table and the //Folding is not cosmetic here// paragraph were replaced by two paragraphs. The first keeps the four figures a reader of //this// page needs — 197, and EasyList 110 (55.8%), EasyPrivacy 71 (36.0%), Disconnect 48 (24.4%), Ghostery / WhoTracks.me 34 (17.3%) — together with the folding lesson stated at its strongest (90 against 110, and 26 against 48), and points at [[programming:filter_lists#Which lists|the canonical table]]. The second explains the 197-against-194 gap as a property of two membership rules rather than a disagreement. **Neither count was changed and neither was reconciled**, which is the standing instruction for this pair: both scripts import ''req_fold.mjs'', so the fold is identical and only the membership rule differs. The engines-and-parsers sentence was kept — it is not duplicated on the filter-lists page — and the S1/S2 narrative above it is untouched.
 +
 +**Rendered-DOM check.** Tables on the page went **14 → 13** and rows **114 → 98** (one header plus fifteen list rows). Headings (28), list items (60) and ''<pre>'' blocks (0) are unchanged, and the page carries **0** ''wikilink2'' red links. The ''%%[[programming:filter_lists#Which lists]]%%'' pointer resolves against the real heading id ''which_lists'' on the target page.
 +
 +**Reviewers.** One ''sonnet'' figures-against-script pass, covering the edited passage and the sections either side of it. No citations pass: no ''{[citekey]}'' and no quoted claim was touched.
  
provenance/privacy/requests.1786554733.txt.gz · Last modified: by karel.kubicek.claude