feat: cut /legal/privacy/ §Who can see it to four plain statements; name SML Company Ltd on the consent; close Q64 moot

Two rulings from Pouya, 2026-09-02.

(1) The section stays generic — "it over-explains technical mechanics that
belong in the evidence file, not in front of an inquirer." Deleted: the
measurement paragraph, the root-credential sentence, the SSO/federated-login
enumeration, the resource-policy clause, the "company that runs a database"
aside, the deploy-credential sentence and the three-copies summary. All of it
stays true and stays measured in AGENTS.md §7 and the evidence file, which now
maps each shipped sentence to what it rests on.

(2) The consent string names the corporation: "I consent to SML Company Ltd
storing and using the information in this form…". docs/05 §Consent text moves
with it, proven byte-identical. Two new §4 rows carry the attestations the copy
rests on.

(3) The §Who can see it approval closes via the page read-through, which is now
blocker 2 in docs/06's callout rather than a checklist line.

Q64 closes MOOT — the paragraph it was about was deleted, so it gates nothing.
The underlying gap is unchanged: §7 records root as held by Pouya, not held only
by Pouya, and nothing about root custody may be published without asking again.

Two sentences were added back under review: the shared-account disclosure, to
§Where it is stored (a storage disclosure, never named in the ruling — without
it no page said the intake sits in a shared account), and one naming SML Company
Ltd in the policy, because a consent naming a company the linked policy never
mentions is an accountability gap.

adversarial-reviewer, two rounds, 14 findings, all resolved, none declined;
nine of round 2's ten were defects in round 1's own repairs. claims-auditor
correctly deferred to cutover per D20.

