---
title: "Corrections & Changes"
description: "Every factual correction made to this site, logged publicly with what was wrong and what changed — and the automatically generated record of every change to the site."
url: https://attentionmachine.org/en/about/corrections/
lang: en
updated: 2026-10-19
license: "CC BY-NC-SA 4.0 (https://creativecommons.org/licenses/by-nc-sa/4.0/)"
---

# Corrections & Changes

When we get something wrong, we correct it publicly and record it here. A site that asks platforms for transparency has to offer it too.

This page has two parts. The [corrections log](https://attentionmachine.org/en/about/corrections/#corrections-log) records every factual error we have corrected: what was wrong, what we changed, and what prompted it. The [change log](https://attentionmachine.org/en/about/corrections/#change-log) underneath is generated automatically from the project's history every time the site is published — every edit, not only the corrections. Both are read straight from the project's own files, so this page cannot drift from them.

Found a mistake we have not logged? [Tell us](https://attentionmachine.org/en/contact/?reason=corrections) — factual corrections are always welcome, and they are how the site improves.

**Where the process stands.** Part of it is in place: the two logs below, the ways to reach us, and corrections carried into the language editions in progress. Part of it is not yet: we cannot promise how quickly a report is read and answered, because for now the work is done by one person, as a volunteer. We are working to change that as the foundation is set up and others join, and will publish a response time here once we can keep it.

## Corrections log

154 corrections logged since the site went live.

25 October 2026

### Factual sentences that linked no source, and five that said more than their sources

- **Date:** 2026-10-25
- **Page:** About, FAQ, How We Communicate, How We Use AI, the Claim Ledger, What We Don't Yet Know, Contribute and Objections (the promise); and about forty English pages and one blog post (the sentences)
- **What was wrong:** The site promised a source only for claims with a number, a date, a named study or a quotation. A pass over every English page found 129 factual sentences that linked no source on their page. Five said more than the page's sources: Mental Health credited "several large studies" with a finding its one linked study carries; Xenophobia said research "consistently" finds a link between online hate and offline violence, with one study on the page; Educators called Harmony Square a "Cambridge/Jigsaw" game; Advertising said fingerprinting survives private browsing and most ad blockers; Get Rich Quick said scammers reach "the most receptive people".
- **What we changed:** The promise now reads "every factual claim links to its source"; the site's own argument stays its own. Where an entry on the page carries a sentence, the sentence now links it; where none does, the sentence is narrowed to what a source says, or said as the site's own reading. The five overstatements now say what their sources say. Body Image no longer says that looksmaxxing culture promotes "starvemaxxing", which clinicians recognise as disordered eating, nor that looksmaxxing and bonesmashing can shade into body dysmorphic disorder and eating disorders: no source on the page carried either, and they come back only with one. Nineteen sentences were left as they were, with what would source them, in the review's report (docs/review/sourcing-promise-2026-10-25.md).
- **Source:** Internal review: one Fable read per English page (#175, card `sourcing-promise-scope` = a); the ICO's fingerprinting statement (19 December 2024), the FTC's Data Spotlight (April 2026), KVK's page on the stichting, Kelly et al. (2018).

24 October 2026

### Three pages left out the largest experiments on whether the feed polarises

- **Date:** 2026-10-24
- **Page:** Elections (/en/symptoms/elections/), How It Works (/en/attention-machine/how-it-works/), For Lawmakers (/en/for-you/lawmakers/)
- **What was wrong:** The three pages carried one observational study (Germano, Gómez and Sobbrio, 2026) on Facebook's 2018 ranking change and polarisation, and did not name the largest experiments on the question: the 2020 US election studies run with Meta, in which three months of a chronological feed, no reshares, or less like-minded content did not measurably change polarisation or political attitudes. How It Works also called the direction of effect "well-supported".
- **What we changed:** Elections names the three experiments and their limits (three months, one election, and Meta's post-election emergency ranking changes, which critics argue in a letter to _Science_ changed the comparison feed); How It Works and Lawmakers name them in their contested sections. Four new Sources entries. The Brazilian Portuguese text follows in the same change.
- **Source:** Internal review: the second Fable read of the English argument (#166), findings T1, E4 and M8; Guess et al. 2023 (_Science_ 381, two papers); Nyhan et al. 2023 (_Nature_ 620); Bagchi et al., _Science_ eLetter, 26 September 2024. Card `en-read-election-experiments` = a.

24 October 2026

### Cambridge Analytica's use of the data was stated as "a confirmed fact"

- **Date:** 2026-10-24
- **Page:** Advertising & Surveillance (/en/attention-machine/advertising/), Elections (/en/symptoms/elections/), Timeline (/en/timeline/)
- **What was wrong:** Advertising said Cambridge Analytica used the harvested data "to build psychological profiles for political micro-targeting in the 2016 US presidential election. This is a confirmed fact". The cited sources confirm the harvesting and the transfer; which campaign the data served, and what the "profiles" amounted to, are disputed. Elections and the Timeline said the same more briefly.
- **What we changed:** The pages now say the company used the data in its work for US political campaigns in the 2016 cycle, and that the harvesting and the transfer are the confirmed facts. Whether the presidential election can be named again waits on a reading of the UK Information Commissioner's letter of 2 October 2020. The Brazilian Portuguese text follows in the same change.
- **Source:** Internal review: the second Fable read of the English argument (#166), findings M17 and T14. Card `en-read-cambridge-analytica` = a.

24 October 2026

### State Actors used intelligence agencies' domestic caseloads as evidence about state actors

- **Date:** 2026-10-24
- **Page:** State Actors (/en/attention-machine/state-actors/), Radicalisation Pipelines (/en/symptoms/radicalisation/)
- **What was wrong:** State Actors' section on European intelligence agencies was mostly about domestic radicalisation (MI5's terrorism arrests of children, the BfV's extremism-related crimes, the AIVD's jihadist caseload); only one item concerned a state actor.
- **What we changed:** State Actors keeps the state-linked item (a minor who mapped networks in The Hague for a Russian state-backed hacking group) under a sentence saying what the agencies' reports are evidence of; the domestic figures moved, with their sources, to a new section of Radicalisation Pipelines, "What the security services see". The Brazilian Portuguese text follows in the same change.
- **Source:** Internal review: the second Fable read of the English argument (#166), findings M26 and E5. Card `en-read-state-actors-agencies` = a.

24 October 2026

### Absolutes about defences and corrections, and two sentences about money

- **Date:** 2026-10-24
- **Page:** About (/en/about/), Journalism (/en/truth/journalism/), Science (/en/truth/science/), Symptoms (/en/symptoms/), Age Restrictions (/en/laws/age-restrictions/), Donate (/en/share/donate/)
- **What was wrong:** About called understanding the technique "the most effective defence", a ranking no study makes. Journalism said feed algorithms have "no correction mechanism", and Science that none of the systems shows its corrections or a record of changes; labels, reader notes and appeal routes exist. The Symptoms headline said the harms were "ignored for a decade"; the pages show harms known and not acted on, over more than a decade. Age Restrictions said "The direction is correct" right after calling the evidence thin. Donate said "Reader donations keep it running" and "This is currently the only income"; no donation had been received.
- **What we changed:** "The best-evidenced personal defence"; the ranking has "no correction mechanism of its own", and nothing records what it showed to whom; "for years not acted on"; age limits with design reform as "a lever worth testing"; donations as "what will keep it running" and "the only income the site will take". The Brazilian Portuguese text follows in the same change.
- **Source:** Internal review: the second Fable read of the English argument (#166), findings E22, T7, T5, M29 and E20; the Q3 2026 transparency report. Cards `en-read-key-line-3`, `en-read-symptoms-ignored`, `en-read-age-direction` and `en-read-donate-income` = a.

23 October 2026

### Organisations described EUvsDisinfo without its scope, and Donate said registration "unlocks" grants

- **Date:** 2026-10-23
- **Page:** Organisations (/en/share/organisations/), Donate (/en/share/donate/)
- **What was wrong:** Organisations said EUvsDisinfo "keeps the searchable record of documented cases". Its database is of pro-Kremlin disinformation, and it is a project of the East StratCom Task Force, part of the EU's diplomatic service, as its own About page says. Donate said registration "unlocks" Google Ad Grants and TechSoup discounts; registration makes the foundation eligible to apply, and each programme checks an applicant's non-profit status first.
- **What we changed:** Organisations now names the scope and the sponsor: an official project with one adversary in view. Donate says the foundation becomes eligible to apply, and that both programmes check status. The Dutch, Romanian, Brazilian Portuguese, French and Spanish texts follow in the same change.
- **Source:** Internal review: the second Fable read of the English argument (#166, 23 October 2026), findings E19 and E21; euvsdisinfo.eu/about; Google for Nonprofits eligibility guidelines.

23 October 2026

### Teens overstated a study, and several pages ranked recommendations as "the most effective"

- **Date:** 2026-10-23
- **Page:** For Teens (/en/for-you/teens/), For Parents (/en/for-you/parents/), For Educators (/en/for-you/educators/), What to Do (/en/educate/what-to-do/), Watch & Listen (/en/educate/watch-listen/), Share This (/en/share/share/), Organisations, Tools & Sites (/en/educate/tools/)
- **What was wrong:** Teens said outrage and fear "get shared more widely than things that simply make you happy"; the study cited measured moral-emotional words in political messages and did not compare them with happy content. Parents, What to Do and Watch & Listen called watching _Adolescence_ together "one of the most effective conversations available", What to Do called the Bad News game "more effective than any explanation", Educators and Organisations called prebunking "more effective" than debunking, and Watch & Listen called _The Social Dilemma_ one of the most effective pieces of awareness-raising "in the public domain". No study compares any of these, and a Netflix title is not in the public domain. What to Do said "reading this site is itself a protective act"; the research tested games and videos, not this site.
- **What we changed:** Teens: messages with that moral charge travel further. The recommendations are now recommendations: a natural way to open the subject; a game that shows the techniques from the inside; prebunking that reaches further, because debunking arrives late and works claim by claim; the most widely seen documentary of its kind. What to Do says the interventions have been tested and this site has not. The other editions follow in the same change.
- **Source:** Internal review: the second Fable read of the English argument (#166), findings E9, E10, E12, E16 and E17.

23 October 2026

### Parents and Mental Health treated the Haugen surveys as stronger evidence than the published studies

- **Date:** 2026-10-23
- **Page:** For Parents (/en/for-you/parents/), Mental Health (/en/symptoms/mental-health/), Yes, but… (/en/objections/)
- **What was wrong:** All three said Facebook's internal research, disclosed by Frances Haugen, was "a different kind of evidence" from a disputed correlation, finding harm to teenage girls. Those were internal surveys, no stronger than the published studies; what they establish is that the company saw the signal and the product continued.
- **What we changed:** The three pages now say what the documents show: conduct, which no effect-size debate touches. The other editions follow in the same change.
- **Source:** Internal review: the second Fable read of the English argument (#166), finding E7.

23 October 2026

### Courts said the tobacco argument had been "won" against the platforms, and stated the plaintiffs' allegations as fact

- **Date:** 2026-10-23
- **Page:** Courts & Liability (/en/laws/courts/)
- **What was wrong:** The lead said the argument that sank the tobacco companies "is now being made — and won — against social media platforms"; the page itself says neither verdict is final. The four tobacco parallels were stated as the site's findings: that the platforms' knowledge "was kept from the public and from regulators", and that "children are a documented target demographic", with no source for either. Both are what the states and the families allege.
- **What we changed:** The lead now says the first two juries to hear the argument accepted it, in verdicts that are not yet final. The list is introduced as what the plaintiffs allege, and the concealment and targeting points quote the California Attorney General's release on the states' complaint. The Dutch, Romanian, Brazilian Portuguese, French and Spanish texts follow in the same change.
- **Source:** Internal review: the second Fable read of the English argument (#166, 23 October 2026), finding M30.

23 October 2026

### Tracking & Targeting described the IAB Europe case as still awaiting the Belgian court

- **Date:** 2026-10-23
- **Page:** Tracking & Targeting (/en/attention-machine/tracking-and-targeting/)
- **What was wrong:** It said IAB Europe is a joint controller of the consent string "subject to that court's checks", and that "the consent that RTB relies on has been found invalid". The Brussels Market Court ruled on 14 May 2025: it confirmed the joint controllership for the consent string and the €250,000 fine, and held that IAB Europe is not a controller of the processing inside the auction itself. No ruling found every consent given through the framework void; the framework was found not to comply.
- **What we changed:** The page now cites the ruling, through the Belgian Data Protection Authority's release, and says the consent mechanism "has been found not to comply with the law". The other editions follow in the same change.
- **Source:** Internal review: the second Fable read of the English argument (#166), finding M19; Belgian Data Protection Authority, 14 May 2025.

23 October 2026

### Advertising, Search and Your Brain stated estimates, one article and one study as general facts

- **Date:** 2026-10-23
- **Page:** Advertising (/en/attention-machine/advertising/), Tracking & Targeting, For Lawmakers (/en/for-you/lawmakers/), Search (/en/attention-machine/search/), Your Brain (/en/attention-machine/your-brain/)
- **What was wrong:** The ICCL's 376 and 747 daily broadcasts were given as measurements; they are the ICCL's 2022 estimate from industry data. Advertising said the 1999 concern about profiling was "regulated" before being set aside; the FTC closed the file without action. It said fingerprinting "cannot be defeated"; several browsers now blur it. Search said ads sit at the top of "most searches" and of "any commercial search", and that autocomplete "has repeatedly been found" to suggest extremist completions, on the strength of one 2016 article. Your Brain said threat content "consistently outperforms content that produces calm"; the study cited measured moral-emotional words in political messages, about 20% more spread per word.
- **What we changed:** "An estimated" and "the ICCL's 2022 estimate"; "investigated"; fingerprinting "survives" most countermeasures and "none makes you invisible"; ads on "the searches advertisers care about", "usually"; the 2016 article dated as one investigation, with its own argument stated as its own; "tends to spread further", with the study's figure. The other editions follow in the same change.
- **Source:** Internal review: the second Fable read of the English argument (#166), findings M9, M14, M15, M16, M22, M23 and E26.

23 October 2026

### The AI page stated a forecast as a result, and State Actors described Meliorator in its own voice

- **Date:** 2026-10-23
- **Page:** AI (/en/attention-machine/ai/), The Attention Machine (/en/attention-machine/), Timeline (/en/timeline/), State Actors (/en/attention-machine/state-actors/)
- **What was wrong:** The AI page's lead, description and card said generative AI "makes" manipulation dramatically cheaper, and the Timeline's 2022 entry that it "makes" it cheap; the source the page cites is a forecast, and the page's own evidence section finds no conclusive effect yet. State Actors described the Meliorator software in its own voice, on the strength of the intelligence advisory alone, and said "polarisation is profitable for platforms", which the platforms dispute.
- **What we changed:** Generative AI "is expected to" make manipulation cheaper, and "is removing" the constraint. Meliorator is described as the advisory describes it, and the US Department of Justice's announcement of the same day — the seizure of two domain names and the search of 968 accounts on X, under court warrants — now corroborates it. "Polarising content is engaging, and engagement is what the platforms sell." The other editions follow in the same change.
- **Source:** Internal review: the second Fable read of the English argument (#166), findings M24, M25 and M27; US Department of Justice, 9 July 2024.

23 October 2026

### Overstatements on the Laws, Gamification and Data Combination pages

- **Date:** 2026-10-23
- **Page:** Laws (/en/laws/), Timeline, Gamification (/en/attention-machine/gamification/) and its demo, Data Combination (/en/attention-machine/data-combination/), the DSA (/en/laws/dsa/), the GDPR (/en/laws/gdpr/)
- **What was wrong:** Laws and the Timeline called the GDPR the first privacy law "with penalties that bite"; the 1995 Directive carried penalties through national law, and the GDPR's difference is their scale. Gamification said variable rewards are "unpredictable enough that you cannot stop", and its demo called them "the most reliable way known to psychology" to keep a behaviour going; the studies compare a few basic schedules. Data Combination said "no company set out to build that profile" beside a data-broker card whose business is building it. The DSA page drew a verdict from a study of two countries and one platform that its own Deeper box calls a signal. The GDPR lead used "surveillance capitalism", a scholar's coinage, unattributed.
- **What we changed:** "Penalties on the scale of the companies it addressed"; "stopping is hard"; "of the basic reward schedules psychology has compared"; the broker named among those who build the profile; "a signal rather than a verdict"; "behavioural advertising". The other editions follow in the same change.
- **Source:** Internal review: the second Fable read of the English argument (#166), findings M12, M13, M21, M28, M31 and M32.

23 October 2026

### The Timeline said Section 230 "protects platforms, not users"

- **Date:** 2026-10-23
- **Page:** Timeline (/en/timeline/)
- **What was wrong:** The 1996 entry said Section 230 "protects platforms, not users", and the paragraph under the timeline that it gave platforms protection "rather than giving users any". The law's operative sentence protects both: "No provider or user of an interactive computer service shall be treated as the publisher or speaker" of what someone else posted. What it does not do is give the person harmed a remedy against the service.
- **What we changed:** Both now say it shields the online service, the intermediary, rather than giving anyone harmed a remedy. The Dutch, Romanian, Brazilian Portuguese, French and Spanish texts follow in the same change.
- **Source:** Internal review: the second Fable read of the English argument (#166, 23 October 2026), finding T22, checked against 47 U.S.C. § 230(c)(1).

23 October 2026

### Elections and the Timeline dropped "up to" from the 87 million Facebook profiles, and Elections called Georgescu "previously unknown"

- **Date:** 2026-10-23
- **Page:** Elections (/en/symptoms/elections/), Timeline (/en/timeline/), AI (/en/attention-machine/ai/)
- **What was wrong:** Facebook's own disclosure says the data of "up to 87 million people" may have been shared with Cambridge Analytica; Elections and the Timeline gave the ceiling as the count. Elections and AI called Călin Georgescu a "previously unknown" candidate; he was a little-known one, with a public record before 2024. Elections also said the declassified Romanian documents were "showing" the TikTok amplification, which states the intelligence finding as fact; the AI page has said "stating" since 19 October.
- **What we changed:** "Up to 87 million" on both pages; "little-known" on both; Elections now says the documents were "stating" that he had received the amplification. The other editions follow in the same change.
- **Source:** Internal review: the second Fable read of the English argument (#166), findings T13 and T14; Facebook, 4 April 2018.

23 October 2026

### The Manosphere page offered terrorism figures as the agencies "treating this as a security concern"

- **Date:** 2026-10-23
- **Page:** The Manosphere (/en/symptoms/manosphere/)
- **What was wrong:** It said intelligence agencies "are treating this", the manosphere, "as a security concern", and gave MI5's figure for all terrorism investigations of under-18s and the AIVD and BfV reports on young right-wing extremists. None of those sources is about the manosphere. Only the Dutch forensic mental-health services, reported by NOS, are.
- **What we changed:** The security services' figures are now given as the wider pattern of young people radicalised largely online, of which the manosphere is one strand, and the forensic services are named as the source on the manosphere itself. The other editions follow in the same change.
- **Source:** Internal review: the second Fable read of the English argument (#166), finding T15.

23 October 2026

### Consumerism called psychographic targeting's effect on purchases "established", and Body Image called the correlation "strong"

- **Date:** 2026-10-23
- **Page:** Consumerism (/en/symptoms/consumerism/), Body Image (/en/symptoms/body-image/)
- **What was wrong:** Consumerism said the effect of psychographic targeting on purchases "is established by field experiment". The experiments it cites (Matz et al. 2017, over 3.5 million people reached) did not assign at random who saw which ad, and a published letter (Eckles, Gordon and Johnson, PNAS 2018) argues that this threatens their causal conclusion; the authors replied. Body Image's Deeper box said the "correlation is strong", above a meta-analysis that the page itself describes as finding a small but significant link.
- **What we changed:** Consumerism now says the claim has field evidence behind it, names the design limit and cites the letter and the reply. Body Image now says the correlation is consistent and the effect small. The other editions follow in the same change.
- **Source:** Internal review: the second Fable read of the English argument (#166), findings T10 and T12; Eckles, Gordon & Johnson (2018), PNAS 115(23), E5254–E5255.

23 October 2026

### What We Don't Yet Know and AI called AI companions' incentives "identical" to social media's

- **Date:** 2026-10-23
- **Page:** What We Don't Yet Know (/en/symptoms/unknown/), AI (/en/attention-machine/ai/)
- **What was wrong:** Both said the commercial incentive structure of AI companions "is identical to social media". Many companion products are paid for by subscription, not advertising; the incentive to maximise return use is shared, the advertising model is not.
- **What we changed:** Both now say the incentive is close to social media's, even where the money comes from subscriptions. The other editions follow in the same change.
- **Source:** Internal review: the second Fable read of the English argument (#166), findings T19 and M24.

23 October 2026

### Five overstatements on the Truth and Symptoms pages

- **Date:** 2026-10-23
- **Page:** Science (/en/truth/science/), Get-Rich-Quick (/en/symptoms/get-rich-quick/), Xenophobia (/en/symptoms/xenophobia/), Mental Health (/en/symptoms/mental-health/), Yes, but… (/en/objections/)
- **What was wrong:** Science said the replication reforms "produced measurable improvement in research practices"; the study it relies on measured reported p-values, a signature of the change, as its own Deeper box says. Get-Rich-Quick called pig-butchering "the fastest-growing investment fraud", which no source on the page says. Xenophobia called the causal pathway from online hate to violence "real and documented" in general, where the study behind it covers one country and period. Mental Health called the word "addiction" "inaccurate" without qualification, where the study it cites found that most, not all, who use it of themselves do not meet clinical criteria. Yes, but… offered terrorism arrests of children as evidence that they are "not immune to the engagement algorithm"; the arrests show radicalisation, not what caused it.
- **What we changed:** "Measurable signs that research practice has changed"; "a fast-growing kind of investment fraud"; "a causal pathway has been documented, with rigour, in one country and period"; "usually inaccurate"; and on Yes, but…, the audit evidence on what the feed recommends to young male accounts, with the arrests kept as the far end and not as proof. The other editions follow in the same change.
- **Source:** Internal review: the second Fable read of the English argument (#166), findings T9, T17, T18, T21 and T23.

23 October 2026

### Courts and Section 230 said courts had put infinite scroll, autoplay and notifications outside Section 230

- **Date:** 2026-10-23
- **Page:** Courts & Liability (/en/laws/courts/), Section 230 (/en/laws/section-230/)
- **What was wrong:** Both pages said US courts were finding that Section 230 does not protect platforms over their own design choices, naming infinite scroll, autoplay and push notifications (Courts added notifications "calibrated to moments of maximum psychological vulnerability", which no source on the page carried). The ruling both pages cite, the federal order of 14 November 2023 in the youth-harm litigation, held the opposite for those features: claims over the feed's lack of a "beginning and end", the "use of algorithms to promote addictive engagement" and the timing of notifications were barred. What it let go forward were the claims over parental controls, age verification, barriers to deleting an account, filters, reporting tools and failure to warn. The Courts page's own timeline entry said so, against its lead.
- **What we changed:** Both pages now name the design claims the ruling allowed, and say that the feed's own features are the line still being drawn: barred in that ruling, while the Third Circuit let a suit over TikTok's recommendations go ahead in 2024. The order itself is now cited beside the law firm's summary. The Dutch, Romanian, Brazilian Portuguese, French and Spanish texts follow in the same change.
- **Source:** Internal review: the second Fable read of the English argument (#166, 23 October 2026), finding M5, checked against the order (N.D. Cal., No. 4:22-md-03047-YGR, Dkt. 430).

23 October 2026

### The AI page called the algorithmic amplification in Romania "confirmed"

- **Date:** 2026-10-23
- **Page:** AI (/en/attention-machine/ai/)
- **What was wrong:** It said of the annulled Romanian election that "the algorithmic amplification is confirmed". That rests on the declassified intelligence note alone (as the state news agency reported it), which the Constitutional Court accepted and constitutional-law scholars criticised. The site's rule is that intelligence reporting corroborates a claim and never carries one alone.
- **What we changed:** The page now says what the sources support claim by claim: the coordinated amplification rests on the declassified note, which the Court accepted and critics dispute; that influencers were paid to post content that ended up promoting the candidate is also documented outside the note, by a news investigation that drew on the tax authority; the role of generative AI is a further, thinner claim. The other editions follow in the same change.
- **Source:** Internal review: the second Fable read of the English argument (#166), finding M4.

23 October 2026

### How It Works said the feed "decides based on one signal", and gave the 64% figure for the whole platform

- **Date:** 2026-10-23
- **Page:** How It Works (/en/attention-machine/how-it-works/)
- **What was wrong:** It said a recommender decides "based on one signal" and that accuracy and wellbeing "are simply not inputs to the model". The source it cites describes engagement as the core logic, with secondary inputs added on top, such as a score for the likelihood that a post is hate speech and a classifier trained on user surveys. It also gave the 64% of joins to extremist groups as a figure "on the platform", where the internal slide, as the page's own Deeper box says, studied political groups in Germany.
- **What we changed:** The recommender now decides "overwhelmingly, on one kind of signal", and other inputs are described as adjustments layered on top, not the quantity the system maximises. The 64% figure is now given for the German political groups the slide studied: one country, one year, the company's own measurement. The other editions follow in the same change.
- **Source:** Internal review: the second Fable read of the English argument (#166), findings M1 and M2.

23 October 2026

### Health Misinformation presented the 2019 measles surge as the cost of misinformation

- **Date:** 2026-10-23
- **Page:** Health Misinformation (/en/symptoms/health-misinformation/)
- **What was wrong:** Under "The cost", the worldwide measles figures for 2019 were followed by a clause tying the surge to countries where vaccination coverage slipped, which on a page about misinformation reads as misinformation's doing. The WHO release cited attributes the surge to "a failure to vaccinate children on time" and does not mention misinformation.
- **What we changed:** The page now gives the WHO's explanation and says that misinformation is one of the reasons people decline a vaccine, not the explanation for the global figure. The other editions follow in the same change.
- **Source:** Internal review: the second Fable read of the English argument (#166), finding T3.

23 October 2026

### Mental Health and the Timeline stated the 2012 timing as fact

- **Date:** 2026-10-23
- **Page:** Mental Health (/en/symptoms/mental-health/), Timeline (/en/timeline/)
- **What was wrong:** Mental Health stated flat that adolescent mental health began deteriorating around 2012, as smartphones spread, and marked the timing contested only two paragraphs later. The Timeline's 2012 entry said researchers "begin documenting" the decline that year; the decline was dated to around 2012 only years later, and that dating is the contested part.
- **What we changed:** Mental Health now attributes the timing to the measures Jonathan Haidt assembles and gives his critics' objection in the same sentence. The Timeline entry now says the decline was later dated to around 2012, mainly on US surveys, and that how widespread it was and what caused it are contested. The other editions follow in the same change.
- **Source:** Internal review: the second Fable read of the English argument (#166), finding T2.

23 October 2026

### One study of Facebook's 2018 ranking change was stated as settled, and filed under "Confirmed"

- **Date:** 2026-10-23
- **Page:** Elections (/en/symptoms/elections/), How It Works (/en/attention-machine/how-it-works/), For Lawmakers (/en/for-you/lawmakers/), Young Adults (/en/for-you/young-adults/), Democracy (/en/truth/democracy/)
- **What was wrong:** One observational study (Germano, Gómez and Sobbrio, survey data from the US and Italy) became "measurable effects on political opinion at national scale" on Elections and "political consequences at national scale" on How It Works; Lawmakers stated it as fact, and Lawmakers and Elections listed it under "Confirmed". Young Adults spoke of "the political polarisation of the feed". Elections and Democracy said the system amplifies "false, inflammatory, and polarising content", where the evidence on the pages is about inflammatory and polarising content.
- **What we changed:** Each page now says it is one study of survey data, not an experiment, and that how far a single ranking change moves polarisation is not settled; the study moved from "Confirmed" to "Contested" on Lawmakers and Elections; Young Adults says "the polarised feed"; Elections and Democracy say "inflammatory and polarising content, true or false". The other editions follow in the same change.
- **Source:** Internal review: the second Fable read of the English argument (#166), findings T1 and E4.

23 October 2026

### Four pages said a translation goes live only after native review, without the exception

- **Date:** 2026-10-23
- **Page:** How We Communicate (/en/about/how-we-communicate/), Contribute (/en/share/contribute/), FAQ (/en/faq/), Yes, but… (/en/objections/)
- **What was wrong:** They said a translation goes live only after a native speaker has reviewed it. Since the Brazilian Portuguese edition was published while its volunteer reviewers are still reading it, that is true of every edition but one kind; How We Use AI and Translation Status already said so.
- **What we changed:** The four pages now state the exception: an edition published under volunteer review, which says so on every page. The other editions follow in the same change.
- **Source:** Internal review: the second Fable read of the English argument (#166), finding E6.

23 October 2026

### Audience and law pages stated contested causal claims as settled

- **Date:** 2026-10-23
- **Page:** For Parents (/en/for-you/parents/), For Lawmakers (/en/for-you/lawmakers/), Teens (/en/for-you/teens/), What to Do (/en/educate/what-to-do/), Age Restrictions (/en/laws/age-restrictions/), Search (/en/attention-machine/search/), State Actors (/en/attention-machine/state-actors/)
- **What was wrong:** Parents offered "the primary cause" or "a significant contributing factor" as the only answers to a causal question that is itself contested; Lawmakers said the harms on this site are not contested at the level of whether they exist, which for adolescent mental health is exactly what is contested; Age Restrictions spoke of "the design features that cause harm". Parents, Teens and What to Do said notifications are timed to "the moment of maximum vulnerability", and Teens that the feed targets "the hour your willpower is lowest": design-intent claims no page sourced. Search turned one laboratory study into "Position controls belief". Lawmakers and State Actors said intelligence agencies now say "what researchers have been documenting", where the agencies say that radicalisation happens online and nothing about engagement ranking.
- **What we changed:** Each sentence now says what its sources carry: the causal question is marked contested where it is asked; mental health is named as the exception on Lawmakers; the harms are "attributed to" design; notifications are sent to bring the user back; position "moves belief — in that study, measurably"; and the agencies are quoted for what they say, which is narrower than the site's argument. The other editions follow in the same change.
- **Source:** Internal review: the second Fable read of the English argument (#166), findings E1, E2, E3, E5, M3 and M6.

22 October 2026

### The privacy page said the server logs hold no personal data

- **Date:** 2026-10-22
- **Page:** Privacy (/en/about/privacy/)
- **What was wrong:** In the table of who processes what, the Cloudflare row said "Standard server logs, no personal data". A server log records each request's IP address, and an IP address can be personal data under EU law (CJEU, _Breyer_, C-582/14, 2016).
- **What we changed:** The row now says "Standard server logs, which include your IP address, kept by Cloudflare under its own policy (we do not receive them)": the site's own Worker logs have been off since 7 October 2026, and Cloudflare, as the host, keeps its logs under the privacy policy the row links. The Dutch, Romanian, Brazilian Portuguese, French and Spanish editions carry the same change.
- **Source:** Internal review: the Fable review of 10 October 2026 (§4), collected in #164; Decisions card `en-privacy-server-logs` = c.

22 October 2026

### The Teens page said every service it lists is free

- **Date:** 2026-10-22
- **Page:** For teens (/en/for-you/teens/)
- **What was wrong:** It introduced its list of help lines with "These services are free", but the list includes lines that are not, or that do not say so: Meri Trustline in India is a mobile number, and Ora de Net in Romania is not called free by its own site.
- **What we changed:** The sentence now says that most of these services are free and that each entry says what it costs where that is stated — the wording the Get Help page already uses for its own list of support lines. The Dutch, Romanian, Brazilian Portuguese, French and Spanish texts follow in the same change.
- **Source:** Internal review: the Fable translation review of 26 September 2026, collected in #164.

22 October 2026

### The Share page said the site discloses its referral relationships

- **Date:** 2026-10-22
- **Page:** Share (/en/share/)
- **What was wrong:** The card for Things Worth Paying For said "Referral relationships disclosed", which suggests there are some. The page it links to says the site has no referral or affiliate income at all.
- **What we changed:** The card now says "No referral or affiliate income", as the page does. The Dutch, Romanian, Brazilian Portuguese, French and Spanish texts follow.
- **Source:** Internal review: the Fable review of the Romanian section 5 drafts, 10 October 2026, collected in #164.

22 October 2026

### Get Help said any report on India's cybercrime portal can be anonymous

- **Date:** 2026-10-22
- **Page:** Where to get help (/en/educate/get-help/), entry cybercrime.gov.in · 1930
- **What was wrong:** It said "anonymous reporting possible" for the portal as a whole. The portal offers anonymous reports only for crimes against women and children; a report of financial fraud cannot be anonymous.
- **What we changed:** The entry now says that a report about a woman or child can be anonymous and a financial-fraud report cannot, as the Dutch, Romanian and Hindi texts already did; the Brazilian Portuguese, French and Spanish texts follow. The same change removes a repeated "(free)" from the Offlimits entry (its line is already described as free and anonymous) and adds deepfakes to what Meri Trustline helps with, as its partner Aarambh India describes it and the Hindi text already said; for those two the Dutch, Romanian, Brazilian Portuguese, French and Spanish texts follow.
- **Source:** Internal review: the Fable translation review of 26 September 2026 and the Fable review of !247, 10 October 2026, collected in #164; the portal's own reporting page, as recorded in `docs/research/IN.md`.

22 October 2026

### The AI page put the "testing ground" verdict in the researchers' mouths

- **Date:** 2026-10-22
- **Page:** AI & The Next Layer (/en/attention-machine/ai/)
- **What was wrong:** It said the 2024 European Parliament elections were "described by researchers as a 'testing ground'" for AI. The abstract of Farooq et al. (2025) says the elections "were regarded as" one: the authors report a view held before the vote, which their study then tests, not their own verdict.
- **What we changed:** The sentence now says the elections were "regarded as a 'testing ground'". The same change quotes Cornea's own words for those who defended Romania's annulment — "an expression of militant democracy" — on the AI and Elections pages, and gives the Timeline's 2007 entry in date order (the iPhone in June, Facebook's advertising in November). The Dutch, Romanian, Brazilian Portuguese, French and Spanish texts follow.
- **Source:** Internal review: the Fable citation reviews of 17 October 2026 (#122) and of the Timeline, 19 October 2026 (#147), collected in #164.

22 October 2026

### The tracker test said it sends this page's address, and did not say it lets two companies set cookies

- **Date:** 2026-10-22
- **Page:** Tracking & Targeting demo (/en/attention-machine/tracking-and-targeting/), its tracker test, and Privacy (/en/about/privacy/)
- **What was wrong:** Both said each of the test's three requests carries "this page's address". The site tells browsers to send other sites only its own address, so the requests carry `https://attentionmachine.org/` and not the page's. The line shown after the test also said Google Analytics learns which page you opened and where you came from; this request tells it neither. And neither page said that, in reply, X sets a cookie called muc\_ads that lasts two years and DoubleClick a test cookie that lasts fifteen minutes, if the browser accepts cookies from other sites.
- **What we changed:** The test's text before the button, the page's opening note and the privacy page now say "this site's address (not this page's)" and name both cookies and how long they last; the page's Sources carry the request and response headers of the run that showed it. The line after the test says Google learns that a browser at your IP address opened a page on this site, and when, and that the real tag on a site also sends which page and where you came from. The requests themselves are unchanged. All five other editions carry the same change.
- **Source:** Internal review (#161, found while fixing the probes in #159), against the request and response headers of a real run in Chromium on 22 October 2026.

22 October 2026

### The privacy page's list of what Plausible records left out how far a page is read

- **Date:** 2026-10-22
- **Page:** Privacy (/en/about/privacy/)
- **What was wrong:** It said that list of what the site's analytics records was complete, but it left out a reading the tracker sends by itself with each page view: how far down the page was read and for how long, as a percentage and a number of seconds, with nothing that identifies the reader. It also did not say that a click on one of the links under a demo's "One thing to do now" is counted as such, or how long the counts are kept.
- **What we changed:** The page now says all three: the scroll depth and time on the page, the demo's links, and that the counts are kept with no end date, because Plausible as we run it has no setting that deletes them. The table row for Plausible names the reading too.
- **Source:** Internal review: the analytics audit of 22 October 2026 (#158, finding 3; #160).

22 October 2026

### The AI page said generative tools produce content "at near-zero cost, at any scale, in seconds"

- **Date:** 2026-10-22
- **Page:** AI & The Next Layer (/en/attention-machine/ai/)
- **What was wrong:** It said that since 2022 tools can produce convincing text, images, cloned voices and synthetic video "at near-zero cost, at any scale, in seconds", and further down that influence operations "can now be run at near-zero marginal cost". The only source cited, the Stanford AI Index 2023, supports the 2022 releases but says nothing about the cost, scale or speed of producing an output; the second sentence cited nothing.
- **What we changed:** The first sentence now says that researchers expect these tools to drive down the cost of influence campaigns and make them easier to scale; the second says such operations can now be run far more cheaply. Both link Goldstein et al. (2023), a joint report by Georgetown CSET, OpenAI and the Stanford Internet Observatory, which forecasts exactly that for language models. The Dutch, Romanian, Brazilian Portuguese, French and Spanish texts follow in the same change.
- **Source:** Internal review (#153), checked against the AI Index 2023 report (full text) and Goldstein et al., _Generative Language Models and Automated Influence Operations_ (arXiv:2301.04246), p. 8.

22 October 2026

### The AI page said the AI Act and the DSA were not yet implemented or enforced

- **Date:** 2026-10-22
- **Page:** AI & The Next Layer (/en/attention-machine/ai/)
- **What was wrong:** It said the EU AI Act, the DSA and national regulations were attempting to address AI-driven influence operations, and that "None are yet fully implemented or enforced." The DSA has applied in full since February 2024, and on 5 December 2025 the Commission fined X €120 million under it; Article 50 of the AI Act, its transparency duties for AI systems and AI-generated content, has applied since 2 August 2026.
- **What we changed:** The sentence now says the DSA is being enforced, with the X fine as the example, that Article 50 has applied since 2 August 2026, and that how far either reaches influence operations of this kind is not yet settled. Both facts link the Commission's own pages. The Dutch, Romanian and Brazilian Portuguese texts follow in the translation sync.
- **Source:** Internal review (#153), checked against the Commission's press release of 5 December 2025 and its FAQ on Article 50 (`docs/review/cite-verify-2026-10-19/triage.md`, §10).

22 October 2026

### Xenophobia credited Facebook's own human-rights assessment with calling its response "slow and inadequate"

- **Date:** 2026-10-22
- **Page:** Symptoms → Xenophobia & Violence (/en/symptoms/xenophobia/)
- **What was wrong:** It said both the UN Independent Fact-Finding Mission and the human-rights impact assessment Facebook commissioned from BSR "concluded that the company's response to the hate speech on its platform had been slow and inadequate". The Mission's report (A/HRC/39/64, ¶74) says "the response of Facebook has been slow and ineffective"; the BSR assessment says neither "slow" nor "inadequate" about Facebook's response. It finds that "the Facebook platform in Myanmar is being used by bad actors to spread hate speech, incite violence, and coordinate harm".
- **What we changed:** The sentence now quotes each source in its own words, and the Mission's entry links the report itself. The Dutch, Romanian and Brazilian Portuguese texts follow in the translation sync.
- **Source:** Internal review (#153), checked against the Mission's report (A/HRC/39/64, 12 September 2018) and the BSR assessment (October 2018), read in full (`docs/review/cite-verify-2026-10-19/triage.md`, §10).

22 October 2026

### Health Misinformation cited a study of news coverage as evidence about misinformation

- **Date:** 2026-10-22
- **Page:** Symptoms → Health Misinformation (/en/symptoms/health-misinformation/)
- **What was wrong:** It said health misinformation "also leads people to reject treatment for heart disease", citing Nielsen and Nordestgaard (2016). The study followed 674,900 people in Denmark who started statins: early discontinuation rose with negative statin-related news stories, and stopping early was associated with more heart attacks and cardiovascular deaths. It does not call the stories misinformation, and it measures stopping a treatment, not rejecting one.
- **What we changed:** The sentence now says what the study found, as an observed association, and introduces it as coverage that need not be false to do harm. The Dutch, Romanian and Brazilian Portuguese texts follow in the translation sync.
- **Source:** Internal review (#153), checked against the study's abstract (European Heart Journal 37(11), 908–916) (`docs/review/cite-verify-2026-10-19/symptoms.md`, H-9).

22 October 2026

### Consumerism extended a personality finding to politics and sexual orientation

- **Date:** 2026-10-22
- **Page:** Symptoms → Consumerism (/en/symptoms/consumerism/)
- **What was wrong:** It said Facebook likes could predict a person's personality, politics and sexual orientation "more accurately than their friends could", citing Youyou, Kosinski and Stillwell (2015). That study compared computer and friends' judgements of personality only (r = 0.56 against 0.49); the predictions of politics and sexual orientation come from Kosinski et al. (2013), which made no comparison with friends.
- **What we changed:** The sentence now says "and, for personality, more accurately than their friends could". The Dutch, Romanian and Brazilian Portuguese texts follow in the translation sync.
- **Source:** Internal review (#153), checked against both papers' abstracts (PNAS 112(4); PNAS 110(15)) (`docs/review/cite-verify-2026-10-19/symptoms.md`, C-4).

22 October 2026

### The Free Speech page credited three scholars with a definition of manipulation that is not theirs

- **Date:** 2026-10-22
- **Page:** Free Speech (/en/truth/free-speech/)
- **What was wrong:** It said that, as Susser, Roessler and Nissenbaum define it, manipulation "influences a person by exploiting weaknesses and bypassing their capacity for conscious, rational choice". Influence that circumvents rational, deliberative faculties is the non-rational-influence account their paper surveys and sets aside. Their own definition is "intentionally and covertly influencing their decision-making, by targeting and exploiting their decision-making vulnerabilities".
- **What we changed:** The sentence now gives their definition: manipulation is hidden influence that steers a person's decisions by targeting and exploiting their decision-making vulnerabilities, in a way they are not aware of. The Dutch, Romanian, Brazilian Portuguese, French and Spanish texts carry the same change.
- **Source:** Internal review (#153), checked against Susser, Roessler & Nissenbaum (2019), _Technology, autonomy, and manipulation_, Internet Policy Review 8(2) (`docs/review/cite-verify-2026-10-19/truth-about-objections.md`).

22 October 2026

### The glossary called "reverse censorship" Tim Wu's term

- **Date:** 2026-10-22
- **Page:** Free Speech (/en/truth/free-speech/)
- **What was wrong:** The glossary entry "Reverse censorship" began "Tim Wu's term for silencing speech…". Wu did not coin it: in _Is the First Amendment Obsolete?_ (Knight First Amendment Institute, 2017) he writes of "'flooding' tactics (sometimes called 'reverse censorship')".
- **What we changed:** The entry now begins "A term, taken up by the legal scholar Tim Wu, for silencing speech…" and cites the essay. The Dutch, Romanian and Brazilian Portuguese texts follow in the translation sync.
- **Source:** Internal review (#153), checked against the essay's text on knightcolumbia.org (`docs/review/cite-verify-2026-10-19/glossary-C.md`).

22 October 2026

### The Timeline credited a visualisation paper with the design of its three tracks

- **Date:** 2026-10-22
- **Page:** Timeline (/en/timeline/), "A note on how this page is built" and its Sources
- **What was wrong:** It called the three tracks "a standard parallel-track (“swim-lane”) encoding", citing Segel and Heer (2010), and described that paper as "the basis for narrative and parallel-track timelines". The paper sets out the genres of narrative visualization; it does not discuss lanes, parallel tracks or timelines of that kind.
- **What we changed:** The note now says the page is a narrative timeline, one form of what Segel and Heer call narrative visualization, and that its three tracks run side by side in parallel lanes, without crediting the lanes to the paper. The entry now reads "narrative visualization and its genres". The Dutch, Romanian, Brazilian Portuguese, French and Spanish texts carry the same change.
- **Source:** Internal review (#153), checked against Segel, E. & Heer, J. (2010), _Narrative Visualization: Telling Stories with Data_ (idl.cs.washington.edu).

22 October 2026

### The Timeline dated the Christchurch Royal Commission's findings to the year of the attack

- **Date:** 2026-10-22
- **Page:** Timeline (/en/timeline/)
- **What was wrong:** The entry "Christchurch: New Zealand's Royal Commission documents the attacker's online activity" stood under 2019, the year of the attack. The Royal Commission's report was presented on 26 November 2020 and made public on 8 December 2020, and the Symptom track dates each harm to when it was first documented — in peer-reviewed research, official investigations, or court — as the Rohingya entry is dated to the UN report of 2018.
- **What we changed:** The entry now stands under 2020. Its wording is unchanged. The Dutch, Romanian, Brazilian Portuguese, French and Spanish texts carry the same change.
- **Source:** Internal review (#153); the page's own rule ("How to read this page") and the Radicalisation page's source, Royal Commission of Inquiry (2020), _Ko tō tātou kāinga tēnei_.

22 October 2026

### Lawmakers credited a UK cohort study with a finding about passive use, and three pages stated a contested link as established

- **Date:** 2026-10-22
- **Page:** Lawmakers (/en/for-you/lawmakers/), Mental Health (/en/symptoms/mental-health/), Parents (/en/for-you/parents/)
- **What was wrong:** Under "what is well-established", it said "Passive social media use correlates with worse mental health outcomes in adolescents, with a large UK cohort study finding the association stronger for girls". The study (Kelly et al. 2018, UK Millennium Cohort Study, 10,904 14-year-olds) measured hours of social media use, not passive use. Whether passive use is linked to worse well-being is contested: a 2022 review of 40 survey studies found that most did not support the link. Mental Health said, under "What is well-established", that passive scrolling "correlates more strongly with negative outcomes than active social use", in the paragraph that ends "the correlation itself is not seriously disputed"; Parents said, in its opening paragraph on the research, that "other research finds it stronger for passive scrolling than active social interaction". The passive-use glossary entry on both pages called passive use "the form most consistently linked to lower well-being" without saying this is contested, and Parents listed "worse for passive use" among the established findings.
- **What we changed:** The sentence now says that heavier social media use correlates with worse mental health outcomes in adolescents, with the UK cohort study finding the association with depressive symptoms stronger for girls. The same sentence says that whether passive scrolling is the harmful part is contested, and cites both sides: experiments that found it lowered mood (Verduyn et al. 2015) and a review in which most studies did not find the link (Valkenburg, van Driel & Beyens 2022). On Mental Health, "not seriously disputed" now covers only the association with heavy use, and a sentence of its own says that some studies find passive scrolling linked more strongly to negative outcomes than active use, but that the finding is contested: a 2022 review of 40 survey studies found that most did not bear it out (Valkenburg, van Driel & Beyens 2022, added to the page's Sources). On Parents, the opening sentence says "some research" and marks the finding contested in the same sentence, with the same review; its Deeper box lists the passive-versus-active question among the contested points. The glossary entry on both pages now says "a 2017 review found passive use the form most consistently linked to lower well-being, though this is contested", citing Verduyn et al. 2017 and Valkenburg et al. 2022. The Dutch, Romanian, Brazilian Portuguese, French and Spanish texts carry the same changes.
- **Source:** Internal review (#153), checked against the abstracts of Kelly et al. 2018 (EClinicalMedicine 6), Verduyn et al. 2015 (Journal of Experimental Psychology: General 144(2)) and Valkenburg, van Driel & Beyens 2022 (New Media & Society 24(2)) (`docs/review/cite-verify-2026-10-19/triage.md` §10, SF-52).

22 October 2026

### The glossary credited Europol's threat assessment with calling violence-as-a-service "fast-growing"

- **Date:** 2026-10-22
- **Page:** Recruited to Harm (/en/symptoms/recruited-to-harm/)
- **What was wrong:** The glossary entry "Violence as a service" said Europol's EU-SOCTA 2025 "identified it as a fast-growing model across Europe". The assessment does not say that. It says "Organised crime-related violence is intensifying in several Member States", by "professional actors operating without borders under a violence-as-a-service model".
- **What we changed:** The sentence now says that EU-SOCTA 2025 found organised-crime violence intensifying in several member states under a violence-as-a-service model. The entry also cites Europol's Intelligence Notification of November 2024 for the young recruits, whose "no criminal records make them low-risk operatives". The Dutch, Romanian and Brazilian Portuguese texts follow in the translation sync.
- **Source:** Internal review (#153), checked against EU-SOCTA 2025 and Europol Intelligence Notification 2024-033 (`docs/review/cite-verify-2026-10-19/glossary-C.md`).

22 October 2026

### The tracker test's two Google requests went to endpoints Google retired in 2023

- **Date:** 2026-10-22
- **Page:** Tracking & Targeting (/en/attention-machine/tracking-and-targeting/), the live tracker test
- **What was wrong:** The test's Google Analytics and Google Ads requests used Universal Analytics, which stopped processing data on 1 July 2023. The endpoints still answered, so the blocked/loaded result was right, but the requests were not the ones Google's tags send today. The ad-exchange result also said a remarketing list is one "advertisers buy"; an advertiser builds it from its own visitors.
- **What we changed:** The Google Analytics request is now the one a GA4 tag sends, and the ad-exchange request is now the Google Ads remarketing tag's. The test's description now says it sends three requests rather than loading three pixels, and the ad-exchange result now says what a remarketing tag does. The Dutch, Romanian, Brazilian Portuguese, French and Spanish texts changed with it.
- **Source:** Internal review (#153, #159), checked against Google's _Google Analytics 4 has replaced Universal Analytics_, _Use a Content Security Policy_ and _Remarketing_ pages (`docs/review/cite-verify-2026-10-19/home-faq-glossary-demos.md`, G5 §8).

22 October 2026

### An Atlantic Council analysis was credited to its Digital Forensic Research Lab

- **Date:** 2026-10-22
- **Page:** AI (/en/attention-machine/ai/), Elections (/en/symptoms/elections/)
- **What was wrong:** The Sources entries on both pages, and the glossary entry for coordinated inauthentic behaviour, labelled the Atlantic Council's analysis of the Romanian election annulment "Atlantic Council (DFRLab)". The piece (6 December 2024) is a post on the Council's New Atlanticist blog, "By Atlantic Council experts"; it is not a publication of the Digital Forensic Research Lab.
- **What we changed:** The entries now read "Atlantic Council (New Atlanticist)". No sentence on either page rested on the DFRLab label. The Dutch, Romanian and Brazilian Portuguese entries carry the same fix.
- **Source:** Internal review (#153), checked against the article's page on atlanticcouncil.org (`docs/review/cite-verify-2026-10-19/glossary-A.md`).

22 October 2026

### Two glossary entries gave the 1984 edition of Cialdini's \*Influence\* the title and publisher of later editions

- **Date:** 2026-10-22
- **Page:** Get-Rich-Quick & Scams (/en/symptoms/get-rich-quick/), Consumerism (/en/symptoms/consumerism/)
- **What was wrong:** Both pages, in the glossary entry "Social proof" and in their Sources, cited Robert Cialdini's book as "Cialdini, R. (1984), _Influence: The Psychology of Persuasion_, Harper Business." The 1984 first edition is _Influence: How and Why People Agree to Things_, published by William Morrow in New York. "The Psychology of Persuasion" is the subtitle of later editions, and Harper Business published the 2021 edition.
- **What we changed:** The four entries now read "Cialdini, R. (1984), _Influence: How and Why People Agree to Things_, William Morrow." The Dutch, Romanian and Brazilian Portuguese pages carry the same fix.
- **Source:** Internal review (#153), checked against the Open Library record of the 1984 edition (Morrow, New York; LCCN 83021963, OCLC 10019153) and East Carolina University's catalogue record (`docs/review/cite-verify-2026-10-19/glossary-C.md`, Social proof; should-fix SF-76).

22 October 2026

### Elections credited "an all-time high" to the German intelligence report

- **Date:** 2026-10-22
- **Page:** Elections (/en/symptoms/elections/)
- **What was wrong:** Its Sources entry for the BfV Verfassungsschutzbericht 2024 described the report as recording "57,701 extremism-related crimes, an all-time high". The report gives the figure and the 2023 comparison but calls no year a record; "ein Höchststand" is the federal government's wording in its account of the report's presentation (10 June 2025).
- **What we changed:** The entry no longer says "an all-time high". On State Actors, where the sentence about 2024 uses the words, they now link the federal government's account. The Dutch, Romanian and Brazilian Portuguese entries carry the same change.
- **Source:** Internal review (#153), checked against the BfV Verfassungsschutzbericht 2024 and the Bundesregierung page of 10 June 2025 (`docs/review/cite-verify-2026-10-19/triage.md`, §10).

19 October 2026

### The Online Safety Act page called a £950,000 fine the first for the illegal-content duties, and dropped a word from a quotation

- **Date:** 2026-10-19
- **Page:** Online Safety Act (/en/laws/online-safety-act/)
- **What was wrong:** It said Ofcom's £950,000 fine on an online suicide forum (13 May 2026) was "the first penalty for the illegal-content duties themselves". Ofcom's page says only that the forum "was the first service to be investigated"; on this page's own account, 4chan was fined £50,000 on 19 March 2026 for failing to assess the risk of illegal content. It also quoted the House Judiciary Committee's interim staff report as calling the Act "the most notable foreign attempt to imitate the Digital Services Act"; the report (3 February 2026, p. 137) says "Perhaps the most notable foreign attempt to imitate the Digital Services Act has been the United Kingdom's (UK) Online Safety Act".
- **What we changed:** The "first penalty" clause is removed; the sentence now gives the fine, the failures and the ten working days. The quotation now begins "perhaps the most notable foreign attempt". The Dutch, Romanian and Brazilian Portuguese texts follow in the translation sync.
- **Source:** Internal review (#147), checked against Ofcom's page of 13 May 2026, Ofcom's page of 19 March 2026 and the House Judiciary Committee's interim staff report (`docs/review/cite-verify-2026-10-19/laws.md`, must-fix 3 and 7).

19 October 2026

### The Brazil visibility post credited Meta's statement to the wrong news agency

- **Date:** 2026-10-19
- **Page:** Blog: "Everywhere and nowhere: what is documented about visibility before Brazil's run-off" (/en/blog/brazil-runoff-visibility-what-is-documented/)
- **What was wrong:** Its Sources entry attributed the Diário do Grande ABC article of 11 October 2026 (_Meta alega problemas técnicos para menor alcance de Lula nas redes_) to Agência Estado, and dated Meta's statement to 10 October. The article's byline is "Da Agência Brasil", and nothing in it dates the statement.
- **What we changed:** The entry now says Agência Brasil, as published by Diário do Grande ABC, and no longer dates Meta's statement to 10 October.
- **Source:** Internal review (#147), checked against the article's byline and its structured-data author (`docs/review/cite-verify-2026-10-19/share-blog.md`, must-fix 0(b)).

19 October 2026

### The Brazil visibility post put words in quotation marks that the minister did not write

- **Date:** 2026-10-19
- **Page:** Blog: "Everywhere and nowhere: what is documented about visibility before Brazil's run-off" (/en/blog/brazil-runoff-visibility-what-is-documented/)
- **What was wrong:** It said the TSE minister "did not, 'at this stage', recognise any algorithmic discrimination", with "at this stage" in quotation marks as if from the order. The order has no such sentence; the words are the outlet's own summary of it.
- **What we changed:** The sentence now reads "He had not, at this stage, recognised any algorithmic discrimination, Congresso em Foco reported", without quotation marks. The post also now carries a dated update on the court's decision of 15 October and its confirmation on 16 October.
- **Source:** Internal review (#147), checked against Congresso em Foco ("não reconheceu neste momento a existência de discriminação algorítmica") and the despacho of 10 October 2026 (`docs/review/cite-verify-2026-10-19/share-blog.md`, must-fix 0(c)).

19 October 2026

### A Dutch intelligence chief's sentence was credited to the wrong document

- **Date:** 2026-10-19
- **Page:** State Actors (/en/attention-machine/state-actors/), Elections (/en/symptoms/elections/), Lawmakers (/en/for-you/lawmakers/)
- **What was wrong:** It quoted the AIVD's Director-General, Simone Smit, as saying "In the eighty years that the AIVD and its predecessors have existed, there has never been a threat picture like the present one" in the AIVD's 2025 annual report. The sentence is not in the report PDF the page linked to; the foreword never says it. Elections and Lawmakers credited the same "threat picture unprecedented in 80 years" sentence to the report. State Actors also summarised the report's findings loosely, as "young people being radicalised online and deployed by state actors".
- **What we changed:** All three pages now credit the sentence to Smit as quoted by NOS, link the NOS article of 23 April 2026, and keep the AIVD report as the source for what the report itself documents. State Actors' sentence on the report's findings now says exactly what the report found: young people now make up a third of its jihadist caseload, and a minor mapped the digital networks of embassies and other organisations in The Hague at the request of a Russian state-backed hacking group.
- **Source:** Internal review (#147), checked against the NOS article of 23 April 2026 and the AIVD's 2025 annual report (aivd.nl) (`docs/review/cite-verify-2026-10-19/attention-machine.md`, must-fix 1).

19 October 2026

### The MI5 arrest figure was dated and aged wrongly

- **Date:** 2026-10-19
- **Page:** State Actors (/en/attention-machine/state-actors/)
- **What was wrong:** It said one in five of the 232 terrorism arrests "in 2024" were children "under 17". The 232 arrests are the Home Office count for Great Britain in the year to March 2025, and 43 of them, 19%, were of people aged 17 or under.
- **What we changed:** The sentence now says "in the past year", "children" and, with a link to the Home Office statistics, 43 of 232 in Great Britain in the year to March 2025, aged 17 or under.
- **Source:** Internal review (#147), checked against the UK Home Office statistics on the operation of police powers under the Terrorism Act 2000, quarterly update to March 2025 (`docs/review/cite-verify-2026-10-19/attention-machine.md`, must-fix 5).

19 October 2026

### The German domestic intelligence report did not call the internet a "catalyst"

- **Date:** 2026-10-19
- **Page:** State Actors (/en/attention-machine/state-actors/)
- **What was wrong:** It said the BfV's 2024 report calls the internet a "catalyst" for radicalisation, with a particular danger for the very young. The report says that extremist chat groups serve as "catalysts" in which extreme fantasies of violence are shared, and that the internet is an easily accessible virtual space for young actors to network, in some cases even minors.
- **What we changed:** The sentence now says the report calls extremist chat groups "catalysts" of radicalisation and the internet an easily reached space for the very young, some of them minors.
- **Source:** Internal review (#147), checked against the Bundesamt für Verfassungsschutz's Verfassungsschutzbericht 2024 (`docs/review/cite-verify-2026-10-19/attention-machine.md`, must-fix 7).

19 October 2026

### The Gamification demo gave the wrong test for manipulation

- **Date:** 2026-10-19
- **Page:** Gamification demo (/en/attention-machine/gamification-demo/)
- **What was wrong:** It said, citing Susser, Roessler and Nissenbaum (2019), that the line between persuasion and manipulation is whether you are free to leave. The paper makes no such argument: it defines manipulation as influence that is hidden and that goes around a person's deliberation.
- **What we changed:** The sentence now says the line is whether the influence is hidden from you, whether you can see it and weigh it, and the Sources entry describes the paper the same way.
- **Source:** Internal review (#147), checked against Susser, Roessler and Nissenbaum, "Technology, autonomy, and manipulation", Internet Policy Review (2019) (`docs/review/cite-verify-2026-10-19/attention-machine.md`, must-fix 8).

19 October 2026

### A Romanian investigation was credited to the tax authority

- **Date:** 2026-10-19
- **Page:** AI & The Next Layer (/en/attention-machine/ai/)
- **What was wrong:** It called the later finding on the influencer campaign "a later tax-authority investigation". Euronews reports an investigation by the news site Snoop.ro, which cited a source at the tax authority (ANAF).
- **What we changed:** The page now says "a later investigation by the news site Snoop.ro, drawing on the tax authority".
- **Source:** Internal review (#147), checked against Euronews, 23 December 2024 (`docs/review/cite-verify-2026-10-19/attention-machine.md`, must-fix 9).

19 October 2026

### The Timeline called a conference paper a preprint that was not yet peer-reviewed

- **Date:** 2026-10-19
- **Page:** Timeline (/en/timeline/), the opening paragraph and its Sources
- **What was wrong:** It described the 2026 scrollytelling study as "a preprint, not yet peer-reviewed" and credited it to "Méndez, G.G. et al.". The paper was published at the CHI 2026 conference (13–17 April 2026), so it is peer-reviewed, and it has two authors.
- **What we changed:** The sentence now says "a CHI conference paper on scrolling privacy policies". The entry reads "Méndez, G.G. & Such, J. (2026)", names the proceedings of CHI '26 and the ACM DOI, and links the open version on arXiv.
- **Source:** Internal review (#147), checked against the arXiv record 2603.04367 ("To appear in CHI 2026") and the ACM DOI 10.1145/3772318.3790704 (`docs/review/cite-verify-2026-10-19/truth-about-objections.md`, must-fix 3).

19 October 2026

### Tools said Ecosia deletes your IP address and never passes it on with your query

- **Date:** 2026-10-19
- **Page:** Tools (/en/educate/tools/), the Ecosia entry and its Sources
- **What was wrong:** It said Ecosia "deletes your IP address within seven days" and passes the address on "only in shortened form, and never together with the query", with Microsoft as the destination. The wording came from a 2022 copy of Ecosia's privacy policy. The policy now in force (last modified 21 May 2026) says Ecosia anonymises the IP address after a maximum of seven days, that its search partner receives the IP address and the search terms, and that for eligible users Google results are the default, with Microsoft Bing a choice.
- **What we changed:** The entry says Ecosia anonymises the address within seven days, that the address and the query go to its search partner (Google by default for eligible users, Microsoft Bing if chosen), and that the partners' ads fund it. The Sources entry quotes the current policy. The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review (#147), checked against Ecosia's privacy policy as last modified 21 May 2026 (`docs/review/cite-verify-2026-10-19/educate-for-you.md`, must-fix 9).

19 October 2026

### Lawmakers called the BfV's 57,701 crimes an all-time high and said the internet was the catalyst

- **Date:** 2026-10-19
- **Page:** Lawmakers (/en/for-you/lawmakers/)
- **What was wrong:** It said the BfV Verfassungsschutzbericht 2024 recorded 57,701 extremism crimes, "all-time high", with "the internet" named as a "catalyst" for radicalisation. The report gives the figure and the 2023 comparison (39,433), but calls no year a record for it, and the word "Katalysatoren" is applied to online chat groups, not to the internet.
- **What we changed:** The sentence now says 57,701 extremism crimes, up 46% on 2023, with online chat groups named as "catalysts" for radicalisation. The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review (#147), checked against the BfV Verfassungsschutzbericht 2024 (`docs/review/cite-verify-2026-10-19/educate-for-you.md`, must-fix 7).

19 October 2026

### Get-Rich-Quick called nine regulators a nine-country week of action

- **Date:** 2026-10-19
- **Page:** Symptoms → Get-Rich-Quick & Scams (/en/symptoms/get-rich-quick/)
- **What was wrong:** It said the Financial Conduct Authority led "a nine-country week of action". The FCA's release says nine regulators took part, from six jurisdictions: Australia, Canada, Hong Kong, Italy, the United Arab Emirates and the United Kingdom.
- **What we changed:** The sentence now says "a week of action by nine regulators in six jurisdictions". The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review (#147), checked against the FCA's press release of 6 June 2025 (`docs/review/cite-verify-2026-10-19/symptoms.md`, must-fix 1).

19 October 2026

### Elections described a Romanian influencer-campaign finding more precisely than its source

- **Date:** 2026-10-19
- **Page:** Symptoms → Elections & Democratic Harm (/en/symptoms/elections/)
- **What was wrong:** It said a tax-authority investigation found that an influencer campaign that ended up promoting Călin Georgescu, "and whose hashtag was changed along the way", had been paid for by a rival pro-EU party. The linked Euronews report (23 December 2024) carries an investigation by the news site Snoop.ro, citing a source at the tax authority, and the payment by the PNL; it does not carry the hashtag change.
- **What we changed:** The sentence now credits an investigation by the news site Snoop.ro, drawing on the tax authority, and no longer mentions the hashtag. The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review (#147), checked against Euronews, 23 December 2024 (`docs/review/cite-verify-2026-10-19/symptoms.md`, must-fix 6).

19 October 2026

### The Attention Machine page said Google's 2009 ads already combined browsing with identity

- **Date:** 2026-10-19
- **Page:** Advertising & Surveillance (/en/attention-machine/advertising/)
- **What was wrong:** It said Google's interest-based advertising of 2009 was "precisely the combination of online behaviour and identity profiling that advocates had warned about a decade earlier". The 2009 product profiled browsers by the sites they visited, not named people; Google kept DoubleClick's browsing records separate from the names in its users' accounts until it changed its privacy policy in 2016 (ProPublica). It also said the FTC closed its 2001 investigation "without finding a violation", which read as a clean bill: the FTC's closing letter says the closure is "not to be construed as a determination that a violation may not have occurred".
- **What we changed:** The 2009 sentence now says the product profiled each browser by the sites it visited, that Google kept that record apart from account names for seven years, and that the combination advocates had warned about in 1999 came in 2016. The 2001 sentence now says the FTC closed the file without taking action, while noting that closing it was no finding that the law had been kept. Both are linked to their sources, as are the dates of DoubleClick's founding, the Abacus merger and Google's purchase. The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review (#147), research checked by a second model (`docs/research/gaps-147-2026-10-19.md`).

19 October 2026

### Journalism called Ida Tarbell's work a "two-year investigation"

- **Date:** 2026-10-19
- **Page:** Journalism (/en/truth/journalism/)
- **What was wrong:** It called Ida Tarbell's work on Standard Oil a "two-year investigation". The series ran for two years, from November 1902 to October 1904, but Allegheny College, which holds her papers, says it came "after years of painstaking research", so the investigation was longer.
- **What we changed:** The sentence now says her investigation was published in nineteen parts in McClure's Magazine from 1902 to 1904, and links Allegheny College's account. The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review (#147), research checked by a second model (`docs/research/gaps-147-2026-10-19.md`).

19 October 2026

### The site said its repository was public, and linked into it

- **Date:** 2026-10-19
- **Page:** About (/en/about/), How We Use AI (/en/about/how-we-use-ai/), Corrections & Changes (/en/about/corrections/), Privacy (/en/about/privacy/), FAQ (/en/faq/), "Yes, but…" (/en/objections/), Translation Status (/en/about/translations/), the footer of every page, and llms.txt
- **What was wrong:** These pages said the project's repository on GitLab was public — that all content, the full source code and history, the rules the AI tools work under and the full list of checks could be read there — and linked into it: the footer's "Source" link, the Translation status page's issue links, and the links to AGENTS.md, REVIEW\.md and the list of checks. The repository is private; a reader who followed any of these links reached a sign-in page.
- **What we changed:** The sentences now say what readers can see on this site: the content is published here under CC BY-NC-SA 4.0, the corrections log and the change log are published on the Corrections page, and the rules the AI tools work under are summarised on How We Use AI. The links into the repository are gone, from the footer in every language too. The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review (#147), the project's visibility read from GitLab, 19 October 2026 (`docs/review/cite-verify-2026-10-19/truth-about-objections.md`, must-fix 1).

19 October 2026

### The Timeline put Instagram in 2012

- **Date:** 2026-10-19
- **Page:** Timeline (/en/timeline/)
- **What was wrong:** "The image-first era (Instagram); targeting grows granular" was placed in 2012, which read as the year Instagram arrived. Instagram launched on 6 October 2010; what happened in 2012 is that Facebook bought it. No source on the site carried "targeting grows granular" as a 2012 event.
- **What we changed:** The 2012 entry now reads "Facebook buys Instagram, the photo-sharing app built for the phone". The Consumerism page, where it points, now says so and cites Facebook's announcement of 9 April 2012 and its Form 10-Q for the third quarter of 2012. The 2007 entry no longer says the iPhone "puts the feed in every pocket" (in 2007 it went on sale in the US only); it quotes Apple's own words, "the Internet in your pocket", sourced on the same page. The Dutch, Romanian and Brazilian Portuguese drafts carry the same changes.
- **Source:** Internal review (#147), research checked by a second model (`docs/research/timeline-147-2026-10-19.md`).

19 October 2026

### Get Help named a service that no longer exists, and a Saudi line that gives medical advice only

- **Date:** 2026-10-19
- **Page:** Get Help (/en/educate/get-help/) and every page that lists its entries
- **What was wrong:** It listed "Action Fraud — the UK's national fraud reporting centre", which Report Fraud replaced on 4 December 2025; the new service covers England, Wales and Northern Ireland only, so "the UK's" was wrong too. It said the Saudi Ministry of Health's 937 line gives "medical or psychological advice"; the ministry's own pages describe medical consultations only. The link for India's 112 pointed at a page that no longer exists.
- **What we changed:** The entry is now "Report Fraud, formerly Action Fraud", for England, Wales and Northern Ireland, with Scotland reporting via 101, and links to reportfraud.police.uk. The 937 entry says "medical advice". The 112 entry links to the ministry's current page. The Dutch, Romanian and Brazilian Portuguese texts carry the same changes.
- **Source:** Internal review (#147), checked against gov.uk's announcement of 4 December 2025, Report Fraud's own site (as archived on 11 October 2026) and the Ministry of Health's contact, 937 and psychiatry pages (`docs/review/cite-verify-2026-10-19/educate-for-you.md`, must-fix 2, 4 and 5).
- **Update (2026-10-22):** The 937 entry says "medical or psychological advice" again. The National Center for Mental Health Promotion, a government body, says on its own FAQ that psychological consultations are requested through 937 (https\://ncmh.org.sa/faqs, re-read on 22 October 2026). The Ministry of Health's own pages still describe medical consultations only.

19 October 2026

### The demos said nothing is sent anywhere, though the tracker test sends data

- **Date:** 2026-10-19
- **Page:** See it work (/en/demos/) and Tracking & Targeting demo (/en/attention-machine/tracking-and-targeting/)
- **What was wrong:** Both opened by saying nothing is sent anywhere. The tracker test in the first demo loads three real tracking pixels, from Google Analytics, Google Ads / DoubleClick and X Ads, when the reader presses its button, and each request carries the reader's IP address, the page's address and any cookie the browser already holds for that company. The test's own text said so; the pages above it did not.
- **What we changed:** The lead of both pages and the description of the first now say that nothing leaves the browser except the tracker test, which sends three real requests to Google and X when its button is pressed. The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review (#147), against the test's own copy and its list of hosts (`docs/review/cite-verify-2026-10-19/home-faq-glossary-demos.md`, must-fix 2).

19 October 2026

### The tracker test still told readers Google Analytics ties their visits together across sites

- **Date:** 2026-10-19
- **Page:** Tracking & Targeting demo (/en/attention-machine/tracking-and-targeting/), the line shown after the live test
- **What was wrong:** After the test the line for Google Analytics said it learns "which other sites you've visited", "tied to a cross-site ID". The page's text had been corrected on 17 October (C-307): Google's cookie is set separately on each site, but on every one of them the browser sends Google the page's address and the reader's IP address.
- **What we changed:** The line now says Google learns that you opened the page, when and from what referrer, plus your IP address and the page's address, which Google may use to personalise the ads you see elsewhere. All five other editions' strings carry the same change.
- **Source:** Internal review (#147), against Google Analytics Help, _\[GA4] Cookie usage on websites_ (`docs/review/cite-verify-2026-10-19/home-faq-glossary-demos.md`, must-fix 1).

19 October 2026

### Donate overstated what Ko-fi does not charge

- **Date:** 2026-10-19
- **Page:** Donate (/en/share/donate/), Sources
- **What was wrong:** The Ko-fi entry said the platform charges no fee on one-off donations. Ko-fi's pricing page says its free plan charges no service fee on tips and its Standard plan, the default for new accounts, charges 5% on all payment types including tips; the payment processor's fee applies on either.
- **What we changed:** The entry now gives both plans and the processor's fee. The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review (#147), against Ko-fi's pricing page as archived on 13 October 2026 (`docs/review/cite-verify-2026-10-19/share-blog.md`, must-fix 2).

17 October 2026

### Body Image gave maxillofacial surgeons warnings they did not give

- **Date:** 2026-10-17
- **Page:** Symptoms → Body Image (/en/symptoms/body-image/)
- **What was wrong:** It said maxillofacial surgeons "have warned repeatedly" that bonesmashing risks "broken bones, nerve and dental injury, lasting asymmetry, and disfigurement", with no source for the sentence. The warnings by oral and maxillofacial surgeons that could be found name broken facial bones, nerve damage, dental injury, bite changes and asymmetric healing; "permanent disfigurement" was a plastic surgeon's word, not theirs.
- **What we changed:** The sentence now says they have warned "in their specialty's journal and in the press", lists only the harms those surgeons name, and links two reports quoting them (VICE, 1 March 2026; CBS 8, 27 March 2026). The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Later change:** the unsourced "surgeons describe as reckless" removed from the sentence before it, in all four languages.
- **Source:** Internal review (#122, step 3), checked against the two reports and the specialty journal's record on PubMed (`docs/review/source-links-step3/open-phrases.md`, verified).

17 October 2026

### Mental Health credited Odgers with a point her review does not make

- **Date:** 2026-10-17
- **Page:** Symptoms → Mental Health (/en/symptoms/mental-health/)
- **What was wrong:** It said Candice Odgers' review of _The Anxious Generation_ in Nature argues "that most of the causal experiments it cites were run on adults". The review (Nature 628, 29–30, 2024) argues that most of the data are correlational and that an analysis across 72 countries finds no consistent link with the roll-out of social media; it says nothing about experiments on adults.
- **What we changed:** The clause is removed; the sentence keeps the timing argument and the other causes of the decline. The Dutch, Romanian and Brazilian Portuguese drafts carry the same change. Yes, but… carried the same clause and is corrected in its own section's change.
- **Source:** Internal review (#122, step 3), checked against the review's full text (the same check as for Yes, but…).

17 October 2026

### Body Image called a Dove partner independent

- **Date:** 2026-10-17
- **Page:** Symptoms → Body Image
- **What was wrong:** After noting that Dove's survey is brand-funded, it said the direction of Dove's findings "matches independent work, such as that of the Centre for Appearance Research at the University of the West of England, which studies the same effect with no product to sell". The Centre has co-created the Dove Self-Esteem Project's body-confidence programmes with Dove since 2014 (its own page on the partnership), and the entry linked only the Centre's front door, which carries no finding.
- **What we changed:** The page now says that the Centre has worked with Dove since 2014, and rests the independent support on a meta-analysis of 63 samples (Saiphoo & Vahedi, 2019: a small but significant link between social-media use and body-image disturbance). The Centre's entry links its page on the partnership. The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review — the source-linking review of the Symptoms section (#122, step 3), checked against the Centre's page on the Dove Self-Esteem Project.

17 October 2026

### Consumerism misquoted the UN Environment Programme

- **Date:** 2026-10-17
- **Page:** Symptoms → Consumerism
- **What was wrong:** It gave "10% of global emissions" and "second-largest consumer of water" as the UN Environment Programme's 2018 figures. UNEP's page of 12 November 2018 said fashion produces "10 per cent of global carbon emissions" and that "textile dyeing is the second largest polluter of water globally" — not that fashion is the second-largest consumer of water. The same UNEP page now says "between 2 to 8 per cent". The claim that the figures "have since been widely challenged" had no source on the page.
- **What we changed:** The sentence quotes UNEP's own words, says the page now gives 2 to 8 per cent, and links the challenge to Alden Wicker's Vox investigation (2020). The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review (#122, step 3), checked against the UNEP page as published (Wayback Machine capture of 12 November 2018) and as it stands, and against the Vox article.

17 October 2026

### Consumerism said more than its one study shows

- **Date:** 2026-10-17
- **Page:** Symptoms → Consumerism
- **What was wrong:** "Research repeatedly finds associations between heavy social media use and compulsive buying, higher levels of materialism, and reduced satisfaction with owned possessions", and the Deeper box repeated the last item. The one study cited (Sharif & Khanekharab, 2017, a survey of 501 young adults) finds compulsive buying and materialism; it says nothing about satisfaction with possessions, and one study is not "repeatedly".
- **What we changed:** "Sharif and Khanekharab's 2017 survey of 501 young adults found associations between heavy social media use, compulsive buying and higher levels of materialism" — one study, named as one; the Deeper box drops the satisfaction claim. The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review (#122, step 3), checked against the study's abstract.

17 October 2026

### Elections and Xenophobia turned 64% of joins into 64% of people

- **Date:** 2026-10-17
- **Page:** Symptoms → Elections & Democratic Harm; Symptoms → Xenophobia & Violence
- **What was wrong:** Both said a 2016 internal Facebook study found "64% of the people who joined extremist groups had been led there by the platform's own recommendation tools". The slide, as the Wall Street Journal quotes it, says "64% of all extremist group joins are due to our recommendation tools" — a share of joins, not of people (one person can join several groups).
- **What we changed:** Both pages now say "64% of all joins to extremist groups came through the platform's own recommendation tools", as How It Works has since the same day. The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review (#122, step 3), checked against the Wall Street Journal article of 26 May 2020.

17 October 2026

### Elections credited the Instagram and Twitter figures to the wrong record

- **Date:** 2026-10-17
- **Page:** Symptoms → Elections & Democratic Harm
- **What was wrong:** The sentence on the reach of Russia's Internet Research Agency rested on one report of the 31 October 2017 hearing (PBS NewsHour / AP), and the entry said it carried "about 20 million on Instagram". It does not: Facebook's general counsel gave the Instagram figure to the Senate Intelligence Committee the next day, and Twitter's 1.4 million notifications came in January 2018, after the testimony.
- **What we changed:** "About 20 million on Instagram" links Reuters' report of the 1 November 2017 hearing; "Twitter later notified about 1.4 million people" links Twitter's own update (19 January 2018, updated 31 January 2018); the PBS entry lists what it carries (126 million on Facebook; Google's 18 YouTube channels, 1,108 videos, 309,000 US views). The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review (#122, step 3), checked against the PBS/AP report, Reuters (via Fortune) and Twitter's blog post (Wayback Machine capture).

17 October 2026

### The Manosphere gave Roose's investigation the wrong span

- **Date:** 2026-10-17
- **Page:** Symptoms → The Manosphere
- **What was wrong:** It said Kevin Roose's "The Making of a YouTube Radical" (New York Times, 2019) followed one person's history "from mainstream political content to far-right extremism over eighteen months", here and in the Deeper box. The article has no eighteen months: it starts from a self-help video YouTube recommended to Caleb Cain in late 2014, follows him into far-right politics through 2015 and 2016, and rests on his history of more than 12,000 videos going back to 2015.
- **What we changed:** Both places now describe that span. The Dutch, Romanian and Brazilian Portuguese drafts carry the same change. The Watch & Listen page still says "eighteen months"; it is corrected in its own section's change.
- **Source:** Internal review (#122, step 3), checked against the article (Wayback Machine capture of the New York Times page).

17 October 2026

### Mental Health dated teenagers' smartphones too early

- **Date:** 2026-10-17
- **Page:** Symptoms → Mental Health
- **What was wrong:** It said the decline in adolescent mental health from around 2012 "corresponds with the period when smartphone ownership among teenagers crossed 50%". In Pew Research Center's surveys, 37% of US teens had a smartphone in 2012 and 73% had access to one by early 2015; the 50% mark was crossed between them, not in 2012.
- **What we changed:** The sentence now gives Pew's two figures, linked to the two reports. The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review (#122, step 3), checked against Pew's _Teens and Technology 2013_ and _Teens, Social Media & Technology Overview 2015_.

17 October 2026

### Xenophobia misdescribed Facebook in Myanmar and misattributed "hallmarks of genocide"

- **Date:** 2026-10-17
- **Page:** Symptoms → Xenophobia & Violence
- **What was wrong:** It said "Facebook launched in Myanmar in 2012" and became the information platform "for most of the country's population", and that "the UN" described the 2017 campaign against the Rohingya as bearing "the hallmarks of genocide". Facebook had no launch in Myanmar — its dominance took root "not by design" as the country opened up — and in 2018 its 18 million users were about a third of the population (Reuters); for most of the people online, Facebook was the internet (BSR). The phrase was said on 12 March 2018 by the UN Special Rapporteur on Myanmar, Yanghee Lee, an independent expert, not by the UN as a body; the UN Fact-Finding Mission later called for senior military officials to be investigated and prosecuted for genocide.
- **What we changed:** The paragraph now says this, linked to Reuters' special report (15 August 2018), the BSR assessment and the Special Rapporteur's statement. The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review (#122, step 3), checked against the Reuters report, the BSR assessment, the OHCHR press release of 12 March 2018 and the Fact-Finding Mission's report (A/HRC/39/64).

17 October 2026

### Recruited to Harm dated a Europol release a year late

- **Date:** 2026-10-17
- **Page:** Symptoms → Recruited to Harm
- **What was wrong:** The entry for Europol's "Operational Taskforce GRIMM: 193 arrests in 6 months" was dated 2026. Europol published it on 8 December 2025. The page also said the reports were "backed by investigations across dozens of countries", a figure no source on the page gave.
- **What we changed:** The entry is dated 8 December 2025. The sentence now says "a Europol-coordinated effort involving 28 countries", linked to Europol's TE-SAT 2026 (Project Compass: "law enforcement authorities from 28 Member States and partner countries"). The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review (#122, step 3), checked against Europol's own pages and the TE-SAT 2026 report.

17 October 2026

### Courts dated the school districts' suits, and hundreds of cases, to October 2022

- **Date:** 2026-10-17
- **Page:** Laws & Regulation → Courts & Liability
- **What was wrong:** It said that in October 2022 "hundreds of suits by families and school districts" were pooled into MDL 3047 — "the largest coordinated legal action against social media platforms in history". The Judicial Panel's order of 6 October 2022 centralised 28 actions in 17 districts, with 56 related actions notified since the motion; the school districts' suits were transferred in later. No source on the page, or found, states the superlative. The source entry also linked a December 2023 order on one school district, not the order that created MDL 3047.
- **What we changed:** "Dozens of personal-injury suits over young people's use of social media were pooled into multidistrict litigation (MDL 3047)… Suits by school districts were added later, and by September 2026 3,383 lawsuits had been filed in it." The entry now links the order of 6 October 2022; the December 2023 order is a separate entry for the school districts. The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review — the source-linking review of the Laws section (#122, step 3), checked against the Judicial Panel's orders and its list of pending dockets of 1 September 2026.

17 October 2026

### Courts said every state and territory joined the Meta settlement

- **Date:** 2026-10-17
- **Page:** Laws & Regulation → Courts & Liability
- **What was wrong:** It described the 51 attorneys general who settled with Meta on 26 August 2026 as "the states that had sued, joined by the rest, the District of Columbia and the territories". The settlement agreement lists 47 states, the District of Columbia, Puerto Rico, American Samoa and the Northern Mariana Islands: three states and two territories are not in it.
- **What we changed:** "51 US attorneys general (47 states, the District of Columbia, Puerto Rico, American Samoa and the Northern Mariana Islands)". The source entry now says the same, and explains that the 29 states in Hunton's title are those whose federal case was on trial. The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review — the source-linking review of the Laws section (#122, step 3), checked against the settlement agreement (its definition of the Settling States' attorneys general) and the New Jersey Attorney General's release.

17 October 2026

### Courts misquoted the Los Angeles verdict and called the plaintiff addicted in its own voice

- **Date:** 2026-10-17
- **Page:** Laws & Regulation → Courts & Liability
- **What was wrong:** It put "malice, fraud or oppression" in quotation marks as the jury's finding; no source carries those words in that form — the Associated Press gives the finding, unquoted, as "malice, oppression or fraud". It also said, in the site's own voice, that the plaintiff "became addicted to Instagram and YouTube as a child"; that was her testimony. And it said Instagram was found 70% responsible; the jury apportioned it to Meta.
- **What we changed:** "a Los Angeles jury awarded $6 million to a plaintiff who testified that she had become addicted to social media as a child, finding that both companies acted with malice, oppression or fraud. Meta, which owns Instagram, was found 70% responsible; YouTube 30%." The verdict now has its own source, the Associated Press report of 25 March 2026. The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review — the source-linking review of the Laws section (#122, step 3).

17 October 2026

### Courts and Section 230 stated a contested causal link as settled

- **Date:** 2026-10-17
- **Page:** Laws & Regulation → Courts & Liability; Section 230
- **What was wrong:** Courts said "the causal pathway from social media design to psychological harm is real but more complex"; Section 230 said recommended content "contributes to radicalisation, depression, or harm". Both stated as fact a causal link the site holds to be contested (Mental Health; Radicalisation Pipelines).
- **What we changed:** Courts: "Whether social media design causes psychological harm, and how far, is contested: the link is well documented as a correlation, the pathway is more complex, and individual variation is large." Section 230: "content that plaintiffs and some studies link to radicalisation, depression, or harm, though whether it causes them is contested." The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review — the source-linking review of the Laws section (#122, step 3).

17 October 2026

### Digital Services Act placed Vance's criticism of the DSA and the GDPR at Munich too

- **Date:** 2026-10-17
- **Page:** Laws & Regulation → Digital Services Act
- **What was wrong:** It said US Vice President Vance criticised the DSA and the GDPR as over-regulatory at the Paris AI Action Summit and the Munich Security Conference in 2025. That criticism was made in Paris, on 11 February 2025; the Munich speech of 14 February names neither law — it was about censorship and free speech.
- **What we changed:** "At the Paris AI Action Summit in February 2025, US Vice President Vance criticised the DSA and the GDPR as over-regulatory", sourced to the remarks as delivered (The American Presidency Project). The same paragraph now gives Meta's 2025 revenue ($201 billion, from its own filing) and 6% of it (about $12 billion) in place of an unsourced "potentially exceeding €9 billion", which was 6% of the year before, converted at an unstated rate. The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review — the source-linking review of the Laws section (#122, step 3), checked against the transcripts of both speeches.

17 October 2026

### Age Restrictions presented Utah's repealed 2023 law as standing, and called Australia's "the most comprehensive"

- **Date:** 2026-10-17
- **Page:** Laws & Regulation → Age Restrictions
- **What was wrong:** It said Utah in 2023 became "the first US state to require age verification for under-18s". Utah's S.B. 152 requires the age of anyone opening a social media account to be verified, and a parent's consent for under-18s — and Utah repealed it in 2024. It partly replaced it with the Utah Minor Protection in Social Media Act, which a federal court blocked in September 2024, before it took effect; Utah has appealed. The page said none of this, so it read as if the 2023 requirement were in force. It also called Australia's law "the most comprehensive national age restriction law in the world", which no source on the page states.
- **What we changed:** "Utah passes the first US state law requiring age verification for anyone opening a social media account, and a parent's consent for under-18s", sourced to the enrolled bill and NPR's report of 24 March 2023, followed by: "In 2024 Utah repealed it and partly replaced it with a new act, which a federal court blocked in September 2024, before it took effect; Utah has appealed", sourced to the District of Utah's order of 10 September 2024 (_NetChoice v. Reyes_) and Courthouse News Service's report of the appeal hearing (20 November 2025). Australia's law is "the first national law of its kind", as the OECD's account of it supports. The date the Australian rule took effect (10 December 2025) now has its own source. The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review — the source-linking review of the Laws section (#122, step 3).

17 October 2026

### Lawmakers dated the MI5 arrests figure loosely and called online radicalisation "a central factor"

- **Date:** 2026-10-17
- **Page:** For You → Lawmakers
- **What was wrong:** It said, citing MI5 (October 2025), that "one in five of 232 terrorism arrests were children under 17; online radicalisation identified as a central factor", and the source entry put the arrests in 2024. The 232 arrests are the Home Office's count for the year to 31 March 2025, in Great Britain, and the age band is 17 and under (43 of 232, 19%); in calendar 2024 the share was 16%. MI5's Director General does not call online radicalisation "a central factor"; he says terrorism "breeds in squalid corners of the internet".
- **What we changed:** The sentence now quotes MI5 and gives the Home Office figure with its period and place, as Yes, but… does since the same day; the Home Office statistics are a new Sources entry, and the MI5 entry quotes the speech of 16 October 2025. The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review — the source-linking review of the Educate and For You sections (#122, step 3), following the same correction on Yes, but…, checked there against the Home Office statistics of 12 June 2025 and 13 March 2025 and the MI5 speech.

17 October 2026

### Bad News was given as a ten-minute game

- **Date:** 2026-10-17
- **Page:** Educate → Tools & Sites; For You → Educators, Parents, Teens
- **What was wrong:** Four pages said the Bad News game takes ten minutes ("A 10-minute browser game", "10 minutes, browser-based", "in ten minutes", "for ten minutes"). The study of the game the site cites, Roozenbeek & van der Linden (2019), says it "takes approximately 15 minutes to complete".
- **What we changed:** Each page now says about 15 minutes, linked to that study where the page lists it; the study's entry notes the playing time. The Dutch, Romanian and Brazilian Portuguese drafts carry the same change. The same figure on Tracking & Targeting, Yes, but… and Share is corrected with those sections.
- **Source:** Internal review — the source-linking review of the Educate and For You sections (#122, step 3), checked against the paper (doi.org/10.1057/s41599-019-0279-9).

17 October 2026

### Educators said resistance to phone bans comes from parents rather than students

- **Date:** 2026-10-17
- **Page:** For You → Educators
- **What was wrong:** It said that resistance to a school phone policy "tends to come from parents rather than students", and that framing a ban as a wellbeing measure "produces better stakeholder engagement". Neither sentence had a source. New Zealand's national evaluation of its 2024 ban (Education Review Office, 2025) found that only 37% of Year 12–13 students follow the rules, that students are more likely to break them where parents resist, and that compliance is higher where students understand the purpose of the rules; it found nothing on wellbeing versus discipline framing.
- **What we changed:** The two sentences are replaced by what that review found, with the review in the Sources. The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review — the source-linking review of the Educate and For You sections (#122, step 3), checked against the Education Review Office summary (Do not disturb, 2025).

17 October 2026

### Educators gave the Bad News game's age as 15 and up

- **Date:** 2026-10-17
- **Page:** For You → Educators
- **What was wrong:** It said the Bad News game is "recommended for ages 15 and up" and is "used in classrooms in several countries". The game's makers say on its own site, and in their info sheet for educators, that it was written for ages 14 and up; no source was found for the classroom count. (A correction of September 2026 had changed "from 14" to 15 and up; the makers' current pages say 14.)
- **What we changed:** The page now says "written for ages 14 and up, its makers say, with an info sheet for using it in class", linked to the game's site, and the Junior version for ages 8–11 is linked to the European Digital Media Observatory's page on it. The unsourced classroom sentence is gone. The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review — the source-linking review of the Educate and For You sections (#122, step 3), checked against getbadnews.com and its educators' info sheet.

17 October 2026

### Parents said monitoring apps fail without evidence that they do

- **Date:** 2026-10-17
- **Page:** For You → Parents
- **What was wrong:** It said that "monitoring apps and surveillance software damage trust without producing the outcomes parents hope for" — a causal claim with no source. The two studies on it (Ghosh et al., CHI 2018) found that children's reviews of such apps said they hurt their relationships with their parents, and, in a survey of 215 parent–teen pairs, that more parental control went with more online risk, not less — an association the authors note may run from risk to monitoring.
- **What we changed:** The sentence now says what the two studies found, with both in the Sources and the caveat on the direction in the same sentence. The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review — the source-linking review of the Educate and For You sections (#122, step 3), checked against the two papers' abstracts.

17 October 2026

### Teens stated a hypothesis about the Bad News game as a finding

- **Date:** 2026-10-17
- **Page:** For You → Teens
- **What was wrong:** It said that "playing the role of the manipulator is more effective than reading about manipulation". In the research this is a hypothesis the Bad News paper quotes from McGuire ("may be more effective"); the one head-to-head comparison found, Basol et al. (2021), saw a similar game do better than reading infographics without testing the difference.
- **What we changed:** The page now says that playing the manipulator "seems to work better", names the one study and says the gap was not tested, with that study in the Sources. The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review — the source-linking review of the Educate and For You sections (#122, step 3), checked against Roozenbeek & van der Linden (2019) and Basol et al. (2021).

17 October 2026

### Watch & Listen said Roose followed one person's history for eighteen months

- **Date:** 2026-10-17
- **Page:** Educate → Watch & Listen
- **What was wrong:** It described Kevin Roose's "The Making of a YouTube Radical" (New York Times, 2019) as one person's YouTube history "followed over eighteen months", from mainstream content to far-right extremism "through the platform's own recommendations", and as "documenting the recommendation pipeline". The article has no eighteen months: it starts from a self-help video YouTube recommended to Caleb Cain "in late 2014", follows him into far-right politics through the following years, draws on "a log of more than 12,000 videos and more than 2,500 search queries dating to 2015", and says he swore off the alt-right "nearly five years after discovering it". (The Manosphere page carried the same error and is corrected in its own section's change.) Whether the recommendations drive such a path is contested.
- **What we changed:** The entry now gives the span the article gives — the same wording as on The Manosphere — calls the piece a single case, and says in the same sentence that whether the recommendation engine drives such escalation on its own is contested. The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review — the source-linking review of the Educate and For You sections (#122, step 3), checked against the article (Wayback Machine copy of 8 June 2019).

17 October 2026

### Books said Merchants of Doubt covers vaccines

- **Date:** 2026-10-17
- **Page:** Educate → Books
- **What was wrong:** It said _Merchants of Doubt_ (Oreskes & Conway, 2010) traces manufactured doubt "from tobacco to climate to vaccines". The book's chapters cover tobacco and secondhand smoke, the Strategic Defense Initiative, acid rain, the ozone hole, global warming and DDT; vaccines are not among them.
- **What we changed:** It now says "from tobacco to climate change; the same playbook recurs around vaccines", which keeps the site's own observation apart from the book's subject. The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review — the source-linking review of the Educate and For You sections (#122, step 3), checked against the publisher-listed contents (Publishers Weekly review).

17 October 2026

### Lawmakers said the EU Court of Justice "upheld" the Belgian decision on the consent framework

- **Date:** 2026-10-17
- **Page:** For You → Lawmakers
- **What was wrong:** It said the CJEU "upheld key parts" of the Belgian Data Protection Authority's 2022 decision on IAB Europe's consent framework, and that its ruling "found the framework … raises serious GDPR problems". Case C-604/22 (7 March 2024) is a preliminary ruling on questions referred by the Brussels Court of Appeal, which was hearing IAB Europe's challenge; the Court of Justice "does not decide the dispute itself". It held that the consent string is personal data and that IAB Europe can be a joint controller, subject to the referring court's checks.
- **What we changed:** The page now says the CJEU, on questions referred by a Belgian court, confirmed key parts of that reasoning, and the definition says the ruling held that the consent string is personal data. The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review — the source-linking review of the Educate and For You sections (#122, step 3), checked against CJEU press release No 44/24 (7 March 2024).

17 October 2026

### Two pages stated the sleep pathway without marking the causal question contested

- **Date:** 2026-10-17
- **Page:** Educate → What to Do; For You → Parents
- **What was wrong:** Both said sleep is "the best-documented pathway" from heavy social media use to worse mental health (on Parents: to anxiety and depression), stating as settled the causal link the site marks contested elsewhere. The meta-analysis they cite (Carter et al., 2016) is about sleep, not about whether use causes the harm.
- **What we changed:** Both now call sleep the best-documented of the pathways proposed, and say in the same sentence that the causal link is contested. The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review — the source-linking review of the Educate and For You sections (#122, step 3) (the site's rule that a contested claim is marked in the same sentence).

17 October 2026

### Young Adults credited the durability finding to the field experiments

- **Date:** 2026-10-17
- **Page:** For You → Young Adults
- **What was wrong:** It said "the Cambridge field experiments found it works across the political spectrum, and that it holds up over time". The field experiments (Roozenbeek et al., 2022) carry the first half; the durability finding is Maertens et al. (2021), three longitudinal experiments, which found the effect stable for at least three months with regular testing and fading within two months without. The definition of inoculation said the knowledge simply "lasts".
- **What we changed:** The sentence names each study's finding separately, and both it and the definition now say the effect lasts for months when refreshed; the definition's own Sources list both papers. The page also no longer uses "the manosphere pipeline" as a shorthand. The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review — the source-linking review of the Educate and For You sections (#122, step 3), checked against both papers (Europe PMC).

17 October 2026

### Yes, but… dated the MI5 arrests figure to 2024 and called online radicalisation "a central factor"

- **Date:** 2026-10-17
- **Page:** Yes, but… (/en/objections/), "Children today are digital natives"
- **What was wrong:** It said MI5 reports that "1 in 5 UK terrorism arrests in 2024 were of children under 17, with online radicalisation a central factor". The 232 arrests behind MI5's "one in five" are the Home Office's count for the year to 31 March 2025, in Great Britain, and the age band is 17 and under (43 of 232, 19%). In calendar 2024 the share was 16%. MI5's Director General does not call online radicalisation "a central factor"; he says terrorism "breeds in squalid corners of the internet".
- **What we changed:** "Home Office figures show that 43 of the 232 terrorism arrests in Great Britain in the year to March 2025 — nearly one in five — were of children aged 17 or under; MI5 says terrorism now 'breeds in squalid corners of the internet'." The Home Office statistics are a new Sources entry, and the MI5 entry quotes the speech of 16 October 2025. The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review — the source-linking review of the Truth, Timeline, About and Objections pages (#122, step 3), checked against the Home Office statistics of 12 June 2025 and 13 March 2025 and the MI5 speech.

17 October 2026

### Yes, but… credited Odgers with a point her review does not make

- **Date:** 2026-10-17
- **Page:** Yes, but… (/en/objections/), "Haidt has been debunked"
- **What was wrong:** It said Candice Odgers' review in Nature argues "that most of the causal experiments the book cites were run on adults". The review (Nature 628, 29–30, 2024) argues that most of the data are correlational and that an analysis across 72 countries finds no consistent link with the roll-out of social media; it says nothing about experiments on adults.
- **What we changed:** The clause is removed; the sentence keeps the timing argument, which the review does make. The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review (#122, step 3), checked against the review's full text.

17 October 2026

### Yes, but… said the Bad News game takes ten minutes

- **Date:** 2026-10-17
- **Page:** Yes, but… (/en/objections/), "What can I actually do about it?"
- **What was wrong:** It said the Bad News game teaches six manipulation techniques "in ten minutes". Its evaluation (Roozenbeek & van der Linden 2019) describes a game "that takes approximately 15 minutes to complete".
- **What we changed:** "in about 15 minutes"; the Sources entry says so too. The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review (#122, step 3), checked against the 2019 paper.

17 October 2026

### The Timeline put Google's search-ad auction in 2000

- **Date:** 2026-10-17
- **Page:** Timeline (/en/timeline/)
- **What was wrong:** "Google AdWords turns attention into a real-time auction" was placed in 2000. AdWords launched in October 2000, selling keyword ads with no auction; Google began selling its search ads by per-click auction with AdWords Select in February 2002, and Overture had done so since 1997.
- **What we changed:** The 2000 entry now reads "Google AdWords launches: ads sold against the words people search for", and a new 2002 entry reads "Google starts selling its search ads by auction, priced per click". The Consumerism page, where both entries point, now says the same and cites Google's two announcements and Edelman, Ostrovsky & Schwarz (2007). The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review (#122, step 3), checked against Google's press releases of 23 October 2000 and 20 February 2002 and the American Economic Review paper.

17 October 2026

### The Timeline dated the UN's Myanmar finding to 2017

- **Date:** 2026-10-17
- **Page:** Timeline (/en/timeline/)
- **What was wrong:** "UN investigators link Facebook to violence against the Rohingya in Myanmar" was placed in 2017, the year of the military's campaign. The UN Independent Fact-Finding Mission's report that made the link (A/HRC/39/64) is dated 12 September 2018.
- **What we changed:** The entry moved to 2018. The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review (#122, step 3), checked against the report.

17 October 2026

### Journalism gave ICIJ's superseded Panama Papers tally

- **Date:** 2026-10-17
- **Page:** What is Truth? → Journalism
- **What was wrong:** It said the Panama Papers reporting had returned $1.36 billion to public treasuries, in the lead and in the Panama Papers paragraph. That was ICIJ's tally of April 2021. ICIJ's tally of April 2025 is $1.3 billion, lower because governments corrected their own figures, and ICIJ says it almost certainly understates the total. The Sources entry linked only the investigation's landing page, which gives no figure.
- **What we changed:** Both sentences give $1.3 billion and attribute it to ICIJ's count (April 2025); the entry now also cites ICIJ's article of 3 April 2025. The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review (#122, step 3), checked against ICIJ's articles of 6 April 2021 and 3 April 2025.

17 October 2026

### Democracy did not quote Churchill's words

- **Date:** 2026-10-17
- **Page:** What is Truth? → Democracy
- **What was wrong:** It put "the worst form of government except for all the others" in quotation marks as Churchill's line. That is the common compression; Hansard (11 November 1947, col. 207) records "democracy is the worst form of Government except all those other forms that have been tried from time to time".
- **What we changed:** The quotation now gives Hansard's words. The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review (#122, step 3), checked against Hansard.

17 October 2026

### How We Communicate cited "Sweller et al." for a single-author paper

- **Date:** 2026-10-17
- **Page:** About → How We Communicate
- **What was wrong:** "Cognitive load theory (Sweller et al.)" linked to Sweller (1988), which has one author.
- **What we changed:** "Sweller". The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review (#122, step 3), checked against the paper's Crossref record.

17 October 2026

### Share This said the Bad News game takes 10 minutes

- **Date:** 2026-10-17
- **Page:** Share & Support → Share This
- **What was wrong:** It said the Bad News game "is 10 minutes", and its Deeper box called it "a ten-minute game". The study that evaluated the game describes it as one "that takes approximately 15 minutes to complete".
- **What we changed:** "It takes about 15 minutes"; "a fifteen-minute game". The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review — the source-linking review of the Share section (#122, step 3), checked against Roozenbeek & van der Linden (2019), _Palgrave Communications_ 5(65).

17 October 2026

### Organisations stated the "backfire effect" as settled

- **Date:** 2026-10-17
- **Page:** Share & Support → Organisations Worth Supporting
- **What was wrong:** Its Deeper box said that correcting individual false claims "sometimes entrenches" the falsehood, with no source and no sign that this is disputed. The effect was reported by Nyhan and Reifler (2010); a later set of five experiments by Wood and Porter (2019), with more than 10,100 people and 52 issues, found no correction that triggered it.
- **What we changed:** The sentence now says corrections have entrenched the falsehood in some experiments, names the "backfire effect" as Nyhan and Reifler's, says it is contested, and gives Wood and Porter's result; both papers are in the page's Sources. The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review — the source-linking review of the Share section (#122, step 3), checked against both papers.

17 October 2026

### Organisations described a video study as "the Bad News research"

- **Date:** 2026-10-17
- **Page:** Share & Support → Organisations Worth Supporting
- **What was wrong:** The Sources entry for Roozenbeek, van der Linden et al. (2022), _Science Advances_, described it as "the Bad News research". The paper tests five short prebunking videos, in the lab and in a field study on YouTube; it is not an evaluation of the Bad News game.
- **What we changed:** The entry now describes the video study; the page's mention of "the Bad News evaluations" links to the study that evaluated the game, Roozenbeek & van der Linden (2019). The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review — the source-linking review of the Share section (#122, step 3), checked against the paper's full text.

17 October 2026

### Tracking & Targeting said the Bad News game takes ten minutes

- **Date:** 2026-10-17
- **Page:** The Attention Machine → Tracking & Targeting
- **What was wrong:** It said the Bad News game "teaches it interactively in ten minutes". The peer-reviewed evaluation of the game describes "a freely accessible browser game that takes approximately 15 minutes to complete".
- **What we changed:** "about fifteen minutes", linked to Roozenbeek & van der Linden (2019), _Palgrave Communications_ 5(65), now in the page's Sources. The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review — the source-linking review of the Attention Machine section (#122, step 3), checked against the paper.

17 October 2026

### AI & The Next Layer named the wrong journal

- **Date:** 2026-10-17
- **Page:** The Attention Machine → AI & The Next Layer
- **What was wrong:** It gave Farooq et al. (2025), the study of citizens' concerns about AI-generated content in the 2024 European elections, as published in _Political Communication_. Its DOI is in _The International Journal of Press/Politics_ (2 October 2025). The "testing ground" description of those elections, which the page did not attribute, is the first line of the same study's abstract.
- **What we changed:** The sentence and the source entry name _The International Journal of Press/Politics_, and "testing ground" now links to that study. CIGI's _Then and Now_ (August 2025), which uses "testing ground" only of local campaigns, stays in the Sources as further reading. The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review — the source-linking review of the Attention Machine section (#122, step 3), checked against the DOI's publisher record.

17 October 2026

### How It Works turned 64% of joins into 64% of people

- **Date:** 2026-10-17
- **Page:** The Attention Machine → How It Works
- **What was wrong:** It said the 2016 Facebook presentation found "64% of the people who joined extremist groups on the platform had been led there" by Facebook's recommendation tools. The slide, as the Wall Street Journal quotes it, says "64% of all extremist group joins are due to our recommendation tools": a share of joins, not of people — one person can join several groups. The page's own Deeper box already said joins.
- **What we changed:** "64% of all joins to extremist groups on the platform came through Facebook's own recommendation tools." The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review — the source-linking review of the Attention Machine section (#122, step 3), checked against the Wall Street Journal article of 26 May 2020.

17 October 2026

### Two pages said the EU Court of Justice "upheld" the Belgian decision on the consent framework

- **Date:** 2026-10-17
- **Page:** The Attention Machine → Tracking & Targeting; Advertising & Surveillance
- **What was wrong:** Both said that in 2024 the Court of Justice of the European Union "upheld key parts" of the Belgian Data Protection Authority's 2022 decision (Advertising: "of that reasoning"). The Court did not hear an appeal: in Case C-604/22 it answered questions referred by the Brussels Court of Appeal, which was hearing IAB Europe's challenge, and the dispute itself stayed with the Belgian court.
- **What we changed:** Tracking & Targeting now says the Court, answering questions from the Belgian appeal court, confirmed the decision's two premises: the consent string is personal data, and IAB Europe is, subject to that court's checks, a joint controller of it. Advertising says the Court, on questions referred by a Belgian court, "confirmed" key parts of that reasoning. The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review — the source-linking review of the Attention Machine section (#122, step 3), checked against the Court's press release No 44/24 (7 March 2024).

17 October 2026

### Your Brain widened one site's headline tests to "news publishers"

- **Date:** 2026-10-17
- **Page:** The Attention Machine → Your Brain
- **What was wrong:** It described the roughly 105,000 headline variants in Robertson et al. (2023) as tests that "news publishers themselves" ran. They all come from one news site, Upworthy, whose archive of A/B tests the study analysed.
- **What we changed:** "about 105,000 headline variants that one news site, Upworthy, A/B-tested on its readers"; the source entry names Upworthy's archive. The numbers were right and are unchanged. The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review — the source-linking review of the Attention Machine section (#122, step 3), checked against the paper in _Nature Human Behaviour_.

17 October 2026

### Search said AI Overviews had "repeatedly been found" to err

- **Date:** 2026-10-17
- **Page:** The Attention Machine → Search
- **What was wrong:** It said Google's AI Overviews "have repeatedly been found to contain errors, to mix reliable and unreliable sources, and to present contested claims as settled". The one source on the page for it, Google's own account of the May 2024 launch, documents errors and answers drawn from troll posts; it does not show a repeated pattern or contested claims presented as settled, and the page cited nothing that did.
- **What we changed:** The page now says what Google acknowledged in May 2024: that some AI Overviews misread web pages and presented inaccurate information, and that others drew on sarcastic or troll-y forum posts, among them advice to use glue to make cheese stick to pizza. The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review — the source-linking review of the Attention Machine section (#122, step 3).

17 October 2026

### Tracking & Targeting said Google Analytics shares one identifier across sites

- **Date:** 2026-10-17
- **Page:** The Attention Machine → Tracking & Targeting
- **What was wrong:** It said Google Analytics' identifier "is shared across" the sites that use it. Google Analytics sets a first-party cookie, separately on each site. What makes it cross-site is that every page carrying it has your browser send Google the page's address and your IP address.
- **What we changed:** The page now says that: the cookie is set separately on each site, but on every one of them your browser sends Google the address of the page and your IP address, which Google may use, depending on your settings, to personalise ads elsewhere — the raw material of a cross-site record. Both statements are sourced to Google's own documentation. The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review — the source-linking review of the Attention Machine section (#122, step 3).

17 October 2026

### How It Works counted "three billion users simultaneously"

- **Date:** 2026-10-17
- **Page:** The Attention Machine → How It Works
- **What was wrong:** It said the feed's loop "runs continuously, invisibly, across three billion users simultaneously", with no source. The nearest documented figure is Meta's own count of people using its apps on an average day — not concurrent users, and not all platforms.
- **What we changed:** "for more than three billion people a day on Meta's apps alone", sourced to Meta's results for the second quarter of 2026 (3.60 billion daily active people in June 2026, as filed with the US SEC). The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review — the source-linking review of the Attention Machine section (#122, step 3).

15 October 2026

### Courts said the states sued Meta "in the same court"

- **Date:** 2026-10-15
- **Page:** Courts (/en/laws/courts/)
- **What was wrong:** It said more than 40 US states sued Meta "in the same court" in October 2023.
- **What we changed:** 33 states sued together in the federal court in Northern California; eight more filed in their own state courts. The page now cites the California Attorney General's announcement.
- **Source:** internal review (Fable read of the Courts chronology)

15 October 2026

### GDPR listed an annulled fine on Amazon as standing

- **Date:** 2026-10-15
- **Page:** Laws & Regulation → GDPR
- **What was wrong:** The list of fines said "2021: Luxembourg fines Amazon €746 million" with nothing after it. On 12 March 2026 Luxembourg's Administrative Court annulled that decision in full: it confirmed the breaches of the GDPR, but sent the case back to the data protection authority (CNPD), which had not examined intent or negligence or weighed measures other than a fine.
- **What we changed:** The list now says the decision was annulled on appeal in March 2026, that the court confirmed the breaches, and that it sent the case back to the regulator, sourced to the court's own summary (Cour administrative, arrêt n° 52757C du rôle). The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** New research — the GDPR fines research note of 15 October 2026 and its independent verification (docs/research/gdpr-fines-vs-turnover-2026-10-15.md, …-verify.md).

15 October 2026

### GDPR stated an inference about fines as fact

- **Date:** 2026-10-15
- **Page:** Laws & Regulation → GDPR
- **What was wrong:** "Fines, large in absolute terms, are manageable as a business cost for the largest platforms", and in the Deeper box, that a record fine "functions more like a cost of doing business than a deterrent". Neither was sourced, and both stated as fact what the research treats as an open question: whether fines of this size deter has hardly been measured.
- **What we changed:** The page now gives the sourced facts and marks the open question as open: the record €1.2 billion fine on Meta came to about 1% of the group's revenue the year before, roughly four days of it, against a legal ceiling of 4% (the Irish regulator's decision, which names the revenue it used); most of the largest fines are still under appeal and unpaid (the regulator reports over €4.4 billion imposed and about €20 million collected); and whether fines of this size change behaviour is contested, with little evidence either way (Lintvedt 2022). The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review — the administrator's review note of 15 October 2026, the research it prompted and its independent verification (as above).

15 October 2026

### Two studies cited with the wrong year or the wrong first author

- **Date:** 2026-10-15
- **Page:** Symptoms → Xenophobia & Violence; For You → Educators
- **What was wrong:** Xenophobia's Deeper box dated Müller and Schwarz's study 2019, the year of the working paper, while its source entry cites the published 2021 version in the Journal of the European Economic Association, which carries the outage analysis the sentence describes. Educators cited the 2022 Science Advances paper as "van der Linden et al."; its first author is Jon Roozenbeek.
- **What we changed:** "Müller and Schwarz (2021)"; "Roozenbeek, van der Linden et al., 2022". The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review — the source-linking audit of 15 October 2026 (docs/review/source-linking-audit-2026-10-15.md), checked against the papers' records.

15 October 2026

### Two source entries pointed at homepages instead of what the page quotes

- **Date:** 2026-10-15
- **Page:** Symptoms → Body Image; Yes, but…
- **What was wrong:** Body Image quotes two figures from Dove's research (one in two girls; seven in ten felt better after unfollowing), but its entry linked to the programme's homepage, where neither figure appears. Yes, but… says Aza Raskin has publicly stated he regrets inventing infinite scroll, but its entry linked to the Center for Humane Technology's homepage rather than to anything he said.
- **What we changed:** The Dove entry now links to the 27 April 2022 release that carries both figures and its method (an online survey of 1,551 US girls aged 10–17), still labelled brand-funded. The Raskin entry now links to the BBC News report of 3 July 2018 in which he says he "now felt guilty about it". The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** Internal review — the source-linking audit of 15 October 2026.

15 October 2026

### Age Restrictions counted a French law that never took effect

- **Date:** 2026-10-15
- **Page:** Laws & Regulation → Age Restrictions
- **What was wrong:** The timeline said that in 2023 "France passes parental consent requirements for users under 15". France did pass that law (loi n° 2023-566), but it never entered into force: after France notified it, the European Commission found that it encroached on the Digital Services Act. The page also did not say that a stricter French ban for under-15s was struck down in 2026.
- **What we changed:** The sentence now says the law never takes effect, and why; a new sentence says that in August 2026 the Constitutional Council struck down the under-15 ban as a limit on freedom of expression that was not appropriate, necessary and proportionate to its aim (décision n° 2026-911 DC). Both are sourced on the page. The Dutch, Romanian and Brazilian Portuguese drafts carry the same change.
- **Source:** New research — the France research dossier (docs/research/FR.md, proposal 30), verified by two independent passes on 15 October 2026 (docs/review/research-verify-FR-2026-10-15.md).

10 October 2026

### Donate shortened the periodic gift's term and pointed at figures not yet published

- **Date:** 2026-10-10
- **Page:** Share & Support → Donate
- **What was wrong:** Two sentences. The page said a periodic gift "committed for five years" is deductible in full; the Belastingdienst's condition is a gift paid for at least five consecutive years, so five is the minimum, not the term. And the running-costs paragraph said "the quarterly figures below will report what was actually paid" — there are no quarterly figures on the page yet; they start once the foundation is registered.
- **What we changed:** "committed for at least five years", and "the quarterly figures we will publish here, once the foundation is registered, will report what was actually paid". The Dutch, Romanian and Brazilian Portuguese drafts carry the same wording.
- **Source:** Internal review — the Fable batch read of the Dutch edition, 29 September 2026 (issue #113).

10 October 2026

### The Offlimits entry printed a second number beside hours that were not its own

- **Date:** 2026-10-10
- **Page:** Educate → Get Help (the resource registry, all languages)
- **What was wrong:** The entry for Offlimits' help line gave two numbers, "0800-0033 (free) or 020-2615275", followed by opening hours. Those hours belong to the free 0800-0033 line, the only number on the organisation's contact page. 020-2615275 appears only in the footer of its site, beside an older schedule, so the entry paired it with hours that were not its own.
- **What we changed:** The entry now gives 0800-0033 alone, with the hours from the contact page. Chat and mail are listed as before. The Dutch, Romanian and Brazilian Portuguese drafts carry the same change. We will re-check in January 2027.
- **Source:** Internal review — the independent verification pass of 10 October 2026, which re-opened hulplijn.offlimits.nl (docs/review/research-verify-NL.md).

10 October 2026

### Data Combination dated the Target case by its reporting

- **Date:** 2026-10-10
- **Page:** The Attention Machine → Data Combination
- **What was wrong:** The page said that "in one well-documented case from 2012" an American retailer built a model predicting which customers were pregnant. 2012 is the year the New York Times Magazine published the article the page cites; the modelling it describes is older. Read quickly, the sentence dated the modelling to 2012.
- **What we changed:** It now says "a well-documented case, reported in 2012". The Dutch, Romanian and Brazilian Portuguese drafts carry the same wording.
- **Source:** Internal review — the Fable read of the Dutch and Romanian sync of the page, 10 October 2026.

23 September 2026

### Sourcing the last six pages turned up six facts that did not hold

- **Date:** 2026-09-23
- **Page:** Educate → Tools & Sites; Educate → Books; For Young Adults; Share & Support → Donate
- **What was wrong:** Six pages carried no Sources block, and writing one for each meant opening the source behind every claim on them. Six claims did not survive that. **Tools** described Firefox's maker as a "non-commercial, non-profit organisation": Mozilla's own governance page says Firefox is made by the Mozilla Corporation, "a wholly owned **taxable** subsidiary" of the non-profit Mozilla Foundation. The same page said Ecosia "anonymises searches within seven days" and that "your query and IP address do pass to Microsoft or Google": Ecosia's privacy policy says it deletes the **IP address** within seven days, sends it to Microsoft only in obfuscated form, and never sends it alongside the query. It also said Safari "has its own extension restrictions" and therefore offers only uBlock Origin Lite — uBlock Origin's own wiki says only that Safari support ended years ago, which is not the same thing. **Books** called Max Fisher a "New York Times international correspondent" (his publisher's biography says investigative reporter) and called Sander van der Linden the researcher "who developed" inoculation theory, which is William McGuire's, from 1961. **Donate** gave the KvK registration fee as €82, when KVK's own page has it at €85.15, and said ANBI status takes "an 8–12 week application", when the Belastingdienst says it decides within 8 weeks. **For Young Adults** said surveys find young adults "among the most aware of any age group" that social media is manipulative — a comparison no survey we could open supports.
- **What we changed:** Each of the six pages now has a Sources block and links from the claims to it. Firefox's entry names the Mozilla Corporation and its relationship to the Foundation; Ecosia's says what its policy says, and drops two claims we could not verify at all (its B Corp status and monthly public financial reports); Safari is described as not having carried the full extension for years. Fisher is "a New York Times reporter"; van der Linden is "the Cambridge researcher behind the modern prebunking studies". The KvK fee is €85 and the ANBI answer is eight weeks. The Young Adults page now states what the study it rests on actually found: in a 2025 survey of 348 US 18-to-25-year-olds, the people who knew most about algorithms were the most concerned and the least likely to act — awareness without resistance, which is the page's point.
- **Source:** Internal review — the sourcing pass on the six pages that had no Sources block, 23 September 2026.

23 September 2026

### The "rabbit hole" was stated as fact on four pages and called contested on a fifth

- **Date:** 2026-09-23
- **Page:** Symptoms → Xenophobia & Violence; Symptoms → Elections & Democratic Harm; Symptoms → The Manosphere (and the Symptoms landing card); The Attention Machine → Your Brain; For Teens; Educate → Watch & Listen
- **What was wrong:** Four pages said, in the site's own voice and without a source, that the recommendation engine walks users step by step into extremism — "walks users incrementally toward more extreme content" (Xenophobia), "users are walked incrementally toward more provocative content" (Elections, offered as the mechanism behind the 64% figure), "gradual escalation keeps users engaged… each piece of slightly more extreme content performs slightly better" (Your Brain), and "you can be walked somewhere you would never have chosen to go" (For Teens). The glossary entries for "radicalisation pipeline" on For Teens and Watch & Listen said the same. The Radicalisation Pipelines page, which sets out the evidence, says the opposite: the strong claim "is not well supported", and the research is genuinely split (Ribeiro 2020 versus Hosseinmardi 2021 and Chen 2023). The Manosphere page's own metadata — its search and link-preview description, and its card on the Symptoms landing — said the worldview was "served by an algorithm that rewards radicalisation", which its body text explicitly declines to claim.
- **What we changed:** All six places now carry the Radicalisation page's formulation: the platform lowers the cost of finding extreme content and of finding each other, and serves extreme material preferentially to people already leaning that way; whether recommendation drives the escalation on its own is contested. Each links to the Radicalisation Pipelines page for the split evidence. The Elections page no longer glosses the 64% figure as incremental walking — that figure is a count of joins attributed to recommendation tools, not a finding about escalation. The Manosphere description and landing card now read "reached one recommended step at a time, on platforms that reward whatever holds attention".
- **Source:** Internal review — the full content review of 23 September 2026.

23 September 2026

### How We Communicate described a site that does not exist

- **Date:** 2026-09-23
- **Page:** About → How We Communicate; About
- **What was wrong:** The page that carries the site's credibility claim promised a quarterly report on comment moderation — "comments held for review, comments deleted and on what grounds" — and explained why comments are reviewed weekly rather than in real time. There is no comment system anywhere on the site and never has been. It also promised to publish "the specific headline variations tested and what each produced in terms of reach, click-through, and newsletter conversion": no headline variants are tested and there is no newsletter. And it said "First report forthcoming after launch", although the site launched in May 2026. The About page repeated the moderation promise and said the funding page is "updated quarterly".
- **What we changed:** One honest paragraph replaces the moderation material: the site has no comment system, correspondence arrives by email and the published engagement policy applies to it, and the same commitments apply if comments are ever opened. "Hooks used" is replaced by what the site actually counts — page views and four anonymous events, from a self-hosted cookieless analytics instance. The quarterly line now says the first report covers May–September 2026 and is published in October 2026. The section on how the site is made now says plainly that the source checks in the claim ledger were made with AI tools and re-checked by a second model, and that pages a person has read carry the date in their footer. The About page's two sentences now match.
- **Source:** Internal review — the full content review of 23 September 2026.

23 September 2026

### "Every claim is sourced" promised more than the site delivered

- **Date:** 2026-09-23
- **Page:** FAQ; About → How We Communicate; Share & Support → Contribute; Symptoms → What We Don't Yet Know (and its Symptoms landing card); Educate → What to Do; For Teens; Yes, but…; Educate → Watch & Listen
- **What was wrong:** Six places promised that every claim on the site is sourced. Ten pages had no Sources block at all, and several of them named research in the body text — the Yes, but… page, which says it answers objections "with evidence, not rhetoric", cited Solove, Davison, Kahan, MI5 and the OECD in bare parentheses with nothing to follow. Watch & Listen linked "38 million households" to a `#sources` anchor that did not exist on the page, because its only Sources block was nested inside a glossary pop-out.
- **What we changed:** The promise is now the one the site keeps: every claim that carries a number, a date, a named study or a quotation is sourced on its page and tracked in the claim ledger. Real Sources blocks were added to What to Do (van der Linden and Roozenbeek, the three phone-ban studies as cited on Educators, Carter and colleagues on sleep, the OECD blog), For Teens (the Cambridge inoculation research it names twice, and Roose) and Yes, but… (Solove 2011, Davison 1983, Kahan et al. 2017, the MI5 threat update, the OECD blog, the Center for Humane Technology and Tristan Harris's 2019 Senate testimony, and the Bad News research), each linked to the primary source. Watch & Listen's Sources block was moved to the foot of the page so the anchor resolves, and gained the Netflix release behind the _Adolescence_ claim.
- **Source:** Internal review — the full content review of 23 September 2026.

23 September 2026

### Audience pages contradicted the section pages they draw on

- **Date:** 2026-09-23
- **Page:** For Lawmakers; For Parents; Educate → What to Do; Yes, but…
- **What was wrong:** For Lawmakers called privacy-preserving age verification "technically feasible without mass surveillance of adult users"; the Age Restrictions page calls the same question "genuinely unsolved". For Parents said of delayed smartphone access "The evidence supports it"; Age Restrictions says the outcome evidence is thin and unproven. What to Do and For Parents both said school phone bans "reliably improve focus" or "reliably cut in-school use and improve focus" — none of the three studies the site cites measured focus, and the Educators page states the fair reading correctly. What to Do and Yes, but… also described the OECD's count as "a five-fold increase in 16 months", which had drifted from the source.
- **What we changed:** For Lawmakers now says age verification is an active research area, not a solved one, and that the requirement and the acceptable mechanisms should be legislated separately. For Parents says the case is growing and several countries have acted — Australia has made 16 the minimum age for social media accounts — but that the outcome evidence is still thin, so this is a judgement call, not a finding. Both What to Do and For Parents now use the Educators page's wording: bans help with focus and in-school use, and probably with bullying, but are not on their own a mental-health fix. The OECD figure is now given as the counts the source gives: one country, then twelve, then twenty-five in sixteen months, of which three had a law in force by April 2026. For Lawmakers' Deeper box no longer lists "increased polarisation" as confirmed without the hedge its own body text carries ("contributed to").
- **Source:** Internal review — the full content review of 23 September 2026.

23 September 2026

### Courts & Liability: a missing element, and the site's own framing rule

- **Date:** 2026-09-23
- **Page:** Laws & Regulation → Courts & Liability; Laws & Regulation → Age Restrictions
- **What was wrong:** The Courts page set out four elements of the 2006 tobacco fraud finding and then said "All four elements are present in the social media litigation", listing three — concealment was missing. The same sentence described "features engineered to maximise addictive engagement", the framing the site's own rules forbid in its own voice, four lines above a Deeper box explaining that rule. On Age Restrictions, the observation that Australia's rule is "the first of its kind and still has only months of track record" appeared twice, once in the body and once in the Deeper box, with the second version also naming Brazil and Indonesia.
- **What we changed:** The Courts page now names the fourth element — internal knowledge kept from the public and from regulators — and says "features engineered to maximise engagement". The Age Restrictions body now says simply that no country's rule has been in force long enough to evaluate; the fuller account stays in the Deeper box.
- **Source:** Internal review — the full content review of 23 September 2026.

23 September 2026

### The Timeline carried claims its own pages do not source

- **Date:** 2026-09-23
- **Page:** Timeline
- **What was wrong:** The Timeline says it adds no claims of its own, and then made the most contested one: its 2019 entry read "Christchurch; the algorithmic radicalisation pipeline is documented." Four entries on the Machine track — 1995 "commercial web and early search engines arrive", 2009 "gamification goes mainstream", 2016 "engagement-ranked feeds become the default" and 2018 "AI recommendation systems mature" — pointed at pages that carry neither the date nor a source for it, and two of them conflicted with the destination page's own dating (How It Works dates the engagement-ranking change to 2018, not 2016). Two events the site documents in detail were absent: Cambridge Analytica (2018) and the Facebook Files (2021). The Méndez et al. 2026 source was cited without saying it is a preprint.
- **What we changed:** The 2019 entry now reads "Christchurch: New Zealand's Royal Commission documents the attacker's online activity." The four unsourced Machine entries were removed. Entries for Cambridge Analytica (2018) and the Facebook Files (2021) were added, each linking to the page that sources it. The Méndez citation is labelled as an arXiv preprint. The page also said "no claims of its own" twice, gave the lag argument twice and the three-track key twice; each now appears once.
- **Source:** Internal review — the full content review of 23 September 2026.

23 September 2026

### Evidence corrections across The Attention Machine

- **Date:** 2026-09-23
- **Page:** The Attention Machine → State Actors; → Search; → Advertising & Surveillance; → Data Combination; → Under the Hood; → AI & The Next Layer; → Your Brain; → the Gamification demo
- **What was wrong:** **State Actors** said the AIVD's 2025 annual report "described online platforms as primary infrastructure for both domestic radicalisation and foreign interference" — a paraphrase an earlier correction had already retired for the BfV, and one the AIVD report does not support; the evidence base still carried the retired wording too. **Search** said "Research consistently shows that most users trust highly positioned results" on the strength of a single eye-tracking study, and made an unsourced accuracy claim about Google's AI Overviews although the claim ledger names the study behind it. **Advertising** said a profile is broadcast to "hundreds" of advertising companies per auction while the Tracking & Targeting demo said "dozens". **Data Combination** said of the accumulated profile "and it does not expire". **Under the Hood** said "in the EU the law says fingerprinting needs one \[a consent prompt]" with nothing to support it, had no sources for the Belgian DPA and CJEU findings it relies on, and had lost the sentence that answers "you're doing it too". **AI** said instances of AI-generated content were "documented across multiple member states" and cited a paper that measures awareness, not incidents. **Your Brain** said "every negative word in a headline raised the click rate" without the study's design or effect size, and headed a section "Unpredictable rewards keep you hooked". The **Gamification demo** closed on "no conspiracy, only mechanics", not the site's line.
- **What we changed:** State Actors now reports what the AIVD report records — young people radicalising online and being deployed by state actors — and the evidence base notes the retired paraphrase. Search names the Tow Center for Digital Journalism's March 2025 study in the prose and in Sources (eight AI search tools; more than 60% of queries about news articles answered incorrectly), and attributes the position effect to the Cornell eye-tracking study rather than to research in general. Advertising now says "dozens", matching the demo and the ICCL source. Data Combination says "there is usually no fixed end date on it". Under the Hood cites the EDPB's Guidelines 2/2023 on Article 5(3) of the ePrivacy Directive for the consent point, adds the Belgian DPA decision and CJEU C-604/22 to its Sources, and restores the paragraph saying the site does none of this and names the analytics it does run. The AI page drops the unsupported sentence. Your Brain gives the study's design and figure — about 105,000 headline variants A/B-tested by publishers, each negative word raising the click rate by about 2.3% — and the section is now "Unpredictable rewards are the hardest to stop". The demo closes on "no conspiracy, only incentives".
- **Source:** Internal review — the full content review of 23 September 2026.

23 September 2026

### Evidence corrections across Symptoms

- **Date:** 2026-09-23
- **Page:** Symptoms (landing); Symptoms → Xenophobia & Violence; → Elections & Democratic Harm; → Body Image; → What We Don't Yet Know
- **What was wrong:** **Xenophobia** said "internal documents later showed the company was aware" of the coordinated hate campaigns in Myanmar; the finding is not from leaked internal documents but from the UN Independent Fact-Finding Mission and from the human-rights impact assessment Facebook itself commissioned from BSR. **Elections** cited the AIVD and the BfV with no source bullets for either. **Body Image** gave "commonly cited clinical estimates put males at roughly one in three of those affected" with no citation. **What We Don't Yet Know** said the harms are "in most cases acknowledged by the platforms themselves", which is more than the site shows. The **Symptoms landing** said "Every major harm here was flagged… The timeline starts in 2000", while the section's own first entry is Stormfront in 1995 and not every harm on it was foreseen.
- **What we changed:** Xenophobia names the UN Fact-Finding Mission and the BSR assessment, and BSR's report is now in the Sources. Elections carries AIVD and BfV bullets, copied from State Actors, and names both in the prose. Body Image cites Hudson and colleagues (2007), the NCS-R lifetime-prevalence survey, for the roughly one-in-three figure. What We Don't Yet Know says "in several cases". The Symptoms standfirst now reads "Most of the harms here were flagged…" and "The story starts in the 1990s".
- **Source:** Internal review — the full content review of 23 September 2026.

23 September 2026

### The Romanian cyber-security line 1911 was described as free

- **Date:** 2026-09-23
- **Page:** Educate → Get Help (the resource registry, all three languages)
- **What was wrong:** The entry for the DNSC's line 1911 said the call is free. The Directorate's own contact page says the number is reachable "at a normal rate"; the only statement that it is free came from its director-general in a radio interview.
- **What we changed:** The entry now says "call 1911 (standard rate), day and night": a person read the Directorate's contact page the same evening — "reachable from any network in Romania, with a standard rate, available 24/7". The number and the hours are confirmed on the Directorate's reporting platform.
- **Source:** dnsc.ro/contact (archived copy), pnrisc.dnsc.ro; the independent verification pass of 23 September 2026 (docs/research/RO.md).

23 September 2026

### The Offlimits help line's hours were copied from a stale footer

- **Date:** 2026-09-23
- **Page:** Educate → Get Help (the resource registry, all three languages)
- **What was wrong:** The entry for Offlimits' help line gave its hours as Monday to Thursday 07:00–23:00, Friday 09:00–17:00 and Sunday 10:00–18:00 — the schedule printed in the organisation's site-wide footer, which has not changed since January 2026. The organisation's own hours page, updated in September 2026 together with its new free number, says Monday to Saturday 07:00–23:00 and Sunday 10:00–18:00.
- **What we changed:** The hours now follow the hours page: Monday to Saturday 07:00–23:00, Sunday 10:00–18:00; 0800-0033 (free) or 020-2615275. We will re-check in October 2026.
- **Source:** hulplijn.offlimits.nl/over-de-hulplijn/contact-en-openingstijden, re-read by the independent verification pass of 23 September 2026 (docs/research/NL.md).

23 September 2026

### Site facts and recommendations that had drifted

- **Date:** 2026-09-23
- **Page:** Educate → Tools & Sites; What is Truth? → Science; For Educators; Yes, but…; About → Privacy; Share & Support → Donate; Share & Support → Contribute; FAQ; Contact
- **What was wrong:** **Tools** blamed uBlock Origin's Safari limitation on Google's 2025 extension changes; Safari's restriction is its own. **Science** said the Open Science Collaboration's 2015 paper "triggered the crisis" it in fact reported. **Educators** called Goodyear and colleagues (2025) "the largest English survey to date", which overstates it. **Yes, but…** attributed to Kahan et al. (2017) a list of techniques — conspiracy framing, authority attacks, "follow the money" — that the study did not test. **Privacy** said "We are a foundation", which is not yet true; the foundation is being registered. **Donate** offered organisations a bank transfer that does not exist yet, and listed running costs without the analytics server they are mostly spent on. **Contribute** said the Dutch and Romanian editions are "under native review"; no review has started, and it gave the site as about 65 pages when it now has 66. **FAQ** pointed "recommended tools" at the What to Do page. The **Contact** page listed no privacy address, although the Privacy page tells readers to write to one.
- **What we changed:** Tools now says Chrome and Edge allow only uBlock Origin Lite after Google's 2025 extension changes, and that Safari has its own restrictions and also offers only Lite. Science says the 2015 paper "brought the replication crisis into the open". Educators says "the largest English study to survey pupils directly (30 schools, 1,227 pupils)". Yes, but… keeps only what Kahan measured: the most numerate participants were the most polarised when the same data touched their politics. Privacy says "We are being set up as a foundation". Donate says bank transfer becomes available once the foundation's account is open, and names the self-hosted analytics server as the running cost beside the domain. Contribute says the two editions are drafted and awaiting native review, and gives the page count as 66. The FAQ links to Tools & Sites. Contact lists privacy\@attentionmachine.org.
- **Source:** Internal review — the full content review of 23 September 2026.

23 September 2026

### The states' case against Meta had settled a month earlier

- **Date:** 2026-09-23
- **Page:** Laws & Regulation → Courts & Liability; For Lawmakers; Timeline
- **What was wrong:** The Courts page said the case brought by more than 40 US states against Meta "runs alongside" the families' cases. On 26 August 2026, days into the trial, Meta settled with 51 US attorneys general — a minimum of $12.1 billion and up to $17.1 billion over ten years, plus default time limits, an overnight block and other design changes for under-18s under a consent judgment the court entered the same day. For Lawmakers also still said the March 2026 verdicts were "against Meta and Google", which an earlier correction had already fixed on the Courts page.
- **What we changed:** The Courts page describes the settlement and its terms, sourced to the consent judgment and the attorneys general's own releases, and says the families' and school districts' cases are not part of it. For Lawmakers and the Timeline carry the settlement; For Lawmakers now names the defendants of each March verdict. The claim ledger's re-check schedule now follows the whole MDL docket, not only the named cases — which is how a settlement inside the same proceedings went unseen for a month.
- **Source:** Internal review — the full research review of 23 September 2026.

22 September 2026

### The joint ODNI, FBI and CISA statement: the wrong date and link

- **Date:** 2026-09-22
- **Page:** Symptoms → Elections
- **What was wrong:** The page said the statement came "four days before" the 2024 election, which is the statement of 1 November 2024, but the source list linked and dated the later statement of 4 November. The official link had also stopped working.
- **What we changed:** The text now gives the date (1 November 2024), and the source links to that statement. The Senate Intelligence Committee report on Russia, cited as "(2019)" here and on State Actors, is now cited as the five volumes it is (2019–2020).
- **Source:** Internal review — the Opus review of the Dutch and Romanian editions, which read every page beside the English (September 2026).

22 September 2026

### The 2026 verdicts: who was found liable, and on what argument

- **Date:** 2026-09-22
- **Page:** Laws & Regulation → Courts & Liability; Laws & Regulation → Section 230
- **What was wrong:** Both pages read as if both March 2026 verdicts were against both Meta and Google. The New Mexico case was against Meta alone, and the design argument that sidesteps Section 230 was the heart of the Los Angeles case.
- **What we changed:** Courts & Liability now names the defendants in each case. Section 230 attributes the design argument to the Los Angeles verdict against Meta and Google's YouTube.
- **Source:** Internal review — the Opus review of the Dutch and Romanian editions (September 2026), following the correction of 21 September below.

21 September 2026

### Google was never a party to the New Mexico verdict

- **Date:** 2026-09-21
- **Page:** Laws & Regulation → Courts & Liability
- **What was wrong:** After describing the two March 2026 verdicts, the page said "Both companies have said they will appeal both verdicts." Only the Los Angeles case involved both Meta and Google (YouTube); the New Mexico case was brought against Meta alone, so Google had nothing to appeal there.
- **What we changed:** The sentence now reports each case separately and brings it up to date: in Los Angeles the judge refused in June 2026 to overturn the verdict and Meta and YouTube filed appeals in July; in New Mexico the court added a $567 million abatement fund in August 2026 (a $942 million judgment in total), and Meta has said it will appeal. Neither verdict is final. Sources for each step were added to the page.
- **Source:** Internal review — the scheduled re-check of claims with a shelf life (issue 04.04, September 2026), against the New Mexico Department of Justice and court reporting.

21 September 2026

### Two corrected figures survived in section-landing cards

- **Date:** 2026-09-21
- **Page:** The Attention Machine (landing); Laws & Regulation (landing)
- **What was wrong:** Both figures had been corrected on the pages themselves but not in the summary cards that link to them, which no verification pass had looked at. The Attention Machine landing still described the Search page as "Google processes 8.5 billion searches per day" — the figure replaced in the September review with Google's own, more than 5 trillion a year. The Laws landing still said "Over 25 countries have implemented or are implementing social media age restrictions since 2023"; the OECD's April 2026 count is 25 member and accession countries with restrictions in force **or under consideration**, of which only three had a law in force.
- **What we changed:** Both cards now carry the corrected figures, matching the pages they link to.
- **Source:** Found while preparing the Dutch translation of those landings (September 2026), which would otherwise have inherited both errors. Noted in docs/25: the claim ledger covered page prose, and these strings sit in a component's props.

20 September 2026

### The privacy page said two analytics tools were running. Neither was.

- **Date:** 2026-09-20
- **Page:** About → Privacy; Share & Support → Donate
- **What was wrong:** The privacy page told readers that traffic was measured "with two cookieless tools: Cloudflare Web Analytics, which Cloudflare, our host, adds to every page, and Plausible, an open-source tool we host on our own server", and added that Plausible was "failing to load, so in practice only the Cloudflare figures exist". Both halves were wrong. The Plausible script was requested from a stale per-site address (`/js/pa-0xUDdzxodeaF4_EiEG3yQ.js`) that had been returning 404 since the site record on the analytics server changed — every page asked for it, nothing was recorded. Cloudflare Web Analytics was never switched on at all: its tag sat in the page source inside an HTML comment with a placeholder token, so it never executed, and the host was not injecting one either. The site therefore collected **no analytics whatsoever**, while its privacy page described two working tools. The Donate page repeated the same claim in its running-costs line.
- **What we changed:** The site now loads one analytics tool, the self-hosted Plausible instance, from the shared script address with `data-domain` rather than a hashed per-site URL that can disappear. The disabled Cloudflare Web Analytics tag was removed, along with its entries in the Content-Security-Policy, since we are not using it. The privacy page now describes one tool, says what it records, and carries a note about this correction; the Donate page matches. A new build check (`scripts/check-analytics.mjs`, lint CHECK 24) fetches whatever analytics URL the layout points at and fails the build on a 404, because this is precisely the kind of fault a browser and a build are both silent about. (_Added 2026-09-23:_ the move to the shared script with `data-domain` was reverted the same day. The site loads the **per-site script the dashboard issues**, which carries the domain and the enabled captures — outbound links, downloads, form submissions — so switching one on or off is a dashboard change rather than a code one. That is deliberate. The risk this correction named — a hashed URL that disappears when the site record is recreated — is now covered by CHECK 24 itself, which fetches whatever URL the layout points at on every lint run and fails on a 4xx.)
- **Source:** Internal review (September 2026), reproduced against the live site and the analytics server.

19 September 2026

### Second verification pass, part 2: the remaining forty pages

The adversarial read was extended to every page the first part of the pass had not re-read (the demos, Search, State Actors, the five law pages, the What is Truth section, the Educate and Share sections, the audience pages, the objections list, the About pages). Twenty-six changes across nineteen pages; the ledger in docs/25 now covers the whole site.

- **Date:** 2026-09-19
- **Source:** Internal second-pass review (September 2026), part 2.

**Repeated errors caught on other pages**

- **Watch & Listen, Things Worth Paying For:** _Adolescence_ "used as a discussion starter in schools across Europe" and "Cambridge University's prebunking curriculum is free" — the same two unsupported claims corrected on the Educators page earlier today; corrected here too (UK secondary schools via Into Film+; the Inoculation Science games and videos).
- **Tracking & Targeting demo:** "RTB as currently practised likely violates the GDPR" — the overstatement corrected on three other pages in the first pass was still on the demo page. It now says the consent RTB relies on has been found invalid and the auction runs on regardless. "Every company … retains a copy" → "can keep a copy … nothing in the system stops it", as on Advertising.
- **Yes, but…, What to Do:** the OECD count was "countries implementing age restrictions"; the OECD figure counts countries adopting _or considering_ them. Corrected on both pages.

**Claims stronger than the evidence, or unsourced**

- **State Actors, Lawmakers, Elections:** the BfV report was said to identify "online platforms as primary infrastructure for radicalisation". The report calls the internet a "catalyst" (Katalysator) for radicalisation, especially of the very young. Reworded on all three pages; the North Rhine-Westphalia report's "younger and more digital" line is now sourced to the state's press release.
- **Yes, but…:** "Research consistently shows users are wrong about their ability to scroll past without being affected" (no such body of research is cited) and "social media became the primary information channel for most of the world's population" (overclaim) — both reworded to what is defensible.
- **For Young Adults:** "Research consistently finds that young adults are more aware than any other demographic" — reworded to "surveys find young adults among the most aware of any age group".
- **For Teens:** manosphere content "gets progressively more extreme with each recommendation" → "can get more extreme", consistent with the split evidence on the Radicalisation page.
- **Digital Services Act:** "For two decades, platforms were responsible for nothing" ignored the e-Commerce Directive's notice-and-takedown duty; reworded.
- **Age Restrictions:** "Australia's law is the only one in force long enough to study" — Brazil and Indonesia also have laws in force (OECD, April 2026); reworded on both occurrences.
- **AI & The Next Layer:** the Romania "Deeper" box now carries the same caveat added to the Elections page (the declassified documents were contested; a rival party had paid for an influencer campaign).
- **Search:** the claim that autocomplete "has been manipulated through coordinated search behaviour" now cites Cadwalladr (Observer, 4 December 2016).

**Facts that had gone out of date**

- **Tools & Sites:** uBlock Origin "works on Chrome, Firefox, Edge, and Safari". The full extension was removed from the Chrome Web Store and disabled in Chrome in 2025 (Manifest V3); Chrome, Edge and Safari run only the reduced uBlock Origin Lite; Firefox (and Brave) still run the full extension. Corrected.
- **What We Don't Yet Know:** the Stanford Internet Observatory was listed as a source to watch; it was wound down in 2024. Replaced with EU DisinfoLab.
- **Contribute:** "approximately 8,000–12,000 words per language across the full site" — the English site is roughly 45,000 words over about 65 pages. Corrected so prospective translators are not misled.

19 September 2026

### Second verification pass before translation: 30 changes across 17 pages

A second, adversarial pass over the whole English text (every factual sentence classified; every claim previously accepted from memory fetched from its primary source; each argument-heavy page read as a platform spokesperson, a free-speech absolutist and a sceptical researcher would read it). The full audit trail, with the status of every checked claim, is in docs/25.

- **Date:** 2026-09-19
- **Source:** Internal second-pass review (September 2026), each item verified against the primary source now named on the page.

**Numbers and dates that were wrong**

- **Mental Health:** "a US cohort study of 6,600 teenagers found roughly double the risk" for more than three hours a day. Riehm et al. (2019) report about 60% higher odds of internalising problems (aRRR 1.60 at three to six hours; 1.78 above six); "roughly double" holds only for combined internalising and externalising problems (2.01; 2.44). Both numbers now given.
- **Lawmakers:** the Commissariaat voor de Media's youth research was dated "February 2026". Fieldwork was March 2024 and it was published on 2 October 2024 (2,010 respondents aged 16–24, Ipsos I\&O). Corrected on the page and in docs/03.
- **Elections:** IRA reach on "Instagram and YouTube" was "millions more". Platform testimony (31 October 2017): about 20 million on Instagram; on YouTube 18 channels and 1,108 videos with roughly 309,000 US views. Corrected and sourced.
- **Watch & Listen:** "Over 100 million viewers" for _The Social Dilemma_ is a Center for Humane Technology figure. Replaced with Netflix's own: 38 million households in the first four weeks (Q3 2020 shareholder letter).
- **Age Restrictions:** "Over 25 countries have now implemented or are implementing" age restrictions. The OECD's April 2026 count is 25 member and accession countries with restrictions in force _or under consideration_; only three (Australia, Brazil, Indonesia) had a law in force. Corrected.
- **Tracking & Targeting demo:** "Google Analytics sits on more than half of all websites". W3Techs (2026): 43% of all websites, 78% of those running any analytics. Corrected and sourced.
- **Advertising & Surveillance:** "Google acquired DoubleClick in 2007" — announced April 2007, completed March 2008.
- **Educators:** the Bad News game "works from age 14 upward" — its makers recommend 15 and up, with a Junior version for 8–11. A "Cambridge prebunking curriculum … structured lesson plans" does not exist as described; replaced with the Inoculation Science toolkit (games, videos, a practical guide). _Adolescence_ "widely used in secondary schools across Europe" replaced with the verifiable fact: Netflix made it free to all UK secondary schools through Into Film+ in March 2025.
- **Courts:** the MDL 3047 count (2,527 pending) is now sourced to the JPML report of 1 May 2026; the March 2026 verdicts are marked as under appeal (also on Lawmakers).
- **State Actors:** the AIVD Director-General's quotation now follows the Dutch original ("the AIVD and its predecessors … from so many sides at once, for so long").

**Claims that were stronger than their evidence**

- **Educators, What to Do, Parents:** "Research consistently supports school phone bans." The evidence is mixed: Abrahamsson (2024, Norway) finds less bullying, better grades and fewer mental-health visits for girls; Beland & Murphy (2016, England) find higher test scores; Goodyear et al. (2025, _Lancet Regional Health – Europe_, 30 schools) find no difference in wellbeing, sleep or overall use. Rewritten on all three pages with all three cited.
- **Mental Health, Parents, Lawmakers:** "effects consistently worse for girls" is now "several large studies find the association stronger for girls", with Kelly et al. (2018, UK Millennium Cohort) added as the source.
- **Mental Health:** Orben & Przybylski's "potatoes and glasses" comparison was about adolescents' digital technology use in general, not social media specifically; scoped. Candice Odgers' _Nature_ review of _The Anxious Generation_ is now cited in the Haidt-versus-Orben section. "Internal decisions to prioritise growth" replaced by what the documents show (findings played down in public; proposed fixes not adopted at scale).
- **Manosphere:** the lead said readers are "walked there incrementally by an algorithm"; the body that the ecosystem "reliably produces a population"; and a university news feature (Cousineau 2025) was presented as "research from Dalhousie University". The page now defers to the split evidence set out on Radicalisation Pipelines, calls Cousineau's position an argument, describes Roose's story as an illustration, and says the ecosystem "reliably reinforces a worldview".
- **Elections:** the Romania paragraph now records that the declassified documents were contested — a tax-authority investigation found an influencer campaign that ended up promoting Georgescu had been paid for by a rival pro-EU party — and that the annulment was criticised. The court ruling and TikTok's admission remain the confirmed facts.
- **How It Works, Lawmakers:** "The company chose growth" replaced with what the _Wall Street Journal_ reported (fixes resisted because they would reduce engagement). The claim that engagement ranking amplifies divisive content was supported only by the Haugen documents; Milli et al. (2025, _PNAS Nexus_), a pre-registered audit of Twitter's ranking, and Brady et al. (2017, _PNAS_) are now cited.
- **Your Brain:** "content that triggers threat responses consistently outperforms content that produces calm" now cites Robertson et al. (2023, _Nature Human Behaviour_) and Brady et al. (2017).
- **Advertising & Surveillance:** "every company that receives the broadcast retains a copy" is now "can keep a copy … nothing in the system stops it" (the ICCL evidence is about broadcast, not proven retention).
- **Health Misinformation:** the claim that misinformation leads people to refuse cancer treatment is now sourced to Johnson et al. (2018, _JNCI_): alternative medicine alone, hazard ratio 2.50.
- **Parents:** "sudden absolute bans tend to increase secretive use" was an unsourced empirical claim; reworded as advice.

19 September 2026

### Demo review: the tracking demo told most visitors they were protected when they were not

- **Date:** 2026-09-19
- **Page:** The Attention Machine → Tracking & Targeting demo; Privacy; Donate; the Demos landing
- **What was wrong:** (1) The live tracker test reported the Google Ads / DoubleClick pixel as "✗ blocked" for every visitor outside the United States, with or without a blocker: Google redirects that pixel to the visitor's country domain, which the page's security policy did not allow, so the browser blocked the redirect and the demo read that as protection. (2) Phase 3's "Why you" line was a fixed sentence per vulnerability; the fallback said "Professional desktop + working-hours browsing" to anyone it was picked for, including phones at night that Phase 2 had just called "Evening mobile — leisure context". (3) Phase 2 could label a device "Average / Standard" while Phase 3 called the same device "Mid-market". (4) Any language other than Dutch, German or French was labelled "English-speaking consumer" (so Romanian and Portuguese visitors were mislabelled), and every timezone in the Americas was tagged "CCPA-region". (5) The auction panel showed the animation's duration as if it were the auction's. (6) The disclosure said the tracker requests carry "nothing about you beyond the request itself"; they carry the IP address, the page address and any cookie the browser already holds for Google or X. (7) The privacy page, corrected the day before to name Plausible, was wrong the other way: the Plausible script is currently failing to load (404), while Cloudflare's own cookieless Web Analytics, injected by the host, is running. (8) The Demos landing said all three demos run "on your own data"; only one does.
- **What we changed:** The ad-exchange probe now uses a DoubleClick host that answers directly; the security policy and the CSP test were updated, and a new test asserts that all three probes can load under the real policy. The "Why you" line is now computed from the signals that actually qualified the visitor, and both phases derive income from one function. Languages are named or shown by code; the Americas tag no longer says CCPA. The auction timer is labelled as a slowed-down replay. The tracker disclosure on the demo page and the privacy page now says what the requests carry. The privacy and Donate pages name both analytics tools and the current fault. The Demos landing says which demo uses your data. Also: no-JavaScript fallbacks on all three demos, reduced-motion support on the tracking demo, a goal-gradient citation on the Gamification demo, and "consent not given" wording on the Data Combination demo.
- **Source:** Internal review of the demos (September 2026), reproduced on the live site in a clean browser.

19 September 2026

### Full-site source review: 30+ corrections in one pass

A page-by-page check of every claim against its primary source (September 2026) found a layer of numbers and attributions that had never been verified. Each is logged below in short form; the merge request carries the diff.

- **Date:** 2026-09-19
- **Source:** Internal review (September 2026), each item verified against the primary source named.

**Wrong about the site itself**

- **Privacy page:** said analytics were Cloudflare Web Analytics and donations ran through Donorbox and Stripe, and called that "the complete list". The site loads self-hosted Plausible on every page, donations go through Ko-fi, and the Tracking & Targeting demo loads three real trackers. Rewritten to match what the site actually does, with the demo exception disclosed.
- **Donate / About / Things Worth Paying For:** all three disclosed affiliate income from Bookshop.org links. No such links exist and no commission has ever been earned. The Donate page also named Simple Analytics and a Buttondown newsletter (neither in use), and gave a Dutch tax example ("49% bracket … pays €51") that ignores the 1% threshold and the basic-rate cap on the gift deduction. All corrected.

**Claims that contradicted the cited source**

- **Democracy:** "The IRA's most-shared Facebook posts were about undermining confidence in electoral processes, not promoting specific candidates." The Mueller Report and Senate Volume 2, both cited on the page, found the opposite: a candidate preference plus division and voter-suppression content aimed at Black Americans. Rewritten; Senate Volume 2 added to sources.
- **Science:** a correction of a correction. In May 2026 we removed a "240,000-paper APS 2025 study" as non-existent and attributed a rising-replicability trend to Youyou, Yang & Uzzi (2023). The large study exists — Bogdan (2025), _Advances in Methods and Practices in Psychological Science_, 240,355 papers — and the PNAS paper reports no trend. Both now cited for what each actually shows, with a note on the page.
- **Advertising & Surveillance:** the harvest was dated "2016" (it was 2014–15); the Mueller Report and Senate report were cited for it (neither documents it — now Facebook's 2018 disclosure, the FTC's 2019 order and the ICO's 2020 letter); the ICO link went to a general page rather than the letter containing the Brexit finding; and the page said the infrastructure "was legal under the rules in place at the time" (the ICO fined Facebook the maximum £500,000 under the 1998 Act). Google's cookie reversal and its fingerprinting policy change were merged into one event; separated and sourced to the ICO's response.
- **Advertising, Tracking demo, Lawmakers:** "the Belgian DPA and the CJEU have found that RTB … likely violates the GDPR" overstated both rulings, which concern the consent framework and the TC String. Reworded on all three pages.
- **Yes, but…:** Bago, Rand & Pennycook (2022) was cited for the claim that educated people are more susceptible to targeted manipulation; the paper finds deliberation reduces conspiracy belief. Replaced with Kahan et al. (2017), _Behavioural Public Policy_, whose motivated-numeracy experiment does support the claim. Zahrai et al. (2022), a literature review on self-control, was cited for "design impairs the exit decision"; citation removed.

**Numbers that were wrong**

- **Search:** "8.5 billion searches per day" (Google's own figure is over 5 trillion a year); "advertising revenue $234 billion" in 2024 (Alphabet's 10-K: $264.6 billion); "AI Overviews in 30% of results by January 2025" (Semrush, the cited source: 6.49% in January, 24.61% in July 2025). All replaced and linked.
- **Health Misinformation:** "measles cases rose roughly 30% worldwide in 2019" — WHO reports 869,770 cases, the most since 1996, up 556% on 2016; the 30% figure was 2017 versus 2016. Corrected and sourced.
- **Get-Rich-Quick:** the FCA figures were misstated as "62% follow finfluencers"; the FCA's October 2024 release says 62% of 18–29s follow _social media influencers_ and 74% of those trust their advice. Corrected and the right release linked.
- **Age Restrictions:** "in 2023, nearly 40% of US children aged 8–12 used social media, and 63% of UK 8–11s; a Canadian study found 86% of under-13s held accounts" — the US figure is Common Sense Media's 2021 census (38% had ever used), the Canadian figure is MediaSmarts 2021 for ages 9–11, and the UK figure could not be verified and was removed.

**Attributions and dates**

- **How It Works, Elections, Xenophobia:** the "64% of extremist group joins" figure was attributed to the 2021 Haugen disclosures; it comes from a 2016 internal presentation on German political groups reported by the Wall Street Journal in May 2020. The pages also read "users were not seeking these groups" into it, which it does not show. Re-attributed, linked, and scoped.
- **Mental Health, Parents, Lawmakers:** "Instagram makes body image issues worse for one in three teenage girls" now carries the qualifier in the underlying research: one in three _of those who already felt bad about their bodies_.
- **Courts & Liability / Section 230:** MDL 3047 was created in October 2022, before the states sued in 2023 (the page had the order reversed); the key Section 230 ruling was 14 November 2023, not "January 2025"; the 1990s tobacco outcome was a settlement, with the fraud liability finding in 2006. Sources added.
- **Section 230:** "The EFF supported the bill" — the EFF was a plaintiff against the Communications Decency Act in _Reno v. ACLU_; reworded.
- **Xenophobia:** the 2004 OSCE meeting was in Paris, not Vienna; an unidentifiable "2021 study" on social media and ethnic violence was removed; Facebook's 2018 Myanmar acknowledgment and the SPLC 2007 count are now linked.
- **Consumerism:** in-app shopping came to Instagram and Facebook (2019–20) before TikTok Shop, not after; the fast-fashion figures ("10% of emissions", "second-largest water consumer") are flagged as contested rather than stated as fact; the compulsive-buying claim now cites Sharif & Khanekharab (2017).
- **Journalism:** Johann Hari's case was plagiarism and pseudonymous attacks, not fabrication; "Woodward and Bernstein established that Nixon had authorised criminal activity" now credits the Senate hearings and the tapes for establishing it.
- **Data Combination:** the disputed Target "father found out from the coupons" anecdote is now flagged as disputed, with the documented modelling kept.
- **Timeline / Laws landing:** "the first binding response, GDPR, 23 years after hate sites were documented" paired unrelated things; reworded to "the first EU-wide rules with penalties that bite". The 2025 law entry now records the first DSA fine.
- **Things Worth Paying For / Organisations:** The Correspondent (closed January 2021) and First Draft (closed June 2022) removed; Information Futures Lab added.
- **Citation updates:** Germano, Gómez & Sobbrio is now peer-reviewed (_Journal of Public Economics_ 255, 2026); Farooq et al. 2025, Iyengar 2019, Berridge & Robinson 1998, Riehm 2019, Izuma 2008, Valkenburg 2021, Pan 2007, the Meliorator advisory, the X fine, the White House memorandum, the NATO StratCom DSA study and the Australian Act are now linked.
- **docs/03 and docs/02:** still carried the "Westerwick", "240,000-paper" and Mueller-for-Cambridge-Analytica errors that the pages had already corrected, and docs/02 still linked the harvest to Brexit. Synced.

4 June 2026

### Stormfront founding date inconsistent (Xenophobia page + Symptoms landing)

- **Date:** 2026-06-04
- **Page:** Symptoms → Xenophobia & Violence (and the Symptoms section landing)
- **What was wrong:** The same fact carried two different dates: the section landing said Stormfront was set up in 1994, while the page body said 1996.
- **What we changed:** Standardised both on 1995 — the date the Southern Poverty Law Center (the authoritative hate-group monitor, already cited on the page) gives for when Don Black set the site up (March 1995; a dial-up bulletin board preceded it in the early 1990s). docs/03 reconciled to match.
- **Source:** Internal review (June 2026), verified against SPLC.

4 June 2026

### Cousineau mischaracterised as a quantitative audit (Manosphere page)

- **Date:** 2026-06-04
- **Page:** Symptoms → The Manosphere
- **What was wrong:** A "Deeper" box grouped Cousineau (2025) among "quantitative audit studies" that test what recommender systems push to fresh accounts. Cousineau's Dalhousie work is qualitative study of the communities, not an experimental recommender audit.
- **What we changed:** Re-cited Cousineau as the qualitative source he is (alongside Roose 2019) and attributed the quantitative experimental-account finding to the Institute for Strategic Dialogue's YouTube audit (2022). Also linked the previously plain-text Cousineau and De Waag/Fivoor/Transfore citations to their primary sources (Dalhousie News; NOS).
- **Source:** Internal review (June 2026); verified Cousineau via Dalhousie News and the ISD report directly.

28 May 2026

### Search-ranking study misattributed (Search page)

- **Date:** 2026-05-28
- **Page:** The Attention Machine → Search
- **What was wrong:** The study showing that search-result ranking of pro- vs anti-vaccination sites influences users' beliefs was attributed to "Westerwick, A. et al. (2014)." The correct authors are Allam, A., Schulz, P.J. & Nakamoto, K. (2014), published in the Journal of Medical Internet Research ("Two Experiments Manipulating Google Output"). The Westerwick search-selectivity work is a separate paper, in a different journal, on a different topic.
- **What we changed:** Corrected the author attribution and linked the source directly to JMIR.
- **Source:** Internal review (May 2026), verified against JMIR (DOI 10.2196/jmir.2642).

28 May 2026

### Replication-rates study miscited (Science page)

- **Date:** 2026-05-28
- **Page:** What is Truth? → Science
- **What was wrong:** The page cited "a 2025 study of 240,000 psychology papers (2004–2024)" by the "Association for Psychological Science." No such study exists. The claim is a garbled reference to Youyou, Yang & Uzzi (2023), published in PNAS, which used a machine-learning model to estimate the replicability of more than 14,000 psychology papers published 2000–2019.
- **What we changed:** Corrected the body text and the source to the actual study (author, year, venue, sample size) and linked it directly to PNAS.
- **Source:** Internal review (May 2026), verified against PNAS (DOI 10.1073/pnas.2208863120).

28 May 2026

### Cambridge Analytica and the Brexit referendum

- **Date:** 2026-05-28
- **Page:** The Attention Machine → Advertising & Surveillance
- **What was wrong:** The page stated that the 87 million harvested Facebook profiles were used by Cambridge Analytica for political micro-targeting "in the Brexit referendum and the US presidential election." The UK Information Commissioner's Office, in its final 2020 report, concluded that Cambridge Analytica was not involved in the referendum beyond initial inquiries, and that the harvested Facebook data — which related to US-registered voters — could not have been used in it. Linking the harvest to Brexit was an overclaim.
- **What we changed:** Removed the Brexit attribution from the harvesting claim, and added a paragraph stating the ICO's finding explicitly, with a link to the ICO. The US presidential election use remains, as it is documented.
- **Source:** Internal review (May 2026), verified against the ICO's October 2020 report to Parliament.

28 May 2026

### CvdM report title

- **Date:** 2026-05-28
- **Page:** Elections & Democratic Harm; Democracy; Digital Services Act (sources blocks)
- **What was wrong:** The Commissariaat voor de Media's May 2026 report was cited as "Naar een democratisch gezondere feed." The correct title is "Naar democratisch gezonde feeds" (subtitle: "Hoe toezicht en beleid aanbevelingsalgoritmes van sociale media kunnen verbeteren").
- **What we changed:** Corrected the title in all source blocks and project documents.
- **Source:** Internal review (May 2026), verified against cvdm.nl.

## Change log

2252 changes on 62 days, most recent first. Generated from the commit history; each line is one change as its author described it, with its commit reference.

**Open the full change log (62 days)**

25 October 2026

- **chore:** sync generated files (#177) `ebc7c052`
- **style(fr):** restore French typographic spacing in 68 draft pages `d41e9017`
- i18n(fr): draft catch-up 2, 45 pages carried to current English (Batch API) `e7b95370`
- **chore:** sync generated files after merging main `d437591d`
- **chore:** sync generated files (#177) `1fae45ff`
- **chore:** sync generated files (#177) `8aee8699`
- i18n(nl): draft catch-up, 45 pages carried to current English (Batch API) `a7711a7e`
- i18n(ro): draft catch-up, 45 pages carried to current English (Batch API) `b4d40de5`
- **chore:** sync generated files (#71) `bbee637d`
- **chore:** sync generated files (#178) `c5fbeeec`
- **test(batch-cite):** copy review-pages.mjs's new imports into the temp tree (#178) `1384bc63`
- **chore:** sync generated files (#71) `4f100efa`
- **chore:** sync generated files (#178) `9c220e9f`
- **chore:** sync generated files (#71) `74f50bc1`
- **chore:** sync generated files (#71) `94d03561`
- **content(fr):** the Fable review of the French additions, applied (#71) `eeb88d55`
- **chore:** sync generated files (#178) `d75e33ae`
- **chore:** sync generated files (#71) `bd62a48e`
- **feat(review):** the review route accepts every started edition, es among them (#178) `ef4a0178`
- **docs:** the Fable review of the pt VIGINUM line (#71) `807d740a`
- **content(pt):** the same two fixes on State Actors (#71) `2a09729b`
- **content(en):** VIGINUM's Storm-1516 report at its current address; "influence network" (#71) `5e7e70e6`
- **test:** the research test's "no edition lists it" case uses BE, not FR (#71) `1b9f18c1`
- **chore:** sync generated files (#71) `053540e5`
- **content(pt):** carry the VIGINUM line on State Actors (#71) `92181cc8`
- **content(en):** VIGINUM beside the AIVD on State Actors (#71) `019e0552`
- **chore:** sync generated files (#71) `e6db0768`
- **content(fr):** the France Additions Review's page additions (#71) `f0429ee1`
- **chore:** sync generated files (#71) `2c97c5b8`
- **data(fr):** France in the resource registry and the law layer (#71) `1a586266`
- **chore:** sync generated files (#175) `815f0af7`
- **docs:** card body-image-unsourced = a; the report, CORRECTIONS and docs/03 record the removals (#175) `2f12780f`
- **content(pt):** carry the Your Brain reorder and the Body Image removals (#175) `a83d55ba`
- **content(en):** the Term on Your Brain comes before its link; two Body Image sentences removed (#175) `b7df32bf`
- **chore:** sync generated files (#175) `f73aa0ca`
- **content(pt):** carry the sourcing pass and the wider promise into Portuguese (#175) `2f8f1db8`
- **docs:** the sourcing promise, the review step for new pages, the pass's report (#175) `d1d9918b`
- **content(en):** every factual sentence links its source, or says less (#175) `107c444e`
- **decisions:** record sourcing-pass-run = b (#175) `326513f6`
- **chore:** sync generated files (#175) `801199f5`
- **chore:** sync generated files (#175) `35f49257`
- **decisions:** card sourcing-pass-run — the key is at its spend limit until 1 November (#175) `bdcda634`
- **batch:** cite --factual asks whether every factual sentence links a source (#175) `63091575`
- **chore:** sync generated files (#172) `6a8d0522`
- **docs(25):** the ICO-suspicion row is C-435; C-022 and C-362 name it (#172) `375a7722`
- **content(pt):** carry the ICO's 2016 suspicion into Publicidade and Eleições (#172) `071090ea`
- **content(en):** name the 2016 election only as the ICO's suspicion (#172) `8dc198e5`
- **chore:** sync generated files (#172) `1df26e94`
- **deck:** the MI5 and BfV speaker note says what claim rows C-036 and C-210 say (#172) `1e63409b`
- **chore:** sync generated files (#172) `ed2efbdb`
- **deck:** record the CHECK 41 re-read of attention-machine-intro (#172) `4dcfb9f8`
- **chore(ledger):** record review-guard-scaffold = a and en-read-soft-launch-promise = c (24 October 2026, on the Decisions page) `10c9f3d5`
- **chore:** sync generated files after merging main `6ef189a7`
- **chore:** sync generated files after merging main `1cc9e822`
- **chore:** sync generated files after merging main `c809c37a`
- **chore:** sync generated files after the nl catch-up `2c96ea9f`
- i18n(nl): carry the latest English changes into 8 draft pages (Batch API run nl-20261024-2323) `2710554d`
- **chore:** sync generated files after the ro catch-up `5df4eade`
- i18n(ro): carry the latest English changes into 8 draft pages (Batch API run ro-20261024-2324) `b0c5964d`
- **chore:** sync generated files after the fr catch-up `f55f1699`
- i18n(fr): symptoms page from the repair round of run fr-20261024-0834 `b861850c`
- i18n(nl): carry English changes into 9 more stale draft pages (Batch API run nl-20261024-1338) `e2a557ed`
- i18n(fr): carry English changes into 37 stale draft pages (Batch API run fr-20261024-0834) `c6ad00c3`
- i18n(ro): carry English changes into 9 more stale draft pages (Batch API run ro-20261024-1340) `fa11ce5c`
- **chore:** sync generated files after the es catch-up `5e039721`
- i18n(es): carry English changes into 38 stale draft pages (Batch API run es-20261024-0836) `fb197094`
- i18n(nl): carry English changes into 29 stale draft pages (Batch API run nl-20261023-2018) `a50e3aaf`

24 October 2026

- i18n(ro): carry English changes into 29 stale draft pages (Batch API run ro-20261023-2021) `3691eff0`
- **chore:** sync generated files (#176) `c4c03209`
- **fix(#176):** the checks audit — nested and slugged blog posts, CHECKs 22 and 28 recorded, push pipelines only `f73ed75f`
- **chore:** sync generated files (#176) `b1ca6c00`
- **fix(#176):** CHECK 29 fails since #174, so it records no warnings `5fde129f`
- **feat(#176):** pipeline warnings in warnings.json, on the board and the Decisions page; CHECK 42 gated like CHECK 23 `966730a9`
- **chore:** sync generated files after merging main `6986dc23`
- **docs(HANDOVER):** what the answers of 23–24 October set in motion; the checks decisions (#174) `45ba11ad`
- **chore:** sync generated files `7771de54`
- **docs:** the publication route, the audit of #174, card review-guard-scaffold `35258f04`
- **fix(checks):** CHECK 29 reads a Sources gloss, blanks blog source titles, fails a stemless edition `103e03b6`
- **fix(checks):** CHECK 44 part 5 judges a merge against each parent and the merge base `f8355a07`
- **docs(decisions):** quality-phase-exit = a (with the nl and ro reviews), token-blog-stale-check = a, recorded `db299ff3`
- **docs(actions):** 172-ico-letter — the ICO letter automation cannot open (#172, !478) `c998586e`
- **chore:** sync generated files (#172) `3794d85e`
- i18n(pt): apply the Fable review of the #172 carry-over `797540e9`
- **chore:** sync generated files `bcaebef9`
- **docs(decisions):** sourcing-promise-scope answered (a) in the coordinator chat, 24 October 2026 `39f24b5a`
- **docs(decisions):** record 14 answers, three new cards, issue-45 done `ffb013e3`
- **docs:** CHECK 29 fails and reads English; CHECK 44 guards the publication lists; a regional variant declares its own slugs `45ef2963`
- **feat(batch):** push with the batch job's own write deploy key once it exists `661a3831`
- **fix(checks):** CHECK 44 refuses an assistant commit that changes the publication lists `14b16544`
- **chore:** sync generated files (#172) `6afd2c94`
- i18n(pt): carry the ten en-read card answers into the published edition (#172) `bbea6c13`
- **content(en):** apply ten answered en-read cards (#172) `5d5ea926`
- i18n: carry the English framing-allow lines across — translated-from bumped on twelve current pages `175ff638`
- **content(en):** declare the four pages' framing-allow uses for CHECK 29 `baec423f`
- **fix(checks):** CHECK 29 fails, reads English, skips source titles and holds exact counts `45198688`

23 October 2026

- **fix(test):** the cite batch test copies scripts/lib/figures.mjs, which CHECK 46 now imports `0979d533`
- **chore:** sync generated files `9d0301f0`
- **fix(checks):** CHECK 47's stichting rule skips the change log's quoted commit subjects `84eedbfd`
- **chore:** sync generated files `9ec1f4ec`
- **docs(review):** proofs of the #171 audit follow-ups (findings 1, 6, 7, 11) `8cfae902`
- **docs(review):** the #171 share C follow-up run result `15ef57c9`
- **fix(checks):** CHECK 18's estimate label must be the page's own words, not the source's title `00dbdba4`
- **fix(checks):** CHECK 23's digit format reads emphasised figures, -2.5% and 2.5x; skips times and articles `0499d473`
- **fix(checks):** the CSP guards — one-pass comment and script blanking; Referrer-Policy fallback lists `077ba8ce`
- **fix(checks):** CHECK 44 knows every GitLab token kind, GitHub and Slack tokens `e6704571`
- **fix(checks):** the Fable audit's findings 2, 3, 8, 9 — related blocks with attributes, colours after a comma, conditional hrefs and blog-post links, double-quoted nav keys `9d66432e`
- **fix(checks):** CHECK 47's stichting rule reads past claims, more wordings and attribute text `0c6184fd`
- **fix(checks):** CHECK 46 rule 5 reads every Sources list, more upload hosts and podcasts `33324488`
- **docs(review):** the Fable checks audit of the #171 branch `e42ca9f6`
- **fix(checks):** CHECKs 25, 26 and 29 read the editor's page strings too `51ecba7b`
- **docs:** 52 checks now that CHECK 8 is retired `624c1a6a`
- **docs(review):** the proofs of the #171 share-B check fixes `6ad33dc6`
- **feat(checks):** CHECK 18 fails an industry source not labelled as an estimate `1e13618b`
- **feat(checks):** CHECK 47 fails page prose that says the stichting is registered `4235dc30`
- **docs(review):** proofs of the #171 share C check fixes `22eb8032`
- **feat(checks):** CHECK 23 fails a figure written in another language's digit format `e258baf9`
- **docs(checks):** docs/16 "How to cite" and the lint's CHECK 46 header name rule 5 and the figure warning `81afc4e7`
- **feat(checks):** CHECK 46 warns on a page that shows figures and cites nothing `db9eb94e`
- **fix(checks):** CHECK 50 follows srcset and imagesrcset `0af0ec9f`
- **feat(checks):** check-csp.mjs requires the non-CSP security headers on /\* `4c54e4e1`
- **fix(checks):** CHECK 26 judges each glossary headword alone for the English in sight `ef0994ff`
- **feat(checks):** CHECK 44 fails a secret in an added line `41677618`
- **docs(review):** the proofs of #171 share A `788dccfd`
- **fix(checks):** CHECK 14 reads every line of a related block; CHECK 8 retired into CHECK 35; CHECK 20 compares duplicates as a reader sees them `370894e5`
- **fix(checks):** the national-law labels and the reviewer pages' words move to modules CHECKs 25, 26 and 29 read `14573803`
- **fix(checks):** CHECK 15 reads every href form per tag; CHECK 16 checks the nav both ways `2840ca8c`
- **feat(checks):** CHECK 46 rule 5 — a user-uploaded video platform is never a source `a2036cbb`
- **fix(checks):** CHECK 42 compares the digits of a translated post's title and description `5dae50aa`
- **fix(checks):** CHECK 41 reads 500k, 1.5mn, plural scale words and numeric dates `61afe729`
- **fix(checks):** the markup checks read blog posts and the islands' .js; CHECK 17 reads every colour property; Term/TermDef pairing is CHECK 19's alone, comments blanked, either quote `d8176857`
- **fix(checks):** CHECK 54 compares each llms-full.txt block with its page's rendition `5720bfaf`
- **fix(checks):** CHECK 25 finds Sources blocks by tag depth, in any attribute order `4c48fd35`
- **fix(checks):** CHECK 54 reads Sources entries and .ref links with CHECK 46's readers `20a241ed`
- **fix(checks):** CHECKs 23, 25, 26 and 29 read the demos' data-\* strings `5dc0b9c8`
- **docs(HANDOVER):** #160 item 4 merged in !451; only the administrator's checklist is open `6acf137b`
- **fix(checks):** the inline-script guard also fails inline event handlers and javascript: URLs `fa8727fc`
- **chore(#166):** npm run sync `2ce3dadb`
- i18n(pt, #166): the Fable review of the Portuguese carry-over of For You, Educate and Share, applied, and the review log `56ce296a`
- i18n(pt, #166): For You, Educate and Share should-fixes carried into the published Portuguese edition `d1ce9595`
- **chore(#166):** npm run sync `ddb098b2`
- i18n(pt, #166): the Fable review of the Portuguese carry-over, applied, and the review log `84e2d97a`
- i18n(pt, #166): The Attention Machine and Laws should-fixes carried into the published Portuguese edition `41e44299`
- **fix(#166):** State Actors — the Justice Department behind the Mueller Report marked as an actor, not a citation `e52ba799`
- **docs(#99):** token-economy rules of 23 October 2026 — published editions carry English changes, drafts catch up in batch; Fable only where unique; board on request; Batch API default with a per-job question `b9a4032d`
- **chore(#166):** npm run sync `4e7cb292`
- **docs(#166):** the Fable reviews of the Truth and Symptoms should-fixes, and the review log `64ce1c88`
- i18n(nl, ro, pt, fr, es, #166): Yes, but… points at the English audit sentence as reworded `cc5b10de`
- **fix(#166):** Yes, but… — the audit sentence without a dangling clause `316553ac`
- i18n(fr, #166): the Fable review of the French carry-over, applied `020597a9`
- i18n(ro, #166): Manosphere — "pe seama manosphere", not an ambiguous "lui" `4d2fad28`
- i18n(ro, #166): the Fable review of the Romanian carry-over, applied `46c2e224`
- i18n(ro, pt, es, fr, #166): Yes, but… points at the English that fixes "no stronger" `de0c7523`
- i18n(nl, #166): the Fable review of the Dutch carry-over, applied `8335d340`
- **fix(#166):** Yes, but… — "no stronger" attaches to the surveys `7fac49be`
- **docs(#166):** handover — the should-fixes in three merge requests `aa3f0e30`
- i18n(es, #166): the Truth and Symptoms should-fixes carried into Spanish `11c08766`
- i18n(fr, #166): the Truth and Symptoms should-fixes carried into French `8542d004`
- i18n(ro, #166): the Truth and Symptoms should-fixes carried into Romanian `88c12f4d`
- i18n(nl, #166): the Truth and Symptoms should-fixes carried into Dutch `86b7bdc2`
- i18n(pt, #166): the Truth and Symptoms should-fixes carried into Brazilian Portuguese (published) `5a90bc72`
- **fix(#166):** Yes, but… — no causal hint about the arrests `b330fb06`
- **docs(#166):** corrections log, claim ledger and evidence notes for the Educate and Share should-fixes `fa65c494`
- **fix(#166):** the Fable review of the Educate and Share should-fixes, applied `6240d11e`
- **docs(#166):** corrections log, claim ledger and evidence notes for the Attention Machine and Laws should-fixes `a206d04c`
- **fix(#166):** the Fable review of the Attention Machine and Laws should-fixes, applied `a6301e56`
- **fix(#166):** Yes, but… and Manosphere twins of the Educate should-fixes (E7, E12) `c904299d`
- **docs(#166):** corrections log, claim ledger and evidence notes for the Truth and Symptoms should-fixes `581dab06`
- **fix(#166):** the Fable review of the Truth and Symptoms should-fixes, applied `07d43826`
- **fix(#166):** English should-fixes, For You, Educate and Share — recommendations no longer dressed as findings `41738c59`
- **fix(#166):** English should-fixes, The Attention Machine and Laws — claims brought to their sources `4b68aa42`
- **fix(#166):** English should-fixes, Truth and Symptoms — hedges brought up to the Deeper boxes `6afcebc6`
- **chore(#166):** npm run sync after merging main `f5327834`
- i18n(#166): Teens in five languages point at the merge that joins #164's lead and #166's changes `9afbb8f3`
- **chore:** npm run sync after merging main `1335270d`
- **chore(#166):** npm run sync `bddccbe6`
- i18n(ro, pt, es, #166): AI — the Snoop.ro investigation, as in the English (b5fe70ae) `69d27656`
- i18n(fr, #166): the English must-fixes carried into French `f3275805`
- i18n(nl, #166): the English must-fixes carried into Dutch `ccd71e4a`
- **fix(#166):** AI — the investigation outside the intelligence note was Snoop.ro's `b5fe70ae`
- i18n(es, #166): the English must-fixes carried into Spanish `643a0c67`
- **docs(#166):** claim ids issued by claim-ids.mjs (C-405 to C-415) `004e401b`
- i18n(pt, #166): the English must-fixes carried into Brazilian Portuguese (published) `4c736a3d`
- i18n(ro, #166): the English must-fixes carried into Romanian `b6dd2b1b`
- **chore:** npm run sync after merging main `d6762fab`
- **docs(#166):** handover — the English must-fixes, and what waits on cards `81ce31b8`
- **fix(#166):** the Fable review of the English must-fixes, applied `3602567e`
- **docs(#166):** corrections log, claim ledger and evidence notes for the English must-fixes `be4a9d65`
- **chore:** sync generated files after merging main (#167) `a7d6389b`
- **fix(#166):** English must-fixes of the second Fable read — wording brought to the sources `6313bff0`
- **chore:** npm run sync after merging main `ab0bd801`
- **chore:** sync generated files after merging main `d4f36187`
- **chore:** npm run sync after merging main `97120414`
- **chore:** sync generated files after merging main `e1880d66`
- **chore:** sync generated files after merging main `90388010`
- **chore:** npm run sync after merging main `c5ed1697`
- **chore:** sync generated files after merging main (#167) `d81aa378`

22 October 2026

- **chore:** npm run sync after merging main `dd30921e`
- **fix(#170):** footer menu — seven links, in the administrator's order `f75c460d`
- **chore:** sync generated files after merging main `757b1a8a`
- **chore:** npm run sync after merging main `42ea5e37`
- **chore:** sync generated files after merging main (#167) `12c0e3a3`
- **docs(actions):** the France page's save failure — what is known, not a guess (#71) `0e027bd6`
- **docs(decisions):** record the answers of 22 October 2026, evening `f7473a8a`
- i18n(nl): the privacy row reads naturally — waaronder, volgens (#164) `1c59bd03`
- **chore:** sync generated files after merging main (#167) `d1e745ea`
- **chore:** npm run sync after the #164 answers `46d617da`
- **chore:** sync generated files `8f81f78d`
- i18n: carry the three English answers into nl, ro, pt, fr and es (#164) `f9b53be0`
- **fix(#148):** the second audit's should-fixes — what the status page can read `397a8ebe`
- **fix(en):** Teens lead, the demos on the Educators page, the privacy page's server-log row (#164) `79752496`
- **sync:** regenerate the changelog for #167 `5624263b`
- **fix(css):** the Pico colour remap applies, as docs/22 says (#36) `9c881d5e`
- **checks(#167):** the audit report and three Decisions cards `4ebae3ad`
- **checks(#167):** fix the audit's seven must-fixes and 22 further findings `8da2f9cb`
- **chore:** sync generated files after merging main `dfd1fd4c`
- **chore:** sync generated files `e3217d22`
- **fix(#148):** the checks-auditor's should-fixes on the review log `d1892e35`
- **feat(robots):** the content signals in every group, with use=full (#154) `be26cae0`
- **chore(#169):** npm run sync after merging main `1551cf89`
- **feat(#169):** a Review progress page per edition `449929ec`
- **chore:** sync generated files after merging main `956f88ce`
- **docs(#166):** second Fable read of the English argument — reports and cards `b6e083ac`
- **chore:** sync generated files after merging main `1be4cd39`
- **chore:** sync generated files after the review log moved to data (#148) `cfbdad12`
- **fix(#148):** the review log as data — translation MRs catch up without a window `a373b9a6`
- **docs(#168):** AGENTS.md back under 200 lines, no rule lost `961e79b0`
- **chore:** sync generated files after merging main (#148) `d0037528`
- **fix(merge-daemon):** the checks-auditor's findings on #148 `ead96049`
- **chore:** sync generated files after merging main (#148) `9a55dc6a`
- **fix(merge-daemon):** clean() prints no newline on GNU or BSD cut (#148) `46bbacad`
- **chore:** sync generated files after merging main (#154) `1c57be95`
- **chore:** sync generated files (#148) `c7efed6e`
- **chore:** sync generated files (#154) `97b4a0d4`
- **docs(merge-daemon):** #148 in docs/35, 28, 34, 16, the red-team report and the handover; S3 card, WIKI\_PAT action `2a8d52c6`
- **fix:** CHECK 54's lint half imports no package; two Decisions cards (#154) `3935c400`
- **fix(merge-daemon):** time limits, the two pin races, red-team S2, S4, S5 (#148) `3cd11a31`
- **chore:** sync generated files (#154) `8d248595`
- **fix:** CHECK 54 and CHECK 49 after the checks audit of !460 (#154) `276bc09c`
- **chore:** sync generated files after merging main `9a92970f`
- **chore:** sync generated files (#154) `117b8858`
- **feat:** content signals in robots.txt, a Markdown rendition of every published page, llms-full.txt (#154) `2a92776f`
- **chore:** sync generated files (#113) `c6d82353`
- **docs(research):** Moldova's cybercrime reporting address checked 22 October 2026 (Part of #113) `e739e6ab`
- **feat(decisions):** the Decisions page holds current items only (#165) `c21e295a`
- **chore:** sync generated files after merging main (#164) `ffb2e416`
- **chore:** sync generated files after merging main `d744a812`
- **chore:** sync generated files after merging main `70c43176`
- **chore:** sync generated files after merging main `bb6cf495`
- **docs(#164):** three cards and two actions for what needs the administrator `841f7372`
- **chore:** sync generated files (#164) `30ed3648`
- i18n(#164): the Fable review of the carry — no must-fix; logged `c774ffc4`
- **chore:** sync generated files after merging main `4a91809b`
- **fix(a11y):** keyboard, reflow and contrast failures from the Fable audit (#36) `ff8fefc8`
- **docs(#164):** the list of English issues the reviews noticed; handouts regenerated `9811469f`
- i18n(#164): carry the English issues the reviews noticed into nl, ro, pt, fr, es `522ccecc`
- **chore:** sync generated files after merging main `7f649707`
- **chore:** sync generated files `485de75e`
- **fix(#164):** the Fable review's fixes to the English change `ce0aa32c`
- i18n(review-log): record the Fable review of #161 `3ebbde97`
- i18n: apply the Fable review of #161; privacy translations follow cdda11b1 `0c3cf5cd`
- **fix(uth):** name Google in the tracker test's analytics line; the reader deletes the cookies `cdda11b1`
- **chore:** sync generated files `7a35ea21`
- **fix(#164):** the English issues the translation reviews noticed — English `3defdad8`
- **docs(corrections):** log the tracker test's address and cookie correction `9a702691`
- **chore:** sync generated files `53c3782b`
- **fix(review):** show a space-only text edit in the preview, the editor's view and the pull's diff `8d20697b`
- **chore:** sync generated files `2353e9a8`
- **docs(25):** the new tracker-test claim row gets its id from claim-ids.mjs `6f06088d`
- i18n(uth): carry the tracker test's address and cookie copy into nl, ro, pt, fr, es `d1ecfcb0`
- **fix(uth):** the tracker test says what it sends and which cookies it lets set `8c4ee231`
- **chore:** sync generated files after merging main `473beb07`
- **fix(#162):** answered actions leave "open"; no answer is lost while the page loads; Plausible steps from the current docs `51cd6bfa`
- **chore:** sync generated files after merging main `8b71b902`
- i18n: translated-from names the merge of origin/main `79d2c619`
- **docs(actions):** record 143-cialdini-1984 = done, answered on the page `cc3f5ae1`
- **chore:** sync generated files `9b02d9ba`
- **fix(fr privacy):** narrow no-break space before the semicolon in the reviewers' paragraph `0f7622df`
- **chore:** sync generated files `67e61398`
- i18n(privacy): the reviewer's and editor's browser also keeps the language choice (#163), in nl, ro, pt, fr, es `1109af88`
- **feat(review):** the reviewer's and editor's pages switch between the edition's language and English (#163) `fa6f9023`
- **docs(decisions):** record terms-153-keep-english = a, answered on the page on 22 October 2026 `cf868da9`
- **feat(#162):** the Decisions page gains Actions; Your Queue is retired `91fe82b2`
- **chore:** sync generated files after merging main `1d66ae46`
- **chore:** sync generated files after merging main `cbf821d8`
- **chore:** sync generated files after merging main `ec94ae82`
- **chore:** sync generated files `877b81c6`
- i18n(terms): keep hate rock, opt-out and violence-as-a-service English in every edition `869cbfcb`
- **chore:** sync generated files `76f70de7`
- **docs(decisions):** record terms-153-keep-english = a `651cccd7`
- **chore:** sync generated files `d349bbc1`
- **chore:** sync generated files after merging main `38b8b78d`
- i18n(privacy): the review fixes and the corrected English in nl, ro, pt, fr, es `6a1778b6`
- **fix(privacy):** the counted demo links are the ones under "One thing to do now" `ad521ba3`
- i18n(privacy): carry the reading measure, the demo's action link and keeping counts into nl, ro, pt, fr, es `e1c75d36`
- **fix(privacy):** say that Plausible records how far a page is read, the demo's action link, and how long counts are kept `a8087255`
- **chore:** sync generated files after merging main `475473e9`
- **chore:** sync generated files `f24c0f60`
- i18n: record the Fable review of the Get local help labels `9a5ab1db`
- **chore:** sync generated files `b8114003`
- **chore:** sync generated files `9cba89ec`
- **docs(analytics):** record what Plausible counts; CHECK 24 checks the script is this site's `35e8129a`
- i18n: carry the "Get local help" link into nl, ro, pt, fr and es `ecdaa5a2`
- **fix(analytics):** no Plausible tracker on the reviewer's, editor's and country pages `b4da4e2e`
- **feat(for-you):** a "Get local help" link under the help lines on parents, teens and educators `7b0b6a6f`
- **feat(review):** the pull reads the Plausible settings from .env too (#157, step 5) `b4872a64`
- **chore:** sync generated files after merging main `7e3b14e7`
- i18n: translated-from names the merge of origin/main `4cac173d`
- **chore:** sync generated files after merging main `be7ddc4b`
- **docs(CLAUDE.md):** a worker ends a reply with its result, one continue/finished line, and the Decisions link only when it raised or recorded a card `d645b453`
- **chore:** sync generated files after merging main (#159) `b4dfd7b7`
- **docs(corrections):** blank line between the merged entries (#159) `0c11d3ac`
- **chore:** sync generated files after merging main `656aa899`
- i18n: log the AI-page Fable review (#153); sync `4262bc27`
- i18n(nl): AI page cost sentence, Fable review style fix; the review report `16b70229`
- **chore:** sync generated files after merging main `15bc15b5`
- **chore:** sync generated files `c01e9b9a`
- **chore:** sync generated files after merging main `e80086e8`
- i18n: the AI page's cost-and-scale sentence in nl/ro/pt/fr/es `ee63ba7d`
- **fix(#153):** AI page — the cost and scale of synthetic media, as researchers expect it (Goldstein et al. 2023) `9a95aae8`
- **fix(csp):** the tracker guard matches sources as the browser does and requires each probe host where its kind needs it (#159) `592c459a`
- **chore:** sync generated files `fe3e372f`
- i18n: the Smit sentence and the two glossary headwords in nl/ro/pt/fr/es `0ee0a671`
- **fix(#153):** the Smit sentence and two glossary headwords (Decisions answers) `2b47fa1e`
- **chore:** sync generated files `fbb38948`
- **chore:** sync generated files (the privacy pages' translation status) `6ba4eb7e`
- **chore:** sync generated files `edfa8739`
- i18n: the five #153 Fable reviews logged; handouts and posters regenerated `159fce0f`
- **chore:** sync generated files (#159) `bd16fd77`
- i18n(es): Fable review fixes and the passive-use hedge `f20f44a3`
- **fix(uth):** the tracker test's Google probes call what Google's tags send today (#159) `7476c9f6`
- i18n(fr): Fable review fixes and the passive-use hedge `3c572e42`
- **docs(#158):** analytics audit — findings, the administrator's checklist, three cards, five answers recorded `0b38475a`
- i18n(pt): Fable review fixes and the passive-use hedge `76e7ac4f`
- **chore:** sync generated files after merging main `34e35b2e`
- i18n(ro): Fable review fixes and the passive-use hedge `5a22d734`
- i18n(nl): Fable review fixes and the passive-use hedge `75e5e785`
- **chore:** sync generated files after merging main `eae01018`
- **fix(checks):** CHECK 39 matches TODO in any form, in capitals; docs say what the placeholder list does not cover (#152) `2379680e`
- **fix(#153):** the passive-use finding marked contested in the Mental Health and Parents main text `4cefb544`
- **docs(decisions):** card terms-153-keep-english — five English terms the #153 fixes brought into the translations `c03a30c3`
- **fix(checks):** CHECK 39 no longer reads Spanish "del todo:" as a TODO placeholder (#152) `79a5512f`
- **test(review):** no address literal in the reader-count tests (CHECK 44) `060467ac`
- **test(review):** close the gaps the checks audit found in the #157 tests (step 5) `5a069ce6`
- **chore:** sync generated files `0ab53d40`
- i18n: the #153 demo strings and handout lines in nl/ro/pt/fr/es; handouts and posters regenerated `0416aea8`
- i18n(es): carry the #153 markup and wording lanes into es `50a11f26`
- i18n(fr): carry the #153 markup and wording lanes into fr `63bccae9`
- i18n(pt): carry the #153 markup and wording lanes into pt `aa3dc7fd`
- i18n(ro): carry the #153 markup and wording lanes into ro `f8f94ac0`
- i18n(nl): carry the #153 markup and wording lanes into nl `1f0206f6`
- **docs(#153):** prebunking resistance lasts when refreshed (Maertens 2021), as the site now says `9f3c456b`
- **chore:** sync generated files after merging main `c7ca9e7e`
- **chore:** sync generated files after merging main `a1a99e69`
- **feat(review):** readers' counts on the editor's page (#157, step 5) `d1dfafd1`
- **chore:** sync generated files `e5d9f0f4`
- **wip(review):** reader counts for the editor's page (#157, step 5) `d479be8e`
- **docs(review):** the Fable read of the #157 docs (step 4) `abc19b7d`
- **fix(#153):** wording lane — English `8d1b6d5e`
- **chore:** sync generated files after merging main `105e4777`
- **chore:** sync generated files after merging main `9d973bac`
- **fix(review):** the Fable review of the privacy sentence and the reviewer page's foot (#157, step 4) `061298ee`
- **docs(review):** the editor's step in the review route, and the privacy pages in every language (#157, step 4) `394d83da`
- **chore:** sync generated files after merging main `61f75677`
- **chore:** sync generated files after merging main `1c4996dc`
- **chore:** sync generated files after merging main `76f83658`
- **chore:** sync generated files `da5e2beb`
- **fix(#153):** M-core Dutch, Romanian and Brazilian Portuguese markup and Sources edits `067d7ccd`
- **content(privacy):** say who decides on a reviewer's feedback, and what is kept (#157, step 4) `ab5df258`
- **fix(review):** the Fable review of the editor page's strings (#157, step 3) `f6b2f214`
- **feat(review):** the editor's page (#157, step 3) `5fc81ef0`
- **fix(#153):** M-core English markup and Sources edits from the 19 October citation should-fixes `cbb37fe8`
- **chore:** sync generated files after merging main `5bf185d8`
- **docs(#153):** the 19 October should-fix items, triaged by lane `bd28e919`
- **chore:** sync generated files after merging main `1bcc3a29`
- **chore:** sync generated files after merging main (Part of #71) `a1e4021d`
- **docs(handover):** the French drafts complete and current after !438 (Part of #71) `15ebd8f3`
- **docs(#153):** the Saudi line 920033360 is not confirmed and stays unlisted; the 22 October priority `b92eeb88`
- **chore:** sync generated files after merging main `a562b70d`
- **chore:** sync generated files after merging main (Part of #71) `9d7c75b6`
- **docs:** the Web Analytics beacon is off through a Configuration Rule (#141) `bd637103`
- **chore:** sync generated files after merging main `9527b00b`
- **chore:** sync generated files after merging main `1017d633`
- **chore:** sync generated files after the fr sync (Part of #71) `fdca507a`
- **docs(decisions):** restore the ai-agent-formats card a merge had joined to the next one, record its answer (Part of #71) `7386fe39`
- **docs(fr):** log the Fable review of the fr sync, two cards for its decisions (Part of #71) `a67876f5`
- i18n(fr): apply the Fable review must-fixes (Part of #71) `7ad6d245`
- **fix(review):** the Fable review's should-fixes for the editor routes (#157, step 1) `a709645f`
- **docs(decisions):** record cloudflare-web-analytics = a (#141) `b86f4c32`
- **docs(decisions):** record cloudflare-web-analytics = a, answered on the page `aaf5c633`
- **feat(review):** the pull's pages view, editor invites and \`processed\` (#157, step 2) `c033f9fc`
- **chore:** sync generated files after merging main `d14c02c2`
- **docs(decisions):** record ai-content-signals = a, answered on the page `6e141997`
- **docs(decisions):** close the en-state-actors-smit-sentence card the merge left open `a73f3f9c`
- **chore:** sync generated files after merging main `5f4b5be8`
- **chore:** sync generated files after the es review fixes `c36883df`
- **chore:** sync generated files `eb3c4cc7`
- i18n(es): apply the Fable review of the es sync; three cards `eb615b72`
- **docs(decisions):** card cloudflare-web-analytics — keep the beacon off, enable it, EU-excluded, or own Plausible (#141) `035babd0`
- **feat(review):** editor links and page verdicts in the Worker (#157, step 1) `5bad63d0`
- **docs(decisions):** content signals and AI-agent formats, two cards (#154) `4d0542fc`
- i18n(fr): draft How we use AI, the blog and the glossary (Part of #71) `c692edff`
- i18n(fr): carry the #147 English fixes into 41 French drafts (Part of #71) `5a598e5c`

21 October 2026

- **chore:** sync generated files after the es sync `90eab38c`
- i18n(es): carry the #147 English fixes into 41 drafts; add the blog and glossary `25be4412`
- **docs(review):** the editor gives one verdict per page; record the two answers (#157) `02da114b`
- **docs(review):** plan the editor view and put its three choices on the Decisions page (#157) `b3a58b01`

20 October 2026

- **fix(#122):** name Work Item → Read for the review bot token; close out #122 `f66344e8`
- **chore:** sync generated files after merging main `36e4d2fe`
- **chore:** sync generated files `264359dc`
- **feat(pt):** publish the glossary under volunteer review `5aca4d05`
- **chore:** sync generated files `ae875c44`
- **docs(pt):** record the Fable review of the pt glossary `526cc66a`
- **feat(pt):** glossary "Em contexto", and the card on publishing it `2e4ffbb1`
- **feat(pt):** draft the Portuguese glossary, the edition's last missing page `26682f2b`
- **docs:** coordinator standing duties, French/pt/es handover rows, one answer per French card (Part of #71) `82bbaacf`
- **chore:** sync generated files for the French card answers `ffd7b263`
- **fr:** apply four answered Decisions cards to the French draft `af6bb77b`
- **chore:** sync generated files after merging main `30ed5bb6`
- **chore:** sync generated files after merging main `e3bf7380`
- i18n(es): How We Use AI follows the English — the volunteer-review exception and #147's rules paragraph (Part of #66) `3ab767cf`
- **docs(decisions):** record five French answers given on the page (Part of #71) `b9d0cdfb`
- **test(i18n):** the published-translation browser test takes a fixed sample (Part of #66) `c36d9785`
- **chore:** sync generated files after publishing pt under volunteer review `b2e90f5b`
- i18n(nl, ro, pt): carry the volunteer-review exception into How We Use AI (Part of #66) `339fc194`
- **feat(i18n):** publish the Brazilian edition under volunteer review (Part of #66) `e178e433`
- **chore:** sync generated files after merging main `b310e03e`
- **fix(decisions):** restore the card fr-tools-heading, lost in a merge (#71) `2edb25fe`
- **docs(forms):** REVIEW\.md names the fr privacy page too `53478b23`
- **chore:** sync generated files after merging main `50a60f7d`
- **test(forms):** es is a form language `f989b18a`

19 October 2026

- **docs(handover):** the French edition after !408, !414 and !417 merged (#71) `92a3f773`
- **chore:** sync generated files after merging main `e1881673`
- **chore:** sync generated files after merging main `0bd11672`
- **chore:** sync generated files after merging main `c6c7e221`
- **docs(#67):** HANDOVER — the es drafts behind #147's English, and the forms test `41509f2f`
- **chore:** sync generated files after merging main `0a63f673`
- **chore:** sync generated files after merging main `d5c25122`
- **fix(checks):** the checks auditor's re-read of the es fixes, applied `caa525e4`
- **chore:** sync generated files after merging main `ecba5545`
- **chore:** sync generated files after merging main `09751619`
- **fix(checks):** the checks audit of the es scale words and terms, applied `ea33bd78`
- **chore:** sync generated files after merging main `e0780759`
- **chore:** sync generated files after the es fix pass `2a9b0ea7`
- **fix(es):** the Fable review's fixes and the eleven term cards, on all 65 drafts `9d621cd7`
- **chore:** sync generated files after merging main `af92c53f`
- **test(i18n):** the fallback test looks for the locale's own Privacy label `823dca67`
- **test(i18n):** the fallback test looks for the locale's own Privacy label `8009d043`
- **test(i18n):** the fallback test looks for the locale's own Privacy label `73cb0fe8`
- **feat(es):** the Spanish terms the eleven cards settled, and "miles de millones" `c40edf4b`
- **chore:** sync generated files after merging main `7b80b321`
- **docs(#67):** record the eleven es card answers (all a, 19 October 2026) `c5559f0a`
- **chore:** sync generated files after merging main `b00d5044`
- **chore:** npm run sync after merging main `2607de9f`
- **chore:** npm run sync after merging main `07ce4ee6`
- **docs(#147):** the citation verification's handover entry and its triage `2f515790`
- **chore:** npm run sync `fcb14647`
- i18n(nl, ro, pt): carry the AIVD findings sentence `f06f9abe`
- **fix(#147):** State Actors — the AIVD report's findings, stated precisely `be53f9ae`
- **chore:** npm run sync `b50901b6`
- i18n(nl, ro, pt): carry the AIVD attribution `85d3028a`
- **fix(#147):** the AIVD chief's sentence credited to NOS on all three pages `17f7daa6`
- **chore:** sync generated files for the French review fixes `8c85e8d2`
- **chore:** npm run sync `01ece9fe`
- **docs:** log the French Fable review; handover for the French edition (#71) `3c37f8a9`
- **fix(#147):** translated-from at the Timeline merge for the nine pages two branches changed `c8a66f9a`
- i18n(pt): the Fable review's fix for the #147 Timeline carry; review logged `7053e0bb`
- **fix(fr):** four quotations set to their sources' own French wording `beba76c4`
- **chore:** sync generated files after merging main `962ff6dd`
- **chore:** npm run sync `70cb4475`
- **docs(#147):** references to the renumbered ledger ids `2da09492`
- **chore:** npm run sync after combining the #147 branches `3ac9113e`
- **fix(fr):** French typographic spacing across the 64 French drafts `b6f44bcc`
- **fix(#147):** translated-from at the combining merge for the 27 pages two branches changed `e29b1ce2`
- **chore:** sync generated files after the Timeline sources (#147) `0613d7f4`
- **docs(decisions):** five cards from the Fable review of the French drafts (#71) `d96cbf2e`
- i18n(nl, ro, pt): carry the five Timeline sources `e03f74d5`
- **chore:** sync generated files after merging main `8d40328c`
- **fix(fr):** apply the must-fix lists of the five Fable reviews of the French drafts `abd75215`
- **chore:** npm run sync after merging main `3095a517`
- **chore:** npm run sync after merging main `f60cb943`
- **fix(#147):** the five Timeline entries get their sources on the pages they link to `06ea7bbd`
- i18n(nl, ro, pt): the Fable review's fixes for the #147 carry of the three answered cards `8fea58c2`
- **fix(#147):** Corrections — two sentences tidied after the repository wording `4df81f9e`
- **chore:** npm run sync after merging main `f30e9d31`
- i18n(nl, ro, pt): the Fable review's fixes for the #147 research gaps (lane D) carry `23f245ec`
- **chore:** npm run sync after merging main `95c92151`
- **fix(#147):** AI and Advertising — the AGERPRES gloss and the seven years `43ea7eb3`
- **docs(#67):** HANDOVER — the es review is done, and what follows it `acf6da67`
- **docs(review):** Fable review of the 64 French drafts, five sections (#71) `c07b4e1b`
- **docs(#67):** the Fable review of the Spanish drafts, and three cards from it `ed4dea94`
- **chore:** sync generated files after the #147 card answers `b1859eaa`
- i18n(nl, ro, pt): carry the private-repository sentences and the Laws landing `f5d28032`
- **feat(review):** reviewer links for fr — \`./review invite fr "\<name>"\` (#71) `d48e30af`
- **fix(#147):** the three answered cards — Offlimits hours, the private repository, the landing rule `addf396a`
- **docs(#67):** eight Decisions cards for the Spanish drafts' term questions `c90474ae`
- **chore:** sync generated files after merging main `eb5c4a5a`
- **chore:** npm run sync after merging main `ef90ae56`
- **chore:** npm run sync `737d9c57`
- **docs(#147):** record the four citation cards' answers `0b3c6dc5`
- i18n(nl, ro, pt): carry the #147 research-gap fixes `2e3743ca`
- **chore:** sync generated files after merging main `e7691d96`
- **chore:** sync generated files after merging main `e180ea9c`
- **chore:** npm run sync after merging main `89a326f8`
- i18n(nl, ro, pt): the Fable review's fixes for the #147 Symptoms carry `07d01276`
- i18n(nl, ro, pt): carry the Body image and Elections narrowing `e6b1fe7b`
- **chore:** npm run sync after merging main `ad5e567e`
- **fix(#147):** Body image and Elections — two sentences narrowed to their sources `b6bd752d`
- **docs(handover):** French drafts MR !408, update run and registry descriptions `d0d21cad`
- **chore:** npm run sync `66566c11`
- **chore:** npm run sync after merging main `6f84072b`
- **chore:** npm run sync after merging main `e685bb56`
- **chore:** npm run sync after merging main `34b29bd5`
- **chore:** sync generated files for the French drafts `83af5ba0`
- i18n(nl, ro, pt): the Fable review's fixes for the #147 Truth, About, Objections and Timeline carry `1512c09f`
- **fix(#147):** research gaps — sources found and sentences narrowed to them (English) `8b03837e`
- i18n(nl, ro, pt): the Fable review's fixes for the #147 Educate and For You carry `9c5e363e`
- i18n(fr): demos description within 200 characters `1ce1ec82`
- i18n(nl, ro, pt): the Fable review's fixes for the #147 Attention Machine carry `d1ea0036`
- i18n(nl, ro, pt): the Fable review's fixes for the #147 Share and blog carry `ec391882`
- i18n(nl, ro, pt): carry the Objections Maertens wording (en\@3f45ae20) `bb05186d`
- **fix(#147):** Objections — the Maertens link says what the study found `3f45ae20`
- i18n(fr): carry five English changes of 19 October into the drafts `af84a103`
- **chore:** npm run sync after merging main `83e51516`
- i18n(nl, pt): the Fable review's fixes for the #147 Share and blog carry `f763a909`
- **fix(#147):** the visibility post's update says only what O Tempo reports `5a86c75f`
- i18n(nl, ro, pt): the Fable review's fixes for the #147 Laws carry `e200b384`
- **chore:** sync generated files after merging main `9b1de437`
- i18n(fr): impersonal fr descriptions for the 69 registry resources (CHECK 20) `feb4e8d4`
- **chore:** sync generated files after merging main `011473ed`
- **chore:** sync generated files `d58c8d81`
- **chore:** npm run sync after merging main `ae7a2fc5`
- **chore:** npm run sync `ac7191fd`
- **docs(decisions):** merge-daemon-host = a — run the merge daemon on the OptiPlex (#151) `600b0731`
- **chore:** npm run sync `bcf1e9cd`
- i18n(nl, ro, pt): carry the #147 Share and blog citation fixes `fbaa5300`
- **chore:** npm run sync `9c8b20e2`
- i18n(fr): fix the checks the update run left failing `7f225e0a`
- i18n(nl, ro, pt): the Fable review's fixes for the #147 Home/FAQ carry `79e6bc54`
- **chore:** npm run sync `82d40572`
- i18n(nl, ro, pt): carry the #147 Educate and For You citation fixes `cee54b6e`
- **docs:** handover — the Spanish drafts are in (run es-20261019-1246) `24d6de71`
- i18n(nl, ro, pt): carry the #147 Truth, About, Objections and Timeline citation fixes `4b26ab9f`
- **chore:** npm run sync `1618afb6`
- **chore:** npm run sync `3451691d`
- i18n(nl, ro, pt): carry the #147 Attention Machine citation fixes `77d64cd8`
- i18n(nl, ro, pt): carry the #147 Symptoms citation fixes `c576b419`
- **chore:** sync generated files after the es drafts `359037cc`
- i18n(fr): update run fr-20261019-1301 — 54 drafts carried to today's English `d507c82b`
- **chore:** npm run sync `f65d1734`
- i18n(nl, ro, pt): carry the #147 Laws citation fixes `63ac21a3`
- **feat(es):** draft the Spanish edition's 65 content pages through the Batch API (run es-20261019-1246) `cfafd9a4`
- **fix(#147):** Organisations — the Maertens entry; a correction for the visibility post's agency `40af7236`
- **fix(#147):** leave the Elections half of TR-6 to the Symptoms branch `1e463efc`
- **chore:** npm run sync `0288c73a`
- **chore:** sync generated files after merging main `ac8e9210`
- **fix(#147):** Elections — the AIVD sentence and the BfV entry match their sources `0915b0c0`
- **fix(#147):** Books — the Facebook 2006 entry `ef651822`
- **chore:** npm run sync `b2106126`
- **fix(#147):** Lawmakers — Smit's eighty-years sentence is in the AIVD report `e1643a5d`
- **chore:** npm run sync `95b730dc`
- **chore:** npm run sync `08750bdb`
- **fix(#147):** Truth, About, Objections, Timeline — citation must-fixes, English `2d92747a`
- **chore:** npm run sync `21c4eea4`
- i18n(nl, ro, pt): carry the #147 home-faq citation fixes `88603265`
- **fix(#147):** Share & Support and the blog — citation must-fixes, English `3e38645e`
- **chore:** npm run sync `02bf354b`
- **fix(#147):** Symptoms — citation must-fixes, English `cd170817`
- **chore:** npm run sync `aed4c0a9`
- **chore:** sync generated files `910a6bf9`
- **docs:** the checks-auditor's audit of the merge-daemon hardening (#146) `dd357fc5`
- **fix(#147):** Laws — citation must-fixes, English `983e1983`
- **fix(#147):** the attention machine — citation must-fixes, English `71cae0fb`
- **fix(#147):** Educate and For You — citation must-fixes, English `66b6427a`
- **chore:** sync generated files after merging main `a6b2c292`
- **chore:** npm run sync `3efb54ac`
- **chore:** sync generated files `5b01ccc2`
- **fix(#147):** home, FAQ, glossary, demos — citation must-fixes, English `ecd4da43`
- **fix(merge):** stop at once on a head pipeline that cannot merge (#146 re-audit) `2bb3993c`
- **docs(#147):** three Decisions cards from the citation verification `558ada06`
- **chore:** sync generated files `c07fb27d`
- **feat(forms):** the daily live test also reads the email and Turnstile record (#149) `c3fcca4c`
- **chore:** sync generated files `5184732c`
- **fix(merge):** the checks-auditor's findings on the hardening (#146, #145) `1105cd58`
- **chore:** sync generated files after merging main `9f818b57`
- **docs(handover):** forms — !396, next #149, and a merge that Cloudflare did not deploy `1090e4b2`
- **chore:** sync generated files after merging main `268adbd4`
- **chore:** sync generated files after the Fable fixes `7799fd0f`
- i18n(ro): keep 'only if' in the demos description and say 'one-off' (donații unice) for Ko-fi's 0% on tips `1330a85c`
- **chore:** sync generated files `550aaa0b`
- **docs:** the merge daemon red-team, its fixes and their proof (#146, #145) `5f4bdf5b`
- **batch(brief):** carry the Sources ids and .ref links of the English unchanged `482e26dc`
- **docs:** decision card offlimits-hours — the organisation's contact page and home page give different opening hours `a7d2d3ed`
- **chore:** sync generated files after the #147 must-fix changes `9fe2efde`
- i18n+data: carry the demos, tracker-line and Ko-fi changes into nl, ro and pt; correct the help-line registry `7742a229`
- **fix(merge):** harden watch-mr.sh and the merge daemon before install (#146, #145) `af30ddae`
- **content:** demos say the tracker test sends data; analytics line matches the corrected claim; Ko-fi fee wording `e99a3488`
- **docs:** keep the seven citation-verification reports of 19 October 2026 (#147) `bd9a89b8`
- **fix(status):** translation-status --json no longer cut at 64 KB on a pipe `f716f321`
- **chore:** sync generated files after the form waiting line `edd496a7`
- i18n(fr): 64 French drafts from batch fr-20261015-2033, repair round 1 applied `f0f6bd2a`
- i18n(nl, ro, pt): the form pages translated from en\@cf69137 — the waiting line `6d7e4b6c`
- **fix(forms):** Send never dead — pressed during the check, the form waits, says so, and goes by itself `cf69137b`
- **chore:** sync generated files after merging main `26303e87`
- **fix(forms):** the send button waits for Turnstile's token `92ed7696`
- **chore:** sync generated files after merging main `8a92c25c`
- **fix(forms):** fingerprint the Worker's Turnstile secret when siteverify rejects it `955a3ac3`
- **chore:** sync generated files after the cite:advisory branch change `0d76d1a8`
- **ci:** run cite:advisory on content/\* as well as i18n/\* (cite-advisory-branches = b) `41ed271f`
- **docs:** name the merge request in the HANDOVER row (#122) `51a1efd7`
- **chore:** sync generated files after applying the cite-term answers `4ffb75ba`
- **data:** apply cite-militant-democracy-term = c and cite-terms-peer-reviewed = b (#122) `0f0e1743`
- **chore:** sync generated files after merging main `3721564a`
- **chore:** sync generated files after merging main `4348aa69`
- **chore:** sync generated files after merging main `791aa9fd`
- **chore:** sync generated files after merging main `694b990c`
- **chore:** sync generated files after merging main `81b89000`
- **chore:** sync generated files after merging main `276871ea`
- **chore:** sync generated files after merging main `5b66b600`
- **chore:** sync generated files after merging main `c4edb7a6`
- **chore:** sync generated files after merging main `15852ed1`
- **chore:** sync generated files after merging main `81ec7b87`
- **docs(handover):** the forms are live — email works, Turnstile waits on the right secret `c088a9eb`
- **docs(handover):** #122 row — what 17–19 October did, step 4 kept as !381 `dc89b134`
- **chore:** sync generated files `d958f3ca`
- **docs:** handover — #140 targets and checks-audit fixes merged; FCP is what is left `250c0401`
- **chore:** sync generated files after merging main `ad41bf72`
- **chore:** sync generated files after merging main `5d0470a2`
- **fix:** coordinator review findings (!384) `d9f04290`
- **refactor:** make sessionNote, latestNote and merged take their tracker calls as arguments `0c6de6f7`
- **docs:** handover — the Lighthouse checks audit is done; FCP enforcement is what is left (#140) `f6ad624e`
- **checks:** Lighthouse targets print at their own precision `414ab0ce`
- **checks:** Lighthouse budget no longer passes a run without network data (audit, 19 Oct 2026) `eae7e0ba`
- **chore:** sync generated files after merging main `bf1f6568`
- **chore:** sync generated files `2a3dbb80`
- **checks(46):** the four checks-audit fixes !377 did not cover (#122 step 4) `ee50a793`
- **chore:** sync generated files after merging main `69e9ae61`
- **chore:** sync generated files `6301edfe`
- **perf:** lighthouse check fails on an empty measurement and on a stale origin (#140) `9da9335c`
- **fix(forms):** read siteverify's error codes on an HTTP 400 too `70d7cbda`

18 October 2026

- **chore:** sync generated files after merging main `d2f598cd`
- **chore:** sync generated files after merging main `52ce3580`
- **chore:** sync generated files after merging main `ef4190c0`
- **chore:** sync generated files after merging main `0f809879`
- **chore:** sync generated files after merging main `16ba498e`
- **chore:** sync generated files after merging main `252bf6fd`

17 October 2026

- **chore:** sync generated files after merging main `5d598dbe`
- **chore:** sync generated files after merging main `ae8fb29a`
- **docs:** card cite-militant-democracy-term — local term or English for "militant democracy" in nl, ro, pt `c52a1e3b`
- **chore:** sync generated files after merging main `7ea67ab3`
- **chore:** sync generated files `fa9635d1`
- **perf:** weight and LCP enforced at docs/11's new targets (#140) `786a3d61`
- **chore:** sync generated files `6a3b3ec9`
- **chore:** sync generated files after merging main `8cef629a`
- **feat:** coordinator, visible workers, Sessions page, merge daemon `eff6e28b`
- **chore:** sync generated files after merging main `2d6ca3ee`
- **fix(forms):** record why Turnstile refused a submission — siteverify's error codes `46b9d2d9`
- **chore:** sync generated files after the reckless-clause removal `0be4f114`
- **content:** Body Image — drop the unsourced 'surgeons describe as reckless' (nl, ro, pt), record it `67a3bccc`
- **content:** Body Image — drop the unsourced 'surgeons describe as reckless' (en) `841fbd58`
- **chore:** sync generated files after merging main `ee19c091`
- **chore:** sync generated files `70158e8d`
- **chore:** sync generated files after the open-phrases change `3d3552af`
- **docs(handover):** source linking — step 3 merged, step 4 in !377 and !376 `aad0fe93`
- **content:** apply the Fable review of the open-phrases carry-over (nl, ro, pt) and log it `993c57ae`
- **checks(citations):** the actor marker holds one name — checks audit of !377 `d2eb21ae`
- **chore:** sync generated files `1c03e350`
- **checks(46):** the checks audit of step 4 — the actor span cannot hide a citation `5d439dc5`
- **content:** nl, ro and pt carry the two sourced phrases (en\@b6f90159, #122 step 3) `d352c819`
- **docs(decisions):** drop cite-advisory-ci — !379's cite-advisory-branches asks it `95e65bcf`
- **chore:** sync generated files after merging main `f70fb790`
- **chore:** sync generated files after merging main `fb95cfe0`
- **docs:** card cite-advisory-branches (#122 step 4) `6fe56c9c`
- **docs(#144):** handover row names the audit's content checks and finding 3 `fd2ea4e5`
- **data(terms):** backfire effect, Internet Gaming Disorder and preprint stay English — card cite-terms-english = a `3b681fe9`
- **ci(#144):** check each catch-up commit's content, not only its title `94dc3f10`
- **content:** source the two phrases step 3 left open — Romania's critics and the bonesmashing warnings (#122 step 3) `b6f90159`
- **chore:** sync generated files `439c4e19`
- i18n: the Online Safety Act drafts carry en\@83dfc59 (the actor marker on Ofcom) `6ca6de63`
- **docs(handover):** #122 row — the advisory job cite:advisory, !376 `52ceaa1e`
- **checks(citations):** CHECK 46 fails on any finding — #122 step 4 `83dfc59b`
- **ci:** advisory citation review on English changes (cite:advisory, #122 step 4) `4e215a27`
- **content(122):** nl, ro and pt carry en\@e76888a8; the last two citation findings `1bb1d53a`
- **checks(46):** step 4 of #122 — CHECK 46 fails the lint on any finding `e76888a8`
- **chore:** sync generated files `d2e120a1`
- **docs:** handover — #140 fonts merge request and the targets that follow `5397fee1`
- **chore(board):** hand-offs only on request; taken issues leave "Next for me" `157f255a`
- **perf:** home standfirst and hook italic in faces the page already loads (#140) `1cccf6f5`
- **docs(#144):** the queue's lesson 11 and the handover row for the trailer fix `babf52ce`
- **ci(#144):** carry the catch-up marker as a commit trailer, not a pipeline variable `530b67c2`
- **docs(decisions):** record the three priority-sources follow-up answers `c144d1f2`
- **docs:** record four Decisions answers; KEEP\_ENGLISH the four citation terms (#122) `dafef9a3`
- **chore:** sync generated files after merging main `a608feaf`
- **chore:** sync generated files after merging main `f82584bb`
- i18n: repoint the merged Symptoms drafts to the merge commit `42126b53`
- **chore:** sync generated files after merging main `d29895bd`
- **chore:** sync generated files after merging main `252015e8`
- **test(timeline):** 31 events — the AdWords and 2020 entries were split in two (#122 step 3) `12f949c9`
- **chore:** sync generated files after merging main `e1b2a337`
- **chore:** sync generated files after merging main `942bfef9`
- **chore:** sync generated files after merging main `e6761590`
- **chore:** sync generated files after merging main `c7851dea`
- **chore:** sync generated files after merging main `04f58fa9`
- i18n: translations carry both sides of the merge — translated-from at the merge `69eba372`
- **chore:** sync generated files after merging main `05b973e9`
- **chore:** sync generated files after merging main `9b41301d`
- **chore:** sync generated files after merging main `b55820b5`
- **chore:** sync generated files after merging main `17cf56e7`
- **chore:** sync generated files after merging main `e528d852`
- **chore:** sync generated files after merging main `ddbdad96`
- **chore:** sync generated files after merging main `121a7079`
- **chore:** sync generated files after merging main `2ec448e1`
- **chore:** sync generated files after merging main `7409ce7e`
- **chore:** sync generated files after merging main `83ef6e9e`
- **chore:** sync generated files after merging main `135b964b`
- **chore:** sync generated files after merging main `bf8163c0`
- **chore:** sync generated files after merging main `9b38378c`
- **chore:** sync generated files after merging main `513002c6`
- **chore:** sync generated files after merging main `dc890f10`
- **chore:** sync generated files after merging main `c37ac371`
- **docs(perf):** the live measurement after !347 and !348 (#140) `7c572bed`
- **chore:** sync generated files after merging main `732aa463`
- **chore:** sync generated files after merging main `33533c1d`
- **chore:** sync generated files after the #122 hand-over `d2ee11de`
- **docs(#122):** step 3 worked — the record, the hand-over, one card `9866b8ad`
- **chore:** sync generated files after the Fable review fixes `a489873f`
- **chore:** sync generated files after merging main `909c3e0f`
- **chore:** sync generated files after merging main `5c5b3614`
- **chore:** sync generated files after the Fable review fixes `b7efd7a4`
- **docs(i18n):** record the Fable review of the Symptoms step-3 carry-over `f219deab`
- **content(symptoms):** nl, ro and pt carry en\@0027041 and the Fable review's fixes `25022a0f`
- **chore:** sync generated files after the laws review fixes `c0b32e3d`
- **content(educate, for-you):** apply the Fable review of the nl, ro and pt carry-overs (#122 step 3, lane C) `73511c0e`
- **content(symptoms):** name the one consumption study, and give each MMR study its own words `00270412`
- **docs(i18n):** log the Fable review of the Laws lane C carry-over (nl, ro, pt) and keep its report `361b51dc`
- **content(laws):** nl, ro and pt carry the Utah repeal and injunction, and the Fable review fixes (#122 step 3) `5f4ddaeb`
- **content(laws):** Age Restrictions says Utah's 2023 law was repealed and its successor blocked; GDPR quotes Art. 83(5) whole `914a7cf9`
- **chore:** sync generated files after the Fable review fixes `63c94f6d`
- **fix(i18n,#122):** Fable review fixes for the truth, timeline, about and objections carry-over (nl/ro/pt) `43ffe414`
- **chore:** sync generated files after the symptoms wording corrections `90747fd8`
- **content(symptoms):** nl, ro and pt drop the Odgers "adults" clause on Mental Health (en\@3fa98ff) `83c7b643`
- **chore:** sync generated files after the attention-machine lane D review fixes `afcc3f73`
- **content(symptoms):** Mental Health no longer credits Odgers with the "adults" point `3fa98ff9`
- **fix(i18n,#122):** Fable review fixes for the attention-machine sourcing-gap carry-over (nl/ro) `d44e85f2`
- **chore:** sync generated files after the educate and for-you wording corrections `489ae4aa`
- **content(symptoms):** nl, ro and pt carry the step-3 wording corrections (en\@bcbc6e7) `2aa6be0c`
- **content(for-you/lawmakers):** nl, ro and pt carry the MI5 correction (translated-from en\@4ad5172) `6ba063e5`
- **content(for-you/lawmakers):** the MI5 arrests line follows the Home Office count and MI5's own words (#122 step 3, lane C) `4ad5172c`
- **chore:** sync generated files after the laws wording corrections `f6165ae5`
- **content(educate, for-you):** nl, ro and pt carry the step-3 wording corrections (translated-from en\@b7501e0) `4207fea8`
- **content(educate, for-you):** correct the wording the cited sources do not carry (#122 step 3, lane C) `b7501e02`
- **content(laws):** nl, ro and pt carry the lane C wording corrections and the new sources (#122 step 3) `9263ab3b`
- **chore:** sync generated files after the share and blog review fixes `fa0722d2`
- **chore:** sync generated files after the truth, timeline, about and objections wording corrections `78e00196`
- **content(nl, ro, pt):** carry the truth, timeline, about and objections wording corrections (#122 step 3, lane C) `7f269a4f`
- **content(i18n, share):** Fable review of the share and blog carry-over applied and logged `0fc5c55a`
- **content(share):** src-nyhan-2010 says whom the backfire reached; one dash form in the Deeper box `41c58f7a`
- **chore:** sync generated files after the attention-machine sourcing gaps `e1893600`
- **content(symptoms):** correct the wording that the cited sources do not carry (#122 step 3, lane C) `bcbc6e7a`
- **content(laws):** correct the wording the cited sources do not carry, and source the gaps (#122 step 3, lane C) `18a9b796`
- **content(attention-machine):** nl/ro/pt carry the sourcing-gap changes (#122 step 3, lane D) `a6641352`
- **content(truth, timeline, about, objections):** wording corrected against the sources (#122 step 3, lane C) `c3a7094f`
- **docs(#122):** name the new claim ids in the docs/03 share and blog note `77b8b924`
- **chore:** sync generated files after the share and blog wording corrections `bf6177e1`
- **content(share, blog):** nl, ro and pt carry the lane C wording corrections (#122 step 3) `7c61377a`
- **content(attention-machine):** close the sourcing gaps the dossier found (#122 step 3, lane D) `12137b64`
- **content(share, blog):** lane C wording corrections and the dossier's source links (#122 step 3) `aea97e82`
- **chore:** sync generated files after merging main `c14ee524`
- **chore:** sync generated files after the share and blog source links `95fad00b`
- **content(share, blog):** translations of the step-3 source links now match English at 55b916b `c83ad796`
- **chore:** sync generated files after the gaps dossier `5c3023a2`
- **content(share, blog):** link the named sources and add the missing Sources entries (#122 step 3, lanes A and B) `55b916b2`
- **docs(#122):** the gaps dossier verified by Fable, corrections applied `deab0f14`
- **chore:** sync generated files after the truth, timeline and objections source links `cf6325de`
- **content(truth, timeline, objections):** translations of the step-3 source links now match English at 751ac75 `18ad7ebf`
- **content(truth, timeline, objections):** link the named sources and fix the Sources entries (#122 step 3, lanes A and B) `751ac755`
- **chore:** sync generated files after the educate and for-you source links `3e50b8e8`
- **content(educate, for-you):** translations of the step-3 source links now match English at 659d744 `e8befa45`
- **chore:** sync generated files after the #122 lane C review fixes `f17639df`
- **content(educate, for-you):** link the named sources and add the missing Sources entries (#122 step 3, lanes A and B) `659d7446`
- **fix(i18n,#122):** Fable review fixes for the attention-machine carry-over (nl/ro/pt) `89496475`
- **chore:** sync generated files after the laws source links `22904e9b`
- **content(laws):** translations of the step-3 source links now match English at efc3d11 `0d1be425`
- **chore:** sync generated files after merging main `4f3c3f88`
- **content(laws):** link the named sources and add the missing Sources entries (#122 step 3, lanes A and B) `efc3d114`
- **chore:** sync generated files after merging main `c7e26005`
- **docs(handover):** the 16 sources-\* answers applied in !353; the second batch run built, not sent `11c7eb0d`
- **chore:** sync generated files after the symptoms source links `15081f90`
- **chore:** sync generated files after the attention-machine wording corrections `75a32966`
- **content(symptoms):** translations of the step-3 source links now match English at 32cfd61 `f3227d60`
- **content(attention-machine):** nl/ro/pt carry the lane C wording corrections (#122 step 3) `1e72efd3`
- **chore:** sync generated files `1586b50a`
- **data:** apply the 16 sources-\* answers to the priority method (#71) `22c9216a`
- **docs(decisions):** two #140 cards; record the 16 priority-sources answers `d7c53001`
- **content(attention-machine):** correct the wording that the cited sources do not carry (#122 step 3, lane C) `be18332d`
- **content(symptoms):** link the named sources and add the missing Sources entries (#122 step 3, lanes A and B) `32cfd612`
- **docs(perf):** fix 2 is !347, fixes 3, 6 and 7 are !348 (#140) `f7724f51`
- Revert "perf(review): load the review block's scripts only for a reviewer (#140)" `18e5ef33`
- **docs(#122):** the lane-D gaps dossier; proposals stay reference in a split verify `e77f86fd`
- **docs(perf):** mark fixes 2, 3, 6 and 7 done in !348; the performance workstream in the handover (#140) `0af650e6`
- **chore:** sync generated files after merging main `1c2f00aa`
- **chore:** sync generated files after the attention-machine source links `73fa6d4a`
- **chore:** sync generated files (#140) `1c91996f`
- **perf(search):** load Pagefind on first use; footer target size; cache lifetimes (#140) `0dcabbea`
- **research(priority):** questions for the second data-source batch (card sources-finish = a) `a17cd0b3`
- **chore:** sync generated files after merging main `0c3d2e89`
- **content(attention-machine/ai):** nl/ro/pt translated-from moves to the English without the TermDef link `5747ecd1`
- **content(attention-machine/ai):** no source link inside the coordinated-inauthentic-behavior definition `5755306f`
- **content(attention-machine):** translations of the step-3 source links now match English at 5974959 `c1d1138d`
- **perf(review):** load the review block's scripts only for a reviewer (#140) `acfe9e34`
- **content(attention-machine):** link the named sources and add the missing Sources entries (#122 step 3, lanes A and B) `5974959e`
- **perf(review):** load the review block's scripts only for a reviewer (#140) `82ed5db5`
- **docs(#122):** lane E of the step-3 worklist triaged `15baeea4`
- **chore:** sync generated files after merging main `70c2ff1c`
- **chore:** sync generated files `696a4c23`
- **docs:** record ci-uptime-slot = a (a runner slot for small jobs) `4f5b2e3f`
- **chore:** sync generated files after merging main `ade2962b`
- **chore:** sync generated files after merging main `88865681`
- **chore:** sync generated files after merging main `9dceec1d`
- **chore:** sync generated files after merging main `47658dd0`
- **decisions:** 16 cards on the priority method's data sources `9814fdab`
- **chore:** sync generated files after merging main `38dba2c8`
- **docs(handover):** the data-source challenge is verified; its cards are open `45bf372a`
- **fix(forms):** From on one line with a quoted name — Proton refused the folded From `2bf75fd2`
- **research:** settle the judgment calls the last verify fixes left open `dec3d087`
- **research:** apply Fable verifier must-fix lists to three findings files `4e4d6699`
- **review:** Fable verification of the last three data-source findings `115e42ab`
- **chore:** sync generated files after merging main `86b59c3b`
- **fix(uptime):** the beacon trigger is Accept: text/html, not the User-Agent; three markers; no clean retry (checks audit of !340) `11e201b4`
- **review(#122):** the step-3 citation review, run — worklist of 239 items `1ba21b41`
- **research:** settle the four judgment calls the verify fixes left open `61882160`
- **docs(research):** apply the Fable verifier's must-fix lists to four findings files `eeb33758`
- **chore:** sync generated files `1ac9b257`
- **docs(34):** merging with many parallel sessions — lessons for other projects `9ebb1409`
- **review:** Fable verification of four data-source findings (verify-20261016-2212) `b1c4d680`
- **docs(handover):** the forms live test runs daily and passed (#125) `f6808c91`
- **chore:** sync generated files after the beacon assertion `326fcf61`
- **research:** the last three data-source findings; batch run ids never collide `c30d9732`
- **feat(uptime):** fail while Cloudflare injects its Web Analytics beacon (#141) `0d962407`
- **docs:** Cloudflare's "Builds for non-production branches" is off (cf-branch-builds = a, done) `2bf6988f`
- **chore:** sync generated files after merging main `da938378`
- **docs:** the Cloudflare setting is "Enable Preview Builds" (Settings → Build → Branch control) `8e0f3490`
- **docs(handover):** where the data-source challenge stands on 17 October `3fd043a4`
- **chore:** sync generated files `0ebed033`
- **docs:** card cf-branch-builds = a — Cloudflare's branch builds go off `1a6cb3dc`
- **ci:** re-run for a fresh Cloudflare build `1ac4fa09`
- **chore:** sync generated files after merging main `7e1ebd0b`
- **chore:** sync generated files `84ff3572`
- **fix(forms):** the SMTP reply after the message; a safe diagnostic when a reply is garbled `d75d072d`
- **docs:** 52 checks, numbered to 53, after CHECK 52 (IndexNow) joins CHECK 53 (Turnstile) `7107d7ba`
- **chore:** sync generated files after merging main `a40dbe44`
- **chore:** sync generated files after merging main `545edd7e`
- **chore:** sync generated files after merging main `6a3ebe53`
- **ci:** re-run for a fresh Cloudflare build `13ee7ca3`
- **chore:** sync generated files `a00bf7da`
- **fix(forms):** the compact Turnstile widget, so the form pages reflow at 320px (WCAG 1.4.10) `bef07560`
- **chore:** sync generated files after merging main `893fc270`
- **handover:** a hanging Cloudflare status, twice; the watcher could clear it `fab3208a`
- **ci:** re-run for a fresh Cloudflare build `2103772f`
- **chore:** sync generated files `348d9127`
- **handover:** the merge queue's late lessons of 16 October `d98068af`
- **research:** four of the seven data-source findings (inquiry-20261016-1945) `cad65a37`
- **fix(batch):** download results whole instead of the SDK's line stream `cc52ba63`

16 October 2026

- **chore:** sync generated files after the review round and merging main `a99fc26e`
- **chore:** sync generated files after merging main `e69728ef`
- **chore(checks):** number the Turnstile check CHECK 53; the review round in the report `6401acb5`
- **docs:** record the four #122 citation-review answers given on the Decisions page `d923aead`
- i18n(privacy): carry the review-round wording into nl, ro and pt (drafts) `1459f242`
- **chore:** sync generated files after merging main `422e9729`
- **fix(forms):** apply both Fable reviews of !335 (KV mark, accepted sends, CSP checks, privacy wording) `1f58fc50`
- **chore:** sync generated files after merging main `b670f314`
- **chore:** sync generated files (changelog, page dates, translation status) `f3594f15`
- **docs(forms):** the email and Turnstile routes in REVIEW\.md, docs and tests; CHECK 52 counted `e8f336d0`
- **chore:** sync generated files after merging main `73cdac59`
- **docs(perf):** reconcile the measurement with !324 and #140; drop card perf-budget `421b4e86`
- **chore:** sync generated files after merging main `0368a6d0`
- **docs(perf):** first Lighthouse measurement against the docs/11 targets (#133) `60bef9a2`
- **chore:** sync generated files after merging main `1439ff38`
- **chore:** sync generated files after merging main `e754fd90`
- **ci:** a regenerated CHANGELOG.md no longer runs the browser suite `a17953bc`
- **docs(#122):** handover — the estimate after the review fixes `5374c39b`
- **fix(#122):** cite — Fable review fixes (M1–M2, S1–S6, nits) `03a6ba86`
- i18n(forms): carry the email and Turnstile changes into nl, ro and pt (drafts) `28f07191`
- **feat(forms):** email each message through Proton SMTP; Cloudflare Turnstile on the form pages `dd6b9229`
- **chore:** sync generated files after merging main `0072c2bf`
- **docs(#122):** handover — step 3 built, nothing submitted until cite-batch-run is answered `8f78d063`
- **chore:** sync generated files after merging main `d04f1f4c`
- **chore:** sync generated files after merging main `695093ea`
- **docs(#122):** step-2 leftovers as data — leftovers.json, 127 items `d88c44c5`
- **feat(#122):** batch kind cite — the Fable citation review, step 3 `b0a4533d`
- **fix(watch-mr):** only main's copy runs `2f2fd76a`
- **chore:** sync generated files after the CI runner re-run `18261a98`
- **docs(#122):** plan step 3, the Fable citation review as a batch; four cards `f48866cd`
- **docs:** CI runner week re-run (13–16 Oct); card ci-uptime-slot `1fe6f245`
- **docs:** forms-gitlab-inbox answered — email through Proton SMTP (option d) `7092cd74`
- **chore:** sync generated files after merging main `379cb23d`
- **chore:** sync generated files after merging main `09568dbf`
- **docs:** card forms-gitlab-inbox; forms-spam answered (b, Turnstile) `6279d51c`
- **docs(#122):** plan step 3, the Fable citation review as a batch; four cards `fe45bcce`
- **chore:** sync generated files after the IndexNow audit fixes `985471a0`
- **fix(seo):** checks-audit fixes for IndexNow — undated sitemap, draft fence, redirect and dist guards, origin argument (#139) `717e0027`
- **docs:** card forms-spam — captcha, time trap, rate limit or nothing `4a1deae6`
- **docs(handover):** how to resume the seeded inquiry submit `5dd84080`
- **docs(handover):** the data-source challenge submitted as inquiry-20261016-1945, and what follows `a82f01e3`
- **fix(perf):** a run without a score fails the page; a redirect is not scored (checks audit of !324) `8aee982b`
- **feat(batch):** inquiry mode — one Opus request per question file (#99) `20f39c4b`
- **chore:** sync generated files after merging main `3e8ff8f8`
- **docs:** the empty commit, not the dashboard retry, unstuck !319 `46bf40d3`
- **ci(forms):** key the forms live test on the schedule's description (#125) `4684710c`
- **chore:** sync generated files after merging main `71a85042`
- **docs(priority):** the data-source challenge — seven research questions and the owner's answers as shared context `e6324fb9`
- **chore:** sync generated files after the Lighthouse budget `651dc9c5`
- **feat(perf):** weekly Lighthouse budget against docs/11; hold the search button's place (#133) `775ce157`
- **chore:** sync generated files after the IndexNow change `70f7cdf2`
- **feat(seo):** IndexNow — key file, CHECK 52, daily submission of changed pages (#139) `66077ccb`
- **ci:** re-run for a fresh Cloudflare build `aa21fdde`
- **docs:** a hanging Cloudflare branch build holds the merge; retry it in the dashboard `59fda365`
- **docs:** the merge queue's first busy day, the suite after lint, Cloudflare's branch builds `111c7f50`
- **chore:** sync generated files after merging main `b29e6c3e`
- **chore:** sync generated files after merging main `85dad552`
- **chore:** sync generated files after merging main `8a336f67`
- **chore:** sync generated files after merging main `4b12b016`
- **chore:** sync generated files after merging main `fae4cb46`
- **chore:** sync generated files after merging main `a2afaf1c`
- **chore:** sync generated files after merging main `980e6ed6`
- **chore:** sync generated files after merging main `f71be36b`
- **chore:** sync generated files after merging main `7f2e9e62`
- **chore:** sync generated files after merging main `4a8c4402`
- **chore:** sync generated files after the queue order `b8527f35`
- **chore:** sync generated files after merging main `999cd9a9`
- **feat(watch-mr):** waiting merge requests take turns in the order they joined (card merge-queue-order = a) `1ad5117d`
- **fix(watch-mr):** a conflict must last two minutes before the watcher gives up `ce2d6619`
- **ci:** the browser suite starts only after lint passes `c2205ec8`
- **chore:** sync generated files after merging main `577e7323`
- **chore:** sync generated files after the es How We Use AI entries `12cf6774`
- **es:** slug and footer label for How We Use AI (!306) `630a9db6`
- **chore:** sync generated files after merging main `56e0a6a8`
- **chore:** sync generated files after merging main `809d9002`
- **chore:** sync generated files after merging main `2e88271e`
- **chore:** sync generated files after the ledger record `be09c929`
- **docs(decisions):** record edition-sequence-world = c in the ledger `90925eb1`
- **chore:** sync generated files after the catch-up rule `993b1af2`
- **feat(e2e):** a catch-up with main skips the browser suite (card e2e-catch-up = a) `b22c580b`
- **chore:** sync generated files after the review fixes `107fe9a0`
- **fix(merge-queue):** review fixes M1-M3, S1-S7, N1-N4, N7 for watch-mr.sh and merge-main.mjs `0e1c9ee0`
- **chore:** sync generated files after merging main `c643bdbe`
- **chore:** sync generated files after merging main `9efa100c`
- **chore:** sync generated files after merging main (#124) `d9a684d7`
- **chore:** sync generated files after merging main `1712c168`
- **chore:** sync generated files after merging main `129a462c`
- **chore:** sync generated files after merging main `5e7f14f7`
- **sync:** regenerate the generated files after merging main `d6be7e77`
- **chore:** sync generated files after the merge queue `cea78e0c`
- **feat(watch-mr):** one merge request at a time, brought up to date by a merge (#137) `d687b4cb`
- **chore:** sync generated files after merging main `2159bf25`
- **chore:** sync generated files after merging main (#124) `e73cdf7c`
- **chore:** sync generated files after merging main `2a8e5ff2`
- **sync:** regenerate the generated files after merging main `bfa46f55`
- **chore:** sync generated files after merging main `d36bf3e5`
- **chore:** sync generated files after merging main `a879acbb`
- **chore:** sync generated files after merging main (#124) `5f936a50`
- **sync:** regenerate the generated files after merging main `1ad59164`
- **chore:** sync generated files after merging main `ebea1319`
- i18n(nl, pt, ro): keep #122's source links; translated-from names 92d0e423 `e1485750`
- **chore:** sync generated files after merging main (#124) `f711b38f`
- **chore:** sync generated files after merging main `3a7f37fb`
- **chore:** sync generated files after the Ko-fi goal link `2335c1f9`
- **sync:** regenerate the generated files after merging main `f5ec210e`
- **chore:** sync generated files after merging main `6a477e4d`
- **handover:** the French and Spanish batches as of 16 October 2026 `73fe7c2d`
- i18n(nl, pt, ro): carry the Ko-fi goal link across `5ba58025`
- **fix(donate):** the Ko-fi button opens the foundation goal `78993c41`
- **chore:** sync generated files after merging main `131d3365`
- **test(batch-research):** name the edition for Argentina with --edition es `76f2b278`
- **chore:** sync generated files after merging main (#124) `5665ee8b`
- **sync:** regenerate the generated files after merging main `c3fea460`
- **sync:** regenerate the generated files after merging main `e0baba85`
- **docs(handover):** the SEO and AI-search workstream after !299 `f42aee7e`
- **chore:** sync generated files after merging main (#124) `dc6d04a9`
- **sync:** regenerate the generated files after merging main `cd118fe1`
- **sync:** generated files for the SEO change `3494328d`
- **feat(seo):** structured data, crawl checks and the crawler policy — #129–#132, #127/#128 `2250de93`
- **chore:** sync generated files after merging main (#124) `14424b9d`
- **chore:** sync generated files after merging main `e2863f86`
- **sync:** regenerate the generated files after merging main `36a375f2`
- **chore:** sync generated files `6d2a6193`
- **chore:** sync generated files after merging main `4f4318d3`
- **fix(batch):** the English moving on is not a repair `9670190c`
- **chore:** sync generated files after merging main (#124) `5a22b45f`
- **handover:** resolve the merge conflict committed in b1f30132 (main's elections row, the Spanish row kept) `982ea054`
- **sync:** regenerate the generated files after merging main `cdb92b45`
- **chore:** sync generated files after the claim ids `060cf662`
- **docs(handover):** the permanent claim ids row (#123) `01a0dd4d`
- **fix(claims):** the mark-above-new-ids rule applies only when the branch raised the mark `48656b26`
- **docs(review):** the checks-auditor's report on CHECK 51 (#123) `4558cdcb`
- **fix(claims):** close the holes the checks-auditor found in CHECK 51 (#123) `0560928a`
- **docs:** 46 consistency checks, numbered to 51 — CHECK 51 is the claim ids (#123) `632fcd0f`
- **feat(claims):** the example link stays inside a phone screen; a test that every claim row is its own anchor (#123) `75568982`
- **feat(claims):** a permanent id for every claim in the ledger (#123) `2436ceb5`
- **sync:** regenerate the generated files after merging main `e09e42df`
- **chore:** sync generated files after merging main (#124) `b662827f`
- **chore:** sync generated files after merging the remote branch `18aac1cd`
- **chore:** sync generated files after merging main `f0bf1755`
- **chore:** sync generated files after merging main `2bf894ac`
- **chore:** sync generated files after merging main `4144943d`

15 October 2026

- **batch:** research mode — one Opus request per country `62655f07`

16 October 2026

- **sync:** regenerate the generated files after merging main `07b2d709`
- **chore:** sync generated files after merging main (#124) `6226e332`
- **chore:** sync generated files after merging main `15724253`
- **chore:** sync generated files after merging main `11a81eae`
- **test(i18n):** give the review-gate sweep 3 s per draft, not 1.5 s (#124) `c4865528`
- **sync:** regenerate the generated files after merging main `5efc8ed0`
- **chore:** sync generated files after the fr glossary headwords `821da6af`
- **fr:** four glossary headwords; ledger answers `7147ab10`
- **chore:** sync generated files after the review-gate test split `c809ac57`
- **test:** the review gate checked on every draft's built html, in the browser on a sample `808d4168`
- **chore:** sync generated files after merging main (#124) `c8d6c9a7`
- **docs(handover):** Next languages ordered by the edition score `cfb649ca`
- **chore:** sync generated files after the Next languages order `5cbee018`
- **content(translations):** order "Next languages" by the edition score `4a8d0b19`
- **handover:** the forms live test merges before the administrator's steps; #125 stays open until the first run `27ee353f`
- **sync:** regenerate the generated files after the forms live test (#125) `f26a6d4d`
- **fix(forms):** the live test submits from a reserved example address (#125) `1d2f88e4`
- **feat(forms):** a daily live test of the contact and volunteer forms (#125) `ce2399a0`
- **chore:** sync generated files after merging main `62a15768`
- **checks(23, 46):** a local source is linkable only when declared; rule 3 matches a book by its text (audit of f4d2054) `6c03e14d`
- **chore:** sync generated files after How We Use AI (#124) `8cd7e371`
- **docs(handover):** the How We Use AI row (#124) `867bab7c`
- **docs(review):** ro note on the AI Act page's Article 50(4) quotation (#124) `773d7744`
- i18n(nl, ro, pt): carry the How We Use AI fixes from the Fable review (#124) `4eb2f5e8`
- **checks(citations):** CHECK 46 rule 4 joins the lint run (warn); docs for step 2 of #122 `e5dc7578`
- **fix(about):** How We Use AI English — narrow six overclaims (#124) `99b579e3`
- **sync:** regenerate the changelog after the translation-only source links `3429ef69`
- **links:** the translation-only source links CHECK 23 used to block (#122 step 2) `366c4993`
- **sync:** regenerate the generated files after merging the step-2 sections `9d14655f`
- i18n(nl, ro, pt): How We Use AI drafts and the About section (#124) `d401bf2f`
- **checks(sources):** a translation may link its own declared source; a URL-less book in a TermDef counts as cited `f4d2054b`
- **sync:** regenerate the generated files `c68e9dba`
- **sync:** regenerate the generated files `682e4cc7`
- **sync:** regenerate the generated files after merging main `c29bc75c`
- i18n(symptoms): carry the entry links into nl, ro and pt (#122 step 2) `8cabca61`
- i18n(nl, ro, pt): carry the attention-machine source links across (#122 step 2) `9579117e`
- **sync:** regenerate the generated files after merging main `9292d3cb`
- **feat(about):** How We Use AI, linked from the footer AI notice (#124) `90eef370`
- **sync:** regenerate the generated files `0b8e1fae`
- **sync:** regenerate the generated files `52b935e4`
- **sync:** regenerate the generated files after merging main `cf8f6d9c`
- **content(sources):** carry the step-2 source links into nl, ro and pt (#122) `d6e1d919`
- **content(sources):** link truth, timeline, about and objections to their entries (#122 step 2) `6e4cd9f8`
- check-citations rule 4: apply the checks-audit findings F1-F7, F9, F10, F12 `70ca9f47`
- **content(attention-machine):** point the source links at their entries (#122 step 2) `8107fd53`
- **sync:** regenerate the generated files `e752ed82`
- **content(laws):** carry the source links into nl, ro and pt (#122 step 2, section laws) `12a15aa5`
- i18n(nl, ro, pt): carry the educate and for-you source links (#122 step 2) `f48e5cd9`
- **content(en):** source links point at their entries — educate and for-you (#122 step 2) `fd37838d`
- **sync:** regenerate the changelog after merging main `987a6d04`
- **sync:** regenerate the generated files `7d1652dc`
- i18n(#122): carry the share and blog source links into nl, ro and pt (step 2) `650f8c70`
- **content(symptoms):** each source link points at its own entry (#122 step 2) `efd4ea45`
- **content(#122):** link share and blog sources to their own entries (step 2, section share and the blog) `27345a9c`
- **fix(checks):** four false positives from the French batch run fr-20261015-2033 `a3aa70a7`
- **content(laws):** link each source mention to its own entry (#122 step 2, section laws) `c53b887e`
- **docs(decisions):** record the page's answers of 16 October 2026 `269fdf52`
- **checks(citations):** describe rule 4 in CHECK 46's header `3f49fc5b`
- **checks(citations):** CHECK 46 rule 4 behind --rule4 — a named source links to its entry from the block that names it `ac743c8a`
- **chore:** sync generated files after merging main `edd42b98`
- **sync:** regenerate the generated files after merging main into the source ids `b3766a2d`

15 October 2026

- **docs(handover):** the priority list's five cards are on the Decisions page `087db141`
- **docs(decisions):** five cards on the priority list's open choices `512b942c`

16 October 2026

- **content(sources):** translated-from → b3180cd on the 45 translations whose English changed in the merge `4a3ac37d`

15 October 2026

- **docs(handover):** the priority list was reviewed by Fable and rebuilt as v2; the cards come next `fd12ad02`
- **feat(priority):** method v2 — coverage, one state-control index, fixed reach floor, edition score, options `dfc92ab1`
- **docs(editions):** apply the Fable data verification to the priority data `1f7fe272`
- **feat(priority page):** an "Order by" menu under Rank, with a reverse switch `4d2ab884`
- **fix(priority page):** sort the next national vote by date, soonest first `cd4d8743`
- **feat(priority page):** filter and sort on every column; the next national vote per row `2f2f9ed7`
- **docs(editions):** a priority method for localisations, with data for 79 language × country rows `1d8249ef`
- **checks(sources):** the checks-audit fixes for !294 — ids tied to their entry, unreadable lists reported `74a34431`
- **docs:** add the search-engine-accounts decision card `03d4e7c6`
- **chore:** sync generated files after the es scaffold `fc407db7`
- i18n(es): scaffold the Spanish edition — locale, chrome, handouts, slugs, register, scale `9b0ace4e`
- **docs(review):** the step-1 record for #122 — what was built, ids per language, the reproduction `7eca63c4`
- **chore:** sync generated files after the Courts review-log entry `59fb468c`
- **docs(review-log):** Fable read of the Courts chronology, nl/ro/pt, 15 Oct 2026 `47aa6fda`
- **sync:** regenerate page dates, the changelog and the translation-status snapshot `585ac2fa`
- docs+checks(sources): document the ids and CHECK 46; CHECK 42 compares ids too `90949091`
- **chore:** sync generated files after the Courts correction `99d4759b`
- i18n(nl,ro,pt): Courts — the states' October 2023 suits, en\@c31387e `61b68ac7`
- **content(en):** Courts — the states' October 2023 suits were not all in one court `c31387e8`
- **content(sources):** carry the Sources ids into nl, ro and pt `de2c0f7c`
- **content(sources):** a stable id on every English Sources entry `17e952d3`
- **checks(sources):** ids for Sources entries — the script, CHECK 46 (warn) and CHECK 23 ids `e8607dd2`
- **handover:** the 16 answers of the second English pull, and what each set in motion `f23a2035`
- **docs(review):** note on the courts chronology (en-courts-list = c) `319b376e`
- **chore:** sync generated files after the courts chronology `1058e21c`
- i18n(nl, ro, pt): courts — the wave of lawsuits as a dated chronology `b88cf81e`
- **content(en):** courts — the wave of lawsuits as a dated chronology `aab076a7`
- **decisions:** record the 16 answers of the second English pull; card helplines-local-dropdown `ea8920f3`
- **fix(css):** hide Pico's summary chevron on FAQ questions too `b10db37c`
- **fix(css):** hide Pico's summary chevron on Deeper boxes `84ab2414`
- **sync:** regenerate the changelog after merging main `db2525e7`
- **sync:** regenerate the changelog after the checks-audit fixes `60186984`
- **checks:** French numbers with thin spaces, French register forms, digit-led titles `09760d04`
- **chore:** sync generated files after the fr answers and terms `6d0d99af`
- **fr:** record the France Additions Review answers; French official terms `a0b32762`
- **handover:** the second English pull is draft !289 `02f41e39`
- **chore:** regenerate the generated files (npm run sync) `83e2d24b`
- **deck:** "designed by Aza Raskin" and "fines imposed", as the site now says `0396d7ac`
- **review:** the three Fable reads of the 15 October carry, with what was applied `b91b729f`
- **chore:** regenerate the generated files (npm run sync) `f3433951`
- i18n(nl,ro,pt): the Fable review fixes, and the English fixes carried, en\@9c0999d `5c641280`
- **content(en):** fixes from the Fable reads of the nl, ro and pt carries `9c0999d3`
- **chore:** sync generated files after the fr scaffold `fdd736be`
- **sync:** regenerate the snapshot, changelog and page dates after the fr scaffold `6b07bb06`
- i18n(fr): scaffold the French edition — locale, chrome, handouts, slugs, register `c1ab378b`
- **handover:** the second English pull and what it became `162d0b43`
- **decisions:** 16 cards from the second English pull of 15 October 2026 `f4094b19`
- **chore:** regenerate the generated files (npm run sync) `b366d5ee`
- i18n(pt): Democracy description under 200 characters `97d1c948`
- i18n(nl,ro,pt): "fines imposed" on GDPR and the named mechanisms on Democracy, en\@92384eb `f12840d4`
- **content(en):** GDPR says "fines imposed"; Democracy's description names its mechanisms `92384eba`
- **docs(review):** corrections and the GDPR sentence — before/after, nl/ro/pt, sources, options `de202757`
- **chore:** npm run sync after the 15 October corrections and their nl/ro/pt carry `c87da1ea`
- **docs:** record the 15 October corrections in docs/03, docs/25 and CORRECTIONS.md `13706712`
- i18n(nl): declare "gamification" and "demo" as kept words for the demo heading `292413b9`
- i18n(nl, ro, pt): carry the corrections and the GDPR sentence of a078b65 `3604fd40`
- **docs(review):** the wording proposals behind ecbb09d, one per review note, ready for Decisions cards `4f7edbda`
- **content(en):** GDPR fines against turnover, the Amazon annulment, four source fixes, Bad News link, Gamification demo heading `a078b652`
- **sync:** regenerate the changelog, page dates, claims, llms.txt and the translation-status snapshot `de39a4d5`
- **docs(handover):** reviewer instructions on the page, the invite note (!285) `8d5b13b8`
- **review:** apply the Fable read of the reviewer instructions `b5c80cd3`
- **review:** the instructions live on the reviewer's page; invite prints a short note `2645322e`
- i18n(nl, ro, pt): carry the plain-words English change of ecbb09d; ledger rows `1d0f212c`
- **docs(decisions):** card edition-sequence-world — rebalance the edition sequence beyond Europe `a78380b6`
- **review(en):** the facts, audit and research behind the second English pull `d71fbe15`
- **docs(review):** the six wording proposals of 15 October, with options for the cards `475a93a8`
- **chore:** npm run sync after the six English wording changes and their nl/ro/pt carry `eb16a639`
- i18n(nl, ro, pt): carry the six English wording changes of 729261e `4b4cc611`
- **content(en):** six wording changes from Codrin's review notes of 15 October 2026 `729261e7`
- **en:** plain words on the truth pages and the Aiken entry, from the owner's review notes `ecbb09d7`
- **review(en):** the second English pull of 15 October 2026 — 172 submissions, 82 pages `21dd9bdd`
- review page: a checkbox shows only the pages without a verdict yet `7e9994b3`
- **chore:** npm run sync after merging main `7cfcd6ad`
- **chore:** npm run sync after merging main `39dcd891`
- **review(fr):** the France Additions Review — FR.md's 40 proposals and 7 open questions, one verdict each `12fbb84c`
- **chore:** npm run sync — snapshot, changelog, page dates and claims after the France age-restrictions correction `351e8d01`
- i18n(nl, ro, pt): apply the Fable read of the France age-restrictions carry `9113d67d`
- i18n(nl, ro, pt): carry the France age-restrictions correction; docs/04 says the same `f7996d3a`
- **fix:** the pt Gamification demo's stat labels wrap at 320px; the review-block test follows the new post `1aa13807`
- **fix(age-restrictions):** France's 2023 under-15 law never took effect; the 2026 ban was struck down `b7f62b1c`
- **chore:** npm run sync after merging main `4f5518fe`
- **docs:** card br-visibility-name-nos answered a; the English read with no comments `396e6be0`
- **chore:** npm run sync — the snapshot records the FR research verification `8852bc31`
- **docs(handover):** the FR dossier is verified; what its proposals need next `ca3fa438`
- **research(FR):** point to leslibraires.fr's contact address instead of quoting it (CHECK 44) `922e0340`
- **research(FR):** apply the Fable research-verifier's findings to the dossier `d667870a`
- **research(FR):** country dossier for the French edition (election exception) `7f71cb7e`
- **chore:** npm run sync after the translated-from repoint `f9318bbd`
- i18n(nl, ro, pt): point Books' translated-from at en\@7d3e22a after the rebase `eee7b746`
- **chore:** npm run sync after the Cyber Effect review fixes `6798ed62`
- i18n(nl, ro): apply the Fable review of The Cyber Effect entry `108b1af8`
- **chore:** npm run sync after The Cyber Effect on Books `864fbbe4`
- i18n(nl, ro, pt): carry The Cyber Effect into Books, drafts at en\@c3eed8e `9d25c3f2`
- **content(en):** add Mary Aiken's The Cyber Effect to Books, first under "Start here" `7d3e22a4`
- **docs(editions):** apply the three edition-order answers of 15 October 2026 `25bbb257`
- **chore:** npm run sync after the rebase `6bda3083`
- **content(blog/pt):** carry the rebased English sha; card br-visibility-name-nos; handover `5bfa1d69`
- **chore:** npm run sync after the pt time-format revert `98dd9c9e`
- **content(blog/pt):** keep the Reels counter times as 15:50 and 20:49 `fba4c7c0`
- **chore:** npm run sync after the visibility post review fixes `abd7b147`
- **content(blog/pt):** apply the Fable review of the visibility post (P1-P9, S2-S6, D1, D2) `cdb0261e`
- **content(blog/en):** apply the Fable review of the visibility post (E1-E7, D1, D2) `26c018c5`
- **chore:** npm run sync after the visibility post `d0bae634`
- **content(blog/pt):** draft the visibility post; ledger, research and docs `bbe0b314`
- **content(blog):** what is documented about visibility before Brazil's run-off `f82d1f84`
- **chore:** regenerate the changelog after merging main `7c72f5b2`
- **chore:** regenerate the generated files after the Recruited to Harm wording `9c1500d4`
- **docs(editions):** the order of editions checked against elections, polarisation, reach and media use `0c97d0d9`
- i18n(nl,ro,pt): Fable review applied, the Deeper sentence carried, en\@4484d19 `1c56604e`
- **content(en):** Recruited to Harm, Deeper box — "exist to be acted on, not studied" `4484d198`
- **test(review-block):** the line-break test reads the Dutch step 4 as it now reads `d3e1eee8`
- i18n(nl,ro,pt): Recruited to Harm reports rather than warns, en\@6f93247 `b7256af2`
- review block: "Feedback" over the note, "Registered changes" over the diff `f6f10be5`
- **content(en):** Recruited to Harm reports what the police found, rather than "warning" `6f932473`
- **chore:** regenerate the generated files after the subscribing-step lead `0513a55a`
- i18n(nl,ro,pt): the subscribing step's new lead, en\@03593ef; record the answer on wtd-subscribe-line `ef2e077f`
- **content(en):** What To Do — the subscribing step leads with "Be careful what you subscribe to." `03593ef1`
- **chore:** regenerate the generated files after the home-page and What To Do changes `5cc202ec`
- **docs(decisions, handover):** record both home-page answers; a card for the What To Do subscribing step `c19a1603`
- i18n(nl,ro,pt): home step 4 and the What To Do subscribing step, en\@db9d1c1 `2266172a`
- **content(en):** home — loop step 4 in Codrin's own words, and a What To Do step on subscribing `db9d1c15`
- **chore:** regenerate the changelog `3ee6ca1e`
- **docs(handover):** two follow-ups from the Fable review of !273 `48cfcbec`
- **chore:** regenerate the generated files after the home-page revision `428743ff`
- i18n(nl,ro,pt): home — carry en\@6822130 and the Fable should-consider items `ec5d90be`
- **fix(review):** an edit made on an older copy of the text is shown under the field, not put in it `38945a35`
- **content(en):** home — the deliberate-use line says "built for profit, not for any cause" `68221301`
- **docs(handover):** the English fact review workstream; the review-block field merged `4e5d7622`
- **chore:** regenerate the generated files after the home-page change `481696b1`
- **docs(decisions):** two cards on the home-page wording from the English review `8ae5190e`
- i18n(nl,ro,pt): home — carry loop step 4 and the deliberate-use sentence (en\@380f110) `51fc8576`
- **content(en):** home — loop step 4 and a sentence on deliberate use, as proposed `380f1106`
- **fix(review):** the page copy keeps block-styled parts on separate lines; the pull prints the latest verdict per page `bf6d2d75`
- **fix(#120):** the pull's word diff uses the vendored jsdiff, not node\_modules `6da8efb6`
- **chore:** regenerate the generated files after the #120 pages changed `c9512828`
- **fix(#120):** CHECK 45 works without node\_modules; privacy annotations after the rebase `e037cef9`
- **review(#120):** Fable fix round — true help sentence, text cap 400,000, licence name `7e8768c2`
- **docs(#120):** build report, HANDOVER row, card review-text-field answered (a) `ac644617`
- **fix(review):** diff-en-build ignores the vendored jsdiff tag beside the block `c1de0364`
- **chore:** npm run sync `68ab7175`
- i18n(nl, ro, pt): privacy page says a reviewer may send wording changes (#120) `de99bdcb`
- **feat(#120):** full-text edit field in the review block, with a live word diff `ee321f6b`
- **docs:** card review-text-field (#120), park #121 `88953740`

13 October 2026

- **docs(decisions):** pt-x-sentence-opener = a; BR research check due after the raised limit `7a604840`

12 October 2026

- **docs:** reviewer-link commands in one place (docs/33); roles, not names `cf8bb723`
- **chore:** #18's new title on Your Queue — "publish the first translated and reviewed edition" `7d25402c`
- **feat(review):** ./review for reviewer links, revoke by eight characters, the administrator's guide `712889ac`
- i18n(review): pt reading order, Brazilian additions and the X condition on the reviewer's page `a688c66c`
- **feat(review):** a review-mode line at the top of every page a reviewer reads `9b7bb377`
- **docs:** Codrin's review commands in one place; the 12 October token state `5d8b6ff5`
- **docs(handover):** nl/ro reviews — admin token tested, 0 submissions, no Dutch reviewer yet `8c9a4016`

11 October 2026

- **chore:** npm run sync `7fd7361b`
- i18n(pt): apply the Fable re-read of Free Speech — balance opener, the ruling's own hedge, STF headlines `b272907e`
- i18n(pt): three approved Brazilian local additions — STF art. 19, the X suspension, SaferNet Denuncie `cbef9b99`
- **chore:** npm run sync `9b992659`
- **feat:** review-admin reads the admin token from the macOS Keychain `785ab9e4`
- **chore:** npm run sync `c3ac8959`
- **docs(handover):** pt — the 13 cards applied, !257, the three additions awaiting Codrin's confirmation (#66) `d6f69ee9`
- i18n(pt): Fable review fixes on the card branch; the last two platform descriptions (#66) `d47b061f`
- **chore:** npm run sync `6a209cd7`
- **docs(pt):** ledger — pt-ai-act-quotes covers 14 passages, 13 replaced (#66) `09d44300`
- i18n(pt): Objections section link and the Educators deck link follow pt-machine-backlink and the (em inglês) convention (#66) `754cf08f`
- **chore:** npm run sync after the Lawmakers sources and Fable review fixes (!257) `dc4c58ee`
- **docs:** report of the pt decision cards applied (11 October 2026) `4ad61754`
- **chore:** npm run sync `6187c68e`
- i18n(nl, ro, pt): carry the Lawmakers source entries, en\@401c4f4; apply Fable review fixes S1-S3 `6dd1debb`
- **content(en):** source the Lawmakers settlement and verdict sentences `401c4f42`
- **pt:** Países Baixos, 'não tem um vício', one phrase for the platforms, AI Act quotes in the official text, local touches (cards pt-netherlands-name, pt-gender-address, pt-attention-platforms, pt-ai-act-quotes, pt-local-touches, answer a) `a03510ac`
- **pt:** grooming (aliciamento) on Get Help; back-links to A máquina da atenção (cards pt-term-keep-english, pt-machine-backlink, answer a) `b4500094`
- **pt:** legal terms in Portuguese (card pt-term-legal, answer a) `08632f34`
- **docs:** one review route for every translation, as a rule in AGENTS.md; the review sheets deleted `c4b22c09`
- **pt:** academic terms in Portuguese, English in parentheses (card pt-term-academic, answer a) `6de94b95`
- **pt:** inoculação, caminho da radicalização, recompensa variável (card pt-term-core, answer a) `902ec7d2`
- **pt:** one reading guide on 42 pages, the box named caixa "Mais a fundo" (card pt-reading-guide, answer a) `d1b4aa99`
- **chore:** npm run sync after the pt-review English change (#66) `b3518ca2`
- **docs(pt):** apply spec — 14 AI Act passages, CHECK 26 pairing (#66) `0da1c875`
- **docs(review):** report of the pt-review English change, E1–E23 per item and the routes changed (#66) `8ba7161e`
- pt cards: official AI Act Portuguese quotations, prep for the fix-applier, three new Brazil Additions items `e44b64c6`
- i18n(nl, ro, pt): carry the pt-review English fixes, en\@4c7547d (#66) `cbde9dcb`
- **content(en):** 20 fixes from the pt Fable review, section (c) E1–E23 (#66) `4c7547df`
- **docs(batch):** the batch CI is switched on — card batch-ci-before-move = a (#99) `9a5eb55e`
- **batch(#99):** dry-run — dry run of the scheduled pipeline `28bc8e7a`
- **docs(pt):** record the 13 pt-\* answers (all a, 11 October) and the apply spec (#66) `5c87a48c`
- **chore:** npm run sync `9eb96b79`
- **docs:** retire the Claude-hosted nl/ro review sheets — reviews go through the secure reviewer route `ac1292dc`
- **chore:** npm run sync `15535ce5`
- **docs(handover):** nl/ro review links done — both editions levelled; the links are Codrin's to send `494f3a52`
- **chore:** npm run sync `6f7d8a84`
- **chore:** npm run sync `ce0c4754`
- **chore:** npm run sync `bcea5909`
- **chore:** npm run sync `0e890276`
- **chore:** npm run sync `d2cb1d92`

10 October 2026

- **chore:** npm run sync `ee9c33c7`
- **docs(batch):** card batch-ci-before-move — switch on now or after the move (#99) `59914f6b`
- **docs(review-log):** the Fable read of the ro decisions change `603b626d`
- i18n(ro): the fifth nonprofit (Common Sense Education); Fable read of the decisions change `e150a90c`
- i18n(ro): apply Codrin's three answers — nonprofit, Trasee de radicalizare, RSF/CPJ with the Romanian press forms `c62348f1`
- **chore:** npm run sync after merging main `0b1b6ccf`
- **test(a11y-contrast):** measure a settled page in the light/dark sweep `77c4f68c`
- **chore:** npm run sync `174fddf1`
- **docs(batch):** the seed is still untested — nl and ro had nothing stale to send (#99) `ce56d66d`
- **chore:** npm run sync after merging main `4bd74cd3`
- **chore:** npm run sync `c0bd5624`
- **chore:** npm run sync `7127aa39`
- **docs(review):** the CHECK 26 rule 2 audit and its re-verification `3bb49b7b`
- **docs(checks):** CHECK 26 rule 2's full scope and after-only window in docs/20, docs/28 and the comments `59eed975`
- **chore:** npm run sync `b32cbc59`
- **docs(review):** Fable read of the !247 passages in nl, ro and pt — no must-fix; logged `7e69abe8`
- **chore:** npm run sync after merging main `e9cf8f69`
- **fix(check-terms):** count hyphenated compounds as a use of an official term; fail on non-string data texts; drop dead WARN paths `1af174d1`
- i18n(nl, ro, pt): age-restrictions carries "describes" (en\@c5c9e00) `26067160`
- **fix(en):** age-restrictions page informs, it does not warn `c5c9e00d`
- **chore:** npm run sync after the pt review fixes `3ffb0e19`
- **chore:** npm run sync after merging main `8d830d35`
- **docs(pt):** 13 cards from the Fable review, the pass logged, handover updated (#66, #99) `ed45eef4`
- **chore:** npm run sync after the nl fixes `7fa2da2c`
- i18n(nl): Fable check of the nl fixes — herd dynamics restored, DSA parenthesis on the regulation `27a50929`
- **chore:** npm run sync after merging main `fd83e40b`
- i18n(pt): apply the Fable review's must-fix list (#66, #99) `cc46c902`
- **chore:** npm run sync after the ro fixes `18b96d9e`
- **feat(batch):** submit --seed — one request alone first, so the rest read its cache (#99) `f21d9308`
- **chore:** npm run sync `b042dd2d`
- **docs(review):** Fable read of the ro fixes — no must-fix, ready for native review `12059ebb`
- **docs:** record md-survey-figure and uth-slug as applied; handover and skill brief follow `0f96645a`
- **fix(nl):** two Fable should-fix items (lokkertjes, gevangengezette journalisten); log three review passes `52c2a5c3`
- i18n(nl, ro, pt): carry the decided English changes, en\@916c42f `7185bc24`
- i18n(ro): apply Fable fixes from section 5, truth and 1-7 October passes; log the passes `627417f2`
- **docs(decisions):** three Romanian cards from the Fable reads before the reviewer links `4e25608d`
- **fix(en):** decided English changes before the nl/ro reviewer links `916c42f9`
- **docs(review):** the pt Fable review batch report; record pt-review-limit = a (#66, #99) `9d573845`
- i18n(nl): the reverse-censorship definition keeps the English term, as its inline link now does `0f0bb7f6`
- **fix(nl):** truth-section wording and registry official terms (issue #113) `9b7e1f57`
- **fix(en, nl, ro, pt):** Offlimits entry gives 0800-0033 only `b4e5c9e0`
- **docs:** record nlro-before-links = a (Codrin, chat, 10 October) `419d399f`
- **chore:** npm run sync after merging main `8a19f8e4`
- **chore:** npm run sync after merging main `f67af1fe`
- **fix(watch-mr):** a 60-minute deadline instead of 120 passes `b98c2a59`
- **fix(watch-mr):** treat preparing as transient, like unchecked and checking `a6a8d15f`
- **docs(handover):** dc-target-2012 is applied by !242 `a54a55ca`
- **chore:** npm run sync after merging main `6e76001c`
- **docs(handover):** the pt review batch is built and waits on the API limit (#66, #99) `4d28b903`
- **chore:** npm run sync after merging main `62363693`
- **chore:** npm run sync after the review log entries `0174fca9`
- **docs:** compare nl and ro before the reviewer links go out `6907f0a2`
- **review:** Fable read of the 2012 clause in nl, ro and pt `d98b970a`
- **chore:** npm run sync after the Data Combination 2012 wording `6685cd4d`
- i18n(nl, ro, pt): carry "reported in 2012" into Data Combination `240e2357`
- **docs(decisions):** card pt-review-limit — the pt review batch waits on the API limit (#66, #99) `5e3f99c1`
- **docs(decisions):** second CI runner re-run, 10 October 14:45 UTC, on ci-e2e-on-main and ci-runner-light-slot `35685662`
- i18n(review): pt page-specific questions for the reviewer's list (#66) `6d47de25`
- **fix(en):** Data Combination dates the Target case as reported in 2012 `6b67cb6b`
- **test(review-block):** the pt run-off post now has a next page in the reviewer's list `71ea85c0`
- **chore:** npm run sync — after the NL corrections `86ffe258`
- **docs:** two NL cards; pt-batch-timing and br-post-oas-link answers recorded; NL's pass logged `e119aada`
- **fix(nl):** De Luisterlijn's call cost; the true source of "AI-verordening"; Offlimits re-checked `3c6f30c0`
- **research(NL):** apply the 10 October verification (verify-20261010-0628) `c749e4d9`
- **docs(handover):** pt drafted through the Batch API; NL's halves ran by hand `59f3737b`
- **chore:** npm run sync — after the pt batch drafts `148c12a0`
- **fix(batch):** read a file block closed with REPORT>>> as the file `eb7469b6`
- **fix(batch):** an "ok" line is a pass; a new locale's draft notice must say DRAFT `a4b477c1`
- **chore(batch):** NL's research halves ran by hand on 10 October; take nl-verify-halves out of the CI queue `1473aa4b`
- **feat(pt):** draft the pt edition's 64 content pages through the Batch API (run pt-20261010-0601) `5676959c`
- **docs:** record pt-batch-timing = a; handover for !235 `669328f2`
- **chore:** npm run sync — changelog after merging main `acd65bd4`
- **chore:** npm run sync — changelog after merging main `0bdb506b`
- **chore:** npm run sync — changelog after rebasing on main `d10b640f`
- **docs(decisions):** record br-post-oas-link = a (answered on the page) `be204ff6`
- **chore:** npm run sync — changelog after rebasing on !227 `9c1f6a81`
- **chore:** npm run sync — changelog for the Decisions count fix `b01570f5`
- **fix(decisions):** the page's heading counts live; the reported count reads the page's answers `5af42add`
- **docs(decisions):** CI runner re-run, 10 October 06:28 UTC, on ci-e2e-on-main and ci-runner-light-slot `c1cfccfc`
- **chore:** npm run sync — after the ro Data Combination sync `0e150482`
- **docs:** handover for the nl/ro review-links workstream; card dc-target-2012 `543b2b8a`
- **chore:** npm run sync — changelog after merging main `5cf9350e`
- **chore:** npm run sync — changelog after merging main `f015e487`
- **fix(watch-mr):** wait out an unchecked MR and re-arm, instead of failing `8e6d454b`
- **docs:** optiplex16 has 14 cores (6 P + 8 E) — four workers stay `3a403df1`
- **ci:** keep Playwright at 4 workers (Codrin, 10 October) `e47f5c33`
- **ci:** Playwright 3 workers; record ci-e2e-on-main = c and ci-runner-light-slot = b `48bae11c`
- i18n(ro): carry the Data Combination copy read (#42) into combinarea-datelor `0d56a6ae`
- **chore:** npm run sync — after the nl Data Combination sync `f18335b5`
- i18n(nl): carry the Data Combination copy read (#42) into datacombinatie `3164c3df`
- **docs(decisions):** card pt-batch-timing — translate the pt pages as soon as the API limit is raised, or after proposal 25 `ddbc69f1`
- **docs(handover):** pt reviewer gets the secure link; blog posts reviewed like pages (!229) `d78b7a74`
- **chore:** npm run sync — after the review-link change `cdedd379`
- **feat(review):** secure reviewer links for pt, and blog posts reviewed like pages `bd284990`
- **ci:** no e2e suite on main — semi-linear merges make it redundant (ci-e2e-on-main = c) `4667aafe`
- **docs(handover):** run-off post live; pt draft with the reviewer; AI notice enforced `385d87d6`
- **chore:** npm run sync — changelog after the CHECK 35 audit fixes `f52c4c61`
- **ci(check 35):** re-audit N1-N4 - match the stylesheet against the notice's real ancestor chain, add a browser spec `8767410e`
- **ci(check 27):** an empty chrome translation counts as missing `40cb5d4b`
- **chore:** npm run sync — changelog for the CI speed and Decisions fixes `5121fb8b`
- **fix(decisions):** the page counts open cards at once; two CI cards `df39503b`
- **ci:** four Playwright workers, and no e2e suite for docs-only changes `e19253b4`
- **ci:** CHECK 35 audit fixes F1-F6; the AI notice prints too `635a752b`
- **ci:** CHECK 35 fails any page that does not carry the AI notice `1dcc511b`
- **chore:** npm run sync after merging main `836b66bf`
- **chore:** npm run sync — run-off post dated 10 October `a65431e8`
- **content(blog/pt):** carry the English date change; translated-from en\@47a6d75 `4144c8ee`
- **content(blog):** Brazil run-off post dated 10 October, the day it goes live `47a6d75a`
- **chore:** npm run sync — after the run-off post fixes `7f18e69e`
- **docs(decisions):** card br-post-oas-link — which OAS copy the pt run-off post links `378df4b8`
- **fix(blog/pt):** br run-off post, Fable pt review M1-M6, S1-S5 and D1(a); carries the English fixes (translated-from bumped to c37163e) `99c3ad37`
- **fix(blog):** br run-off post, Fable verification fixes (deepfake paraphrase not a quotation; ABIN 'possibility'; source titles name candidates; court-controls and fake-ads wording; gov.br; OAS Portuguese version noted) `c37163ed`
- **chore:** npm run sync — after merging main (claims and translations page dates) `87608f25`
- **chore:** npm run sync — run-off post, pt blog draft, ledger rows (2026-10-10) `7bf23ced`
- **content(blog):** pt draft of the run-off post, the pt blog, ledger and evidence `04d69ba2`
- **docs(decisions):** record br-runoff-warning = a; inform, never warn `b47c96f1`
- **content(blog):** Before Brazil's run-off — what is documented about influence online `7462c33e`

9 October 2026

- **docs(research):** Brazil 2026 influence search, Fable-verified; card corrected `a4c2a8e4`
- **docs(decisions):** card br-runoff-warning — warn Brazilians before the run-off? `04a40dee`
- **chore:** npm run sync — pt Data Combination English date after #42 (2026-10-09) `33001b2b`
- **docs(handover):** pt batch measured — 64 pages, drafts $9.35–19.03 (#66) `1f5831e7`
- **chore:** npm run sync — main's translation-status snapshot was stale `8b5cafde`
- **feat(#99):** the batch pipeline runs from a scheduled pipeline (docs/30 §11) `76564a6a`
- **docs(review):** CHECK 44 — the CI fetch of main works on the runner `1a1ce0e9`
- **test(a11y):** a started edition needs a page folder, not only a slug dictionary `f3b6456f`
- **docs:** wrap up the 9 October non-localisation session — #42 done, #99 dated, handover current `ebd85f58`
- **chore:** npm run sync after CHECK 44 `a0c65c12`
- **checks:** CHECK 44 — no private email address reaches main `5e590dc3`
- **checks:** apply the Fable audit of the pt scaffold (docs/review/checks-audit-pt-scaffold-2026-10-09.md) `802ba547`
- **docs(handover):** the Brazilian edition's state after 9 October — four MRs, next steps, reviewer questions `0229376b`
- **docs(32):** fresh-project move for a clean history; card commit-email-history answered `6238c022`
- **chore:** npm run sync after the pt scaffold `2a4b1b54`
- i18n(pt): scaffold the Brazilian Portuguese edition for the batch translation run `04f70384`
- **fix(scaffold):** UTH TODO written as a comment; name npm run posters after og and handouts `bbb4133f`
- i18n(#66): the four approved Brazilian additions in fixed.mjs ADDITIONS.pt `5e97a502`
- **docs(decisions):** card commit-email-history — the work email in main's history `e0ccb69b`
- **review(#66):** Brazil Additions Review page for BR.md proposals 21–25 `79b33056`
- **docs(decisions):** pt-edition-now answered b — Brazil is the hold's second exception `43d62bf5`
- **docs(decisions):** card pt-edition-now — start the Brazilian edition ahead of the nl/ro reviews? `253820f2`
- **chore:** npm run sync after the Data Combination copy edits `685cb052`
- **copy:** Data Combination demo — apply the Fable copy read (#42) `2da1f832`
- **docs(30):** plan for running the batch pipeline from a scheduled pipeline (#99) `8aceb715`
- **review(#42):** Data Combination Copy Review page and its generator; Your Queue, REVIEW\.md and the handover point at it `31a4ad3e`
- **docs(decisions):** dc-meta-setting-name names the same check as fr-nl-meta-labels `6580deb6`
- **review(#42):** Fable copy read of the Data Combination demo; four cards; verify-batch-rest answered b `c3720eff`
- **feat(batch):** verify a research dossier in parts, one request each (#99) `e3d1eb01`
- **docs:** handover — the seven-dossier verify batch already ran (!204); next is verify-batch-rest `4db89d8e`

8 October 2026

- **chore:** npm run sync after the research verify batch `705c3df6`
- **research:** Fable batch verification of IN, MX, RO and SA; BR, EG, NL paused (#82, #99) `07f9e9b4`
- **chore:** record the page answers eu-rank-candidates a and verify-batch-82 a (8 October) `e0578f44`
- **docs(#116):** re-score German, Polish, Hungarian and Italian with a reviewer candidate each `b07851e2`
- **docs:** eu-reviewers = b — candidates for German, Polish, Hungarian and Italian `6afc1109`
- **docs:** handover — the walkthrough of milestones 07–10 (8 October 2026) `a4326569`
- **docs(#116):** rank Polish, Hungarian, Italian and German `c339929e`
- **docs(#38):** the book-links plan and wording, ready for the first link `302f4e11`
- **docs(decisions):** record worker-request-logs as done (same edit as !200) `c46272c6`
- **docs(decisions):** card verify-batch-82 — re-verify the country dossiers by batch `2e59ec2d`
- **chore(worker):** switch off Cloudflare invocation logs `71d6bb51`
- **docs:** handover — research verification built and used; answers of 7–8 October `c99f76c0`
- **docs(#38):** apply the research verification to the book-affiliates dossier `e00c79ca`
- **fix(#99):** page cap 150k tokens and a cut-off flag; the first verification report `5f0cb640`
- **chore:** record the page answers of 7–8 October (uth-slug b, dc-copy-read-model a, worker-request-logs a, book-links-plan b) `f272eaa7`
- **feat(#99):** research verification as a batch (docs/30 §10) `e51920f0`
- **docs:** handover — nl slugs, tracker pass and board mechanics merged `14046d91`
- **feat(batch):** give the translator settled words, fixed quotations and approved local additions (#99) `dce7aa43`
- **chore:** walkthrough of milestones 07–10 — parked issues, deferred editions, sharing refs `07cf8c95`
- **docs:** #38 plan card for per-country book links (book-links-plan) `7aa105d3`

7 October 2026

- **feat:** form messages are counted, not emailed — store only until Odoo (#118) `46578007`
- **docs:** the Batch API test's results — docs/30 §9, the handover, a Decisions card `b628b778`
- **feat(batch):** the brief learns from the test — settled headwords, no tilt, a read-through, same-number glosses `68f44adb`
- **docs(30):** what the test settled — the pre-warm does not reach the batch; sites can refuse web fetch `95213ad5`
- **feat(batch):** the build runs once at the end of a run, when no page is left to repair `67029cf3`
- **fix(batch):** attribute check failures to the page they name; check command; pre-warm opt-in `9a9dcf04`
- **fix(batch):** --stale includes the home page; plain branch name; a failed plan cleans up its worktree `72415ec8`
- **feat:** the Batch API pipeline — translation drafts as a batch, checks, repair, Fable review (#99) `b5593bdf`
- **docs:** tracker-superseded report — closes done, MR !191 `0584ca1c`
- **chore:** fold the superseded tracker issues (decision tracker-superseded = a) `7993c77b`
- **tools:** the board reads founder-decides cards, Blocked by lines and due dates `136417bb`
- **chore:** regenerate snapshots after the nl slug change `9ce850e1`
- **nl:** /nl/deel/deel → deel-dit, /nl/symptomen/geronseld → geronseld-voor-geweld `12f56919`
- **docs:** handover — #34, #43, #46 done and live `75e7b30d`
- **docs:** handover — !181 merged, !186 and !187 open `f40a5581`
- **chore:** npm run sync after merging main into the forms branch `f7a2563c`
- **fix(#34):** a push to main no longer cancels the waiting uptime check `e5aa155d`
- **docs:** handover — #83 is no longer held `0b4dfc8e`
- **docs:** handover after the 7 October non-localisation session `36b88878`
- **docs:** Decisions — card worker-request-logs (the privacy page's "no personal data" in Cloudflare's logs) `67716333`
- **docs(#43, #46):** the build report names the commits after the rebase onto efa39d9 `b09e8536`
- **docs(#43, #46):** build report for the contact and volunteer forms `8a158b17`
- **chore:** npm run sync after #43/#46 `68b96cf3`
- **docs(#43, #46):** the forms on the Worker, where they are described `bbd365d9`
- i18n(#43, #46): the contact and volunteer forms and the privacy section, nl and ro drafts `b2098026`
- **style(#43, #46):** the forms' button and field outlines in the site's own voice `4059d447`
- **feat(#43, #46):** contact and volunteer forms on the site's own Worker `4caac1d6`
- **test(#83):** five specs that named a heading level follow the shift `efa39d9f`
- **fix(#34):** the uptime job keys on the schedule's description, not a variable `166936cc`
- **docs:** Decisions — five answers of 7 October recorded; three cards (forms mail, demo slug, #42 reader) `736db246`
- **feat(#34):** hourly uptime check as a scheduled GitLab pipeline `92e68042`
- **chore:** npm run sync after #83 `ddd2733b`
- **feat(#83):** carry the lagging English changes into six nl/ro drafts `04f37848`
- **feat(#83):** page titles as h1 in the Dutch and Romanian drafts `752f1aeb`
- **feat(#83):** each page's title is its h1 (English and shared) `86e9bddb`
- **chore:** the board gets a Parked column; Codrin's answers on milestones 00–06 `7ece1620`

4 October 2026

- **chore:** npm run sync after the tracker review `d23e1a1f`
- **chore:** tracker review of 4 October — board reasons, eleven decision cards `d2df3f34`

3 October 2026

- **docs:** bring docs/08 in line with the social decisions of 1 October `be0b4507`
- **docs:** handover follows #15 and #109 closing `7eb7b06a`
- **chore:** npm run sync after the How We Communicate change `fb80c1b6`
- **content:** How We Communicate links the first report instead of a placeholder (#109) `ec6377c4`

2 October 2026

- **ci:** setup-review-ci.sh accepts a fine-grained token when GitLab refuses a project token `43921373`
- **docs:** Your Queue moves the CI-secrets step to #15, the first reading to Q4 `68f15244`
- **docs:** ci-public-job-logs built — public\_jobs is false on the project `f7556bb9`
- **docs:** handover follows the Q3 report going live and #56 closing `72855b18`
- **docs:** record the q3-report-figures and q3-report-money answers in the ledger `4307d7e6`
- **chore:** npm run sync after the Q3 report publish `92d5819b`
- **blog:** publish the Q3 transparency report (#56) `87f3eccf`
- **ci:** the translation reviewer's secrets are protected, on protected branches only (#110) `552c5821`
- blog (draft): the Q3 report takes its two answers — no figures, costs unsized (#56) `f4098803`

1 October 2026

- **docs:** two Decisions cards for the Q3 report; board and handover follow #56 and #110 `74a3e374`
- **docs:** Decisions card for the CI secrets before going public (#110) `ebac9eca`
- blog (draft): the Q3 transparency report brought up to 30 September (#56) `fdd369c1`
- **docs:** Decisions page gets an open/answered/all filter; D1 and D3 recorded `0f0bed88`
- **chore:** board says #55 is Codrin's for the weekend of 3–4 October `2c28e28d`
- **docs:** record the social-images-public answer and !161 as merged `f0762ca9`
- **docs:** record the md-languages-note answer in the handover `2b9adb05`
- **content:** note Russian on the four MD registry entries in Romanian `c3948b85`
- **chore:** npm run sync after the Decisions wrap-up `1bbcc04c`
- **docs:** wrap up the Decisions-page answers — MR numbers on the cards, a card for the public slides, handover and board notes `5a65ef15`
- **docs:** record twelve Decisions-page answers of 1 October; answer the handle and Postiz questions on their cards `4f57b66a`
- **chore:** npm run sync after the docs/29 checklist update `f7dbc746`
- **docs(29):** the checklist names the rendered avatar, banners and slides `59d0265c`
- **chore:** npm run sync after the page-feedback control `344cfc31`
- **chore:** npm run sync after the newsletter and social answers `21638e6f`
- **docs:** apply Codrin's 1 October answers on the newsletter and social cards `fc29d201`
- **feat:** "Did this page help?" Yes/No on English content pages (#45) `14c2a266`
- **feat:** monogram favicon, social avatar, banners and Instagram slides from text `9a400fb8`
- **chore:** npm run sync after the 1 October handover `c8596667`
- **docs:** handover after the Moldova integration and #20/#36/#45/#55/#96; reasons on five cards `e969a42f`
- **docs:** 14 decision cards in the ledger — feedback widget (#45), newsletter (#20), Moldova (!153), social launch (#55) `9723aa9b`
- **chore:** npm run sync after Fable review fixes A1-A6 `f1e1ddd7`
- **fix(ro):** Fable review of !153, A1-A6 (restore ODIHR hedge, confidential, state broadcaster, wording) `b549d074`
- **chore:** npm run sync after the a11y manual-layer commit `b8973482`
- a11y: the manual layer as far as a machine can take it (#36) `37658919`
- **chore:** npm run sync after the Moldova integration `a882a4ed`
- **content:** Moldova joins the Romanian edition — 7 resources, 5 law-layer entries, elections paragraph `7286bbe6`
- **docs:** social launch kit for issue #55 (docs/29) `5fee8590`
- **docs:** newsletter editorial pass 2 (issue #20), Part A fixes A1-A10 `18b88fd3`
- **tools:** scripts/report-sharing.mjs writes the quarterly report's Sharing section (#96) `4f83e788`
- **docs:** the localisation hold in the handover and the decision ledger `446e8652`
- **tools:** board.mjs holds localisation and names issues without a milestone `7a79bfe9`
- **docs:** how every reply ends; handover after #114; ro-danilet-spelling answer in the ledger `76544085`
- **docs:** checks audit — record the build result `ae4b5035`
- **docs:** checks audit — 'Applied on 1 October 2026' with the plant table `bff9ed99`
- docs+checks: the last locale-code copy reads LOCALE\_CODE; docs say so `f8b0f53a`
- **checks:** lint CHECK 26 prints every WARN problem, and the summary last `69238489`
- **checks:** CHECK 15's endpoint rule reads links only, outside comments `99d0fd9e`
- **checks:** CHECK 31 strips a trailing ASCII ' from a dossier URL `c9aeda05`
- **checks:** CHECK 20 refuses a resource desc.\<loc> blank or copied from English `6966b58e`
- **checks:** read blog frontmatter block scalars (CHECKs 25, 26, 29, 33) `3a7d672f`
- **checks:** CHECK 23 pools the +p/+li wrapper tolerance over div, ul and ol `f6504ae7`
- **checks:** CHECK 42 reads a day-month-year date as one ordered number `9e23804e`
- **docs:** checks-auditor report on the 1 October check fixes, as written `012ae6a4`
- **fix:** RSS autodiscovery link points at each locale's own feed `8180f3c3`
- **checks:** fold locale-code regex copies into the shared LOCALE\_CODE pattern `2562b35c`
- **docs:** docs/28 rows 9, 15, 20, 23, 25, 26, 29, 31, 41, 42 from the groups A–E check-fix reports `02eaf866`
- **docs:** group B report — plants for #114 items 2 and 8, proposed docs/28 rows 9, 15 and 23 `27e48f9c`
- **checks:** CHECK 23 names an endpoint's in-locale twin without a trailing slash (/nl/rss.xml, not /nl/rss.xml/) `108ea03d`
- **tools:** scripts/board.mjs prints the board per milestone and the next tasks `151b653c`
- **docs:** group A fixes report — plants, today's hits, proposed docs/28 rows 25, 26, 29, 31 `6486a14e`
- **checks:** #114 items 2 and 8 — CHECK 23 structural counts, protocol-relative links, word ratio, endpoint fallbacks `b7a64ee8`
- **docs:** group E report; docs/20 step 2 names locale-code.mjs instead of three open two-letter places `dffdfffc`
- **docs:** group D check-fix report — plants for CHECK 41 and CHECK 1, proposed docs/28 row 41 text `9f00942e`
- **docs:** group C report — CHECK 42 plants for #114 item 3 and re-audit finding 5; proposed docs/28 row 42 `154820e0`
- **checks:** CHECKs 25/26/29 read registry, resource and blog texts; CHECK 31 rejects blank or copied text.\<loc> and curly-quoted URLs `8ca23c98`
- **checks:** one locale-code pattern; CHECK 20, reviewPageId and the review route take fil and pt-BR `c01e6a16`
- **checks:** CHECK 42 reads dotted dates and colon times as the translation writes them; tells an unknown pointer from an off-branch one `992acb0b`
- **checks:** CHECK 41 reads decimal-comma and 3-decimal percentages, blanks quoted/spaced note keys, sign-strips deck-allow; CHECK 1 knows titles `e8a1aea4`
- **docs:** handover after the L4–L11 check fixes (!144) `d6903903`
- **docs:** R1–R3 plants for the re-audit fixes; docs/28 row 41 reads dates in any case `f077e378`
- **checks:** the Fable re-audit's findings 1–3 on CHECKs 1 and 41 `5c69d4b4`
- **docs:** plants for L4, L5, L7–L11 against main and the branch; docs/28 rows 31 and 41 `c19b1243`
- **checks:** CHECK 1's negation may carry one comma-delimited aside (#114 L4) `11bc41aa`
- **checks:** CHECK 1 sentence scope and exemptions; CHECK 31 tag and URL edges; CHECK 41 figures and dates (#114 L4, L5, L7–L11) `2599bd7a`
- **docs:** handover after the check follow-ups (!142) `08eda352`
- **chore:** npm run sync after the M1–M3/LM6 check fixes `7f15096e`
- **docs:** the checks-auditor's re-audit of M1–M3/LM6 and what was applied `671f6024`
- **fix(checks):** the auditor's pass over M1–M3 — passive with a determiner, noun verbs, clause breaks, plain 'cited', wrapped 'per cent' `6bc6145c`
- **docs:** record the M1–M3/LM6 plants; correct docs/20 and docs/28 overclaims `247c0965`
- **fix(checks):** close the silent passes M1, M2, M3 and LM6 from the 1 October audit `617495b5`
- **docs:** handover after the #114 check fixes (!139) `8d5b74cd`
- **chore:** npm run sync after the RSF and CPJ section `990a3862`
- nl, ro: carry the RSF and CPJ section into the journalism drafts `5c44ba26`
- **en:** the journalism page names RSF's World Press Freedom Index and CPJ `02e0f59c`
- **docs:** the checks-auditor's pass over the #114 fixes (1 October 2026) `fa385818`
- **chore:** npm run sync after the #114 check fixes `e052f47a`
- **docs:** record the plants for #114 items 4–6, 9–12 `85403a59`
- **docs:** CHECK 41 and 31 rows, per-locale RSS status (#114 item 12) `bf3576df`
- **checks:** CHECK 23's digit key keeps the decimal mark (#114 item 11) `a3403491`
- **checks:** CHECK 31 matches whole dossier URLs and ignores commented tags (#114 items 9, 10) `8b0168b8`
- **checks:** CHECKs 25 and 26 take the locale from parsePageFile (#114 item 6) `38170277`
- **checks:** tighten the deck's CHECK 1, 4 and 8i tripwires (#114 item 5) `5367c156`
- **checks:** CHECK 41 matches whole figures, normalises units first, skips notes (#114 items 4, 12) `50435ba8`
- **docs:** record the post-review batch (!136, !137) and the Danileț spelling card `966374b1`

29 September 2026

- **chore:** npm run sync after the post-review batch `f15dacfc`
- **ro:** apply the Fable review of the post-review batch `1067a980`
- docs/25: ledger the Romanian Danileţ sentence (#58) `2fe4c9f6`
- **ro:** post-review batch — Danileţ, the HBSC team, three registry texts (#58, #60, #113) `c2a1cf39`
- **chore:** npm run sync after the post-review batch `bc82d349`
- **nl:** apply the Fable review of the post-review batch `7f2fa87e`
- nl mental health: add the Trimbos statement and HBSC 2025 to the Deeper box (#60) `c1612416`
- **fix:** apply Fable batch findings to nl deel/bezwaren/blog pages (#113) `88e38851`
- **chore:** npm run sync after the !135 review entries `81464852`
- Apply the Fable review of !135 and correct the clic card `bff82424`
- **chore:** regenerate generated snapshots after the #113 page-wording fixes `389bc1e2`
- Apply the Decisions-page page-wording fixes for nl and ro (#113) `f1821079`
- **docs:** mark the applied Decisions-page answers and record the rest as queued `2805dc3e`
- Apply the answered Romanian chrome, terms and handout choices `4b8fcaba`
- **docs:** record Codrin's 29 September answers in the decision ledger `138c09df`
- **docs:** a decision ledger — every open decision on the Decisions page, answered there `86524004`

28 September 2026

- **docs(handover):** record the Batch API test result `a551fef9`
- **chore:** regenerate the status snapshot — main has been stale since !127 and !128 merged together `4118d04a`
- **docs:** name the model to create a new chat with, beside its first message `9a03ca4e`
- **docs:** always give the exact first message for a new chat; next step per workstream `8386037c`
- **docs:** advise a fresh chat, unasked, when it saves context cost; record the batch test `6a9ed51b`
- **chore:** regenerate the changelog and status snapshot `fca4fe5c`
- **fix(watch-mr):** stop on a failed pipeline, not only on a conflict `54074370`
- **chore:** a .env for the Batch API key, and deny Claude Code reading it `f7d0b9df`
- **chore:** work more efficiently — a model map, a lean main chat, a handover, one watch script `892c33dd`

26 September 2026

- **chore:** regenerate the changelog, page dates and status snapshot `38dcfe8c`
- **nl:** apply the Fable review's objective fixes (26 September, issue #82) `65e5eaba`
- **fix(ro):** apply the Fable review's must-fix items to the Romanian edition `3fc542b6`
- **fix:** the Fable review's data fixes — registry texts, handouts, the blog check `7e95a862`
- **chore:** regenerate the changelog and status snapshot `0b8acfd5`
- **review:** the checks audit owed in #82 — twelve findings, each proven by a plant `130b9334`
- **review:** Fable pass ro 3/5 (laws and truth) — recorded `d0627f8b`
- **review:** Fable pass nl 2/5 (symptoms) — recorded `6f948588`
- **chore:** regenerate the changelog and status snapshot `62825651`
- **review:** Fable pass ro 5/5 (share, about, the rest) — recorded `720dc280`
- **review:** Fable passes ro 2/5 (symptoms) and nl 3/5 (laws, timeline, truth) — recorded `6541eccf`
- **review:** Fable passes nl 1/5, nl 4/5, ro 1/5, ro 4/5 and the handouts — recorded as they finished `bb357022`
- **review:** Fable pass nl 5/5 (share, about, the rest) — recorded as it finished `21aa5b14`

25 September 2026

- **data:** approve the three Romanian law entries (Codrin, 25 September 2026) `f868ea38`
- **chore:** regenerate the changelog and status snapshot `8b5a7238`
- **research:** RO #58/#59/#60 — the verifier's corrections applied, both passes recorded `3b25a45d`
- **research:** RO follow-ups on issues #58, #59, #60 — three dossier sections `a65f1288`
- **research:** NL #58/#60 — the verifier's corrections applied `69cdcffd`
- **research:** NL free-speech case and youth mental-health debate (issues #58, #60) `46a7111a`
- **test:** automate two manual layers of the a11y audit — reflow and the timeline colours `b68dea46`
- **editorial:** the pass issue #20 asks for, on the 8-issue sequence `b41f12ed`
- **chore:** regenerate the changelog and status snapshot `c197559e`
- **research:** eating-disorder help in Romania (#84) — the finding is a sourced negative `cb8bf02a`
- **research:** RO eating-disorder help (issue #84) — the sourced negative `2527fd29`
- **research:** carry the verifier's 'not acted upon' correction into P11's own entry text `ffcb1af2`
- **chore:** regenerate the changelog and status snapshot `dd6fd942`
- **research:** Moldova dossier — verifier's corrections applied, pass recorded `e257ae43`
- **research:** Moldova (MD) dossier for the Romanian edition `af7ac0f5`
- **feat:** country data sheets — facts reviewed per country, pages per language `becf6402`
- **feat:** review English on the page too — for the facts, until a person has read it `2ef6346c`
- **feat:** the review block as a full-width band, with "review the next page" `bedf7ea4`
- **fix:** say "no admin token" (503) instead of "unauthorised" (401) when none is bound `a46d5e39`
- **feat:** bind the review KV namespace — the intake goes live `b475c7cc`
- **feat:** the review block under every draft page `b2d5d75e`
- **fix:** the review page must reach the Worker before the asset does `9de1574d`
- **sync:** the changelog after the poster commit `12fde67e`
- **feat:** posters — one message, wall-sized, from the handout text (#98) `fb2d14a7`
- **sync:** page dates and changelog after the intake commits `dca37a4c`
- **refactor:** the private review sheet reads the shared page list `4dff9268`
- **feat:** the reviewer intake — outside reviewers record verdicts on the site itself `23cbafce`
- **docs:** REVIEW\.md lists every review page, and what rebuilds it `f5b4f8f5`
- **docs:** a review sheet per language edition (#9, #10) `fff54fc7`
- **docs:** the queue page hands over the thing, not just the ticket `30cb9e72`
- **lint:** the freshness warning reaches the log, and a generator for Codrin's queue `3dbf0158`
- **lint:** CHECK 41 says when the page a deck figure comes from has moved on `6199dfc1`

24 September 2026

- i18n: the eleven Fable passes of 24 September are in the review log `68a1fad7`
- **fix:** CONDUSEF is out — the tool it sends a defrauded reader to does not answer `474a4714`
- **docs:** a decision is restated in full, or not at all `8da51e35`
- **lint:** CHECK 42 keeps a translated blog post in step with its English `ba903cb3`
- **fix:** an emergency number goes first only when it is the reader's own `16cf7c4c`
- **feat(nl,ro):** the Dutch and Romanian blogs, and both editions are complete `77ac5ea5`
- **refactor:** the blog's markup has one home, ready for a second language `1a64825b`
- **content(en):** the soft-launch post carries the current headline, and says it was edited `0a923c65`
- **sync:** the changelog after the help-line commit `6307d378`
- **feat:** child-safety and fraud help lines for Brazil, India, Mexico, Egypt and Saudi Arabia `8714850a`
- **docs:** the rules leave docs/16 for AGENTS.md; closing a finished issue is allowed `c9469a47`
- i18n(nl,ro): the deck is "de presentatie" / "prezentarea" where you download it `25764403`
- **docs:** 40 checks, after CHECKs 40 and 41 landed on main `2ab608c9`
- i18n: annotations at the corrected English, and the Fable pass recorded `2327938e`
- **fix:** the deck link said the wrong thing about reuse, in six places `19068f1f`
- **feat(en):** the deck is linked from For Educators and Share This `69bc6b0f`
- **sync:** the snapshots after merging main `e85a886b`
- **lint:** CHECK 40 runs the deck's guard, CHECK 41 checks its figures against the site `65badb0c`
- **sync:** the changelog after the deck-guard commit `b03112ec`
- **deck:** the guard audit's fixes — and two overclaims it was letting through `880f4328`
- **lint:** the checks audit's fixes to CHECK 39, and the // bug it found `f3ebe287`
- **docs:** the check count is 38, numbered to 39 `7ce5c5a5`
- **docs:** AGENTS.md is the short rulebook; CLAUDE.md imports it `41353fc5`
- **lint:** CHECK 39 catches a placeholder before a reader does `247eb8c7`
- **sync:** the snapshot after merging main `3f209aef`
- **sync:** the deck's date, after the deck commit `b17e2f64`
- **deck:** the Fable read-through's fixes, and seven tripwires so they hold `f5f2c582`
- the Fable reviews of 24 September: every objective fix from eleven passes `d87f2f7d`
- **wip:** review fixes before the annotation bumps `187026ea`
- **sync:** the status snapshot after the merges `adafb3dc`

23 September 2026

- CI retries an infrastructure failure, never a script one `3b27aeaf`
- i18n(demos): the Tracking & Targeting islands read their words from one table — Dutch and Romanian readers meet a Dutch and a Romanian widget `86b57d3e`
- one command to start an edition, and lakh/crore in the parity check `332b4693`
- **artifacts:** the card and the handout take their fonts and direction from the site, and refuse to render tofu `70ab5c72`
- **tests:** every started edition gets the accessibility sweeps, and the published i18n path runs before it ships `ab752261`
- docs/28: what CHECKs 9 and 23 now cover `d70962ea`
- **parity:** an annotation must point at a commit on this branch `5f59dc79`
- **feat(en):** the claim ledger is a page of the site, generated from docs/25 `6481d0db`
- **checks:** three gaps the audit proved, closed and proven `b0af73c0`
- REVIEW\.md at the repository root: every queue that needs a human decision, and the page that answers it `8fe6c94e`
- Codrin's approvals from the review page; the home line; 1911 at standard rate; the review page as the standing mechanism `aadfa036`
- **content(en):** the home line reads 'There is no conspiracy. The harm emerges from the incentives.' (Codrin, 23 September; the About page's own framing) `f1b0780a`
- decisions 9, 11, 13: online-safety-act protected from translation; 'duty of care' (nl zorgplicht, ro obligație de diligență) in TECHNICAL; 'deployer' → ro implementator in OFFICIAL (the AI Act's own Romanian text), English in sight on first use `897a3ae9`
- CHECK 24 also proves the www host redirects to the apex (the Cloudflare rule of 23 September 2026); docs/16 records the rule `e25f1fe7`
- **sync:** changelog `61c23224`
- **checks:** the Fable audit's findings on today's changes, fixed and proven `26c19e86`
- i18n: the Dutch source titles on the Romanian Donate page carry lang; both Donate annotations current `88ed088f`
- **sync:** snapshots after both editions caught up (nl 66/66, ro 66/66; blog outstanding) `61eb716b`
- the retired 'ecosystem' slug leaves the Romanian dictionary; the ANCOM entry's note records the migration `ca1d7b8d`
- Merge Dutch part A; the retired 'ecosystem' slug leaves the Dutch dictionary (no Dutch page links it) `ab938170`
- i18n(ro): carry the 23 September English changes into 11 pages, add the two new law pages, migrate ANCOM to the registry `37319eaa`
- i18n(nl): quote the EU texts in their own Dutch, not back-translated `bacec50c`
- i18n: Contribute annotations follow the English commit `74c70ccd`
- CHECK 25 leaves a source's printed title alone (a Dutch government page titles itself with 'u'); the Contribute page no longer hand-counts its pages (en, nl, ro); Dutch part B merged `a1f6018b`
- i18n(nl): carry the 23 September English changes into 11 pages, and add the two new law pages `b14d7d47`
- i18n(ro): carry the 23 September English changes into 14 pages, part B `ffe0dbc1`
- i18n(nl): sync 14 pages with the English of 23 September, and the Dutch help-line texts `b2593928`
- docs/27: seven law pages, five with a national-law topic `49ef3515`
- tests follow the decisions (the probe button, the loop anchor, the fourth card); Dutch source titles on Donate carry lang `97b1eff2`
- **registry:** the BR and NL national-law entries as the Fable verifiers passed them (decision 21) `df5e778c`
- **sync:** snapshots after the content merges (67 English pages) `8b177ab3`
- help lines: the verifier's audit-trail notes (937's source for 'psychological', the FTC alert's date); docs/16 says what the AI Act asks of whom `8088aaad`
- **lint:** restore the markup helpers CHECKs 2, 3, 4, 6 and 17 read — deleted by mistake with CHECK 1 (6139ea6), so the five checks had passed on nothing; a guard now fails the lint if a helper is missing or the scan is empty (proven with a planted --pico variable and inline style in Base.astro) `bffd6684`
- **chore:** regenerate the derived manifests after the sourcing pass `29a5f808`
- **fix(content):** Sources blocks on the last six English pages without one `79176d58`
- **chore:** npm run sync after the two new law pages `0376844d`
- **feat(laws):** two new law pages — UK Online Safety Act and EU AI Act `65c1e840`
- **content(en):** Mental Health carries the experimental studies and the critics' meta-analysis the objections page cites `77555847`
- research/NL: the Fable verifier's dossier rows — the AP under the UAVG, the gazette for the Uitvoeringswet, the De Mol press release, the age non-paper `a7f372e8`
- **research:** the Romanian verifier's must-fixes — 1911 without a cost claim, the ANSPDCP entry on its own 2025 figures, the DSC entry's date sourced, the Russmedia name; dossier rows `3ef517bf`
- help lines: Offlimits' hours from its own hours page (Fable verifier); the merged ledger's shelf-life rows back in the table `f3f1586d`
- **feat(objections):** the four likeliest first objections, answered with evidence `c33bfd12`
- **content:** the Get Help layer works outside NL, RO, US and UK (decision 9a) `e0713315`
- **chore:** regenerate the derived manifests after the Ecosystem merge `a7966f82`
- **content(en):** the lawmakers page describes levers, the DSA page drops its verdict `0d030f0e`
- decisions of 23 September: search per edition, the probe on request, parity counts enforced, llms.txt generated, the demos checked, the loop closed `c6deffcf`
- **content(share):** merge The Wider Ecosystem into Organisations Worth Supporting `0426c1a5`
- docs/20, docs/26: two of the three demos now run in the edition's language `ba9d3627`
- i18n(nl, ro): the last three English changes carried; snapshots regenerated `6506388b`
- i18n(ro): the privacy page names every ?ref tag; "Cloudflare" on privacy and Contribute `51d3f851`
- docs/20: the English edition is 66 pages `e7905355`
- i18n(nl): the Gamification demo's mimicked apps now speak Dutch too `4ca4cb2d`
- i18n(nl): carry the 23 September English changes into 21 Dutch pages `87a179e7`
- i18n(ro): carry the 23 September English changes into 21 Romanian pages `1f19ded3`
- **content(en):** the Symptoms landing dated its story from 2000 in one description and from the 1990s in the other `e999d19e`
- i18n(nl): carry the 23 September English changes into the Attention Machine and Symptoms pages `8ab97449`
- i18n(ro): carry the English changes into the Attention Machine and Symptoms pages `73654f64`
- loose ends from the 23 September review: Tier 2 tests run again, one table fewer, dead CSP host, "Cloudflare Pages" `54556389`
- **sync:** snapshots `72c8d4bf`
- checks + code reconciled: one kicker table, one stylesheet, CHECK 28 reads the renamed label table `6139ea6b`
- **checks:** close the blind spots the 23 September audit proved (#107) `4e13cf37`
- **demos:** every reader-visible string of the two script-driven demos is now page markup `9b9265a0`
- share page: status spans announce; a message when copying fails `b9d3e265`
- Merge the code-review fixes; regenerate snapshots `dc361e37`
- Merge the documentation repair; regenerate snapshots `aa09941c`
- **fix:** the code review's objective findings in the layout, components and tests (#106) `3f7361ef`
- **content:** the Manosphere pipeline definition hedged like the others; RTB 'dozens' on Lawmakers; the Symptoms landing's related link below the cards; timeline test count `365b90cc`
- Merge the content-review fixes; regenerate snapshots `f3caf6e2`
- **fix(en):** the objective content errors from the 23 September review (#104) `c83cded8`
- **docs:** the 23 September documentation review — what was untrue, missing or misleading (#105) `bef04d81`
- **content(en):** Courts — why 40 states became 51 attorneys general `02107288`
- Merge the nl and ro syncs of the review fixes; regenerate snapshots `f1b73603`
- i18n(nl): the Meta–states settlement, the Romanian court sources, the share links `07a0f3b1`
- i18n(ro): carry the 23 September English changes into the Romanian edition `79211b83`
- **ledger:** the sleep pathway rows `a305a5c2`
- **content(en):** the sleep advice is now sourced, and worded to what the evidence shows (#103) `d21ee4e6`
- fixes from the 23 September review: live errors, and two safety nets `603c26c2`
- blog (draft): the report says where the money and the human review stand; parked till October `e19f1d93`
- **chore:** one command to set up the automatic translation review in CI (#15) `f2001777`
- Merge main; refresh the translation-status snapshot `0371d9cd`
- **sharing:** plain share links on the Share page (10.09, #93) `61b19261`
- **sharing:** printable one-page handouts per audience and language (10.04, #88) `7da0e461`
- Merge main into the Share page buttons `f4b156e8`
- i18n(nl, ro), docs: Share page send buttons `8192c4f7`
- **sharing:** a send button beside each suggestion on the Share page (10.03, #87) `097340b8`
- i18n(nl, ro): privacy — the send button at the foot of a page is counted too `6eaf91e4`
- **sharing:** a send button at the foot of every content page (10.02, #86) `310d4c34`
- **checks:** CHECK 32 must not need playwright to verify `e12a5519`
- **checks:** CHECK 33 — page descriptions, the sentence under the title in a preview `6aab5b4d`
- **content(en):** page descriptions are preview text — rewrite the ones that failed `8ffa5702`
- i18n(nl, ro): home standfirst `87bdcaff`
- **content(en):** home standfirst under the headline `b25fa09d`
- **sharing:** one preview card per language, the claim set large (10.01) `88fca178`
- **sharing:** link-preview images for every page, in every language (10.01, #85) `f6a04022`

22 September 2026

- **chore:** stop the generated changelog conflicting on every merge `9638ace9`
- i18n(nl, ro): Australia — a minimum age for accounts, not a ban from social media `1299c2be`
- **content(en):** Australia's law is a minimum age for accounts, not a ban from social media `7eb590c8`
- **fix(deck):** bring the intro deck in line with the current site (#89) `e875f9b2`
- i18n(nl, ro): home loop — revenue, which grows with influence `cc52cde6`
- **content(en):** home loop — 'Creators chase revenue / Which grows with their influence on you' `8e978e33`
- i18n(nl, ro): State Actors — the Senate report ran 2019–2020 `c5f92a84`
- **content(en):** State Actors body text — the Senate report ran 2019–2020 `42a40f20`
- blog (draft): the report's analytics paragraph mentions share counting `cc2b42f4`
- i18n(nl, ro): privacy — sharing is counted `f3f9514d`
- docs and privacy: describe sharing, the demo actions and the wired local-laws layer `732199f8`
- **sync:** snapshot after merging main `eb8928fd`
- **sync:** snapshot `aa21c9ee`
- resources and wording: audience blocks per edition (44a), Ecosystem registered (45a), research named as inoculation (nl) `7c5c3c53`
- i18n(nl, ro): the home subhead's third beat `f5e0ec05`
- **content(en):** home subhead — 'Not to inform you. Not to challenge you. Not to connect you. To keep you.' `7e32ef32`
- i18n(nl): "weerbaar maken" / "weerbaarheid opbouwen" replaces "inenting" and "inoculatie" for the method `c089fae6`
- i18n(nl, ro): Organisations from the registry; help for teens `fba805f8`
- **resources:** Organisations from the registry; help for teens (#37) `0f97f0da`
- i18n(nl, ro): the new home headline (English-change mode, first run) `17aced8d`
- **content(en):** new home headline — 'Can you trust your feed? It is engineered to keep your attention.' (decision 41) `4724fc05`
- **skills:** sync-translations gains an English-change mode; CLAUDE.md routes English wording changes to it (decision 42) `982f93e8`
- **tests:** home loop tests know the phone list replaces the diagram below 560 px `8f2c95cb`
- i18n(nl, ro): the demo actions and the send button `f989ea40`
- **demos:** one thing to do at the end of each demo, and a button to send it to one person (#19) `244ae316`
- blog (draft): first quarterly transparency report (#56) `fac5da1b`
- **tests:** the home loop at 320 px is the list, in en, nl and ro `64d7a014`
- i18n(nl, ro): home loop as a list on phones (decision 9) `50a27b44`
- local laws: \<NationalLaw> on the nl and ro law pages; spacing in the checked date `26b5f5dd`
- i18n(nl): apply the reviewer's decisions of 22 September 2026 `1c431322`
- local laws: \<NationalLaw> on the five English law pages; CHECK 31 in the lint (decisions 14–17) `233eac1d`
- **checks:** a parity-allow line now requires its local addition (decision 16) `1b89590c`
- i18n(ro): apply Codrin's decisions from the Opus review `255c1e2f`
- **ui:** demo fonts, home loop as a list on phones, wrapping mobile nav, spoken demo score `a6e3a965`
- i18n(nl, ro): How We Communicate — sources wording follows the English `ff3567b9`
- **content(en):** How We Communicate no longer says every claim has a primary source; docs/16 Cloudflare note `f8ff6f54`
- **analytics:** property 'demo-step', values prefixed with the demo's name `a6ae6864`
- i18n(nl, ro): privacy — demos are counted step by step `e7c3bbf5`
- **analytics:** 'Demo step' events — how far visitors get through each demo (#17) `0b0cbcec`
- i18n(nl, ro): 'How this site is made'; docs/16 records the AI disclosure and Cloudflare decisions `8149e4a9`
- **tests:** a Tab that stays on the document's last control ends the walk `17dc4030`
- AI disclosure: a notice in every page's footer, and the human review that applies `ba3c4e8f`
- **tests:** the keyboard walk ends when the document loses focus; glossary walk gets 90 s `924215ef`
- i18n(nl, ro): State Actors date and link, privacy analytics sentence; snapshot `28a3c468`
- **content(en):** State Actors — the 4 November statement was the day before the election `d75f5f6d`
- i18n(ro): carry the English findings of the Opus review (7967408) `180625d1`
- i18n(nl): carry the English Opus-review fixes into the Dutch edition `0a1757bd`
- **analytics:** count demo completions in Plausible (#17) `8c44dfeb`
- **chore:** the engine's command contract (#4); no token in URLs or instructions (#3) `071a2166`
- **content(en):** fix the English findings of the Opus review `79674081`
- **docs:** regenerate the changelog `5e9c76d0`
- i18n(nl, ro): content the stronger checks surfaced `dfeff334`
- **checks:** fix the 13 findings of the second checks audit, and close its gaps `ae5f033b`
- i18n status: log the Opus review of both editions; show the review model `347e6b36`
- i18n(ro): allow the local 2026 date on manosphere; de-duplicate the Georgescu gloss `b6a32561`
- i18n(ro): three precision fixes from the Opus research check `e0fd511b`
- **research:** apply the Opus research-verifier pass to the seven dossiers (#82) `8ab3af25`
- i18n(nl, ro): objective fixes from the Opus review of both editions `cbfe80c8`

21 September 2026

- **integ:** skills no longer expect local WebKit failures; snapshot refreshed `93bb3806`
- i18n(nl, ro): translated-from → 0839c03 for the pages the a11y commit touched `1274fb4c`
- a11y(04.01): scripted manual accessibility layer, and the fixes it found `0839c030`
- **research(SA):** Saudi Arabia dossier for the Arabic edition (#68) `498abfc1`
- i18n(nl, ro): carry the shelf-life re-check into the translations `43c41ed5`
- **research(IN):** India dossier for the Hindi edition (#69) `5bc5a9a3`
- **research(mx):** Mexico dossier for the Spanish edition (#67) `b225f07b`
- **research(EG):** Egypt dossier for the Arabic edition (#68) `e1e5d535`
- **feat(i18n):** right-to-left layout and fonts for new scripts (09.01, 09.02) `cd89c6d1`
- **research(BR):** Brazil dossier for the Portuguese (Brazil) edition (#66) `f6524f08`
- **chore:** npm run sync after the shelf-life re-check (page dates, change log, translation status) `f407cb51`
- **fix(content):** re-check the claims with a shelf life (issue 04.04, 21 Sept 2026) `578e2502`
- **docs(27):** design for the local-laws layer (issue 09.03), with an unused prototype `9ea3b230`
- i18n(nl, ro): research additions approved 21 September — two corrections; status snapshot refreshed `569a3220`
- i18n(nl, ro): apply the approved local research additions `883758fd`
- **feat:** public translation status page — /en/about/translations/ `d31481ac`
- **research:** RO dossier — #58 Russmedia and Danileţ, #59 SRI PREVISIO, #60 HBSC and the digital-majority debate, Ora de Net, fact-checkers `7884caed`
- **research(NL):** dossier update — #58 case options, #60 youth mental-health debate, national cases `9290cd78`
- **docs:** CLAUDE.md routes plain requests to the translation and research skills; skill descriptions say when to use them `da1606c6`
- **skills:** /new-edition and /local-research — build a language edition, research its countries `f7721559`
- **docs(26):** world editions — which languages next, why, and what each needs `c6ede027`
- i18n(nl, ro): national health authorities on Health Misinformation; infodemie headings `486e5160`
- i18n(nl, ro): decisions 1–7 of 21 September `e87c052a`
- i18n(nl, ro): derived glossaries — /nl/woordenlijst/ and /ro/glosar/ `a49ab025`
- i18n(ro): integrate the nine batches — the Romanian edition, complete as drafts `3a59eeef`
- i18n(nl): integrate the nine batches — the Dutch edition, complete as drafts `8f307943`
- **fix(checks):** findings from the 18 translation agents `52f91dc4`
- **content(en):** CvdM quote faithful to the source ("for our democracy"); eight slips found by the translation agents `f1712e88`
- i18n(ro): batch 5 — symptoms/radicalisation, timeline, laws, laws/section-230, laws/gdpr, laws/dsa `8587e67d`
- i18n(ro): batch 2 — state-actors, demos, gamification-demo, data-combination, objections, faq, contact `1eacfcaa`
- i18n(ro): batch 6 — health-misinformation, age-restrictions, courts, educate, what-to-do, books, watch-listen, tools `1c76444d`
- i18n(nl): batch 2 — state-actors, demos, gamification-demo, data-combination, objections, faq, contact `702fbcb8`
- i18n(ro): batch 4 — symptoms/elections, symptoms/manosphere, symptoms/recruited-to-harm, symptoms/unknown `2244363b`
- i18n(ro): batch 1 — advertising, under-the-hood, search, gamification, ai `dc3ee9d2`
- i18n(nl): batch 7 — truth, truth/journalism, truth/science, truth/democracy, truth/free-speech, about/how-we-communicate, about/corrections `2bbda5a4`
- i18n(nl): batch 6 — health misinformation, age restrictions, courts, educate landing, what to do, books, watch & listen, tools `eeee5da2`
- i18n(ro): batch 7 — truth, truth/journalism, truth/science, truth/democracy, truth/free-speech, about/how-we-communicate `d63d7928`
- i18n(ro): batch 9 — share landing, ecosystem, organisations, things, contribute, donate, share, get-help, about, privacy `b58e878f`
- i18n(ro): batch 8 — for-you, parents, teens, young-adults, educators, lawmakers `6f5e9af4`
- i18n(nl): batch 3 — symptoms, mental-health, consumerism, xenophobia, body-image, get-rich-quick `3583f184`
- i18n(ro): batch 3 — symptoms, mental-health, consumerism, xenophobia, body-image, get-rich-quick `75e12e7e`
- i18n(nl): batch 4 — symptoms/elections, symptoms/manosphere, symptoms/recruited-to-harm, symptoms/unknown `82cad7df`
- i18n(nl): batch 5 — symptoms/radicalisation, timeline, laws, laws/section-230, laws/gdpr, laws/dsa `ab428958`
- i18n(nl): batch 8 — for-you, for-you/parents, for-you/teens, for-you/young-adults, for-you/educators, for-you/lawmakers `d41b2e8e`
- i18n(nl): batch 1 — advertising, under-the-hood, search, gamification, ai `f8b167f1`
- i18n(nl): batch 9 — share, share/ecosystem, share/organisations, share/things, share/contribute, share/donate, share/share `b318fb5f`
- **resources:** Romanian national help lines — Antisuicid 0800 801 200, Telefonul Copilului 116 111, DNSC 1911 `053a08aa`
- i18n: carry the English slips into nl/ro; Dutch Help wording; Romanian 'jocuri de noroc'; relink-locale script `4b5b4335`
- **content(en):** five slips found by the Fable translation reviews; nl/ro campaign patterns (CHECK 21); framing-word warning (CHECK 29) `1427ed79`
- **fix(checks):** regressions found by the Fable re-audit `ae04057e`
- **fix(checks):** the Fable audit's findings — each proven by a planted failure `72c806bb`
- **docs(skills):** an armed merge request with a conflict never merges — watch detailed\_merge\_status `e9979e0b`
- i18n: Fable review after every translation run; apply its fixes `810506c8`
- i18n: apply the reviewer's decisions of 21 September 2026 `09b89a79`
- **content(en):** privacy slip ('most legible' meant 'least legible'); About lists Romanian among target languages `1a58304c`
- **docs(skills):** open translation questions go to Codrin in the chat, never into a merge request `0975df99`
- i18n(nl): draft Where to Get Help, About and Privacy; relink je-brein to hoe-het-werkt `47456d01`
- **fix(i18n):** lessons from the first /sync-translations agent run (Romanian) `0974e947`
- i18n(ro): refresh Your Brain, fill the Romanian chrome, translate home, landing and How It Works `adb4b0db`
- **feat(i18n):** DATED — a date-based cross-check for out-of-date translations `c97a89c0`
- **feat(i18n):** /sync-translations — the status script decides what each language needs; Romanian official terms `e8a85f6f`
- **feat(i18n):** /translate-batch skill — run translation in a fresh session with the workflow and the traps built in `dcd30ee9`
- i18n: translate the site chrome — menu, footer and header — with English proven unchanged `1c342ab7`
- i18n(nl): translate the home page; fix two checks that skipped every locale home page `d0aa748a`
- i18n: check the number scale, and add aanbevelingsalgoritme to the terms table `879ec602`
- i18n(nl): translate the Attention Machine landing and How It Works `ec4ec03d`
- **fix(content):** two corrected figures had survived in section-landing cards `a1488c52`
- **fix(test):** assert the real navigation element on the 404 page `811941c3`
- i18n(nl): wanting/liking as willen/fijn vinden, with the English in the glossary headword `deaeb5a9`
- **fix(404):** centre the page properly, keep the arrow with its link, point at the contact page `b93ff307`
- i18n(nl): refresh Your Brain to the current English, and fix two errors the editor pass found `5d99e735`
- **feat(i18n):** terminology rule — English terms unless a government body named it (CHECK 26) `31060c91`

20 September 2026

- **fix(analytics):** use the dashboard's per-site Plausible script; slugs: avg confirmed, gamification protected `9ffcafbf`
- **fix(test):** scope the demo signal locator so it cannot match the entropy table `14bb1c53`
- **feat(i18n):** international terms and proper nouns keep their English slug (CHECK 22) `8a240e22`
- **feat(i18n):** address the reader personally in every language — je, never u (CHECK 25) `2d90af53`
- **fix(ci):** never create merge-request pipelines — an empty one fails and blocks the merge `2b409848`
- **fix(analytics):** one working tool, an honest privacy page, and a check so a dead tracker cannot hide (#7) `db99c0c1`
- **chore(docs):** move the roadmap into GitLab issues and milestones (#5) `fd26c955`

19 September 2026

- **fix(i18n):** review runner — default the branch name outside CI `8d00a231`
- **feat(i18n):** finalise the automatic translation review — local login outside CI, subscription token in CI, reviewer changes exercised `1a0c8662`
- **feat(i18n):** automatic translation review in CI — editor pass posted on the merge request `a18f4473`
- **feat(i18n):** translation parity check (CHECK 23) + translate-page and translation-review skills `a54fa92f`
- **content(contribute):** add a Review section (native reviewers, fact-checkers) and refresh the language list `027c3a1f`
- **content:** second verification pass, part 2 — remaining forty pages, 26 fixes `2fdfeaf0`
- **content:** polish two sentences from the second pass (manosphere lead, heart-disease line) `e9442144`
- **chore:** regenerate page dates, deck date, changelog and stack table `7b8a2b0a`
- **content:** second verification pass before translation — 30 fixes, claim ledger, reviewer brief `fbfa119b`
- **feat(i18n):** header label reads 'Unreviewed translation' on gated pages `2bb0df3d`
- **chore:** regenerate page dates, deck date, changelog and stack table `5019e87e`
- **feat(i18n):** review gate — translations stay hidden until a human publishes them `1ff2f254`
- **chore:** regenerate page dates, deck date, changelog and stack table `73a7b6d4`
- **feat(i18n):** each language gets its own URL slugs `55db2578`
- **chore(ci):** make all jobs interruptible so a newer push cancels the stale pipeline `71805ca5`
- **chore:** regenerate page dates, deck date, changelog and stack table `ffde8a10`
- **feat(about):** publish the corrections log and change log on the site, with a Romanian draft `0b23828e`
- **chore:** regenerate page dates, deck date, changelog and stack table `e1a9de1d`
- **fix(demos):** truthful tracker probe, runtime "why you", analytics disclosure, no-JS fallbacks `89ca939b`
- **chore:** regenerate page dates, deck date, changelog and stack table `6db8f24c`
- **fix(content):** correct 30+ claims and citations found in full-site source review `9edb3e45`

1 September 2026

- **fix(css):** sync public/global.css with src (brand strong) `2b170d70`

29 August 2026

- **chore(header):** bold the DRAFT Under Development label `55e9fdb2`
- **chore(header):** label site as draft under development `63ced789`

20 July 2026

- docs+demo: explain the graded tracker-test we deliberately don't build `f64cd1e9`
- **fix(nav):** contain mobile top-level nav overflow to its own bar `558cc44a`
- **fix(test):** keyboard-nav walk dedups by href, not visible text `2ccb3feb`
- **docs:** evergreen newsletter sequence + Odoo operations plan `b64ce9e6`
- **test(a11y):** full-site axe sweep — every /en/ page, chromium; all 64 clean `c2a52cd2`
- **feat:** Demos as top-level front door; parent resource block; neutral-framing guardrail `2e657372`

19 July 2026

- **feat:** glossary canonicalisation + naming lint; country/audience resource registry; objections evidence links `b6f95942`
- **feat(for-you):** teens page balances teen-relevant harms; educate links on all audience pages `02afd53f`
- **feat(content):** five page improvements; docs/11 deployment note `401be125`
- **feat(tools):** Ecosia under Alternative search — green incentives, honest privacy caveat `7ecb7755`
- **feat(demo):** fingerprint-arithmetic block in Phase 1, the CYT lesson `713f3f88`
- **feat:** recategorise Tools page; credit Cover Your Tracks on the demo `3c1e4da4`
- **feat(tools):** "Guides that stay current" — EFF SSD, Security Planner, Data Detox Kit `37e607ca`
- **feat(what-to-do):** generalise the uBlock bullet to privacy settings & tools `3005ccf6`
- **feat(home):** space above the three-paths section; header says "explore" `0d32b5f9`
- **docs:** Bookshop.org is US/UK-only; book-link approach is an open decision `6d09b32d`
- **feat(books):** The Chaos Machine at the top, as the book that inspired the site `e72cf616`
- **chore(ci):** drop the deploy job — Cloudflare git integration deploys main `55fe119d`
- **feat(home):** creators card says influence — watching, buying, believing `4970b697`
- **feat(ci):** gated deploy stage; loop quote says "from the interaction" `789909a4`
- **feat(home):** loop diagram as one large ring; quotes flank the hub `382a7a0e`

18 July 2026

- **test:** stub the Plausible script suite-wide via a shared page fixture `c4378e47`
- **test:** three demo CTAs on homepage; stub Plausible script in smoke tests `b1bd6bcf`
- **docs(roadmap):** add CI deploy stage for the Worker (production drifts without it) `1578a077`
- **fix(home):** remove underline on loop diagram cards at the \<a>, not the text `14e3c252`
- **feat(glossary):** derived glossary page generated from inline TermDefs, with CI checks `3b275e2e`
- **feat(home):** add Data Combination demo to the live-demos callout; richer loop diagram `7dc38091`

6 July 2026

- **chore:** regenerate changelog and page dates `c4e7a531`
- **docs:** rewrite 13 to current demo behaviour; allowScripts note (11); disclosure rule (16, 18) `7bddad06`
- **docs(code):** honesty-contract and data-flow headers for the demo islands `2a8abc8b`
- **fix(build):** approve install scripts for esbuild, sharp, workerd (npm allowScripts) `d12735f5`
- **chore:** regenerate changelog `b70153af`
- **test(uth):** variety matrix — browsers, hardware, and locations, fully automated `bc0e5200`
- **chore:** regenerate changelog and page dates `cc860b7b`
- **feat(uth):** vary the Phase 3 message by income tier, place, and disclosed bucket split `0baceaf1`

5 July 2026

- **chore:** regenerate changelog, page dates, deck date `df2be723`
- **docs(18):** add §14 — cross-layer alignment/completeness (research ↔ site ↔ decks) `27bc648c`
- **fix(deck):** align demo naming with site rename + citation convention `b2e4cceb`
- **docs:** record 5 July 2026 re-measurement — §9 gaps and §3 watch-items all clean `9ee98e92`
- **fix(tests):** under-the-hood spec — accept UTC timezone, retry lost island taps `b57902da`
- **chore:** regenerate changelog and page dates `f4a5a7d4`
- **docs:** environment-truthfulness rule for live-data demos (16, 18) + watch-items `d334f0b1`
- **fix(data-combination):** precise wording for the Feb 2026 CJEU WhatsApp ruling `94d761a4`
- **fix(gamification-demo):** align related footer with split form and demo rename `5b543166`
- **fix(uth):** report the visitor's real environment truthfully across browsers `9ef02802`

3 July 2026

- **refactor:** rename demo CSS classes/ids ds-\* → dc-\* for clarity `94577f73`
- **refactor:** rename demo Data Stitching → Data Combination (plainer for general audience) `2daaad73`
- **feat:** roll out split related-footer site-wide (back-links left, forward-links right) `469e2206`

2 July 2026

- **feat:** prototype split related-footer (back-links left, forward-links right) on data-stitching `63ded624`
- **feat:** chain icon + highlighted link field, fix combined-card bullet, add "over time" section `28892c98`
- **feat:** clearer data-stitching demo — single icons, key-in-cards, hashing, provenance, consequence `c2fae346`
- **fix:** broaden privacy-rules label + clearer "what you can do" intro `e694c3b3`
- **feat:** plain-language demo controls, connecting lines, "what you can do" box `abb17aeb`

30 June 2026

- **feat:** add Data Stitching demo + assessment-driven improvement roadmap `5e194a3a`

20 June 2026

- **chore:** deck last-updated.txt + regenerate changelog `8c98ba51`
- **feat:** AI slide covers bot-run accounts; commit a git-derived deck 'Updated' date `f38e2b8c`
- **chore:** regenerate changelog `0a937935`
- **chore:** add 'Updated \<date>' stamp to the deck footer (bottom-right) `2596fcb2`
- **chore:** regenerate changelog `7794d2f2`
- **chore:** add CI checks for CSP correctness (build guard + cross-browser enforcement) `065b5266`
- **chore:** harden CSP baseline (base-uri, object-src, upgrade-insecure-requests) `acc02577`
- **fix:** page 'last updated' follows page-specific component edits `4eb3c76b`
- **chore:** regenerate changelog `105a0a66`
- **chore:** make the deck portable — build in Georgia (site's declared fallback) `1123ef8c`
- **chore:** regenerate changelog `8265f0b7`
- **chore:** add AI-as-accelerant slide to the intro deck `1c0ff68c`

19 June 2026

- **chore:** regenerate changelog `5c07486b`
- **feat:** explain CPM at first use in the RTB auction demo `d8e39d2f`
- **chore:** regenerate changelog `9c053f75`
- **feat:** add self-hosted Plausible analytics (CSP-safe) `501ae7b2`
- **chore:** regenerate changelog `2b709992`
- **docs:** codify deck notes structure, notes-alignment guard, and research->site->slides->notes alignment `b8da096b`
- **chore:** update reference deck to current build + add notes-alignment guard `cdb017aa`

14 June 2026

- **chore:** regenerate changelog `d7df07e7`
- **feat:** publish slide decks to a stable site URL `db5d3163`
- **chore:** regenerate changelog `a38fe531`
- **chore:** add generated stack overview; fix stale brief claims `376b4e0b`
- **ci:** pin all jobs to Node 24 (newest LTS), drop floating "n lts" `20f563e1`
- **chore:** regenerate changelog `831183c3`
- **test(a11y):** audit the settled, reduced-motion state `39d192a8`
- **fix(a11y):** darken --c-subtle to meet WCAG AA on the card background `723d62da`
- **chore(deps):** update to latest stable; pin @playwright/test to the CI image `ca016e95`
- **ci:** run lint:consistency on a node image, not bare alpine `ce6ee92c`

12 June 2026

- **chore:** regenerate changelog `e87618a2`
- **chore:** add reference deck build under presentations/ `06d74769`
- **docs:** add deck/site alignment rule to project instructions `528117ce`

6 June 2026

- **docs:** make CHECK 18 actionable in project instructions; single canonical exception marker `5d6335fa`
- **feat:** lint CHECK 18 — warn on unlinked paper/report sources (books exempt) `283bf3c1`
- **fix:** link four peer-reviewed/spec sources that sat plain-text where stable URLs exist `edef4871`
- **fix:** swap hero CTA order — callout left, button right `171d1df1`
- **fix:** homepage hero + footer tweaks (CTA wording, callout beside button, spacing, inline date) `7d032b6c`
- **fix:** widen loop boxes so node text fits; add overflow-guard test `2f143c07`
- **feat:** homepage incentive-loop diagram above the three-paths cards `fb76348d`
- **docs:** codify stacked-section spacing + trailing-rule conventions in design brief `7e81729a`
- **fix:** even homepage section spacing; extend hero dateline rule to the right `02dd374d`
- **fix:** search to header top-right; clean homepage; demo buttons beside paragraph; pagefind result titles `470bc769`
- **docs:** add design brief (docs/22); enforce colour tokens via lint CHECK 17 `008d5d6a`
- **test:** add CI coverage for search, sitemap, nav/CTAs; fix a11y gaps `b0ca526e`
- **feat:** switch Pagefind Default UI to Component UI (modal, better a11y) `99611dd6`
- **docs:** record nav/sitemap/Pagefind work in roadmap, tech brief, localisation guide `4e2146ff`
- **feat:** Pagefind search — multilingual, CSP-safe, wasm-unsafe-eval `d6d814bf`
- **feat:** SEO sitemap with hreflang alternates and lastmod `265a31fc`
- **feat:** add two CTA buttons for demos on homepage `aa0030e2`
- **feat:** rename Under the Hood to 'Tracking & Targeting demo'; restructure Machine nav with group-label for demos `927921a8`

5 June 2026

- **chore:** sync CHANGELOG + page dates (npm run sync) `db90813e`
- **feat:** make English the explicit 'International English' base; document regional-variant path `91946765`
- **chore:** sync CHANGELOG + page dates (npm run sync) `9dd569d9`
- **docs:** add localisation guide (docs/20); index + roadmap `edda8f06`
- **feat:** i18n routing config + locale-aware site chrome `d68e6465`
- **chore:** sync CHANGELOG + page dates (npm run sync) `b1776c97`
- **docs:** mark Scrollable timeline live in the roadmap (was still listed as not-yet-built) `87da6b24`
- **chore:** regenerate CHANGELOG (date refresh + sync script) `18679161`
- **fix:** refresh stale footer 'last updated' dates; add npm run sync `3ad70569`
- **chore:** regenerate CHANGELOG (CSP guard + timeline a11y fix) `aa6b110a`
- **feat:** enforce the no-inline-script CSP rule + document it clearly `17d2641b`
- **fix:** complete the timeline a11y fix (remove invalid ARIA table roles) `76f1cc78`
- Edit index.astro `de590121`
- **chore:** regenerate CHANGELOG (gamification demo live) `093c8602`
- **feat:** integrated Gamification Demo page (/en/attention-machine/gamification-demo/) + tests `d851b427`
- **feat:** nav + objections refinements `5aa7da91`
- **feat:** slim the main nav from 9 to 6 top-level items `a0d192b0`
- **chore:** regenerate CHANGELOG (timeline page + demo best-practice rules) `f9518b6f`
- **docs:** add interactive-demo/data-viz best practices to project instructions + review lens `c8905e3d`
- **feat:** integrated Timeline page (/en/timeline/) with the site template + CI tests `cebac5bd`
- **chore:** regenerate CHANGELOG (design-research doc) `70912877`
- **docs:** add design-research reference for demos + timelines (docs/21) `bc074faa`

4 June 2026

- **chore:** regenerate CHANGELOG (interactive-features spec) `8952afa7`
- **docs:** spec the two proposed interactive features (gamification demo + scrollable timeline) `f3b282b2`
- **test:** add Freedom of Speech page to the axe-core a11y audit list `f9eed0ae`
- **test:** add Freedom of Speech page to the smoke + a11y key-pages sample `f1a17852`
- **chore:** regenerate CHANGELOG (Freedom of Speech page + nav) `2df5a35b`
- **docs:** roadmap — Freedom of Speech page live; queue gamification demo + scrollable timeline `0a300370`
- **feat:** add Freedom of Speech page to What is Truth?; promote Yes, but… to main nav `441277b8`
- **chore:** regenerate CHANGELOG (citation fixes, review item C) `0074f3d1`
- **fix:** link and correct three Symptoms citations (review item C) `7885227a`
- **chore:** regenerate CHANGELOG (chronological section ordering) `9cd1187b`
- **fix:** chronological Symptoms landing, correct Stormfront date, anchor manosphere timeline `29217e49`
- **fix:** order The Machine and Symptoms sub-navs chronologically `75c2f3d0`
- **chore:** regenerate CHANGELOG (review prompt loads docs/16) `4235b558`
- **docs:** make the review prompt instruct loading docs/16 (robust to context) `e88fde5f`
- **chore:** regenerate CHANGELOG (docs single-source alignment + CHECK 16) `02718603`
- **docs:** align docs around single source of truth; stop duplicating rules and page lists `3ffef55d`
- **feat:** add CHECK 16 — section page lists must match the filesystem `92d5a121`
- **chore:** regenerate CHANGELOG (Radicalisation Pipelines live) `562b5547`
- **feat:** publish Radicalisation Pipelines — wire into nav, landing, related chain `2404d502`
- **refactor(draft):** re-home Radicalisation Pipelines to Symptoms `239f34e8`
- **feat(draft):** Radicalisation Pipelines page for review (not wired into nav) `77cc24e2`
- **chore:** regenerate CHANGELOG (templates: auto-dates + i18n chrome) `5a8a4c52`
- **feat:** page templates — auto "last updated" dates + hreflang alternates + language switcher `05de9aa8`
- **chore:** regenerate CHANGELOG (localisation framework + CHECK 15) `e3b63712`
- **feat:** add in-locale-link lint (CHECK 15); mark pilot pages' English fallbacks `c52cb11c`
- **docs:** reframe localisation as risk × audience × feasibility; ban YouTube as a source; queue Radicalisation Pipelines page `248483eb`

1 June 2026

- **chore:** regenerate CHANGELOG (batch refresh) `a456b4f0`
- **chore:** standardise the .related footer site-wide + enforce it (CHECK 14) `8287dad3`
- **feat:** add Where to Get Help page and reference it (plus What to Do) from content pages `20917766`

31 May 2026

- **feat:** add Recruited to Harm standalone Symptoms page `cc339f2b`
- **feat:** add Body Image standalone Symptoms page `d6650c4f`
- **feat:** add Gamification page under The Machine `092eb011`
- **fix:** correct the Cambridge SDML link (was pointing at an unrelated car-rental domain) `f7e4447c`
- **chore:** add auto-generated CHANGELOG + generator script `f5246620`
- **fix:** repair 4 dead citation URLs found by the 404 sweep (review item 3) `db47f827`
- **chore:** enforce the three-tier audit in CI (lint-consistency CHECK 12 + 13) `dcf09b7c`
- **feat:** add LICENSE (CC BY-NC-SA 4.0) and state it in the FAQ `ed9f9849`
- **fix:** link-hygiene polish + two citation corrections caught while verifying `a6c668fc`
- **feat:** split FAQ into project FAQ + 'Yes, but…' objections page `a7dcb006`
- **docs:** currency pass on review prompt (docs/18) after three-tier rollout + 2 new Symptoms pages `defa7c55`
- **feat:** two new Symptoms pages — Get-Rich-Quick & Scams, Health Misinformation `746dca72`
- **docs:** mark three-tier rollout complete in roadmap `1e998ccb`
- **feat:** how-we-communicate now demonstrates the three-tier model it describes `1cf86620`
- **feat:** three-tier writing applied to all of For You `5823e439`

30 May 2026

- **feat:** three-tier writing applied to Share & Support (argument pages only) `e7f7e461`
- **feat:** three-tier writing applied to all of Educate Yourself `7bae5bf0`
- **feat:** three-tier writing applied to all of What is Truth? `90f0908e`
- **feat:** three-tier writing applied to all of Laws & Regulation `c5f013b8`
- **feat:** three-tier writing applied to all of the Symptoms section `76183754`
- **feat:** three-tier writing applied to all of The Attention Machine section `bbfa5598`
- **feat:** add RSS feed for the blog `0e471e07`
- **feat:** add blog (Astro content collection) + soft-launch post `9df63913`
- ci+docs: make CI a hard gate; align instructions, review prompt, and tests `8c4d10ff`
- **fix:** a11y contrast + footer links, Firefox charset, add code quality lint `377fe6aa`
- **test:** fix tab helper budget and add node selectors to a11y output `711ea9d0`

29 May 2026

- **ci:** bump Playwright image to v1.60.0-jammy to match lock file `5b4c76a0`
- **ci:** upgrade Node in Playwright image to satisfy Astro >=22.12 `c566b78c`
- **feat:** Dutch and Romanian drafts of Your Brain page for native review `23c835a1`
- **ci:** add Playwright cross-browser tests; park Tier 2 in roadmap `5bce021e`
- **refactor:** rebuild Tier 2 on CSS :target for universal browser access `62d0ab57`
- **fix:** three-tier pilot — focus visibility, popover sources, Popover API fallback `358f2f56`
- **feat:** implement three-tier cognitive design — pilot on Your Brain page `9e957195`
- **docs:** consistency review — reframe to localisation, restore history, fix separators `492dc0e0`
- **feat:** integrate three-tier cognitive design into site and documentation `77605d75`
- **docs:** record 'Symptoms' not 'Risks' section-naming decision `5e8fad79`
- **docs:** structural cleanup of project instructions `398c237d`

28 May 2026

- **docs:** add safe GitLab-access section to project instructions; remove embedded PAT `7f2294a2`
- **docs:** capture this session's lessons in 16 and 18 `5319934d`
- **feat:** deepen final four sources to their actual documents `2273e390`
- **feat:** deepen CFG DSA tracker links to the enforcement-initiative hub `622c7dbb`
- **fix:** correct misattributed search-ranking study (Search page) `c7f62c5e`
- fix+feat: correct miscited replication study; deep-link remaining reports `69e98170`
- **feat:** deep-link BSE 'Ranking for Engagement' working paper `bcbc062b`
- **feat:** deep-link AI/Unknown sources + databases to their actual location `d76f83f0`
- **feat:** service sources in prose + deep-link reports (intelligence cluster) `46d1f36c`
- **feat:** roll out standardised citation pattern across all content pages `461608b7`
- **feat:** standardise Sources blocks (bulleted, anchored) + in-text jump refs `bd8fef81`
- **fix:** correct CA/Brexit overclaim, nested-anchor bug, CvdM title; link key sources `1baae15a`
- **docs:** update review prompt after Opus 4.7 full-site review `ab328a64`
- **docs:** update review prompt — add citation/linking + code-consistency checks, fix stale doc references and counts `bc7b5772`
- **feat:** Under the Hood — three-layer live tracker test with 'what it learned' framing `d0272900`
- **fix:** Under the Hood — resolve CSP blocking islands; add honest tracker test `0684f8a9`

27 May 2026

- **refactor:** Under the Hood — static page + three small React islands `a9989bcf`
- **fix:** Under the Hood — back to client:load with error reporting `83654612`
- **fix:** Under the Hood — use client:only="react" to skip SSR `c17b6630`
- **fix:** Under the Hood — async signal collection, non-blocking adBlocker detection `0b7623ca`
- **fix:** Under the Hood — rewrite component `41d98d62`
- **feat:** Under the Hood — live three-phase interactive demo `6c7651fe`
- **fix:** separator on li::after so dropdown left:0 aligns with link text `96913ea9`
- **fix:** move separator to a::before so dropdown left-aligns with link text `3ddd62ea`
- **fix:** replace \<nav> with \<div role=navigation> to escape Pico's nav li rules `a738717e`
- **fix:** override Pico nav li padding/margin on dropdown items `4978333a`
- **fix:** hide dropdowns on mobile — section landing pages serve the same purpose `fe68098c`
- **fix:** dropdown links left-aligned and accent colour `63f37d50`
- **fix:** remove site-nav-scroll wrapper — it was clipping dropdowns `6b38914a`
- **fix:** add z-index to .site-nav so dropdowns render above page content `ae440f68`
- **fix:** rewrite nav dropdowns — plain li/a, no details/summary, no Pico `fcd409f3`
- **fix:** replace custom submenu with Pico details/summary dropdown pattern `13558130`
- **feat:** add dropdown submenus to main navigation `62c38558`
- **docs:** improve project instructions — add GitLab access, fix doc count, consolidate addiction framing `2874d8aa`
- **docs:** add way of working to review prompt, fix repo path `7e8e9884`
- **docs:** fix Pico variable rule (doc 16) and accessibility contradiction (doc 11) `2b3375fb`
- **fix:** hide bank transfer section until stichting account opens `1fa1c44a`
- **feat:** add personal intro before donate button `b5f5b60d`
- **fix:** Ko-fi button — white text forced, hand + rocket emoji `0e11191b`
- **fix:** replace Ko-fi widget with styled link, fix contact spacing, clean up `4f0130a6`
- **fix:** rename /share/fund/ to /share/donate/, broaden Ko-fi CSP `21b171ee`
- **fix:** rename fund page to Donate, restructure, fix Ko-fi build error `d5ee713c`
- **fix:** Ko-fi widget on fund page only, contact page spacing `5b96a46f`
- **fix:** remove all inline styles, replace \<section> with \<div>, add Ko-fi widget `35d62f4d`
- **fix:** Astro 5 → Astro 6 in docs 11 and 16 `d262e478`
- **fix:** update Ko-fi link to personal account (ko-fi.com/codrin) `78252a8e`
- **docs:** create CORRECTIONS.md — public corrections log `e9544b98`
- **feat:** simple mailto contact page, remove Formbricks, plan Greenhost VPS `188a7c15`
- **feat:** replace broken email system with Formbricks `141ff229`

26 May 2026

- **docs:** update roadmap — add Formbricks forms & feedback section `7fc1aaad`
- **fix:** follow official Cloudflare send\_email example exactly `8f5edc05`
- **fix:** use new Cloudflare Email Service API — plain object, no MIME `688bf154`
- **fix:** drop mimetext, build MIME string manually `b9a8beed`
- **fix:** clean rewrite of worker following official Cloudflare example `41a29936`
- **fix:** update observability config for persistent logs `639d7359`
- **debug:** expose actual error message in contact form response `d6c95c61`
- **fix:** simplify email to single Cloudflare Email Routing binding `67a0d675`
- **fix:** replace dead MailChannels with Cloudflare Email Routing `ad5d82d6`
- **fix:** replace GitLab API with email-to-issue for corrections `be1fac0b`
- **fix:** move contact form JS to external file — CSP was blocking inline script `3d4cfaf2`
- **fix:** contact form JS — add is:inline and DOMContentLoaded `6fa677ef`
- **feat:** corrections create GitLab issues + email confirmations `db45d19c`
- **feat:** single Contact page with reason dropdown, replace all embedded forms `abb33da0`
- **fix:** revert to static output + standalone Worker for contact form `d4c7c217`
- **fix:** disable auto-provisioned KV and Images bindings `6697621e`
- **fix:** switch to Astro Cloudflare adapter + SSR for contact form `73be8ad0`
- **feat:** add contact form system — replace mailto placeholders `b796f740`
- **docs:** update review prompt — four corrections from self-review `f39b4ff5`
- **docs:** fix all internal numbering, headers, stale references `4b03aafd`
- **chore:** move review prompt to end as 18, update all references `ba564441`
- **feat:** split 'Support This Site' footer link into Contribute + Donate `8f2d63ab`
- **docs:** add roadmap as dedicated wiki page `fa493f59`
- **chore:** renumber and realign all docs sequentially `d9523581`
- **feat:** split contribution into donate + contribute pages `a68d4575`
- **chore:** remove copy docs now live as web pages `2084e8eb`
- **docs:** rewrite index as wiki home page `3a3afad2`
- **feat:** add privacy page and GDPR compliance documentation `0aa05600`
- **feat:** add CI pipeline to sync docs/ to wiki on push to main `07dfe6a1`
- **feat:** hyperlinks on sources + updated project instructions `bb61d3c9`
- **fix:** structural audit — consistent layout across all page types `977c4c10`
- **fix:** consistent layout — remove article from both page types `5e6a2f6c`
- **fix:** replace article with div on content pages `5da6638f`
- **fix:** trailingSlash: ignore — stops Astro injecting redirect rules `143750e9`

25 May 2026

- **refactor:** rewrite global.css — 850 → 612 lines `72fae9de`
- **fix:** remove dead CSS — section-header, callout.dark, divider `9879e36a`
- **fix:** content page layout — padding, typography, UI best practices `a2dd6c3e`
- **feat:** all 36 sub-pages with full content — research fully integrated `b84f743d`
- **fix:** remove invalid 404 status code from \_redirects `d6da4fef`
- **feat:** 36 stub pages + 404 fallback — fixes card download issue `3dcfc45a`
- **fix:** restore 'Something wrong?' + simplify footer CSS `e45ae987`
- **fix:** footer full width — rename container to site-wrap `6b2b928b`
- **fix:** shorten footer meta line — remove 'Something wrong?' prefix `d8d3223f`
- **fix:** nav separator vertical alignment + footer single line `be395be9`
- **fix:** simplify nav + footer — Safari compatible, consistent separators `c829a9b3`
- **fix:** merge correction link into footer meta line `9f1e6d52`
- **fix:** nav clipping — padding on scroll container not child ul `d9eaaa48`
- **fix:** nav first-letter clip + vertical separators between items `0a0db736`
- **fix:** dark mode + simplified heading colours + restore static config `6fa4f410`
- **fix:** heading colours, nav prominence, hide newsletter, colourblind audit `cf6eec48`
- Delete package-lock.json `02f460af`
- Edit package.json `a55d7aa5`
- Edit package.json `1ced8610`
- Edit package.json `827d2e36`
- Edit package.json `970cab97`
- Edit astro.config.mjs `8f1ae9de`
- www redirect forces for seo `85839326`
- Edit astro.config.mjs `111a3e6f`
- Edit astro.config.mjs `8197fea2`
- Edit \_redirects `90550e1d`
- Edit astro.config.mjs `de696321`
- Edit wrangler.toml `852936d6`
- To resolve deploy warning `de923853`
- **fix:** move Astro project to repo root `c40e61fc`
- **fix:** remove wrangler.toml — conflicts with Pages git integration `f0455483`
- **fix:** restore project name in wrangler.toml `0b262232`
- **fix:** simplify wrangler.toml — remove name field (Workers only) `b7106451`
- **fix:** add wrangler.toml with project name `baf09550`
- **fix:** explicit output: static in astro config `f035cb71`

19 May 2026

- **fix:** mobile compatibility — replace fixed px with min() clamp `6a986a9e`
- **fix:** mobile-first hero + editorial dateline signal `a333705f`
- **feat:** full design system — editorial/refined minimalism `00272056`
- **feat:** all section landing pages + Cloudflare config `d269307b`
- **feat:** Astro site scaffold — homepage live `223f539f`
- **docs:** add Claude project instructions `90233b69`
- **docs:** add contributing section to README `d7ddba31`
- **chore:** archived superseded drafts `0bfb6f2c`
- **chore:** progress diagram and superseded research docs `59262815`
- **feat:** standing review prompt for ongoing content quality `7ced6796`
- **feat:** transparency pages — How We Communicate, 404, engagement policy `06a22baf`
- **feat:** FAQ — 12 common objections answered with evidence `68ad7346`
- **feat:** Under the Hood interactive demo — three phases `b259402e`
- **feat:** Feedly reading list and newsletter sources `8c18d931`
- **feat:** social media strategy — platforms, content, moderation `f1db0ccb`
- **feat:** stichting setup and contribution page `5f2a1cdd`
- **feat:** technical and strategy infrastructure `a44f0c36`
- **feat:** remaining section copy — laws, truth, educate, share, for you `89b32fcd`
- **feat:** core page copy — homepage, attention machine, symptoms `6463926c`
- **feat:** research foundation — evidence base, resources, institutions `ab1b8262`
- **feat:** project foundation — argument structure and site architecture `165a3e8d`
- **docs:** update README with project description and structure `cf75cd14`
- Initial commit `8fb025a4`

[← How We Communicate](https://attentionmachine.org/en/about/how-we-communicate/)\
[Privacy →](https://attentionmachine.org/en/about/privacy/)

---

Some content on this site was created with the assistance of AI tools and may contain errors. [How we use AI →](https://attentionmachine.org/en/about/how-we-use-ai/)
