docs(plan): D13 settles the contact address, and Phase 0 is done #3

Merged
whitlocktech merged 1 commits from docs/contact-address-decision into main 2026-08-20 01:36:16 +00:00
Member

Revision 3 of the plan. Two things: Phase 0 finished, and the one item it left open is now decided.

D13 — the contact address

You told me you have not moved to a new email address, so §14 N2 was never going to resolve itself, and it sat underneath /privacy, /terms, /community and the Play store listing. You chose to publish the existing address rather than delay the beta on Cloudflare Email Routing.

Recorded as D13, with the trade stated plainly in §14 rather than glossed: a Play listing's contact email is public and so is this site, so the address will be scraped.

What makes that acceptable is that it is reversible for the cost of one file copy. The address lives only in brand.json — already a bind-mounted file per §7 — and appears in no page's prose and no committed markdown. Adding privacy@ and security@ later is then the same operation as swapping the logo: edit the file, restart the container, no rebuild and no PR.

That promise survives exactly as long as nobody types the address into a paragraph, so §12 gives it a check: checkFacts.mjs fails the build if an email address appears anywhere in the source outside brand-default/brand.json. Same argument as checkTokens.mjs and colour literals — the mechanism, not the diligence.

Phase 0 is complete

Verified merged before writing this:

PR Covers
docs#172 0.1–0.3 — protocol 3 → 4 across INTEGRATION.md, v4.md, INSTALL.md
docs#173 0.5–0.8 — the hygiene sweep
.profile#4 0.4 — protocol 4 and module-uo v1.0.1 in the quick start
Module-uo#19 0.9 — Phase 4 marked complete

PR 0.10 is withdrawn, not deferred. It only ever existed to move SECURITY.md off a personal Gmail and onto security@runicgateway.com; D13 keeps the personal address, and SECURITY.md already carries it. There is nothing to change, so the row is struck through with the reason rather than left as a to-do that will never be done.

Every fact the site is about to quote now agrees across the repositories, which was the entire point of the phase.

What did not change

The recommendation for Cloudflare Email Routing stays in §14 in full, along with the three addresses and the Gmail "Send mail as" pairing — demoted from a blocker to a thing worth doing whenever you want it. N3 (Gitea registration) is untouched.

Next step after this merges is Phase 1 — the Astro + Node scaffold, the token file, the layout shell, and the three check scripts.

AI-assisted contribution

Drafted by Claude (Claude Code), per the org's AI-usage disclosure policy. Commit carries the Co-Authored-By trailer.

Revision 3 of the plan. Two things: Phase 0 finished, and the one item it left open is now decided. ## D13 — the contact address You told me you have not moved to a new email address, so §14 N2 was never going to resolve itself, and it sat underneath `/privacy`, `/terms`, `/community` and the Play store listing. You chose to publish the existing address rather than delay the beta on Cloudflare Email Routing. Recorded as **D13**, with the trade stated plainly in §14 rather than glossed: a Play listing's contact email is public and so is this site, so the address **will** be scraped. **What makes that acceptable is that it is reversible for the cost of one file copy.** The address lives only in `brand.json` — already a bind-mounted file per §7 — and appears in no page's prose and no committed markdown. Adding `privacy@` and `security@` later is then the same operation as swapping the logo: edit the file, restart the container, no rebuild and no PR. That promise survives exactly as long as nobody types the address into a paragraph, so §12 gives it a check: **`checkFacts.mjs` fails the build if an email address appears anywhere in the source outside `brand-default/brand.json`.** Same argument as `checkTokens.mjs` and colour literals — the mechanism, not the diligence. ## Phase 0 is complete Verified merged before writing this: | PR | Covers | |---|---| | [`docs`#172](https://gitea.whitlocktech.com/RunicGateway/docs/pulls/172) | 0.1–0.3 — protocol 3 → 4 across `INTEGRATION.md`, `v4.md`, `INSTALL.md` | | [`docs`#173](https://gitea.whitlocktech.com/RunicGateway/docs/pulls/173) | 0.5–0.8 — the hygiene sweep | | [`.profile`#4](https://gitea.whitlocktech.com/RunicGateway/.profile/pulls/4) | 0.4 — protocol 4 and `module-uo` v1.0.1 in the quick start | | [`Module-uo`#19](https://gitea.whitlocktech.com/RunicGateway/Module-uo/pulls/19) | 0.9 — Phase 4 marked complete | **PR 0.10 is withdrawn, not deferred.** It only ever existed to move `SECURITY.md` off a personal Gmail and onto `security@runicgateway.com`; D13 keeps the personal address, and `SECURITY.md` already carries it. There is nothing to change, so the row is struck through with the reason rather than left as a to-do that will never be done. Every fact the site is about to quote now agrees across the repositories, which was the entire point of the phase. ## What did not change The recommendation for Cloudflare Email Routing stays in §14 in full, along with the three addresses and the Gmail "Send mail as" pairing — demoted from a blocker to a thing worth doing whenever you want it. N3 (Gitea registration) is untouched. Next step after this merges is **Phase 1** — the Astro + Node scaffold, the token file, the layout shell, and the three check scripts. ## AI-assisted contribution Drafted by Claude (Claude Code), per the org's AI-usage disclosure policy. Commit carries the `Co-Authored-By` trailer.
wtclaude added 1 commit 2026-08-19 23:42:14 +00:00
The domain still has no mailbox. Rather than delay the beta on Cloudflare
Email Routing, the org lead elected to publish the existing address.

- D13 recorded: whitlocktech@gmail.com is the published contact, held only
  in brand.json so a later privacy@/security@ is a file copy, not a rebuild.
- Phase 0 PR 0.10 withdrawn -- SECURITY.md already carries that address.
- checkFacts.mjs gains the rule that keeps the promise true: no email
  address in the source outside brand-default/brand.json.
- Phase 0 marked complete (docs#172, docs#173, .profile#4, Module-uo#19).

Co-Authored-By: Claude <noreply@anthropic.com>
whitlocktech merged commit 543389e95a into main 2026-08-20 01:36:16 +00:00
whitlocktech deleted branch docs/contact-address-decision 2026-08-20 01:36:18 +00:00
Sign in to join this conversation.
No description provided.