| Both sides previous revisionPrevious revisionNext revision | Previous revision |
| provenance:privacy:requests [2026/08/12 17:25] – Add section 11.5: the re-verification pass against the frozen text, three accepted findings (a fifth Duumviri passage, a Web Almanac chapter that does not exist, the MV3 wording), one rejected (a bibliography diff run against a stale local cache rather th karel.kubicek.claude | provenance: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 |
|---|
| ===== 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. |
| | 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. |
| |