Repository navigation
Conversation
The tag is G-WNMRQE3MLF, rendered exactly as Google ships it: an async loader and a 142-byte inline snippet, on all 64 built pages including the 404. `is:inline` on both keeps Astro from bundling them, which would inline the loader into a module and change how it fetches. The measurement id lives in lib/site.ts with the other site-wide constants. Empty disables the tag, so a fork or a local build does not report into someone else's property. The privacy page said three things that this change made false: "no analytics or advertising script", "set no cookies", and "run no tracking code". A fourth, "the site does not use browser storage", was about to be. On a site whose entire claim is that every statement can be checked, shipping the tag without rewriting that page would have been the worst thing in this commit. It now names the property, says what Analytics records, names both cookies it sets and what they are for, states that Google derives a coarse location from the IP address and does not store the address, and gives three ways to refuse it: blocking the host, Google's own opt-out add-on, and clearing cookies. It says plainly that refusing costs the reader nothing and costs us accuracy. The calculators are called out separately because the numbers typed into them still go nowhere. check_links.py gains an eighth rule. If any page carries a known analytics host, the privacy page must use the word, mention cookies, and not contain any of the stale denials. Verified by reverting the page's wording, which is caught with both reasons named, and by deleting the page, which is also caught. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Deploys
G-WNMRQE3MLF, and rewrites the privacy page, which this change made false.The tag
Rendered exactly as Google ships it: an async loader plus a 142-byte inline snippet, on all 64 built pages including the 404.
is:inlineon both keeps Astro from bundling them, which would inline the loader into a module and change how it fetches.The measurement id lives in
lib/site.tswith the other site-wide constants. Setting it empty disables the tag, so a fork or a local build does not report into someone else's property.The part that mattered more
The privacy page said three things that became false the moment this shipped, and a fourth that was about to:
On a site whose entire claim is that every statement can be checked against the source, shipping the tag without rewriting that page would have been the worst thing in this commit.
The page now names the property, says what Analytics records, names both cookies (
_gaand_ga_WNMRQE3MLF) and what they do, states that Google derives a coarse location from the IP and does not store the address, and gives three ways to refuse: blocking the host, Google's opt-out add-on, clearing cookies. It says plainly that refusing costs the reader nothing and costs us accuracy. The calculators are called out separately, because the numbers typed into them still go nowhere.New CI rule
If any page carries a known analytics host, the privacy page must use the word, mention cookies, and contain none of the stale denials.
Performance
One async request to
googletagmanager.com, not render-blocking, plus 142 bytes inline. That is the site's only third-party script host.Worth a decision, not blocking this
GA4 sets cookies before any consent is collected. There is no consent banner on the site. If meaningful traffic comes from the EU or UK, that is a compliance gap rather than a technical one, and the honest options are a consent banner, a cookieless analytics tool, or accepting the exposure. Say which and I will implement it.
Gates
Content validation (59 records), registry check, 36 drafter tests, 17 calculator tests, loop gate 47/47, all eight link rules.
🤖 Generated with Claude Code