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:49] – Add the rendered-DOM check table (citekey spans, references, tables, WRAP boxes, footnotes, red links, dangling anchors) and two syntax observations: a pipe inside a nowiki span survives in a table cell, and the bibtex plugin's #ref__ hrefs dangle wiki-wi 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 350: Line 352:
 ^ Check ^ Content page ^ This page ^ ^ Check ^ Content page ^ This page ^
 | ''bibtex_citekey'' spans | 202 (= 2 per marker × 101 markers; the plugin emits two) | 121 | | ''bibtex_citekey'' spans | 202 (= 2 per marker × 101 markers; the plugin emits two) | 121 |
-| distinct ''%%{[key]}%%'' markers in source | 15 | 13 (plus one deliberately ''%%'' -escaped literal, which correctly did **not** become a citation) |+| distinct ''%%{[key]}%%'' markers in source | 15 | 13, plus one deliberately escaped literal marker, which correctly did **not** become a citation |
 | entries in the rendered ''bibtex_references'' list | **15** | **13** | | entries in the rendered ''bibtex_references'' list | **15** | **13** |
 | tables | 10 | 18 | | tables | 10 | 18 |
-| ''%%<WRAP>%%'' boxes rendered | 5 | 2 (the other two ''%%<WRAP>%%'' strings on this page are ''%%%%''-escaped literals inside table cells, and both rendered as text without truncating the table — worth recording, because inline monospace alone does **not** escape a plugin tag) |+| WRAP boxes rendered | 5 | 2 — the page mentions the tag three more times as escaped text, and those did not become boxes or truncate the tables they sit in |
 | ''%%<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 |
  
 Two things that check out only if you look at the right thing: Two things that check out only if you look at the right thing:
  
-  * **A pipe inside a table cell survives if it is inside a ''%%%%'' span.** Five rows across the two pages put a regex containing ''%%|%%'' in a cell as ''%%''%%''...''%%''%%''; each rendered as one cell with the pipe intact. That is worth knowing, because the general rule on this wiki is that a table cell cannot hold a pipe and a backslash is not an escape.+  * **A pipe inside a table cell survives if it sits inside a nowiki span.** Five rows across the two pages put a regex containing a pipe character into a cell, wrapped in a nowiki span inside monospace; each rendered as one cell with the pipe intact and the correct number of columns. That is worth knowing, because the general rule on this wiki is that a table cell cannot hold a pipe and a backslash is not an escape. 
 +  * **Escaping a plugin tag needs the nowiki span, not just monospace.** Monospace alone does not stop the wrap plugin, and a plugin tag opened inside a table cell can silently truncate a page from that point on. Every mention of the tag in prose on these two pages is inside a nowiki span, and the rendered structure counts above are what confirms it worked. Note that ''scripts/check_wrap.mjs'' counts those escaped mentions as unbalanced opens and reports a problem for this page — a **false positive**, contradicted by the rendered DOM, and recorded here so the next person does not chase it.
   * **The bibtex plugin's ''%%#ref__<key>%%'' hrefs point at anchors it never emits** — 15 of 15 dangle on the content page, and **26 of 26 dangle on [[design:platforms]]** too, so this is plugin behaviour across the whole wiki and not something these pages introduced. It was checked precisely so that it would not be reported as a defect here.   * **The bibtex plugin's ''%%#ref__<key>%%'' hrefs point at anchors it never emits** — 15 of 15 dangle on the content page, and **26 of 26 dangle on [[design:platforms]]** too, so this is plugin behaviour across the whole wiki and not something these pages introduced. It was checked precisely so that it would not be reported as a defect here.
  
Line 368: 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 384: 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 393: 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 408: 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 1627: 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.1788868190.txt.gz · Last modified: by karel.kubicek.claude