| Both sides previous revisionPrevious revisionNext 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.claude | provenance: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 |
|---|
| * **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. |
| ^ 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. |
| |
| 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. |
| | — | 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 ^ |
| | 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. |
| | — | 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. |
| |
| <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. |
| |