User Tools

Site Tools


provenance:design:platforms:ad_archives

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:design:platforms:ad_archives [2026/09/08 11:51] – Fix an unclosed nowiki span (odd number of %% on one table row) that had been rendering everything after it as literal text: it cost the page one table, two headings and two references. The generator now aborts on an odd %% count outside a file block, mut karel.kubicek.claudeprovenance:design:platforms:ad_archives [2026/09/17 07:23] (current) – Markup rendering sweep: wrap escapes, CLI flag typography, and heading quotes. Authored by Claude. karel.kubicek.claude
Line 29: Line 29:
   * **A verification script silently checked less.** Adding quotes re-used a ''CHECKS'' key and dropped three existing checks while still reporting "0 NOT FOUND". A guard now aborts on duplicate keys.   * **A verification script silently checked less.** Adding quotes re-used a ''CHECKS'' key and dropped three existing checks while still reporting "0 NOT FOUND". A guard now aborts on duplicate keys.
   * **"Web-only" was published for Google's Ads Transparency Center** in the first save, which {[breuer2026_ad]} contradicts — it is a BigQuery public dataset. Caught by re-reading the paper, not by a reviewer.   * **"Web-only" was published for Google's Ads Transparency Center** in the first save, which {[breuer2026_ad]} contradicts — it is a BigQuery public dataset. Caught by re-reading the paper, not by a reviewer.
 +  * **An unclosed nowiki span silently broke this page after publication.** One row of the //Rendered-page checks// table above carried an **odd** number of nowiki delimiters, which left the span open and made DokuWiki render everything after it as literal text: the page lost one table, two headings and two bibliography references, and the source looked entirely normal. It was caught only by counting the rendered DOM against the expected structure — which is the check that table exists to record. ''scripts/adarchives_gen_provenance.py'' now aborts when a line outside a file block has an odd delimiter count; it was mutation-tested, and it then immediately fired on the first draft of **this very bullet**, which had the same defect.
 +  * **''scripts/check_wrap.mjs'' reports a false positive on this page**, counting escaped mentions of the wrap tag as unbalanced opens. It was **not** what caught the real breakage above, and it said "1 problem" on a page that was fine and stayed silent about the page that was broken.
  
 No credential or token was printed, logged or exposed during the run. No credential or token was printed, logged or exposed during the run.
Line 356: Line 358:
 | ''%%<pre>%%'' blocks | 0 | 8 (4 ''%%<file>%%'' + 4 ''%%<code>%%'') | | ''%%<pre>%%'' blocks | 0 | 8 (4 ''%%<file>%%'' + 4 ''%%<code>%%'') |
 | footnote open/close/rendered | 25 / 25 / 25 | — | | footnote open/close/rendered | 25 / 25 / 25 | — |
-| red links (''wikilink2'') | **0** | **0** |+| red links | **0** | **0** (a naive grep for the plugin's red-link CSS class returns 1 on this page — it matches this very row, so check the anchor tags, not the raw HTML) |
 | dangling in-page anchors | 0 | 0 | | dangling in-page anchors | 0 | 0 |
  
Line 369: Line 371:
 Four reviewers, each handed the page text, the report script, its unedited output, the quote-check output and these notes, and each told explicitly that the author's context might not be exhaustive. The three focused passes ran in parallel first; the generic pass ran after their findings were applied. Four reviewers, each handed the page text, the report script, its unedited output, the quote-check output and these notes, and each told explicitly that the author's context might not be exhaustive. The three focused passes ran in parallel first; the generic pass ran after their findings were applied.
  
-==== Pass 1 — figures against the script (''model: sonnet'') ====+==== Pass 1 — figures against the script (model: sonnet) ====
  
 Handed the page text, both scripts, both outputs and these notes. Re-ran both scripts and diffed against the committed outputs (byte-identical), traced every numeral to a line of real output, and mutation-tested the ''AUDIT'' invariant. Handed the page text, both scripts, both outputs and these notes. Re-ran both scripts and diffed against the committed outputs (byte-identical), traced every numeral to a line of real output, and mutation-tested the ''AUDIT'' invariant.
Line 385: Line 387:
 | — | The ''AUDIT'' invariant fires in both directions when mutated; counts are of papers not tuples; the case-sensitive split reproduces exactly (25 + 44 = 69); no arithmetic errors. | Confirmed. | No action. | | — | The ''AUDIT'' invariant fires in both directions when mutated; counts are of papers not tuples; the case-sensitive split reproduces exactly (25 + 44 = 69); no arithmetic errors. | Confirmed. | No action. |
  
-==== Pass 2 — citations and quotes (''model: sonnet'') ====+==== Pass 2 — citations and quotes (model: sonnet) ====
  
 ^ # ^ Finding ^ Verdict ^ Action ^ ^ # ^ Finding ^ Verdict ^ Action ^
Line 394: Line 396:
 | 5 | Two Google/X quotes could not be verified by the reviewer because both pages are JavaScript-only. | **Not a finding against the page.** | Recorded here as a tooling limit. The quotes were taken with a headless browser and the provenance table says which ones needed one. | | 5 | Two Google/X quotes could not be verified by the reviewer because both pages are JavaScript-only. | **Not a finding against the page.** | Recorded here as a tooling limit. The quotes were taken with a headless browser and the provenance table says which ones needed one. |
  
-==== Pass 3 — external currency (''model: sonnet'') ====+==== Pass 3 — external currency (model: sonnet) ====
  
 The most productive pass. It re-fetched every external source the page then carried (sixteen at the time; the table has since grown to twenty-two rows as its own findings were followed up) and then looked for what had happened since October 2025. The most productive pass. It re-fetched every external source the page then carried (sixteen at the time; the table has since grown to twenty-two rows as its own findings were followed up) and then looked for what had happened since October 2025.
Line 409: Line 411:
 | — | All sixteen source URLs, both regulations, Impl. Reg. 2026/818, the Meta and Google announcements, Meta's API scope, Google's BigQuery dataset, the three donation projects and the "European repository not yet live" verdict: **all confirmed** at the stated values. | Confirmed. | No action. | | — | All sixteen source URLs, both regulations, Impl. Reg. 2026/818, the Meta and Google announcements, Meta's API scope, Google's BigQuery dataset, the three donation projects and the "European repository not yet live" verdict: **all confirmed** at the stated values. | Confirmed. | No action. |
  
-==== Pass 4 — generic (''model: fable'') ====+==== Pass 4 — generic (model: fable) ====
  
 Run after the three focused passes were applied, with no checklist, over the content page and this one. Run after the three focused passes were applied, with no checklist, over the content page and this one.
Line 1628: Line 1630:
  
 <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.
  
provenance/design/platforms/ad_archives.1788868286.txt.gz · Last modified: by karel.kubicek.claude