Dossier · built, not deployed

Consent Gap Record

A single audit that loads a site in four consent states, records every third-party host and storage key written in each, and reports which recipients the site's own privacy policy never names.

Visit the live site Download the dossier
Measured
20
automated gates, reused unmodified
names in the GATES array of consent-gap/app/scripts/gates.config.mjs
29.7
% mutation score — the honest gap
score in consent-gap/app/quality/mutants.json
1014
surviving mutants, each one a blind spot
survivors[].length in consent-gap/app/quality/mutants.json
235
test declarations across its spec files
static count over 5 *.spec.ts / *.test.ts files in consent-gap/app — NOT the runner's total, which multiplies by project and parameter
0
services live — it does not take money
status: "live" entries in consent-gap/app/lib/services.ts
What it is

The product

One service, built end to end and deliberately not for sale. It visits a site untouched, after Accept, after Decline, and under a Global Privacy Control signal; logs every third-party host contacted and every storage key written in each state; then fetches the site's published privacy policy and reports which of those recipients it never names. Both passages are quoted verbatim and every document is SHA-256 hashed as it arrives. Before any finding, the record prints the questions it refuses to decide.

What the build argues

The second build tested whether the process transfers. It does — the same gates, the same registries and the same refusal to ship an uncounted number were reused without modification. What did not transfer is the mutation score, and that gap is the most useful thing on this site.

A hand withdrawing a single index card from a library catalogue drawer.
Daniel Forsman / Unsplash
Verification

20 gates behind one command

Read out of this repository's own runner. A partial pass is a fail — the runner exits nonzero if any single gate does, and a gate whose tooling is missing counts as a failure rather than a skip.

Every gate Consent Gap Record runs
#GateWhat it catches
1publicationno personal contact detail anywhere — PUBLICATION.md
2kitthe shared safeguards are byte-identical to seed/kit, name no product, and are called here
3types + builda type error is a defect that has not happened yet
4selftestthe paid path produces a record, and HALTS when a verifier is unavailable
5verify_designduplicate images, missing mark, bare pages, placeholder copy
6visual baselinesany unintended pixel change, page-level and element-level
7lighthousethe ten numeric bars in QUALITY_BAR §1, re-derived rather than quoted
8scrim contrastAA for text over photography, which axe cannot see and therefore never fails
9record integrityevery published record can say what it examined — bytes, hash, subject, method
10rendered textsource syntax leaked into prose — the one defect a frozen baseline certifies
11linksevery internal link resolves, and og:image, robots.txt and the sitemap name THIS site
12deliverabilitynothing can be paid for that has no producer, renderer and checker on disk
13figuresno number in a published document that nothing on disk counted
14honestevery gate's exit code agrees with the verdict it just printed
15mutationthe other gates can actually fail, proven by breaking the code on purpose
16stripewhat Stripe shows a customer matches what this repo says
17completea stranger can find it, understand it, buy it, and receive it — provably
18ci coverageevery gate script on disk is in the gate list, and every gate is in a CI job
19pipeline registriesevery registry exists and has a station that reads it
20pipeline syncthe enforcers that ran are the enforcers under review
Provenance

0 of 7 document stations ran

Which pipeline stations produced a document for Consent Gap Record
StationOutput fileProducedLines
PickServiceSERVICE_PICK.mdnever ran—
SeedDocument*-seed.mdnever ran—
PRDDocumentPRD.mdnever ran—
DesignPackageDESIGN_PACKAGE.mdnever ran—
TDDDocumentTDD.mdnever ran—
BuildAgentFilebuild_agent.mdnever ran—
LaunchRunbooklaunch_runbook.mdnever ran—

None of them. This business was built directly, without the document pipeline. The consequences of that are discussed on the honest page rather than left as an absence in this table.

What is missing

Stated here, not left as an absence

  • It sells nothing, and that is the design rather than an omission. It is deployed and readable; there is no Stripe product and no payment link behind it.
  • It takes no money. No Stripe product, no payment link, and the service registry says status “building” so every gate agrees with the page.
  • Its mutation score is low. The number is published here rather than omitted; see the honest page.
Next dossier: Wryko Records →