diff --git a/docs/proposals/loyalty-go-live-readiness.md b/docs/proposals/loyalty-go-live-readiness.md
index ae2cbef5..6cc126f4 100644
--- a/docs/proposals/loyalty-go-live-readiness.md
+++ b/docs/proposals/loyalty-go-live-readiness.md
@@ -131,6 +131,56 @@ fixed alongside the unit-test pass below.
an integration test that triggers a representative email from every
module and asserts an `email_logs` row appears within N seconds.
+## 2026-05-18 update — Test 1 round 2 cleanup + admin polish
+
+Both follow-up #1 items from yesterday shipped + verified by user.
+Plus a bonus polish on the admin program form, surfaced when the user
+spotted a non-clickable "Conditions Générales" link on the storefront
+and asked why.
+
+### Test 1 nits resolved
+
+| Bug | Diagnosis | Fix | Commit |
+|---|---|---|---|
+| Birthday picker shows mm/dd/yyyy on FR even though `` IS in the page source | Firefox-specific: it ignores the `lang` attribute for `` (Mozilla bug #1344625, open since 2017). Chrome/Safari/Edge respect it. | Swap to flatpickr on both `loyalty/storefront/enroll.html` and `loyalty/store/enroll.html`. Configured `dateFormat: 'Y-m-d'` (ISO to API) + `altInput: true` + `altFormat: 'd/m/Y'` (dd/mm/yyyy visible) + `maxDate: 'today'` + `locale: '{{ current_language }}'` for month/day name translations. Loaded via `extra_head` + `extra_scripts` blocks. | `ab3e133a` |
+| "Continuer mes achats" CTA on enrollment success page makes no sense for a loyalty-only storefront with no catalog | Same destination is fine (`{{ base_url }}`), only the label needed to change. | Renamed i18n key `continue_shopping` → `back_to_home` in all four locales: EN "Back to Home" / FR "Retour à l'accueil" / DE "Zurück zur Startseite" / LB "Zréck op d'Haaptsäit". | `236fee01` |
+
+### Admin program-form polish (bonus)
+
+User noticed the storefront's "Conditions Générales" link wasn't
+clickable. Root cause: the program had both `terms_text` and
+`terms_cms_page_slug` empty. The storefront then renders a plain
+`` instead of an `` (`enroll.html:122-124`) — intentional, so
+the link doesn't open an empty modal, but easy to accidentally publish
+a program in this broken state.
+
+Two changes to `loyalty/shared/program-form.html`:
+
+1. Yellow warning banner inside the Terms section, visible only when
+ both fields are empty. Tells the admin exactly what the storefront
+ will look like and what to fix.
+2. Save button disabled until at least one of the two terms fields is
+ filled. The button gets a localised `:title` tooltip explaining
+ why it's disabled, with `disabled:cursor-not-allowed` so the
+ disabled state is obvious on hover.
+
+Three new i18n keys (`terms_required_warning`, `terms_text_hint`,
+`terms_required_tooltip`) added in en/fr/de/lb. Shipped as
+`5f288502`.
+
+### Test 1 status
+
+All 6 originally-reported bugs (B1-A through B1-F) plus the 2
+follow-up nits are now resolved end-to-end on prod. Test 1 is
+**fully done**.
+
+### Remaining follow-ups (carry over to next session)
+
+From the 2026-05-17 list, items #2 (Test 2), #3 (Hetzner doc check),
+#4 (unit tests for the B1-F chain), #5 (prospecting `tasks/__init__.py`
+missing import), and #6 (other-module email audit) are still queued.
+Items #1 (Test 1 nits) are now closed by this session's commits.
+
## Status board
| # | Pre-launch step | State | Notes |