Gates, exit status read: check 0 · build 0 (23 pages) · check:claims 0
(12 patterns, 33 approved strings) · check:intake 0 · og:proof 0 · lint 0 ·
lighthouse 0, worst of 23 99/100/100/100. Tripwire proven both ways — exit 0 on
the revised page, exit 1 with 5 matches on the bd282aa bytes. Regex untouched.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Md3GndFqWPzK78xAoebsg5
This commit is contained in:
Pouya Lajevardi
2026-09-02 12:03:47 -04:00
co-authored by Claude Opus 5
parent 99889a3491
commit 4735989f0b
7 changed files with 602 additions and 259 deletions
+277 -5
View File
File diff suppressed because one or more lines are too long
+12 -4
View File
@@ -146,7 +146,7 @@ might reasonably treat as privileged. The intake call is for that.
### Consent text
> I consent to Pouya Lajevardi storing and using the information in this form to
> I consent to SML Company Ltd storing and using the information in this form to
> respond to my inquiry and to run a conflicts check. I understand that
> submitting this form does not create a retainer, does not appoint a neutral,
> and does not itself establish a mediatorparty relationship.
@@ -216,8 +216,16 @@ against this row.
| `ttl` | epoch seconds — **the input to automatic deletion; see §Retention for why writing it is not the mechanism** |
**Encryption at rest** with a customer-managed KMS key. **Point-in-time recovery
on.** Table access limited to the Lambda role and one named administrative
principal.
on.** ⚠️ **THE THIRD LINE HERE WAS *"table access limited to the Lambda role and
one named administrative principal"*, AND IT WAS THE Q62 FALSEHOOD — struck
2026-09-02.** It is false on both halves: `adr-intake-lambda-role` holds
`PutItem` **only** and cannot read the table at all, and access is not one
principal. **`AGENTS.md` §7's `Intake table — who can read it` row is the answer
and this spec does not restate it** — a duplicated fact is one that goes wrong in
the copy nobody re-reads, which is what happened here: the Q62 sweep ran over
`src/` and never reached a spec, and `check:claims` carries this exact sentence
as a string that reached `dist/`. It survived the sweep this file's own
definition-of-done claims to have completed (`adversarial-reviewer`, round 2).
⚠️ **TWO OF THOSE THREE ARE THE STATE OF THE RUNNING TABLE AND ONE IS NOT.**
PITR is **on** `[verified 2026-09-01 — describe-continuous-backups,
@@ -446,7 +454,7 @@ Plausible or Fathom, cookieless, no consent banner.
- [ ] **TTL set and verified by test record.** ⚠️ **THIS ONE BACKS A PUBLISHED PROMISE.** `/legal/privacy/` states that records are deleted automatically after 24 months, and it asserts the **mechanism**, not only the period. The handler writes the `ttl` attribute — epoch seconds, 24 months, confirmed against this spec `[verified 2026-08-31]` — and **writing the attribute is not the mechanism**: TTL must also be enabled on the table, which is a table setting the code cannot see. **`AGENTS.md` §7 holds that status and its stamp; this line does not restate it** — it restated it once, went stale within the day, and had to be pulled back (§12 R19). **The test record is what closes this item, not the status:** `ENABLED` proves the setting, a record written with a near-future `ttl` and observed to vanish proves the behaviour. Tracked as §9 Q60
- [x] **PITR enabled** — `ENABLED`, 35-day window `[verified 2026-09-01 — describe-continuous-backups]`
- [ ] KMS customer-managed key. **Not on the table: encryption at rest is with the AWS-owned key** `[verified 2026-09-01 — describe-table returns no SSEDescription]`. **Not claimed on `/legal/privacy/`** — the page says "encrypted at rest", which is unconditionally true of every DynamoDB table and does not mention a customer-managed key, so nothing published depends on it. An improvement, not a blocker
- [x] ✅ **Table access matches what `/legal/privacy/` says about it — 2026-09-02.** **The access is unchanged; the page now states it.** Pouya ruled *state the truth* rather than *remove the access* (§9 Q62), so the page attributes read access to **the account's administrators of a shared account, with no human headcount** — the count came off later the same day under §9 Q63, because a simulation counts identities and the page was reading them as people — and adds the two stronger facts the false sentence had crowded out: the handler role holds `PutItem` **only**, and `adr-sml-deploy` is `implicitDeny` on all seven read **and** write actions. Evidence and commands: `docs/reference/intake-table-access-verification.md`, whose enumeration was **extended on 2026-09-02** — the original screened roles by `list-attached-role-policies` alone, missing that 23 of 26 non-service-linked roles carry inline policies and that the two CDK `lookup` roles can read the table. Four roles can, not two; every one of them is reachable only by those administrators. ⚠️ **Do not restate that as a count of PEOPLE** — this line said *"all four terminate at the same two people"* until 2026-09-02, which is the inference §9 Q63 struck. ⚠️ **THIS LINE SAID "IT DOES NOT" FOR A DAY AFTER THE PAGE WAS CORRECTED, AND IT IS A DEFINITION-OF-DONE LIST SOMEONE FOLLOWS AT CUTOVER** — the Q62 sweep was run over `src/` only, so it could not reach a spec. `adversarial-reviewer`, round 1. The sweep across `docs/` is in the Change Log entry
- [x] ✅ **Table access matches what `/legal/privacy/` says about it — 2026-09-02.** **The access is unchanged; the page now states it.** Pouya ruled *state the truth* rather than *remove the access* (§9 Q62), so the page states the truth about access rather than a false exclusivity. ⚠️ **WHAT IT STATES CHANGED TWICE MORE THAT DAY AND THIS LINE IS WRITTEN AGAINST THE SHIPPED BYTES, NOT AGAINST THE RULING.** §9 Q63 took the human headcount off (a simulation counts identities and the page was reading them as people), and a second ruling then cut §Who can see it to **four plain statements**. The page now says: *"The record in the table: me, and the small number of people who administer the account it sits in with me"*; that the receiving system *"can only add a record — it cannot read back what is stored"*; where the notification goes and who reads it; and that the confirmation sits with the reader's own provider. **§Where it is stored carries the shared-account disclosure** — *"an Amazon Web Services account that also runs systems unrelated to this practice"*. ⚠️ **`adr-sml-deploy` is `implicitDeny` on all seven read AND write actions — MEASURED, TRUE, AND NO LONGER ON THE PAGE**; it went with the mechanics cut and it is §7's claim now, not the policy's. Do not tick this item against a page that states it. Evidence and commands: `docs/reference/intake-table-access-verification.md`, whose enumeration was **extended on 2026-09-02** — the original screened roles by `list-attached-role-policies` alone, missing that 23 of 26 non-service-linked roles carry inline policies and that the two CDK `lookup` roles can read the table. Four roles can, not two; every one of them is reachable only by those administrators. ⚠️ **Do not restate that as a count of PEOPLE** — this line said *"all four terminate at the same two people"* until 2026-09-02, which is the inference §9 Q63 struck. ⚠️ **THIS LINE SAID "IT DOES NOT" FOR A DAY AFTER THE PAGE WAS CORRECTED, AND IT IS A DEFINITION-OF-DONE LIST SOMEONE FOLLOWS AT CUTOVER** — the Q62 sweep was run over `src/` only, so it could not reach a spec. `adversarial-reviewer`, round 1. The sweep across `docs/` is in the Change Log entry
- [ ] Both emails send; SPF/DKIM/DMARC aligned; inbox-tested, not spam-tested
- [ ] **CloudWatch alarms on Lambda `Errors` and API Gateway `5xx`** — replacing the DLQ item, which is struck: a DLQ on a **synchronously** invoked function never receives anything, so the alarm on its depth would have been permanently green. See §Notification. The handler writes to DynamoDB **before** sending mail, so the protection this item was pointing at is in the code rather than in a queue
- [x] **Form usable by keyboard only.** Errors are announced by the browser's own validation, which with no script is the only thing that can announce them inline — `role="alert"` needs a live region and something to write into it
+134 -91
View File
@@ -396,18 +396,23 @@ Then invalidate `/*`.
> deployment takes.
> 🛑 **TWO THINGS BLOCK THIS ENTIRE LIST AS AT 2026-09-02: ONE WAITING PERIOD
> AND ONE LINE FROM POUYA.**
> AND ONE READ-THROUGH.**
>
> ⚠️ *(The count has moved twice in one day and the DIRECTION is what to read.
> It said ONE for part of 2026-09-02 and that was a **defect** — the wording
> approval Pouya reserved had been recorded only inside records marked closed,
> the `TODO(pouya)` deleted, Q62 struck, this callout ticked, so nothing would
> have stopped unapproved copy publishing (`adversarial-reviewer`, D20 pass
> round 1). Q63 was then **answered** in three limbs by ruling, which is a gate
> closed by an answer rather than by deletion. Answering it opened **Q64**, one
> paragraph lower on the same page. **A question that closes and a question that
> is deleted look identical in a count and nowhere else, which is why the count
> is never the record.**)*
> ⚠️ *(The count has moved repeatedly in one day and the DIRECTION is the only
> part worth reading — the number of moves is deliberately not stated, because a
> tally of how often a tally changed is the same trap one level up. It said ONE for part of 2026-09-02 and that was a
> **defect** — the wording approval Pouya reserved had been recorded only inside
> records marked closed, the `TODO(pouya)` deleted, Q62 struck, this callout
> ticked, so nothing would have stopped unapproved copy publishing
> (`adversarial-reviewer`, D20 pass round 1). Q63 was then **answered** in three
> limbs by ruling, which is a gate closed by an answer rather than by deletion —
> and answering it **opened Q64**, one paragraph lower on the same page. Q64 then
> left the list a **third** way: **the paragraph it was about was deleted**, so
> the question is moot rather than answered. **Closed, deleted, and moot look
> identical in a count and nowhere else, which is why the count is never the
> record.** The second slot is no longer a question at all — it is the human
> pass, promoted here from the checklist below because that is where the last
> reserved approval went missing.)*
>
> 1. **Q60 — the retention MECHANISM has still not been observed.** TTL is
> `ENABLED` and no record has been watched to disappear, and
@@ -416,15 +421,23 @@ Then invalidate `/*`.
> record is written and it does not call failure before **7 days**, so
> **start it before anything else on this page.** It is the one blocker
> that is a waiting period rather than a task.
> 2. **Q64 — does anyone else hold the AWS root password or its MFA device?**
> `/legal/privacy/` publishes *"has no programmatic key, and I hold it"* — his
> own words from the Q63(c) ruling, **true whether or not someone else holds
> it too**, sitting one paragraph below *"the small number of people who
> administer it with me"*, where a reader takes it as **sole** custody. Root
> cannot be simulated, so nothing establishes that either way. **One line
> settles it:** sole custody → say so, record it in §7, arm §12 R21; not sole
> → the possessive comes out and the sentence keeps its measured half. See the
> unticked item under **Copy and claims** below.
> 2. **Pouya has not yet read every page against `AGENTS.md` §4.** The human
> pass — the other half of D20, and not delegable. **It is also where the
> §Who can see it approval now lands:** Pouya ruled on 2026-09-02 that the
> read-through *is* the approval and that nothing is to be held open waiting
> on a separate wording sign-off. The item under **Copy and claims** below
> carries what to read first and why.
>
> ✅ **CLOSED 2026-09-02 — Q64, MOOT.** It asked whether anyone else holds the
> AWS root password or its MFA device, because the page published *"has no
> programmatic key, and I hold it"* one paragraph below *"the small number of
> people who administer it with me"*, where a reader takes it as **sole**
> custody. **Pouya's second ruling that day deleted the sentence** — the section
> is now four plain statements and says nothing about root — so the question no
> longer gates anything. ⚠️ **The underlying fact is unchanged and unestablished:
> §7 records root as *held by Pouya*, which is not *held only by Pouya*, and
> nothing measured can settle it. Nothing may be published about root custody
> without asking again.**
>
> ✅ **CLOSED 2026-09-02 — Q63, all three limbs, by ruling.** **(a)** The §Who
> can see it wording is **approved with two trims** — the editorial closing
@@ -439,15 +452,54 @@ Then invalidate `/*`.
> humans**. No numeric human headcount ships; the page attributes read access to
> *"the account's administrators — me, and the small number of people who
> administer it with me"*. §12 **R21** is re-scoped to match.
> ⚠️ *(Superseded the same day in its details, not in its rulings: the ruling
> below cut the section to four plain statements, so the sentence quoted above is
> no longer the shipped one and root is not mentioned at all. Each limb of Q63
> still stands — no headcount, the mailbox named, root attested in §7.)*
>
> ✅ **CLOSED 2026-09-02 — THE SECTION IS GENERIC, by a second ruling the same
> day.** *"It over-explains technical mechanics that belong in the evidence file,
> not in front of an inquirer."* §Who can see it is now **four short statements**
> — who can read it, that the receiving system can only add a record, where the
> notification goes and who reads it, and that the confirmation sits with the
> reader's own provider. **Deleted from §Who can see it:** the measurement
> paragraph, the root-credential sentence, the single-sign-on and federated-
> login enumeration, the resource-policy clause, the *"company that runs a
> database"* aside, the deploy-credential sentence and the three-copies
> summary. ⚠️ **THE SHARED-ACCOUNT CLAUSE WAS CUT WITH THEM AND THEN RESTORED
> — to §Where it is stored, where it belongs.** It is a storage disclosure
> rather than mechanics, the ruling did not name it, and without it no page
> told a reader their intake sits in an account that also runs unrelated
> systems (`adversarial-reviewer`, round 1). **These lists must stay identical
> — there were four of them and they named four different sets.** **None of
> that verified
> material was lost** — all of it stays in `AGENTS.md` §7 and
> `docs/reference/intake-table-access-verification.md`, and the section comment in
> `src/pages/legal/privacy.astro` bars restoring it to the page. **The risk moved
> in the right direction:** every deleted sentence was a claim about a system
> outside this repository that nothing reports on, which is what §12 **R21**
> exists for — R21 is re-scoped from five live claims to two.
>
> ✅ **CLOSED 2026-09-02 — THE CONSENT STRING NAMES THE CORPORATION.** *"I
> consent to **SML Company Ltd** storing and using the information in this
> form…"*, per ruling, replacing the natural person. It is the one sentence a
> submitter actually agrees to and it is the PIPEDA basis, and the policy it
> links to describes a mailbox read by administrative staff — a corporation is
> the party that matches, and `/legal/privacy/` now names it in terms under §Why
> it is collected. **The NAME ONLY:**
> §4 verifies the federal incorporation, records it as *not published*, and
> cautions that it must never be read beside the licence-status row. `docs/05`
> §Consent text carries the string verbatim and moved with it.
>
> ✅ **CLOSED 2026-09-02 — Q62.** `/legal/privacy/` no longer states anything
> false about who can read the intake table. Pouya's ruling was **state the
> truth**, not remove the second administrator's access: the page attributes read
> access to the account's administrators, names their role, and adds the two
> stronger facts the false sentence had been crowding out — the writing function
> cannot read the table, and the deploy credential has no access to it at all.
> *(It said "two people can read it" until the Q63 ruling later the same day
> replaced the count; see the Q63 block above.)* The
> access to the account's administrators and names their role. *(It said "two
> people can read it" until the Q63 ruling later the same day replaced the count,
> and the ruling after that cut the section to four plain statements — of the two
> stronger facts this entry originally credited it with, the writing function's
> add-only access still ships and the deploy credential's lack of access does
> not. See the two blocks above.)* The
> `sole-administrator-q62` tripwire in `check-claims.mjs` **stays permanently**
> by the same ruling, extended from two alternatives to **five**: the clause the
> first form could not see two sections up the same page, the summary that would
@@ -554,52 +606,35 @@ the decision is re-readable rather than re-litigated.
have flagged correct copy and demanded the struck form. It read §4 instead.
That is the fifth stale claim found in that file and it is not the agent's
to fix
- [x]**Q63(a) RULED 2026-09-02 — the wording is approved WITH TWO TRIMS.**
The editorial closing sentence (*"I would rather tell you that than give
you the tidier answer"*) is struck, and the mailbox clause is rewritten per
(b). Q62's ruling settled what the section must **say**; he reserved the
**wording**, and that reservation is discharged by the ruling. **This tick
records the RULING, not the current text** — see the next item.
- [ ] 🛑 **THE §Who can see it TEXT AS IT NOW STANDS HAS NOT BEEN READ BY POUYA,
AND IT IS NOT THE TEXT HE APPROVED.** The same ruling that approved the
wording also took the human headcount off the page, and the two review
rounds that followed rewrote both paragraph openings, the root sentence and
the mailbox clause. **The revised section is quoted verbatim in
`docs/reference/intake-table-access-verification.md`** for exactly this
reading. ⚠️ **This item is split from the one above because a single ticked
box over changed copy is the defect the item above was created to stop** —
a person working this list reads the tick, not the eleven lines under it
(`adversarial-reviewer`, round 2). It is narrower than the general
read-through below: this one is the wording approval Pouya reserved in
terms, over the sentences that actually ship.
⚠️ **THIS ITEM EXISTS BECAUSE THE GATE HAD NO MECHANISM.** On 2026-09-02
the `TODO(pouya)` was deleted from the source, Q62 was struck in §9 and the
blocker in the callout above was ticked — all correctly, and the net effect
was that the only surviving record of an **open** approval requirement was
prose inside three records marked ✅ CLOSED. When Q60's TTL test passes,
nothing mechanical or visual would have stopped copy Pouya has not read.
`adversarial-reviewer`, D20 pass round 1. ⚠️ **THAT SENTENCE READ "the
`TODO(pouya)` is reinstated beside the copy and §9 Q63 is open" AFTER BOTH
HAD BEEN CLOSED IN THE SAME CHANGE SET** — a ticked item describing a live
control that no longer existed, which is Q22's shape on the item written to
stop Q22's shape (`adversarial-reviewer`, round 1). **What actually carries
the text as it now stands:** the read-through item below, and §9 **Q64**
with its own `TODO(pouya)` and its own unticked item — because answering
Q63 opened Q64 rather than clearing the section
- [ ] 🛑 **DOES ANYONE ELSE HOLD THE AWS ROOT PASSWORD OR ITS MFA DEVICE —
§9 **Q64**.** `/legal/privacy/` publishes *"Its root credential — the one
path no policy constrains — has no programmatic key, and I hold it"*.
Those are Pouya's own words from the Q63(c) ruling and they are **true
whether or not a second person holds it**; the defect is what a reader
takes from them, one paragraph below *"the small number of people who
administer it with me"*. Root is not an IAM principal and cannot be
simulated, so no measurement settles it — `get-account-summary` gives only
`AccountAccessKeysPresent: 0` and `AccountMFAEnabled: 1`. **Sole custody →
say so on the page, record it in §7, arm §12 R21. Not sole → strike the
possessive and keep the measured half.** `src/pages/legal/privacy.astro`
carries the `TODO(pouya)`. **This is Q63's lesson pointing the other way**:
Q63 struck a sentence for reading identities as people; this one invites a
reader to read a possessive as an exclusion
- [x] ✅ **THE §Who can see it WORDING APPROVAL IS DISCHARGED — Pouya's ruling,
2026-09-02: *"the read-through is the approval."*** Q62 settled what the
section must **say** and he reserved the **wording**; he then ruled twice on
it the same day — Q63(a) approving with two trims, and the second ruling
cutting the section to four plain statements — and directed in terms that
nothing be held open waiting on a separate sign-off. ⚠️ **THIS TICK IS NOT
"THE TEXT HAS BEEN READ".** It records that the reserved approval has
**moved**, to the read-through blocker in the callout above and the item
below. Two ticked boxes stood here for one round — one for the ruling, one
for the text — because a single tick over changed copy is how an approval
requirement went missing the first time (`adversarial-reviewer`, round 2).
They collapse into this one only because the ruling collapsed them, and
the gate did not disappear: **it is blocker 2 in the callout above**, which
is the most-read place on this page rather than the least.
- [x]**CLOSED 2026-09-02 — Q64 IS MOOT: THE PARAGRAPH WAS DELETED.** It asked
whether anyone else holds the AWS root password or its MFA device, because
`/legal/privacy/` published *"has no programmatic key, and I hold it"* one
paragraph below *"the small number of people who administer it with me"*
where a reader takes it as **sole** custody, which nothing establishes.
Pouya's second ruling that day struck the sentence along with the rest of
the mechanics, so no page says anything about root and the question gates
nothing. The `TODO(pouya)` is gone from
`src/pages/legal/privacy.astro` with the paragraph that carried it.
⚠️ **THE FACT IS STILL UNESTABLISHED AND THAT DID NOT CHANGE.** §7 records
root as *held by Pouya*, which is not *held only by Pouya*; root is not an
IAM principal and cannot be simulated. **Nothing about root custody may be
published without asking him again** — the section comment in the page
source carries that bar, because "we deleted it" and "we checked it" are
the same green tick from three weeks away.
- [x] ✅ **Q63(b) ANSWERED 2026-09-02 — `info@smlcompany.ca` is a DELEGATED
MAILBOX: Pouya and administrative staff read it.** The page said *"anyone
who can reach that mailbox"*, which was true either way and answered the
@@ -618,12 +653,17 @@ the decision is re-readable rather than re-litigated.
- [ ] **Pouya has read every page against `AGENTS.md` §4.** The human pass. It is
the other half of D20 and it is not delegable — his reading is what the
per-step audit was traded for.
⚠️ **START WITH `/legal/privacy/` §Who can see it.** Every sentence in it
changed on 2026-09-02, twice — once by Q62's ruling and again by Q63's —
and it is the only section on the site whose subject lives entirely outside
this repository. It is also where the approval he reserved lands: Q63(a)
approved the wording, and the wording then changed under the same ruling
when the headcount came out.
⚠️ **START WITH `/legal/privacy/` §Who can see it. IT IS BLOCKER 2 IN THE
CALLOUT ABOVE, AND THIS READ *IS* THE APPROVAL** — Pouya ruled on
2026-09-02 that nothing waits on a separate wording sign-off. Every
sentence in it changed three times that day — Q62's ruling, Q63's, then the
ruling that cut it to **four plain statements** — and it is the only
section on the site whose subject lives entirely outside this repository.
**It is now four sentences and should take a minute**; that is the point of
the cut. The verified material behind them is in
`docs/reference/intake-table-access-verification.md` and `AGENTS.md` §7 if
he wants to check any of it, and **the page deliberately no longer cites
it**.
**Then read the two `/contact/` sentences against it, which is a judgement
rather than a defect** — `/contact/received/` says *"email me directly at
`info@smlcompany.ca` — that reaches me whether or not the receipt did"* and
@@ -634,20 +674,23 @@ the decision is re-readable rather than re-litigated.
the neutral may take more from the word than is true. A sweep of all 23
built pages found these two as the only other surfaces touching the point.
Raised as **consider**, not blocking, by `adversarial-reviewer` round 1.
⚠️ **AND A THIRD SURFACE THAT SWEEP COULD NOT REACH — the CONSENT string,
`src/data/intake.ts`, rendered on `/contact/`:** *"I consent to **Pouya
Lajevardi** storing and using the information in this form…"*. It names a
natural person as the party storing and using the data, while the policy it
links to now describes the practice's mailbox, administrative staff and a
shared AWS account. **Nothing here is false** — he is the accountable
individual and staff act for him — but it is the one sentence a submitter
actually agrees to, and it is the PIPEDA basis. **The sweep that missed it
was anchored on mailbox vocabulary** (*"email me directly"*, *"reaches
me"*), which is R8's sharpest edge: the right command, the wrong anchor.
**Decide it here rather than leaving it implicit** — either widen the
consent, or record that it names the responsible individual deliberately.
Either way the consent string joins the surfaces the mailbox question
governs, so the next answer reaches it. `adversarial-reviewer`, round 2.
**THE THIRD SURFACE IS DECIDED — the CONSENT string now names the
corporation.** *"I consent to **SML Company Ltd** storing and using the
information in this form…"*, Pouya's ruling 2026-09-02, replacing the
natural person. It is the one sentence a submitter actually agrees to and
it is the PIPEDA basis, and the policy it links to describes a mailbox read
by administrative staff — a corporation is the party that matches, and
`/legal/privacy/` now names it in terms under §Why it is collected. **The sweep that had missed it was anchored on
mailbox vocabulary** (*"email me directly"*, *"reaches me"*), which is R8's
sharpest edge: the right command, the wrong anchor.
⚠️ **THE PAGE AROUND IT STILL SAYS "me" AND "I", AND THAT IS DELIBERATE, NOT
AN OVERSIGHT — read the two together and say if it reads wrong.** The
ruling changed the consent sentence and nothing else; `/legal/privacy/` is
written in the first person throughout (*"whatever you send me"*, *"in your
hands rather than mine"*), and `/contact/` is too. Nothing is false either
way — he is the accountable individual, the corporation holds the systems —
but the checkbox and the prose beside it now name different parties, and
**that is a judgement about voice which is his and not a reviewer's.**
- [x] ✅ **MEMBERSHIPS RE-CONFIRMED 2026-09-02 — Pouya: ADRIC, ADRIO, the three
OBA sections and the CTF are all current.** §4 and `src/data/site.ts` are
re-stamped `[verified 2026-09-02 — Pouya]`. ⚠️ **THERE ARE TWO ARRAYS AND
@@ -41,38 +41,63 @@ exact count. **No numeric human headcount may ship.** The identity counts in thi
file are unaffected and stay exactly as measured — this is a correction to what
may be *concluded* from them, not to any of them.
⚠️ **AND RULED A THIRD TIME, LATER THE SAME DAY: THE PAGE STATES WHO, AND THIS
FILE HOLDS THE METHOD.** Pouya, 2026-09-02: *"the page stays generic. It
over-explains technical mechanics that belong in the evidence file, not in front
of an inquirer."* §Who can see it is now **four short statements**. **Deleted from
the page:** the measurement paragraph, the root-credential sentence, the single-sign-on and federated-login enumeration, the resource-policy clause, the *"company that runs a database"* aside, the deploy-credential sentence and the three-copies summary. ⚠️ **THE SHARED-ACCOUNT CLAUSE WAS CUT WITH THEM AND THEN RESTORED — to §Where it is stored, where it belongs.** It is a storage disclosure rather than mechanics, the ruling did not name it, and without it no page told a reader their intake sits in an account that also runs unrelated systems (`adversarial-reviewer`, round 1). **These lists must stay identical — there were four of them and they named four different sets.** None of that was retracted and none of it is lost — it
is all still below, unchanged, and **that is now this file's job rather than a
supporting role.** ⚠️ **THE PAGE NO LONGER CITES THIS FILE'S CONTENT, SO THE
COMPARISON BELOW IS THE ONLY THING TYING THE TWO TOGETHER. Keep it in sync, and
do not restore a deleted sentence to the page on the strength of finding it
here** — the section comment in `src/pages/legal/privacy.astro` carries the same
bar.
**The shipped sentences as at 2026-09-02**, so this file can be compared against
the live page rather than against a struck one:
the live page rather than against a struck one. All four, in order, complete:
> The account's administrators can — me, and the small number of people who
> administer it with me. The table sits in an Amazon Web Services account that
> also runs systems unrelated to this practice, and administrative access to that
> account carries the ability to read the table. That is who can read the stored
> record; who reads the notification email is a separate question, answered in the
> last paragraph of this section.
> The record in the table: me, and the small number of people who administer the
> account it sits in with me.
> The access itself is measured rather than assumed: every user and every role in
> the account was simulated against this table, and every identity that comes back
> able to read it is reachable only by those administrators. The account has no
> single sign-on and no federated login configured, and the table carries no
> policy of its own granting access to anyone. The account's root credential — the
> one path no policy constrains — has no programmatic key, and I hold it.
> The system that receives what you send **can only add a record — it cannot read
> back what is stored.**
> The function that receives the form **can only add a record — it cannot read
> the table back.** And the credential that publishes this website has **no
> access to the table at all**, for reading or for writing.
> The notification goes to the practice's mailbox, which is read by me and by
> administrative staff and is hosted on Google Workspace — so Google holds a copy
> of whatever you send me.
**The wording was approved by Pouya on 2026-09-02 with two trims** (§9 Q63(a)) —
the editorial closing sentence struck, and the mailbox clause rewritten because
`info@smlcompany.ca` is **a delegated mailbox read by Pouya and administrative
staff**, not a personal one (Q63(b); the fact is in `AGENTS.md` §7). **`33` was
deliberately not published**: a role total moves when AWS creates a service-linked
role by itself, and *"every user and every role in the account"* carries the
exhaustiveness without putting a second self-staling number on a legal page.
> The confirmation that went to you sits with whoever runs your email. That copy
> is in your hands rather than mine.
⚠️ **AND THE ENUMERATION BELOW WAS NOT ENOUGH TO SUPPORT THE SECOND OF THOSE
SENTENCES. See the addendum at the foot of this file**, which is what the page
actually rests on. Read it before citing the five-row table.
**What each rests on, because that mapping is the reason this file exists.**
Sentence 1: the enumeration below, plus Pouya's *"a handful"* attestation for the
human quantifier — **the measurement gives administrators, the attestation gives
the number, and neither gives the other.** Sentence 2: `adr-intake-lambda-role`
holds `PutItem` only, implicitDeny on all six read and modify actions.
Sentence 3: **an attestation, not a measurement**`AGENTS.md` §7's
`info@smlcompany.ca` row; nothing in this repository or in AWS can check it.
Sentence 4: the handler's second `SendEmailCommand`.
**Three things the page deliberately does NOT say, and each was deleted by
ruling rather than being unsupported.** The **root credential** (§7 records it as
held by Pouya with no access key and MFA on — ⚠️ *held*, not *held only*, which
is why publishing it needed a question and why §9 Q64 is closed as **moot** and
not as answered). The **single-sign-on and resource-policy findings**. And the
**`33`** — deliberately withheld even while the paragraph stood, because a role
total moves when AWS creates a service-linked role by itself.
**The wording approval Pouya reserved is discharged by the read-through** — his
ruling, 2026-09-02: *"do not hold anything open waiting on a separate wording
approval; the read-through is the approval."* Q63(a) had approved a version, and
the version changed twice after it.
⚠️ **AND THE ENUMERATION BELOW WAS NOT ENOUGH TO SUPPORT THE COMPLETENESS CLAIM
*"every user and every role in the account was simulated against this table"*,
which §7 still asserts and the page no longer carries. See the addendum at the
foot of this file**, which is what that claim actually rests on. Read it before
citing the five-row table. *(This pointer said "the second of those sentences"
until 2026-09-02: it indexed the quote block by POSITION, and the block changed
length under it. Name the claim, not its ordinal.)*
---
@@ -211,10 +236,19 @@ a silently-skipped iteration is visible as a missing row, and suppresses nothing
## ⚠️ ADDENDUM 2026-09-02 — THE ENUMERATION ABOVE WAS INCOMPLETE IN THREE WAYS, AND ITS CONCLUSION SURVIVES ANYWAY
**Why this addendum exists.** `/legal/privacy/` publishes a completeness claim
about who can read this table — the second of the three sentences quoted at the
top of this file, under **The shipped sentences**. Written as it stood, this file
did not support it.
**Why this addendum exists.** `/legal/privacy/` published a completeness claim
about who can read this table — *"every user and every role in the account was
simulated against this table"* — and, written as it stood, this file did not
support it. ⚠️ **THAT SENTENCE IS NO LONGER ON THE PAGE**: Pouya ruled later the
same day that the section states who and not how, and the measurement paragraph
was deleted (see **The shipped sentences** at the top of this file, which is now
four statements and does not include it). **This addendum is not thereby
obsolete — it is now load-bearing in a different place.** `AGENTS.md` §7's
`Intake table — who can read it` row still asserts the completeness, `docs/06`
and §12 **R21** still instruct an operator to re-run it before cutover, and the
page's first sentence still rests on its conclusion even though it no longer
recites the method. **A claim moved off a public page into a register is still a
claim.**
*(This paragraph quoted a different sentence until 2026-09-02 — round 1's
**pre-fix** wording, *"every account and role in this infrastructure…"*, which
@@ -234,7 +268,7 @@ construction even when it happens to be true.
2. **No role was ever simulated against the table.** Access was inferred from
policy *names* (`AdministratorAccess`) rather than measured as a decision.
3. **The five users were simulated for reads only**`GetItem`, `Query`, `Scan`.
So the page's *"the credential that publishes this website has no access to the
So the page's *(then-shipped; deleted by the mechanics ruling of 2026-09-02 and now §7's alone)* *"the credential that publishes this website has no access to the
table at all"* covered three read actions and said "at all".
**What the measurement found, and it changes the role count.** Simulating all 26
@@ -351,44 +385,50 @@ always read the table. Two facts bound it: `get-account-summary` reports
and `AccountMFAEnabled: 1`. Root access therefore requires the root password and
its MFA device.
⚠️ **THIS PASSAGE SAID *"The page does not mention root and should not"*, AND
THAT JUDGEMENT IS SUPERSEDED — §9 Q63(c), 2026-09-02.** It was reasoned from its
own last clause: *"Who holds the root credentials is not established in this
repository."* **Pouya established it on 2026-09-02: he holds it**
`[verified 2026-09-02 — Pouya]`. With the holder known, mentioning root
**strengthens** the paragraph rather than opening a hole in it — it closes the
one path a careful reader would ask about after being told every user and every
role was simulated. The page now states that the root credential has no
programmatic key and that he holds it; it does not state a headcount for it, and
`AGENTS.md` §7 carries the fact with §12 R21's trigger on it. ⚠️ **AND THE
ATTESTATION IS *held by Pouya*, NOT *held ONLY by Pouya* — §9 Q64 is open on
exactly that gap.** Nothing here excludes a second holder: root cannot be
simulated, and `get-account-summary` reports only that there is no access key and
that MFA is on. The shipped possessive sits one paragraph below *"the small
number of people who administer it with me"*, where a reader takes it as sole
custody. **This is the identity/human error of Q63 pointing the other way** — one
line from Pouya either arms it or strikes the possessive. The rest of the
original reasoning holds and is why the sentence is still scoped the way it is:
an account owner's own credential is inherent to every cloud account and is not a
third party who has been granted access, which is why the shipped sentence is
scoped to *"every user and every role"* and to who has been *granted* access
rather than to a bare "nobody else can".
⚠️ **THE PAGE SAYS NOTHING ABOUT ROOT, AND THIS PASSAGE HAS NOW BEEN THE REASON
FOR THAT TWICE ON OPPOSITE GROUNDS.** It first read *"The page does not mention
root and should not"*, reasoned from its own last clause *"who holds the root
credentials is not established in this repository."* **Pouya then established it
(§9 Q63(c), 2026-09-02): he holds it** `[verified 2026-09-02 — Pouya]`, the page
published *"has no programmatic key, and I hold it"*, and the gap that opened
immediately was that *held by* is not *held only by* — a reader takes the
possessive as sole custody, which nothing measured or attested supports (§9
**Q64**). **His second ruling that day deleted the sentence** along with the rest
of the mechanics, so **Q64 is closed as MOOT rather than answered and the
underlying fact is exactly as unestablished as it was.**
**Two page sentences are now supported that were not before.**
**The consequence to carry, because it is not "nothing happened":** root custody
is now recorded in `AGENTS.md` §7 and nowhere public. ⚠️ **Nothing about it may
be published without asking him again**, and the question to ask is not *who
holds root* — that is answered — but *whether anyone else does*. The original
reasoning still holds and is why the page's first sentence is scoped as it is: an
account owner's own credential is inherent to every cloud account and is not a
third party who has been *granted* access, which is why the measured claim was
always scoped to *"every user and every role"* rather than to a bare "nobody else
can".
- *"The function that receives the form can only add a record and cannot read the
table back"* — `adr-intake-lambda-role` returns `allowed` for `PutItem` and
`implicitDeny` for `GetItem`, `Query`, `Scan`, `BatchGetItem`, `UpdateItem` and
`DeleteItem`. Previously this rested on reading the policy document; it is now
the simulator's decision.
- *"the credential that publishes this website has no access to the table at
all"* — `adr-sml-deploy` is `implicitDeny` on all **seven**, so "at all" now
covers writes and deletes as well as reads.
**Two claims are supported that were not before. One of them still ships; the
other was deleted from the page by ruling on 2026-09-02 and is kept here because
it remains true and remains §7's.**
- **SHIPS** — *"The system that receives what you send can only add a record — it
cannot read back what is stored"* — `adr-intake-lambda-role` returns `allowed`
for `PutItem` and `implicitDeny` for `GetItem`, `Query`, `Scan`,
`BatchGetItem`, `UpdateItem` and `DeleteItem`. Previously this rested on
reading the policy document; it is now the simulator's decision.
- **NO LONGER ON THE PAGE** — *"the credential that publishes this website has no
access to the table at all"* — `adr-sml-deploy` is `implicitDeny` on all
**seven**, so "at all" covers writes and deletes as well as reads. It went with
the mechanics cut, not because anything about it changed.
**And it corroborates §10 from the IAM surface.** Of the 26 non-service-linked
roles, **9 belong to CDK bootstrap** and **14 to four unrelated production
systems** in the same account — which is what `/legal/privacy/` now tells a
reader in as many words. *(Their role names were listed here until 2026-09-02 and
systems** in the same account. *(`/legal/privacy/` tells a reader this in as many words —
*"The table sits in an Amazon Web Services account that also runs systems
unrelated to this practice"* — in **§Where it is stored**, which is where the
sentence now lives: the mechanics cut removed it and it was restored there, as a
storage disclosure rather than a method. §10 is unaffected either way; it never
depended on the page saying so.)* *(Their role names were listed here until 2026-09-02 and
are not any more: this is a committed file, they are another project's IAM
surface, and the count carries the whole of the argument. `adversarial-reviewer`,
round 2.)*
+16 -17
View File
@@ -415,23 +415,22 @@ const FIXTURES = {
the wording a correction is likely to reach for. Where a fixture is one of
those, the comment beside it says so. */
mustNotMatch: [
/* NEGATIVE FIXTURES FOR `sole-administrator-q62`. The first SEVEN are LIVE
PAGE COPY, verbatim from the corrected `/legal/privacy/` —
which is the fixture that matters, because Q62's ruling required this
pattern to be proven silent on the true sentence as well as loud on the
false one. THEY MUST BE RE-SYNCED WHENEVER THAT COPY CHANGES — this set
has now gone stale twice, once within the hour of being written and again
when Pouya's 2026-09-02 ruling took the human headcount off the page. The
rest are near misses on the same subject: the pattern is anchored on five
strings that reached `dist/`, not on the ideas in them, so a truthful
sentence about administrative access must pass. */
"The account's administrators can — me, and the small number of people who administer it with me. The table sits in an Amazon Web Services account that also runs systems unrelated to this practice, and administrative access to that account carries the ability to read the table. That is who can read the stored record; who reads the notification email is a separate question, answered in the last paragraph of this section.",
'The access itself is measured rather than assumed: every user and every role in the account was simulated against this table, and every identity that comes back able to read it is reachable only by those administrators.',
"The account's root credential — the one path no policy constrains — has no programmatic key, and I hold it.",
'Two things in the system are narrower than I am, and they are worth stating because they are the part you cannot check for yourself.',
/* The replacement summary, which must not trip the third-surface alternative. */
"There are therefore three copies of what you send. The record in the table, which the account's administrators can read.",
"The notification, which lands in the practice's mailbox — read by me and by administrative staff — on Google Workspace, so Google holds a copy of whatever you sent me.",
/* NEGATIVE FIXTURES FOR `sole-administrator-q62`. The first FIVE are LIVE
PAGE COPY, verbatim from the corrected `/legal/privacy/` — which is the
fixture that matters, because Q62's ruling required this pattern to be
proven silent on the true sentence as well as loud on the false one.
RE-SYNC THEM WHENEVER THAT COPY CHANGES. ⚠️ **A SENTENCE THAT LEAVES THE
PAGE LEAVES THIS LIST — it is not kept as a near miss.** Struck copy in a
list captioned "what this site legitimately publishes" is an invitation to
restore it. The rest below ARE near misses on the same subject: the
pattern is anchored on five strings that reached `dist/`, not on the ideas
in them, so a truthful sentence about administrative access must pass.
Rendered as text, without the `<strong>` wrappers — what is proven is that
the PATTERN is silent on the words. */
'The record in the table: me, and the small number of people who administer the account it sits in with me.',
'The system that receives what you send can only add a record — it cannot read back what is stored.',
"The notification goes to the practice's mailbox, which is read by me and by administrative staff and is hosted on Google Workspace — so Google holds a copy of whatever you send me.",
'The confirmation that went to you sits with whoever runs your email. That copy is in your hands rather than mine.',
'No one else is sent it. There is no CRM, no mailing list and no analytics on the submission.',
'The table is reachable by the function that writes to it.',
'Two accounts hold administrative access to the AWS account, and the function that writes to the table cannot read it.',
+9 -1
View File
@@ -172,9 +172,17 @@ export const INTAKE_FIELDS: readonly IntakeField[] = [
* is the one the inquirer ticks; both ship on `/contact/`, which is deliberate:
* `docs/01` requires the page to carry the notice, and `docs/05` requires the
* checkbox to carry it too.
*
* ⚠️ **IT NAMES SML COMPANY LTD — Pouya's ruling, 2026-09-02 — AND THREE
* CONSTRAINTS RIDE ON THAT.** **Name only, no terminal period**, and never
* beside the licence-status row (`AGENTS.md` §4). **`docs/05` §Consent text is a
* byte-identical second copy with no `check:` script over it**, so it moves with
* this string. And **`/legal/privacy/` must keep naming the same party** — it
* does, under §Why it is collected; a consent naming a company the linked policy
* never mentions is an accountability gap, not a matter of voice.
*/
export const CONSENT_TEXT =
'I consent to Pouya Lajevardi storing and using the information in this form ' +
'I consent to SML Company Ltd storing and using the information in this form ' +
'to respond to my inquiry and to run a conflicts check. I understand that ' +
'submitting this form does not create a retainer, does not appoint a neutral, ' +
'and does not itself establish a mediatorparty relationship.';
+50 -77
View File
@@ -171,7 +171,9 @@ const COLLECTED = INTAKE_FIELDS.map((field) => field.label);
<p>
To reply to your inquiry and to run a conflicts check. The basis is
your consent, which the form asks for explicitly with an unchecked box
you have to tick. The wording you agree to is on the form itself.
you have to tick. The wording you agree to is on the form itself, and
it names <strong>SML Company Ltd</strong>, the company that holds this
practice's systems.
</p>
<p>
It is not used for marketing. It is not sold, rented or shared with
@@ -185,6 +187,10 @@ const COLLECTED = INTAKE_FIELDS.map((field) => field.label);
the form — a notification to the practice and a confirmation to you —
using Amazon Simple Email Service, also in the same Canadian region.
</p>
<p>
The table sits in an Amazon Web Services account that also runs
systems unrelated to this practice.
</p>
{
/* ⚠️ TWO PROCESSORS, AND BOTH MUST BE NAMED. `AGENTS.md` §7 records
mail hosting as **Google Workspace** and D18 sends the notification to
@@ -245,85 +251,52 @@ const COLLECTED = INTAKE_FIELDS.map((field) => field.label);
<h2>Who can see it</h2>
{
/* ⚠️ THESE NINE PARAGRAPHS ANSWER "WHO CAN SEE IT" AND THEY CHANGE
TOGETHER — by opening phrase, because every defect here has been a
partial sweep and a COUNT is what drifts. **This section:** "The
account's administrators can", "The access itself is measured", "Two
things in the system are narrower", "There are therefore three
copies". **§Where it is stored, all four:** "In a DynamoDB table",
"Two companies therefore process it", "The confirmation sent to you",
"No one else is sent it". **§How long it is kept:** "Emails are a
separate matter".
**NO HUMAN HEADCOUNT SHIPS** — Pouya, 2026-09-02: the simulation
counts identities, not people. Say "the account's administrators".
**TWO CLAIMS GO STALE ON THEIR OWN**, both about the present state of
systems outside this repo: the AWS enumeration and who reads
`info@smlcompany.ca`. Their durable homes are `AGENTS.md` §7's two
rows and §12 **R21** claims (i)(v), which is the trigger for both;
`docs/reference/intake-table-access-verification.md` holds the
commands. **§9 Q63 is closed — the live gate is Q64.**
`check-claims.mjs`'s `sole-administrator-q62` pattern bars the OLD
false shape permanently and is blind to both. */
}
<p>
The account's administrators can — me, and the small number of people
who administer it with me. The table sits in an Amazon Web Services
account that also runs systems unrelated to this practice, and
administrative access to that account carries the ability to read the
table. That is who can read the stored record; who reads the
notification email is a separate question, answered in the last
paragraph of this section.
</p>
<p>
The access itself is measured rather than assumed: every user and
every role in the account was simulated against this table, and every
identity that comes back able to read it is reachable only by those
administrators. The account has no single sign-on and no federated
login configured, and the table carries no policy of its own granting
access to anyone. The account's root credential — the one path no
policy constrains — has no programmatic key, and I hold it. Amazon Web
Services operates the table, as <em>Where it is stored</em> above says:
a company that runs a database is not someone who has been given access
to it, and both of those are true at once.
</p>
{
/* TODO(pouya): DOES ANYONE ELSE HOLD THE ROOT PASSWORD OR ITS MFA
DEVICE? `AGENTS.md` §9 **Q64**. You attested that you hold it
(Q63(c)) and the paragraph above ships your words — *"has no
programmatic key, and I hold it"* — which is true whether or not
somebody else holds it too. ⚠️ **But it sits one paragraph below "the
small number of people who administer it with me", and a reader takes
it as SOLE custody.** Nothing measured establishes that: root is not
an IAM principal, cannot be simulated, and `get-account-summary`
reports only that there is no access key and that MFA is on. If it is
sole custody, say so and §12 R21 arms it; if it is not, the possessive
comes out. One line either way. `adversarial-reviewer`, round 1. */
}
<p>
Two things in the system are narrower than I am, and they are worth
stating because they are the part you cannot check for yourself. The
function that receives the form
<strong>can only add a record — it cannot read the table back.</strong
> And the credential that publishes this website has
<strong>no access to the table at all</strong>, for reading or for
writing.
</p>
{
/* ⚠️ THREE COPIES, NOT TWO, AND THE THIRD IS THE READER'S OWN: the
/* ⚠️ THIS SECTION AND THE SENTENCES BELOW ANSWER THE SAME QUESTION
AND CHANGE TOGETHER — by OPENING PHRASE, never by count. **Here:**
"The record in the table", "The system that receives", "The
notification goes to", "The confirmation that went to you".
**§Where it is stored:** "In a DynamoDB table", "The table sits in an
Amazon Web Services account", "Two companies therefore process it",
"The confirmation sent to you", "No one else is sent it". **§How long
it is kept:** "Emails are a separate matter".
⚠️ **THIS SECTION STATES WHO, NOT HOW — Pouya's ruling, 2026-09-02.
NOT TO BE RESTORED HERE:** the measurement paragraph, the
root-credential sentence, the single-sign-on and federated-login
enumeration, the resource-policy clause, the "company that runs a
database" aside, the deploy-credential sentence and the three-copies
summary. All true, all still in `AGENTS.md` §7 and
`docs/reference/intake-table-access-verification.md`. **No human
headcount** — a simulation counts identities, not people.
⚠️ **SENTENCE 1 IS SCOPED TO THE STORED RECORD** (paragraph 3 names
administrative staff, who read the mailbox and **cannot** read the
table) **AND PREDICATED ON ADMINISTERING THE ACCOUNT** (what §7
measures). §4 carries the row and the bar: **never widen it to
running, founding, practising or acting.**
**TWO CLAIMS GO STALE ON THEIR OWN** — who administers the account,
and who reads `info@smlcompany.ca`. §7 holds both; §12 **R21** is the
trigger.
⚠️ **THERE ARE THREE COPIES AND THE THIRD IS THE READER'S OWN** — the
handler puts the whole submission into the confirmation it sends the
inquirer, under "What you sent:" (the second `SendEmailCommand` in
`backend/intake/handler.mjs`). Do not write "the one other place a
copy exists" — an absolute enumeration standing one section from the
page's own counter-example is what Q62 was. */
inquirer. Never write "the one other place a copy exists". */
}
<p>
There are therefore three copies of what you send. The record in the
table, which the account's administrators can read. The notification,
which lands in the practice's mailbox — read by me and by
administrative staff — on Google Workspace, so Google holds a copy of
whatever you sent me. And the confirmation that went to you, which
sits with whoever runs your email; that copy is in your hands rather
than mine.
The record in the table: me, and the small number of people who
administer the account it sits in with me.
</p>
<p>
The system that receives what you send
<strong
>can only add a record — it cannot read back what is stored.</strong
>
</p>
<p>
The notification goes to the practice's mailbox, which is read by me
and by administrative staff and is hosted on Google Workspace — so
Google holds a copy of whatever you send me.
</p>
<p>
The confirmation that went to you sits with whoever runs your email.
That copy is in your hands rather than mine.
</p>
<h2>Cookies and analytics</h2>